Explora Libros electrónicos
Categorías
Explora Audiolibros
Categorías
Explora Revistas
Categorías
Explora Documentos
Categorías
BaseWare
Manual de referencia de RAPID la parte 1, Instrucciones A-Z
RobotWare-OS 4.0
Manual de referencia de RAPID
3HAC 7778-1
La revisin A
BaseWare
Manual de referencia de RAPID la parte 1, ndice
Instrucciones A-Z
Instrucctiones A-Z
ndice alfabtico
Excepto en los casos en que se indica expresamente en este manual, ninguna parte del mismo debe entenderse
como ninguna garanta por parte de ABB por las prdidas, lesiones, daos materiales, idoneidad para un fin
determinado ni garantas similares.
Se prohibe la reproduccin o la copia de este manual o cualquiera de sus partes si no se cuenta con una
autorizacin escrita de ABB. Ninguna parte de este manual debe ser entregada a terceros ni utilizada para fines
no autorizados. Cualquier incumplimiento de esta norma ser perseguida legalmente.
Usted puede obtener copias adicionales de este manual a travs de ABB, con el coste aplicable en el momento
de su solicitud.
Ejemplos
AccSet 50, 100;
Argumentos
AccSet Acc Ramp
Acc Tipo de dato: num
Aceleracin
Tiempo
AccSet 100, 100, es decir, aceleracin normal
Aceleracin Aceleracin
Tiempo Tiempo
AccSet 30, 100 AccSet 100, 30
Figura 1 La reduccin de la aceleracin da como resultados unos movimientos ms suaves.
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.
Sintaxis
AccSet
[ Acc := ] < expresin (IN) de num > ,
[ Ramp := ] < expresin (IN) de num > ;
Informacin relacionada
Descrito en:
Instrucciones de posicionamiento Resumen sobre RAPID - Movimiento
Puede usarse para determinar qu unidad debe estar activa, por ejemplo cuando se
utilizan unidades de accionamiento comunes.
Ejemplo
ActUnit orbit_a;
Argumentos
ActUnit MechUnit
Ejecucin de programas
Cuando los ejes del robot y los ejes externos se han detenido, se activa la unidad
mecnica especificada. Esto significa que es controlada y monitorizada por el robot.
Limitaciones
La instruccin ActUnit no puede usarse en los casos siguientes:
Sintaxis
ActUnit
[MechUnit := ] < variable (VAR) de mecunit> ;
Informacin relacionada
Descrito en:
Desactivacin de unidades mecnicas Instrucciones - DeactUnit
Unidades mecnicas Tipos de datos - mecunit
Ms ejemplos Instrucciones - DeactUnit
Ejemplos
Add reg1, 3;
Argumentos
Add Name AddValue
Name Tipo de dato: num
El valor a sumar.
Sintaxis
Add
[ Name := ] < variable o variable persistente (INOUT) de num > ,
[ AddValue := ] < expresin (IN) de num > ;
Informacin relacionada
Descrito en:
Incremento de una variable en 1 Instrucciones - Incr
Decremento de una variable en 1 Instrucciones - Decr
Cambio de un dato mediante una expresin Instrucciones - :=
arbitraria, por ejemplo una multiplicacin
:= - Asigna un valor
La instruccin := se utiliza para asignar un nuevo valor a un dato. Este valor puede
ser desde un valor constante hasta una expresin aritmtica, por ejemplo reg1+5*reg3.
Ejemplos
reg1 := 5;
counter := counter + 1;
counter aumenta en 1.
Argumentos
Dato := Valor
Dato Tipo de dato: todos
El valor deseado.
Ejemplos
tool1.tframe.trans.x := tool1.tframe.trans.x + 20;
pallet{5,8} := Abs(value);
Limitaciones
El dato (cuyo valor se desea cambiar) no debe ser ninguno de los siguientes:
- Una constante
- Un tipo de dato sin valor
El dato y el valor deben tener tipos de dato similares (el mismo tipo o el mismo alias).
Sintaxis
(EBNF)
<destino de la asignacin> := <expresin> ;
<destino de la asignacin> ::=
<variable>
| <variable persistente>
| <parmetro>
| <VAR>
Informacin relacionada
Descrito en:
Expresiones Caractersticas bsicas - Expresiones
Tipos de datos sin valor Caractersticas bsicas - Tipos de datos
Asignacin de un valor inicial a un dato Caractersticas bsicas - Datos
Programacin y testing
Asignacin manual de un valor a un dato Programacin y testing
Ejemplo
..
Break;
...
Ejecucin de programas
La instruccin detiene inmediatamente la ejecucin del programa, sin esperar a que los
ejes del robot o los ejes externos alcancen sus puntos de destino programados para el
movimiento que se est realizando. Posteriormente es posible reanudar la ejecucin del
programa a partir de la instruccin siguiente.
Si alguna rutina de evento contiene una instruccin Break, la rutina se ejecuta desde el
principio del siguiente evento.
Sintaxis
Break;
Informacin relacionada
Descrito en:
Paro para acciones de programa Instrucciones - Stop
Paro despus de un error no recuperable Instrucciones - EXIT
Finalizacin de la ejecucin del programa Instrucciones - EXIT
Paro de los movimientos del robot nicamente Instrucciones - StopMove
Ejemplo
reg1 := 2;
CallByVar proc, reg1;
Argumentos
CallByVar Name Number
Name Tipo de dato: string
El valor numrico del nmero del procedimiento. Este valor se convierte en una
cadena y constituye la segunda parte del nombre del procedimiento, por ejemplo
1. El valor debe ser nmero entero positivo.
Ejemplo
Seleccin esttica de llamadas a procedimientos
TEST reg1
CASE 1:
lf_door door_loc;
CASE 2:
rf_door door_loc;
CASE 3:
lr_door door_loc;
CASE 4:
rr_door door_loc;
DEFAULT:
EXIT;
ENDTEST
reg1 := 2;
%proc+NumToStr(reg1,0)% door_loc;
reg1 := 2;
CallByVar proc,reg1;
Limitaciones
Slo puede usarse para llamar a procedimientos que no utilizan parmetros.
Gestin de errores
Si se hace referencia a un procedimiento desconocido, la variable de sistema ERRNO
cambia al valor ERR_REFUNKPRC.
Sintaxis
CallByVar
[Name :=] <expresin (IN) de string>,
[Number :=] <expresin (IN) de num>;
Informacin relacionada
Descrito en:
Llamadas a procedimientos Caractersticas bsicas - Rutinas
Gua del usuario - El lenguaje de
programacin RAPID
Ejemplo
CancelLoad load1;
Argumentos
CancelLoad LoadNo
LoadNo Tipo de dato: loadsession
Ejemplos
VAR loadsession load1;
StartLoad HOME:\File:=PART_B.MOD,load1;
...
IF .................
CancelLoad load1;
StartLoad HOME:\File:=PART_C.MOD,load1;
ENDIF
...
WaitLoad load1;
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.
Sintaxis
CancelLoad
[ LoadNo := ] < variable (VAR) de loadsession > ;
Informacin relacionada
Descrito en:
Carga de mdulos de programa durante Instrucciones - StartLoad
la ejecucin
Conexin de un mdulo cargado a una tarea Instrucciones - WaitLoad
Sesin de carga Tipos de datos - loadsession
Carga de un mdulo de programa Instrucciones - Load
Descarga de un mdulo de programa Instrucciones - UnLoad
Aceptacin de referencias no resueltas Parmetros del sistema - Controller/
Task/BindRef
Ejemplo
CirPathMode \PathFrame;
CirPathMode \ObjectFrame;
CirPathMode \CirPointOri;
Descripcin
PathFrame
Uso del modo estndar \PathFrame con una orientacin fija de la herramienta:
ObjectFrame
Uso del modo modificado \ObjectFrame con una orientacin fija de la herramienta:
CirPointOri
Argumentos
CirPathMode [\PathFrame] | [\ObjectFrame] | [\CirPointOri]
[\PathFrame] Tipo de dato: switch
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).
Limitaciones
Esta instruccin slo afecta a los movimientos circulares.
Cuando se utiliza el modo \CirPointOri, el valor de CirPoint debe encontrarse entre los
puntos A y B que se representan en la figura siguiente, para que el movimiento circular
atraviese la orientacin programada en CirPoint.
A 1 /4 1 /4 B
1 /4 1 /4
CirPoint
Sintaxis
CirPathMode
[\PathFrame] | [\ObjectFrame] | [\CirPointOri] ;
Informacin relacionada
Descrito en:
Interpolacin Principios de movimiento -
Posicionamiento durante la ejecucin
del programa
Datos de parmetros de movimiento Tipos de datos - motsetdata
Instruccin para movimiento circular Instrucciones - MoveC
Ejemplo
Clear reg1;
Argumentos
Clear Name
Name Tipo de dato: num
Sintaxis
Clear
[ Name := ] < variable o variable persistente (INOUT) de num > ;
Informacin relacionada
Descrito en:
Incremento de una variable en 1 Instrucciones - Incr
Decremento de una variable en 1 Instrucciones - Decr
Ejemplo
VAR iodev channel2;
...
Open "com2:", channel2 \Bin;
ClearIOBuff channel2;
Se vaca el bfer de entrada del canal serie al que se hace referencia con
channel2.
Argumentos
ClearIOBuff IODevice
IODevice Tipo de dato: iodev
El nombre (la referencia) del canal serie cuyo bfer de entrada se desea vaciar.
Ejecucin de programas
Se desechan todos los caracteres almacenados en el bfer del canal serie de entrada.
Las instrucciones de lectura siguientes esperarn nuevos datos recibidos a travs del
canal.
Limitaciones
Esta instruccin slo puede usarse con los canales serie.
Gestin de errores
Si se intenta usar la instruccin con un archivo, la variable de sistema ERRNO cambia
a ERR_FILEACC. A continuacin, este error puede ser gestionado en el gestor de
errores.
Sintaxis
ClearIOBuff
[IODevice :=] <variable (VAR) de iodev>;
Informacin relacionada
Descrito en:
Apertura de un canal serie Resumen sobre RAPID - Comunicacin
El robot debe encontrarse en un punto de paro o debe ser parado por una instruccin
StopMove para poder ejecutar la instruccin ClearPath.
Ejemplo
px
PROC minicycle()
..........
proc1;
..........
ERROR (ERR_DROP_LOAD)
RETRY;
ENDPROC
PROC proc1()
..........
proc2;
..........
ENDPROC
PROC proc2()
CONNECT drop_payload WITH gohome;
ISignalDI \Single, di1, 1, drop_payload;
MoveL p1, v500, fine, gripper;
...........
IDelete drop_payload
ENDPROC
TRAP gohome
StopMove \Quick;
ClearPath;
IDelete drop_payload;
MoveL home, v500, fine, gripper;
RAISE ERR_DROP_LOAD;
ERROR
RAISE;
ENDTRAP
Sintaxis
ClearPath ;
Informacin relacionada
Descrito en:
Detencin de los movimientos del robot Instrucciones - StopMove
Recuperacin en caso de error Resumen sobre RAPID -
Recuperacin en caso de error
Caractersticas bsicas - Recuperacin
en caso de error
Esta instruccin puede usarse antes de usar un reloj, para garantizar que est puesto a
cero.
Ejemplo
ClkReset clock1;
Argumentos
ClkReset Clock
Clock Tipo de dato: clock
Ejecucin de programas
Tras poner a cero un reloj, su valor es 0.
Sintaxis
ClkReset
[ Clock := ] < variable (VAR) de clock > ;
Informacin relacionada
Descrito en:
Otras instrucciones de reloj Resumen sobre RAPID - Sistema y tiempo
Ejemplo
ClkStart clock1;
Argumentos
ClkStart Clock
Clock Tipo de dato: clock
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.
Ejemplo
VAR clock clock2;
ClkReset clock2;
ClkStart clock2;
WaitUntil DInput(di1) = 1;
ClkStop clock2;
time:=ClkRead(clock2);
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.
Sintaxis
ClkStart
[ Clock := ] < variable (VAR) de clock > ;
Informacin relacionada
Descrito en:
Otras instrucciones de reloj Resumen sobre RAPID - Sistema y tiempo
Ejemplo
ClkStop clock1;
Argumentos
ClkStop Clock
Clock Tipo de dato: clock
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.
Sintaxis
ClkStop
[ Clock := ] < variable (VAR) de clock > ;
Informacin relacionada
Descrito en:
Otras instrucciones de reloj Resumen sobre RAPID - Sistema y tiempo
Ms ejemplos Instrucciones - ClkStart
comment - Comentario
Esta instruccin slo se utiliza para facilitar la comprensin del programa. No tiene
ningn efecto sobre la ejecucin del programa.
Ejemplo
! Ir a la posicin que se encuentra por encima del pal
MoveL p100, v500, z20, tool1;
Argumentos
! Comentario
Comentario Text string
Cualquier texto.
Ejecucin de programas
Cuando se ejecuta esta instruccin, no ocurre nada.
Sintaxis
(EBNF)
! {<carcter>} <nueva lnea>
Informacin relacionada
Descrito en:
Caracteres permitidos en los comentarios Caractersticas bsicas - Elementos
bsicos
Comentarios dentro de declaraciones de Caractersticas bsicas - datos y
rutinas Elementos bsicos
Ejemplos
IF reg1 > 5 GOTO next;
Argumentos
IF Condicin ...
Condicin Tipo de dato: bool
Sintaxis
(EBNF)
IF <expresin condicional> ( <instruccin> | <SMT>) ;
Informacin relacionada
Descrito en:
Condiciones (expresiones lgicas) Caractersticas bsicas - Expresiones
IF con varias instrucciones Instrucciones - IF
Ejemplos
ConfJ \Off;
MoveJ *, v1000, fine, tool1;
ConfJ \On;
MoveJ *, v1000, fine, tool1;
Argumentos
ConfJ [\On] | [\Off]
\On Tipo de dato: switch
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.
Sintaxis
ConfJ
[ \ On] | [ \ Off] ;
Informacin relacionada
Descrito en:
Gestin de distintas configuraciones Principios de movimiento -
Configuracin del robot
Configuracin del robot durante Instrucciones - ConfL
el movimiento lineal
Ejemplos
ConfL \On;
MoveL *, v1000, fine, tool1;
SingArea \Wrist;
ConfL \On;
MoveL *, v1000, fine, tool1;
ConfL \Off;
MoveL *, v1000, fine, tool1;
Argumentos
ConfL [\On] | [\Off]
\On Tipo de dato: switch
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.
Sintaxis
ConfL
[ \ On] | [ \ Off] ;
Informacin relacionada
Descrito en:
Gestin de distintas configuraciones Principios de movimiento y E/S -
Configuracin del robot
Configuracin del robot durante Instrucciones - ConfJ
el movimiento de ejes
Ejemplo
Close channel2;
Argumentos
Close IODevice
IODevice Tipo de dato: iodev
El nombre (la referencia) del archivo o del canal serie que debe cerrarse.
Ejecucin de programas
El archivo o el canal serie especificado se cierra y es necesario abrirlo de nuevo antes
de leer o escribir en l. Si ya est cerrado, la instruccin no se tiene en cuenta.
Sintaxis
Close
[IODevice :=] <variable (VAR) de iodev>;
Informacin relacionada
Descrito en:
Apertura de un archivo o un canal serie Resumen sobre RAPID -
Comunicacin
Ejemplo
VAR intnum feeder_low;
CONNECT feeder_low WITH feeder_empty;
ISignalDI di1, 1 , feeder_low;
Argumentos
CONNECT Interrupcin WITH Rutina TRAP
Interrupcin Tipo de dato: intnum
Ejecucin de programas
Se asigna a la variable una identidad de interrupcin que puede usarse a partir de ese
momento para pedir o desactivar interrupciones. Esta identidad tambin se conecta a
la rutina TRAP especificada.
Recuerde que antes de poder gestionar un evento, tambin es necesario pedir una
interrupcin, es decir, debe especificarse el evento.
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.
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.
Sintaxis
(EBNF)
CONNECT <destino de la conexin> WITH <rutina TRAP>;
Informacin relacionada
Descrito en:
Resumen de interrupciones Resumen sobre RAPID -
Interrupciones
Ms informacin sobre la gestin Caractersticas bsicas -
de interrupciones Interrupciones
Puede usarse para determinar qu unidad debe estar activa, por ejemplo cuando se
utilizan unidades de accionamiento comunes.
Ejemplos
DeactUnit orbit_a;
Argumentos
DeactUnit MechUnit
Ejecucin de programas
Cuando los ejes del robot y los ejes externos se han detenido, se desactiva la unidad
mecnica especificada. Esto significa que no se controlar ni monitorizar hasta que se
reactive.
Limitaciones
La instruccin DeactUnit no puede usarse en los casos siguientes:
Sintaxis
DeactUnit
[MechUnit := ] < variable (VAR) de mecunit> ;
Informacin relacionada
Descrito en:
Activacin de unidades mecnicas Instrucciones - ActUnit
Unidades mecnicas Tipos de datos - mecunit
Ejemplo
Decr reg1;
Argumentos
Decr Name
Name Tipo de dato: num
Ejemplo
TPReadNum no_of_parts, "Cuntas piezas hay que producir? ";
WHILE no_of_parts>0 DO
produce_part;
Decr no_of_parts;
ENDWHILE
Sintaxis
Decr
[ Name := ] < variable o variable persistente (INOUT) de num > ;
Informacin relacionada
Descrito en:
Incremento de una variable en 1 Instrucciones - Incr
Sustraccin de cualquier valor a una variable Instrucciones - Add
Cambio de un dato mediante una expresin Instrucciones - :=
arbitraria, por ejemplo una multiplicacin
Ejemplos
SoftAct \MechUnit:=IRB, 2, 100;
WaitTime 2;
DitherAct \MechUnit:=IRB, 2;
WaitTime 1;
DitherDeact;
SoftDeact;
DitherAct \MechUnit:=IRB, 2;
SoftAct \MechUnit:=IRB, 2, 100;
WaitTime 1;
MoveL p1, v50, z20, tool1;
SoftDeact;
DitherDeact;
Argumentos
DitherAct [ \MechUnit ] Axis [ \Level ]
[ \MechUnit ] (unidad mecnica) Tipo de dato: mecunit
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.
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.
Sintaxis
DitherAct
[ \ MechUnit := < variable (VAR) de mecunit > ]
[Axis := ] < expresin (IN) de num >
[ \ Level := < expresin (IN) de num > ] ;
Informacin relacionada
Descrito en:
Activacin del servo suave Instrucciones - SoftAct
Comportamiento con el servo suave activado Principios de movimiento y E/S -
Posicionamiento durante la ejecucin
del programa
Desactivacin de la oscilacin Instrucciones - DitherDeact
Ejemplos
DitherDeact;
Ejecucin de programas
DitherDeact puede usarse en cualquier momento. Si el servo suave est activado, la
oscilacin se detiene inmediatamente en todos los ejes. Si el servo suave no est
activado, la oscilacin no estar activada cuando se ejecute SoftAct posteriormente.
Sintaxis
DitherDeact ;
Informacin relacionada
Descrito en:
Ejemplos
EOffsOff;
Se define un offset como la diferencia entre la posicin de cada eje en p10 y p11.
El desplazamiento afecta al movimiento hacia p20 y p30, pero no hacia p40.
Ejecucin de programas
Se desactivan los offsets activos para los ejes externos.
Sintaxis
EOffsOff ;
Informacin relacionada
Descrito en:
Definicin de offsets a partir de dos posiciones Instrucciones - EOffsOn
Definicin de offsets a partir de valores Instrucciones - EOffsSet
Desactivacin del desplazamiento de movimiento Instrucciones - PDispOff
del robot
Ejemplos
MoveL p10, v500, z10, tool1;
EOffsOn \ExeP:=p10, p20;
Se activa un offset para los ejes externos. El offset se calcula para cada eje, a
partir de la diferencia entre las posiciones p10 y p20.
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
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 un offset para cada eje individual en un momento dado. Por otro
lado, es posible programar varios EOffsOn uno tras otro y, si se hace, se suman los
distintos offsets.
Ejemplo
SearchL sen1, psearch, p10, v100, tool1;
PDispOn \ExeP:=psearch, *, tool1;
EOffsOn \ExeP:=psearch, *;
Se realiza una bsqueda en la cual la posicin buscada tanto de los ejes del robot
como de los ejes externos se almacena en la posicin psearch. Cualquier
movimiento realizado a continuacin parte de esta posicin utilizando un
desplazamiento de programa tanto de los ejes del robot como de los ejes externos.
El desplazamiento se calcula a partir de la diferencia existente entre la posicin
buscada y el punto programado (*) almacenado en la instruccin.
Sintaxis
EOffsOn
[ \ ExeP := < expresin (IN) de robtarget > ,]
[ ProgPoint := ] < expresin (IN) de robtarget > ;
Informacin relacionada
Descrito en:
Desactivacin de offsets para los ejes externos Instrucciones - EOffsOff
Definicin de offsets a partir de valores Instrucciones - EOffsSet
Desplazamiento de los movimientos del robot Instrucciones - PDispOn
Sistemas de coordenadas Principios de movimiento -
Sistemas de coordenadas
Ejemplo
VAR extjoint eax_a_p100 := [100, 0, 0, 0, 0, 0];
.
EOffsSet eax_a_p100;
Activacin de un offset eax_a_p100 para los ejes externos, lo que implica que
(siempre y cuando el eje externo a sea lineal):
100
Sistema de coordenadas normal
0 +X
Sistema de coordenadas ExtOffs
0 +X
Figura 2 Desplazamiento de un eje externo.
Argumentos
EOffsSet EAxOffs
El offset de los ejes externos se define como un dato del tipo extjoint,
expresado en:
Ejecucin de programas
El offset de los ejes externos se activa cuando se activa la instruccin EOffsSet y
permanece activo hasta que se activa otro offset (la instruccin EOffsSet o EOffsOn) o
hasta que se desactiva el offset de los ejes externos (EOffsOff).
Slo es posible activar un offset para los ejes externos en un momento dado. No es
posible sumar un offset a otro mediante EOffsSet.
Sintaxis
EOffsSet
[ EAxOffs := ] < expresin (IN) de extjoint> ;
Informacin relacionada
Descrito en:
Desactivacin de offsets para los ejes externos Instrucciones - EOffsOff
Definicin de offsets a partir de dos posiciones Instrucciones - EOffsSet
Desplazamiento de los movimientos del robot Instrucciones - PDispOn
Definicin de datos del tipo extjoint Tipos de datos - extjoint
Sistemas de coordenadas Principios de movimiento -
Sistemas de coordenadas
Ejemplo
ErrWrite Error de PLC, Error no recuperable en el PLC \RL2:=Llame al servicio
tcnico.;
Stop;
Argumentos
ErrWrite [ \W ] Header Reason [ \RL2] [ \RL3] [ \RL4]
Genera una advertencia que slo se almacena en el registro de mensajes del robot (no
se muestra directamente en la pantalla de la unidad de programacin).
Ejecucin de programas
Un mensaje de error (mximo 5 lneas) se muestra en la unidad de programacin y se
escribe en el registro de mensajes del robot.
Limitaciones
La longitud total de la cadena (ttulo+motivo+\RL2+\RL3+\RL4) est limitada a 145
caracteres.
Sintaxis
ErrWrite
[ \ W , ]
[ Header := ] < expresin (IN) de string> ,
[ Reason := ] < motivo (IN) de string>
[ \ RL2 := < expresin (IN) de string> ]
[ \ RL3 := < expresin (IN) de string> ]
[ \ RL4 := < expresin (IN) de string> ]
Informacin relacionada
Descrito en:
Visualizacin de un mensaje slo en Instrucciones - TPWrite
la unidad de programacin
Registros de mensajes Servicio
Ejemplo
ErrWrite "Error no recuperable", "Estado no vlido";
EXIT;
Sintaxis
EXIT ;
Informacin relacionada
Descrito en:
Detencin temporal de la ejecucin del programa Instrucciones - Stop
Ejemplo
VAR num cyclecount:=0;
VAR intnum error_intno;
PROC main()
IF cyclecount = 0 THEN
CONNECT error_intno WITH error_trap;
ISignalDI di_error,1,error_intno;
ENDIF
cyclecount:=cyclecount+1;
! Empezar a hacer algo inteligente
....
ENDPROC
TRAP error_trap
TPWrite ERROR. Se empieza en el elemento siguiente;
ExitCycle;
ENDTRAP
Ejecucin de programas
La ejecucin de ExitCycle en la tarea de programa MAIN da lugar a lo siguiente en la
tarea MAIN:
Los dems elementos modales del programa y del sistema no se ven afectados por la
instruccin ExitCycle. Entre ellos se encuentran los siguientes:
Sintaxis
ExitCycle;
Informacin relacionada
Descrito en:
Paro despus de un error no recuperable Instrucciones - EXIT
Finalizacin de la ejecucin del programa Instrucciones - EXIT
Paro para acciones de programa Instrucciones - Stop
Finalizacin de la ejecucin de una rutina Instrucciones - RETURN
Ejemplo
FOR i FROM 1 TO 10 DO
routine1;
ENDFOR
Argumentos
FOR Contador del bucle FROM Valor inicial TO Valor final
[STEP valor de paso] DO ... ENDFOR
Contador del bucle Identificador
El nombre del dato que contendr el valor del contador del bucle actual.
Este dato se declara automticamente.
Si el nombre del contador del bucle es el mismo que cualquier otro dato que
exista dentro del mbito actual, el dato existente se oculta dentro del bucle FOR
y no se ve afectado de ningn modo.
Ejemplo
FOR i FROM 10 TO 2 STEP -1 DO
a{i} := a{i-1};
ENDFOR
Se ajustan hacia arriba los valores de una matriz a{10}:=a{9}, a{9}:=a{8}, etc.
Ejecucin de programas
1. Se evalan las expresiones usadas para los valores inicial, final y de paso.
2. Se asigna al contador del bucle el valor inicial.
3. El valor del contador del bucle se comprueba para comprobar si se encuentra entre
el valor inicial y el final o si es igual al valor inicial o final. Si el valor de un contador
de bucle queda fuera de este rango, el bucle FOR se detiene y la ejecucin del
programa contina en la instruccin que aparece a continuacin de ENDFOR.
4. Se ejecutan las instrucciones incluidas dentro del bucle FOR.
5. Se incrementa (o reduce) el contador del bucle acorde con el valor de paso.
6. El bucle FOR se repite, empezando por el punto 3.
Limitaciones
El contador del bucle (del tipo de dato num) slo est disponible desde dentro del bucle
FOR y por tanto supone la ocultacin de otros datos y rutinas que tengan el mismo
nombre. Slo pueden leerlo (pero no actualizarlo) las instrucciones del bucle FOR.
No es posible utilizar valores decimales para los valores de inicio, final o paso en
combinacin con condiciones de finalizacin exactas para el bucle FOR (sin una
definicin de si se est utilizando o no la ltima pasada del bucle).
Comentarios
Si el nmero de repeticiones de las operaciones depende de que una expresin
determinada d como resultado el valor TRUE, se deben utilizar instrucciones WHILE
en lugar de FOR.
Sintaxis
(EBNF)
FOR <variable de bucle> FROM <expresin> TO <expresin>
[ STEP <expresin> ] DO
<lista de instrucciones>
ENDFOR
<variable de bucle> ::= <identificador>
Informacin relacionada
Descrito en:
Expresiones Caractersticas bsicas - Expresiones
Repeticin siempre y cuando se cumpla Instrucciones - WHILE
una condicin
Identificadores Caractersticas bsicas - Elementos
bsicos
Ejemplo
PERS tooldata curtoolvalue := [TRUE, [[0, 0, 0], [1, 0, 0, 0]],
[0, [0, 0, 0], [1, 0, 0, 0], 0, 0, 0]];
VAR string curtoolname;
GetSysData curtoolvalue;
Argumentos
GetSysData DestObject [\ ObjectName ]
DestObject Tipo de dato: anytype
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.
Sintaxis
GetSysData
[ DestObject:=] < variable persistente (PERS) de anytype>
[\ObjectName:= < expresin (INOUT) de string> ] ;
Informacin relacionada
Descrito en:
Definicin de herramientas Tipos de datos - tooldata
Definicin de objetos de trabajo Tipos de datos - wobjdata
Establecimiento de datos del sistema Instrucciones - SetSysData
Debe utilizarse en las rutinas TRAP generadas por la instruccin IError, antes del uso
de la instruccin ReadErrData.
Ejemplo
VAR trapdata err_data;
GetTrapData err_data;
Argumentos
GetTrapData TrapEvent
TrapEvent Tipo de dato: trapdata
Limitacin
Esta instruccin slo puede usarse desde dentro de una rutina TRAP.
Ejemplo
VAR errdomain err_domain;
VAR num err_number;
VAR errtype err_type;
VAR trapdata err_data;
.
TRAP trap_err
GetTrapData err_data;
ReadErrData err_data, err_domain, err_number, err_type;
ENDTRAP
Cuando se detecta un error con la rutina TRAP trap_err, el dominio, el nmero
y el tipo de error se almacenan en las variables adecuadas sin valor, del tipo
trapdata.
Sintaxis
GetTrapData
[TrapEvent :=] <variable (VAR) de trapdata>;
Informacin relacionada
Descrito en:
Resumen de interrupciones Resumen sobre RAPID -
Interrupciones
Ms informacin sobre la gestin Caractersticas bsicas -
de interrupciones Interrupciones
Datos de interrupciones para la rutina Tipos de datos - trapdata
TRAP actual
Peticin de una interrupcin en caso de error Instrucciones - IError
Obtencin de datos de interrupcin para Instrucciones - GetTrapData
la rutina TRAP actual
Obtencin de informacin sobre un error Instrucciones - ReadErrData
Ejemplos
GOTO next;
.
next:
reg1 := 1;
next:
.
reg1 := reg1 + 1;
IF reg1<=5 GOTO next;
Argumentos
GOTO Label
Label Identificador
Limitaciones
Slo es posible transferir la ejecucin del programa a una etiqueta que se encuentra
dentro de la misma rutina.
Slo es posible transferir la ejecucin del programa a una etiqueta que se encuentre
dentro de una instruccin IF o TEST si la instruccin GOTO se encuentra tambin
dentro de la misma bifurcacin de la instruccin.
Slo es posible transferir la ejecucin del programa a una etiqueta que se encuentre
dentro de una instruccin FOR o WHILE si la instruccin GOTO se encuentra tambin
dentro de la instruccin.
Sintaxis
(EBNF)
GOTO <identificador>;
Informacin relacionada
Descrito en:
Etiqueta Instrucciones - etiqueta
Otras instrucciones que modifican el flujo Resumen sobre RAPID - Control del
del programa flujo del programa
Descripcin
Es importante definir siempre la carga real de la herramienta y, si se usa, tambin la
carga til del robot. Una definicin incorrecta de los datos de carga puede dar lugar a
la sobrecarga de la estructura mecnica del robot.
Cuando se especifican datos de carga incorrectos, este hecho suele tener las
consecuencias siguientes:
Si el valor de los datos de carga especificados es menor que el valor de la carga real:
-> Peor exactitud de la trayectoria, con riesgo de sobrepasar posiciones
-> Riesgo de sobrecarga de la estructura mecnica
Ejemplos
GripLoad piece1;
GripLoad load0;
Argumentos
GripLoad Load
Load Tipo de dato: loaddata
Ejecucin de programas
La carga especificada afecta al rendimiento del robot.
Sintaxis
GripLoad
[ Load := ] < variable persistente (PERS) de loaddata > ;
Informacin relacionada
Descrito en:
Definicin de datos de carga Tipos de datos - loaddata
Definicin de cargas de herramienta Tipos de datos - tooldata
Ejemplo
IDelete 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.
Sintaxis
IDelete
[ Interrupt := ] < variable (VAR) de intnum > ;
Informacin relacionada
Descrito en:
Resumen de interrupciones Resumen sobre RAPID -
Interrupciones
Desactivacin temporal de una interrupcin Instrucciones - ISleep
Desactivacin temporal de todas Instrucciones - IDisable
las interrupciones
Ejemplo
IDisable;
FOR i FROM 1 TO 100 DO
character[i]:=ReadBin(sensor);
ENDFOR
IEnable;
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.
Sintaxis
IDisable;
Informacin relacionada
Descrito en:
Resumen de interrupciones Resumen sobre RAPID - Interrupciones
Activacin de interrupciones Instrucciones - IEnable
Ejemplo
IDisable;
FOR i FROM 1 TO 100 DO
character[i]:=ReadBin(sensor);
ENDFOR
IEnable;
Ejecucin de programas
Las interrupciones que se produzcan durante el periodo en el que est vigente la
instruccin IDisable se almacenan en una cola. Cuando vuelven a permitirse las
interrupciones (con IEnable), se empiezan a generar inmediatamente las
interrupciones de la cola, que se ejecutan en un orden FIFO. A partir de ese momento,
la ejecucin del programa contina del modo normal y las interrupciones que se
produzcan a continuacin se procesan tan pronto como se producen.
Sintaxis
IEnable;
Informacin relacionada
Descrito en:
Resumen de interrupciones Resumen sobre RAPID - Interrupciones
Desactivacin de interrupciones Instrucciones - IDisable
Ejemplo
VAR intnum err_int;
...
CONNECT err_int WITH err_trap;
IError COMMON_ERR, TYPE_ALL, err_int;
Argumentos
IError ErrorDomain [\ErrorId] ErrorType Interrupt
ErrorDomain Tipo de dato: errdomain
Ejecucin de programas
La llamada a la rutina TRAP correspondiente se realiza automticamente cuando se
produce un error, en el dominio especificado, del tipo especificado y opcionalmente
con el nmero de error especificado. Una vez ejecutada la rutina, la ejecucin del
programa contina a partir del punto en el que se produjo la interrupcin.
Ejemplo
VAR intnum err_interrupt;
VAR trapdata err_data;
VAR errdomain err_domain;
VAR num err_number;
VAR errtype err_type;
...
CONNECT err_interrupt WITH trap_err;
IError COMMON_ERR, TYPE_ERR, err_interupt;
...
IDelete err_interrupt;
...
TRAP trap_err
GetTrapData err_data;
ReadErrData err_data, err_domain, err_number, err_type;
! Seleccionar el dominio n 1 ... 13
SetGO go_err1, err_domain;
! Seleccionar el error n 1 ...9999
SetGO go_err2, err_number;
ENDTRAP
Limitacin
No es posible solicitar interrupciones para los errores internos.
PROC main ( )
CONNECT err_interrupt WITH err_trap;
IError COMMON_ERR, TYPE_ERR, err_interupt;
WHILE TRUE DO
:
:
ENDWHILE
ENDPROC
PROC main ( )
VAR intnum err_interrupt;
CONNECT err_interrupt WITH err_trap;
IError COMMON_ERR, TYPE_ERR, err_interupt;
:
:
IDelete err_interrupt;
ENDPROC
Sintaxis
IError
[ErrorDomain :=] <expresin (IN) de errdomain>
[\ErrorId:= <expresin (IN) de num>] ,
[ErrorType :=] <expresin (IN) de errtype> ,
[ Interrupt := ] < variable (VAR) de intnum > ;
Informacin relacionada
Descrito en:
Resumen de interrupciones Resumen sobre RAPID -
Interrupciones
Ms informacin sobre la gestin Caractersticas bsicas -
de interrupciones Interrupciones
Dominios de error, constantes predefinidas Tipos de datos - errdomain
Tipos de error, constantes predefinidas Tipos de datos - errtype
Obtencin de datos de interrupcin para Instrucciones - GetTrapData
la rutina TRAP actual
Obtencin de informacin sobre un error Instrucciones - ReadErrData
Ejemplos
IF reg1 > 5 THEN
Set do1;
Set do2;
ENDIF
Argumentos
IF Condicin THEN ...
{ELSEIF Condicin THEN ...}
[ELSE ...]
ENDIF
Condicin Tipo de dato: bool
La condicin que debe cumplirse para que se ejecuten las instrucciones que se
encuentran entre THEN y ELSE/ELSEIF.
Ejemplo
IF counter > 100 THEN
counter := 100;
ELSEIF counter < 0 THEN
counter := 0;
ELSE
counter := counter + 1;
ENDIF
Ejecucin de programas
Las condiciones se comprueban una tras otra hasta que una de ellas se cumple. La
ejecucin del programa contina con las instrucciones asociadas con la condicin. Si
no se cumple ninguna de las condiciones, la ejecucin del programa contina con las
instrucciones que aparecen a continuacin de ELSE. Si se cumple ms de una
condicin, slo se ejecutan las instrucciones asociadas con la primera de las
condiciones.
Sintaxis
(EBNF)
IF <expresin condicional> THEN
<lista de instrucciones>
{ELSEIF <expresin condicional> THEN <lista de instrucciones> | <EIF>}
[ELSE
<lista de instrucciones>]
ENDIF
Informacin relacionada
Descrito en:
Condiciones (expresiones lgicas) Caractersticas bsicas - Expresiones
Ejemplo
Incr reg1;
Argumentos
Incr Name
Name Tipo de dato: num
Ejemplo
WHILE stop_production=0 DO
produce_part;
Incr no_of_parts;
TPWrite "Nmero de piezas producidas = "\Num:=no_of_parts;
ENDWHILE
Sintaxis
Incr
[ Name := ] < variable o variable persistente (INOUT) de num > ;
Informacin relacionada
Descrito en:
Decremento de una variable en 1 Instrucciones - Decr
Suma de cualquier valor a una variable Instrucciones - Add
Cambio de un dato mediante una expresin Instrucciones - :=
arbitraria, por ejemplo una multiplicacin
Ejemplo
InvertDO do15;
Argumentos
InvertDO Signal
Signal Tipo de dato: signaldo
Ejecucin de programas
Se invierte el valor actual de la seal (consulte la Figura 3).
:
1
Nivel de la seal
0
Ejecucin de la instruccin InvertDO
Ejecucin de la instruccin InvertDO
1
Nivel de la seal
0
Figura 3 Inversin de una seal digital de salida.
Sintaxis
InvertDO
[ Signal := ] < variable (VAR) de signaldo > ;
Informacin relacionada
Descrito en:
Instrucciones de entrada y salida Resumen sobre RAPID - Seales de
entrada y salida
Funcionalidad general de las entradas Principios de movimiento y E/S -
y salidas Principios de E/S
Configuracin de E/S Parmetros del sistema
Las unidades de E/S estn activadas de forma automtica despus del inicio, si estn
definidas en los parmetros del sistema. En las ocasiones en que sea necesario, es
posible desactivar o activar las unidades de E/S durante la ejecucin del programa.
Ejemplos
CONST string cell1:=cell1;
IODisable cell1, 5;
Argumentos
IODisable UnitName MaxTime
UnitName Tipo de dato: string
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.
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:
Ejemplo
PROC go_home()
VAR num recover_flag :=0;
...
! Iniciar la desactivacin de la unidad de E/S cell1
recover_flag := 1;
IODisable cell1, 0;
! Desplazarse hacia la posicin inicial home
MoveJ home, v1000,fine,tool1;
! Esperar hasta que la desactivacin de la unidad de E/S cell1 se haya completado
recover_flag := 2;
IODisable cell1, 5;
...
ERROR
IF ERRNO = ERR_IODISABLE THEN
IF recover_flag = 1 THEN
TRYNEXT;
ELSEIF recover_flag = 2 THEN
RETRY;
ENDIF
ELSEIF ERRNO = ERR_EXCRTYMAX THEN
ErrWrite Error de IODisable, Imposible desactivar la unidad de E/S
cell1;
Stop;
ENDIF
ENDPROC
Con el fin de ahorrar tiempo de ciclo, se desactiva la unidad de E/S cell1 durante
el movimiento del robot hacia la posicin home. Cuando el robot se encuentra en
la posicin home, se realiza una comprobacin para determinar si la unidad de
E/S cell1 se ha desactivado completamente. Despus del nmero mximo de
reintentos (5 con un tiempo de espera de 5 segundos), la ejecucin del robot se
detiene con un mensaje de error.
El mismo principio puede usarse con IOEnable (de esta forma, se ahorra tiempo
de ciclo en comparacin con IODisable).
Sintaxis
IODisable
[ UnitName := ] < expresin (IN) de string > ,
[ MaxTime := ] < expresin (IN) de num > ;
Informacin relacionada
Descrito en:
Activacin de una unidad de E/S Instrucciones - IOEnable
Instrucciones de entrada y salida Resumen sobre RAPID - Seales de
entrada y salida
Funcionalidad general de las entradas Principios de movimiento y E/S -
y salidas Principios de E/S
Configuracin de E/S Gua del usuario - Parmetros del
sistema
Ejemplos
VAR string name;
...
IODNGetAttr "dsqc328", "6,20 01 24 01 30 07,17,20", name \Timeout:=3;
Argumentos
IODNGetAttr UnitName Path GetValue [ \Timeout ]
UnitName Tipo de dato: string
Ejecucin de programas
El programa sigue esperando hasta que la unidad de E/S responda.
Si se agota el tiempo lmite Timeout antes de que la unidad de E/S responda, se llama
al gestor de errores, si lo hay, con el cdigo de error ERR_IODN_TIMEOUT.
Si no hay ningn gestor de errores, la ejecucin se detiene.
Gestin de errores
Pueden generarse los errores recuperables siguientes. Los errores pueden ser
gestionados en un gestor de errores. La variable de sistema ERRNO cambia a:
Sintaxis
IODNGetAttr
[ UnitName := ] < expresin (IN) de string > ,
[ Path := ] < expresin (IN) de string > ,
[ GetValue := ] < variable (VAR) de string >
[ \ Timeout := < expresin (IN) de num > ] ;
Informacin relacionada
Descrito en:
Open DeviceNet Vendor Association DeviceNet Specification rev. 2.0
(Especificacin de DeviceNet versin 2.0)
Configuracin de E/S Gua del usuario - Parmetros del
sistema
Configuracin de E/S Gua del usuario de IO Plus
Configuracin de E/S Manual del programador de RAPID -
Parmetros del sistema
Funcionalidad general de las entradas Principios de movimiento y E/S -
y salidas Principios de E/S
Instrucciones de entrada y salida Resumen sobre RAPID - Seales de
entrada y salida
Establecimiento de atributos Instrucciones - IODNSetAttr
de las unidades de E/S
Ejemplos
IODNSetAttr "dsqc328", "6,20 1D 24 01 30 65,8,1", 5 \Timeout:=3;
Argumentos
IODNSetAttr UnitName Path SetValue [ \Timeout ]
UnitName Tipo de dato: string
Ejecucin de programas
El programa sigue esperando hasta que la unidad de E/S responda.
Si se agota el tiempo lmite Timeout antes de que la unidad de E/S responda, se llama
al gestor de errores, si lo hay, con el cdigo de error ERR_IODN_TIMEOUT. Si no hay
ningn gestor de errores, se detiene la ejecucin.
Gestin de errores
Pueden generarse los errores recuperables siguientes. Los errores pueden ser
gestionados en un gestor de errores. La variable de sistema ERRNO cambia a:
Sintaxis
IODNSetAttr
[ UnitName := ] < expresin (IN) de string > ,
[ Path := ] < expresin (IN) de string > ,
[ SetValue:= ] < expresin (IN) de string >
[ \ Timeout := < expresin (IN) de num > ] ;
Informacin relacionada
Descrito en:
Open DeviceNet Vendor Association DeviceNet Specification rev. 2.0
(Especificacin de DeviceNet versin 2.0)
Configuracin de E/S Gua del usuario - Parmetros del sistema
Configuracin de E/S Gua del usuario de IO Plus
Configuracin de E/S Manual del programador de RAPID -
Parmetros del sistema
Funcionalidad general de las entradas Principios de movimiento y E/S -
y salidas Principios de E/S
Instrucciones de entrada y salida Resumen sobre RAPID - Seales
de entrada y salida
Obtencin de atributos de las unidades Instrucciones - IODNGetAttr
de E/S
Las unidades de E/S estn activadas de forma automtica despus del inicio, si estn
definidas en los parmetros del sistema. En las ocasiones en que sea necesario, es
posible desactivar o activar las unidades de E/S durante la ejecucin del programa.
Ejemplos
CONST string cell1:=cell1;
IOEnable cell1, 5;
Argumentos
IOEnable UnitName MaxTime
UnitName Tipo de dato: string
El nombre de la unidad de E/S que se desea activar (con el mismo nombre con
el que se configur).
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.
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:
Ejemplo
IOEnable tambin puede usarse para comprobar si una unidad de E/S est desconectada
por algn motivo.
Sintaxis
IOEnable
[ UnitName := ] < expresin (IN) de string > ,
[ MaxTime := ] < expresin (IN) de num > ;
Informacin relacionada
Descrito en:
Ms ejemplos Instrucciones - IODisable
Desactivacin de una unidad de E/S Instrucciones - IODisable
Instrucciones de entrada y salida Resumen sobre RAPID - Seales de
entrada y salida
Funcionalidad general de las entradas Principios de movimiento y E/S -
y salidas Principios de E/S
Configuracin de E/S Gua del usuario - Parmetros del
sistema
Ejemplo
VAR intnum sig1int;
CONNECT sig1int WITH iroutine1;
ISignalAI \Single, ai1, AIO_BETWEEN, 1.5, 0.5, 0, sig1int;
Solicita una interrupcin que debe producirse la primera vez que el valor lgico
de la seal analgica de entrada ai1 se encuentre entre 0,5 y 1,5. En este caso, se
realiza una llamada a la rutina TRAP iroutine1.
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.
Se solicita una interrupcin que debe producirse cada vez que el valor lgico de
la seal analgica de entrada ai1 sea inferior a 0,5 o superior a 1,5 y cuando la
diferencia absoluta de la seal respecto del valor de referencia almacenado sea
superior a 0,1.
Argumentos
ISignalAI [\Single] Signal Condition HighValue LowValue
DeltaValue [\DPos] | [\DNeg] Interrupt
[\Single] Tipo de dato: switch
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.
Especifica que slo las diferencias positivas entre seales lgicas suponen la
generacin de nuevas interrupciones.
Especifica que slo las diferencias negativas entre seales lgicas suponen la
generacin de nuevas interrupciones.
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.
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.
Tambin se genera una interrupcin en el momento del muestreo que se hace para
actualizar el valor de referencia, siempre y cuando la diferencia entre las seales
cumpla el argumento especificado (en cualquier sentido \DPos o \DNeg).
RefValue := CurrentValue
Suscripcin de la interrupcin
Falso
CurrentValue comparado con Condition
HighValue y LowValue
Verdadero
Falso
DeltaValue = 0
Verdadero
Continuar
Condicin para la generacin de una interrupcin con cada muestreo a partir del
momento de la suscripcin
Nuevo muestreo
Falso
CurrentValue comparado con Condition
HighValue y LowValue
Verdadero
Verdadero
No se especifica DPos ni DNeg y
ABS(CurrentValue - RefValue) > DeltaValue
Falso
Verdadero
Se especifica DPos y
(CurrentValue - RefValue) > DeltaValue
Falso
Verdadero
Se especifica DNeg y
(RefValue - CurrentValue) > DeltaValue
Falso
RefValue := CurrentValue
Falso
Verdadero
RefValue := CurrentValue
Continuar
HighValue
Valor de la seal
LowValue
0 1 2 3 4 5 6 7 8 9 10 11 12 Muestreos
Tiempo de solicitud de suscripcin de la interrupcin
Almacenamiento del valor de referencia
HighValue
Valor de la seal
LowValue
0 1 2 3 4 5 6 7 8 9 10 11 12 Muestreos
Tiempo de solicitud de suscripcin de la interrupcin
Almacenamiento del valor de referencia
HighValue
Valor de la seal
LowValue
0 1 2 3 4 5 6 7 8 9 10 11 12 Muestreos
Tiempo de solicitud de suscripcin de la interrupcin
Almacenamiento del valor de referencia
HighValue
Valor de la seal
LowValue
0 1 2 3 4 5 6 7 8 9 10 11 12 Muestreos
Tiempo de solicitud de suscripcin de la interrupcin
Almacenamiento del valor de referencia
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.
Limitaciones
Los argumentos HighValue y LowValue deben estar dentro del rango: valor lgico
mximo y valor lgico mnimo definidos para la seal.
Sintaxis
ISignalAI
[ \Single,]
[ Signal:= ]<variable (VAR) de signalai>,
[ Condition:= ]<expresin (IN) de aiotrigg>,
[ HighValue:= ]<expresin (IN) de num>,
[ LowValue:= ]<expresin (IN) de num>,
[ DeltaValue:= ]<expresin (IN) de num>
[ \DPos] | [ \DNeg] ,
[ Interrupt := ] < variable (VAR) de intnum > ;
Informacin relacionada
Descrito en:
Resumen de interrupciones Resumen sobre RAPID -
Interrupciones
Definicin de constantes Tipos de datos - aiotrigg
Interrupcin a partir de una seal analgica de salida Instrucciones - ISignalAO
Interrupcin a partir de una seal digital de entrada Instrucciones - ISignalDI
Interrupcin a partir de una seal de salida digital Instrucciones - ISignalDO
Ms informacin sobre la gestin de interrupciones Caractersticas bsicas -
Interrupciones
Ms ejemplos Tipos de datos - intnum
Parmetros de sistema relacionados (filtro) Parmetros del sistema -
Seales de E/S
Ejemplo
VAR intnum sig1int;
CONNECT sig1int WITH iroutine1;
ISignalAO \Single, ao1, AIO_BETWEEN, 1.5, 0.5, 0, sig1int;
Solicita una interrupcin que debe producirse la primera vez que el valor lgico
de la seal analgica de salida ao1 se encuentre entre 0,5 y 1,5. En este caso, se
realiza una llamada a la rutina TRAP iroutine1.
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.
Se solicita una interrupcin que debe producirse cada vez que el valor lgico de
la seal de salida analgica ao1 sea inferior a 0,5 o superior a 1,5 y cuando la
diferencia absoluta de la seal respecto del valor de referencia almacenado sea
superior a 0,1.
Argumentos
ISignalAO [\Single] Signal Condition HighValue LowValue
DeltaValue [\DPos] | [\DNeg] Interrupt
[\Single] Tipo de dato: switch
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.
Especifica que slo las diferencias positivas entre seales lgicas suponen la
generacin de nuevas interrupciones.
Especifica que slo las diferencias negativas entre seales lgicas suponen la
generacin de nuevas interrupciones.
Ejecucin de programas
Consulte la instruccin ISignalAI para obtener ms informacin sobre:
- Ejecucin de programas
- Condiciones para la generacin de interrupciones
- Ms ejemplos
Los principios en los que se basa ISignalAO son los mismos que se aplican a ISignalAI.
Limitaciones
Los argumentos HighValue y LowValue deben estar dentro del rango: valor lgico
mximo y valor lgico mnimo definidos para la seal.
Sintaxis
ISignalAO
[ \Single,]
[ Signal:= ]<variable (VAR) de signalao>,
[ Condition:= ]<expresin (IN) de aiotrigg>,
[ HighValue:= ]<expresin (IN) de num>,
[ LowValue:= ]<expresin (IN) de num>,
[ DeltaValue:= ]<expresin (IN) de num>
[ \DPos] | [ \DNeg] ,
[ Interrupt := ] < variable (VAR) de intnum > ;
Informacin relacionada
Descrito en:
Resumen de interrupciones Resumen sobre RAPID -
Interrupciones
Definicin de constantes Tipos de datos - aiotrigg
Interrupcin a partir de una seal analgica de entrada Instrucciones - ISignalAI
Interrupcin a partir de una seal digital de entrada Instrucciones - ISignalDI
Interrupcin a partir de una seal digital de salida Instrucciones - ISignalDO
Ms informacin sobre la gestin de interrupciones Caractersticas bsicas -
Interrupciones
Ms ejemplos Tipos de datos - intnum
Parmetros de sistema relacionados (filtro) Parmetros del sistema -
Seales de E/S
Ejemplos
VAR intnum sig1int;
CONNECT sig1int WITH iroutine1;
ISignalDI di1,1,sig1int;
Solicita una interrupcin que debe producirse cada vez que la seal digital de
entrada di1 cambie a 1. En este caso, se realiza una llamada a la rutina TRAP
iroutine1.
ISignalDI di1,0,sig1int;
Solicita una interrupcin que debe producirse cada vez que la seal digital de
entrada di1 cambie a 0.
Solicita una interrupcin que debe producirse slo la primera vez que la seal
digital de entrada di1 cambie a 1.
Argumentos
ISignalDI [ \Single ] Signal TriggValue Interrupt
[\Single] Tipo de dato: switch
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.
1
Nivel de la seal
0
Se produce una interrupcin
Se solicita una interrupcin
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
PROC main ( )
VAR intnum sig1int;
CONNECT sig1int WITH iroutine1;
ISignalDI di1, 1, sig1int;
:
:
IDelete sig1int;
ENDPROC
Sintaxis
ISignalDI
[ \Single,]
[ Signal := ] < variable (VAR) de signaldi > ,
[ TriggValue := ] < expresin (IN) de dionum >,
[ Interrupt := ] < variable (VAR) de intnum > ;
Informacin relacionada
Descrito en:
Resumen de interrupciones Resumen sobre RAPID -
Interrupciones
Interrupcin a partir de una seal de salida Instrucciones - ISignalDO
Ms informacin sobre la gestin Caractersticas bsicas -
de interrupciones Interrupciones
Ms ejemplos Tipos de datos - intnum
Ejemplos
VAR intnum sig1int;
CONNECT sig1int WITH iroutine1;
ISignalDO do1,1,sig1int;
Solicita una interrupcin que debe producirse cada vez que la seal de salida
digital do1 cambie a 1. En este caso, se realiza una llamada a la rutina TRAP
iroutine1.
ISignalDO do1,0,sig1int;
Solicita una interrupcin que debe producirse cada vez que la seal de salida
digital do1 cambie a 0.
ISignalDO\Single, do1,1,sig1int;
Solicita una interrupcin que debe producirse slo la primera vez que la seal de
salida digital do1 cambie a 1.
Argumentos
ISignalDO [ \Single ] Signal TriggValue Interrupt
[\Single] Tipo de dato: switch
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.
1
Nivel de la seal
0
Se produce una interrupcin
Se solicita una interrupcin
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 ( )
CONNECT sig1int WITH iroutine1;
ISignalDO do1, 1, sig1int;
WHILE TRUE DO
:
:
ENDWHILE
ENDPROC
PROC main ( )
VAR intnum sig1int;
CONNECT sig1int WITH iroutine1;
ISignalDO do1, 1, sig1int;
:
:
IDelete sig1int;
ENDPROC
Sintaxis
ISignalDO
[ \Single,]
[ Signal := ] < variable (VAR) de signaldo > ,
[ TriggValue := ] < expresin (IN) de dionum >,
[ Interrupt := ] < variable (VAR) de intnum > ;
Informacin relacionada
Descrito en:
Resumen de interrupciones Resumen sobre RAPID -
Interrupciones
Interrupcin a partir de una seal digital Instrucciones - ISignalDI
de entrada
Ms informacin sobre la gestin Caractersticas bsicas -
de interrupciones Interrupciones
Ms ejemplos Tipos de datos - intnum
Ejemplo
ISleep sig1int;
Argumentos
ISleep Interrupt
Interrupt Tipo de dato: intnum
Ejecucin de programas
Cualquier interrupcin del tipo especificado que se genere despus de ejecutar la
instruccin se desecha sin ejecutar ninguna rutina TRAP, hasta que se reactive la
interrupcin mediante la instruccin IWatch. No se procesa ninguna interrupcin
generada mientras ISleep.
Ejemplo
VAR intnum timeint;
CONNECT timeint WITH check_serialch;
ITimer 60, timeint;
.
ISleep timeint;
WriteBin ch1, buffer, 30;
IWatch timeint;
.
TRAP check_serialch
WriteBin ch1, buffer, 1;
IF ReadBin(ch1\Time:=5) < 0 THEN
TPWrite Se interrumpe la comunicacin serie;
EXIT;
ENDIF
ENDTRAP
Manual de referencia de RAPID la parte 1, Instrucciones A-Z 135
ISleep
Instruccin
Gestin de errores
No se permite ninguna interrupcin que no se haya solicitado ni activado. Si se
desconoce el nmero de la interrupcin, la variable de sistema ERRNO cambiar a
ERR_UNKINO (consulte Tipos de datos - errnum). El error puede ser gestionado en
el gestor de errores.
Sintaxis
ISleep
[ Interrupt := ] < variable (VAR) de intnum > ;
Informacin relacionada
Descrito en:
Resumen de interrupciones Resumen sobre RAPID -
Interrupciones
Activacin de una interrupcin Instrucciones - IWatch
Desactivacin de todas las interrupciones Instrucciones - IDisable
Cancelacin de una interrupcin Instrucciones - IDelete
Por ejemplo, esta instruccin puede utilizarse para comprobar el estado de los equipos
perifricos una vez por minuto.
Ejemplos
VAR intnum timeint;
CONNECT timeint WITH iroutine1;
ITimer 60, timeint;
Solicita una interrupcin que debe producirse una vez cada 60 segundos.
Argumentos
ITimer [ \Single ] Time Interrupt
[\Single] Tipo de dato: switch
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.
Ejemplo
VAR intnum timeint;
CONNECT timeint WITH check_serialch;
ITimer 60, timeint;
.
TRAP check_serialch
WriteBin ch1, buffer, 1;
IF ReadBin(ch1\Time:=5) < 0 THEN
TPWrite Se interrumpe la comunicacin serie;
EXIT;
ENDIF
ENDTRAP
Limitaciones
No es posible utilizar ms de una vez la identidad de la interrupcin sin eliminarla
previamente. Consulte Instrucciones - ISignalDI.
Sintaxis
ITimer
[ \Single,]
[ Time := ] < expresin (IN) de num >,
[ Interrupt := ] < variable (VAR) de intnum > ;
Informacin relacionada
Descrito en:
Resumen de interrupciones Resumen sobre RAPID -
Interrupciones
Ms informacin sobre la gestin Caractersticas bsicas -
de interrupciones Interrupciones
Por ejemplo, esta instruccin puede usarse para obtener valores de volumen de cordn
o de espacios no soldados desde un palpador electrnico de guiado de una pistola de
soldadura.
Ejemplos
LOCAL PERS num adtVlt{25}:=[1,1.2,1.4,1.6,1.8,2,2.16667,2.33333,2.5,...];
LOCAL PERS num adptWfd{25}:=[2,2.2,2.4,2.6,2.8,3,3.16667,3.33333,3.5,...];
LOCAL PERS num adptSpd{25}:=10,12,14,16,18,20,21.6667,23.3333,25[,...];
LOCAL CONST num GAP_VARIABLE_NO:=11;
PERS num gap_value;
VAR intnum IntAdap;
PROC main()
! Creacin de la interrupcin. Se llama a la rutina TRAP AdapTrp
! cuando cambia el valor de la variable de espacio no soldado
! GAP_VARIABLE_NO en la interfaz de sensores. El nuevo valor estar
! disponible en la variable PERS gp_value.
CONNECT IntAdap WITH AdapTrp;
IVarValue GAP_VARIABLE_NO, gap_value, IntAdap;
! Empezar a soldar
ArcL\On,*,v100,adaptSm,adaptWd,adaptWv,z10,tool\j\Track:=track;
ArcL\On,*,v100,adaptSm,adaptWd,adaptWv,z10,tool\j\Track:=track;
ENDPROC
TRAP AdapTrap
VAR num ArrInd;
Argumentos
IVarValue VarNo Value, Interrupt
VarNo Tipo de dato: num
Ejecucin de programas
Se llama automticamente a la rutina TRAP correspondiente en un momento
determinado a partir de la solicitud de la interrupcin. Una vez ejecutada la rutina, la
ejecucin del programa contina a partir del punto en el que se produjo la interrupcin.
Limitaciones
No es posible utilizar la misma variable para una identidad de interrupcin ms de
cinco veces sin eliminarla primero.
Sintaxis
IVarValue
[ VarNo := ] < expresin (IN) de num >,
[ Value := ] < variable persistente (PERS) de num >,
[ Interrupt := ] < variable (VAR) de intnum > ;
Informacin relacionada
Descrito en:
Resumen de interrupciones Resumen sobre RAPID -
Interrupciones
Ms informacin sobre la gestin Caractersticas bsicas -
de interrupciones Interrupciones
Ejemplo
IWatch sig1int;
Argumentos
IWatch Interrupt
Interrupt Tipo de dato: intnum
Ejecucin de programas
Vuelve a reactivar las interrupciones del tipo especificado. Sin embargo, las
interrupciones generadas durante el periodo en el que est vigente la instruccin ISleep
no se procesan.
Ejemplo
VAR intnum sig1int;
CONNECT sig1int WITH iroutine1;
ISignalDI di1,1,sig1int;
.
ISleep sig1int;
weldpart1;
IWatch sig1int;
Gestin de errores
No se permite utilizar con esta instruccin ninguna interrupcin que no se haya
solicitado anteriormente. Si se desconoce el nmero de la interrupcin, la variable de
sistema ERRNO cambiar a ERR_UNKINO (consulte Tipos de datos - errnum). El
error puede ser gestionado en el gestor de errores.
Sintaxis
IWatch
[ Interrupt := ] < variable (VAR) de intnum > ;
Informacin relacionada
Descrito en:
Resumen de interrupciones Resumen sobre RAPID -
Interrupciones
Desactivacin de una interrupcin Instrucciones - ISleep
Ejemplo
GOTO next;
.
next:
Argumentos
Etiqueta:
Label Identificador
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:
El uso de una etiqueta supone la ocultacin de los datos globales y las rutinas que
tengan el mismo nombre dentro de la rutina en la que se define.
Sintaxis
(EBNF)
<identificador>:
Informacin relacionada
Descrito en:
Identificadores Caractersticas bsicas -
Elementos bsicos
Trasladar la ejecucin del programa a una Instrucciones - GOTO
etiqueta
Modo esttico
Tabla 1 Cmo afectan las distintas operaciones a los programas o mdulos de sistema cargados en el
modo esttico
Modo dinmico
Tabla 2 Cmo afectan las distintas operaciones 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.
Ejemplo
Load \Dynamic, diskhome \File:="PART_A.MOD";
Argumentos
Load [\Dynamic] FilePath [\File]
[\Dynamic] Tipo de dato: switch
Ejecucin de programas
La ejecucin del programa espera a que el mdulo de programa termine de cargarse
antes de continuar en la instruccin siguiente.
Ejemplos
Ms ejemplos generales
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";
car.prg door.prg
MODULE car MODULE door
PROC main() PROC main()
................ .................
TEST part .................
CASE door_part: ENDPROC
Load \Dynamic, HOME:/door.prg; ENDMODULE
%door:main%;
UnLoad HOME:/door.prg;
CASE window_part:
window.prg
Load \Dynamic, HOME:/window.prg;
%window:main%; MODULE window
UnLoad \Save, HOME:/window.prg; PROC main()
ENDTEST ..................
ENDPROC ..................
ENDMODULE ENDPROC
ENDMODULE
La descarga de los mdulos con el argumento \Save har que los procedimientos
main sean de nuevo globales en el programa guardado.
Limitaciones
Evite tener movimientos en curso durante la carga.
Evite usar disquetes para la carga, ya que la lectura de un disquete es muy lenta.
Gestin de errores
Si no es posible encontrar los archivos a los que se hace referencia en las instrucciones
Load, la variable de sistema ERRNO cambia a ERR_FILNOTFND. Si el mdulo ya
est cargado en la memoria de programa, la variable de sistema ERRNO cambia a
ERR_LOADED (consulte "Tipos de datos - errnum"). Estos errores pueden ser
gestionados en un gestor de errores.
Sintaxis
Load
[\Dynamic ,]
[FilePath :=] <expresin (IN) de string>
[\File:= <expresin (IN) de string>];
Informacin relacionada
Descrito en:
Descarga de un mdulo de programa Instrucciones - UnLoad
Carga de mdulos de programa en paralelo Instrucciones - StartLoad-WaitLoad
con la ejecucin de otro programa
Aceptacin de referencias no resueltas Parmetros del sistema - Controller /
Tasks / BindRef
Esta instruccin debe usarse con todas las unidades mecnicas que tengan un modelo
dinmico en servo, para conseguir el mximo rendimiento de los movimientos.
Ejemplo
IRBP_L
Eje 1
Figura 6 Una unidad mecnica con el nombre IRBP_L y del tipo IRBP L.
ActUnit IRBP_L;
MechUnitLoad IRBP_L, 1, load0;
ActUnit IRBP_L;
MechUnitLoad IRBP_L, 1, fixture1;
ActUnit IRBP_L;
MechUnitLoad IRBP_L, 1, workpiece1;
Argumentos
MechUnitLoad MechUnit AxisNo Load
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.
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.
X til
Sistema de coordenadas del elemento terminal
para la unidad mecnica
Pieza de trabajo
Ejemplo
IRBP_K
Eje 2
Eje 1
Eje 3
Figura 8 Una unidad mecnica con el nombre IRBP_K y del tipo IRBP K con tres ejes.
Limitaciones
La instruccin de movimiento anterior a esta instruccin debe terminar con un punto
de paro para hacer posible la reanudacin en esta instruccin en caso de cada de
alimentacin.
Sintaxis
MechUnitLoad
[MechUnit := ] < variable (VAR) de mecunit> ,
[AxisNo := ] <expresin (IN) de num ,
[ Load := ] < variable persistente (PERS) de loaddata > ;
Informacin relacionada
Descrito en:
Identificacin de cargas tiles para LoadID y CollDetect
unidades mecnicas externas - Programa muloadid.prg
Unidades mecnicas Tipos de datos - mecunit
Definicin de datos de carga Tipos de datos - loaddata
Definicin de una carga til para el robot Instrucciones - GripLoad
Tipos de datos - tooldata
Ejemplo de uso:
Los ejes del robot y los ejes externos se desplazan hasta la posicin de destino a lo
largo de una trayectoria no lineal. Todos los ejes alcanzan la posicin de destino al
mismo tiempo.
Ejemplos
MoveAbsJ p50, v1000, z50, tool2;
Argumentos
MoveAbsJ [ \Conc ] ToJointPos [\NoEOffs] Speed [ \V ] | [ \T ]
Zone [ \Z ] [ \Inpos ] Tool [ \WObj ]
[ \Conc ] (concurrente) Tipo de dato: switch
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).
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.
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.
Los datos de zona del movimiento. Los datos de zona describen el tamao de la
trayectoria de esquina generada.
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.
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.
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.
Ejemplos
MoveAbsJ *, v2000\V:=2200, z40 \Z:=45, grip3;
GripLoad obj_mass;
MoveAbsJ start, v2000, z40, grip3 \WObj:= obj;
Gestin de errores
Cuando se ejecuta el programa, se comprueba que los argumentos Tool y \WObj no
contengan datos contradictorios respecto de una herramienta mvil o estacionaria.
Limitaciones
Para poder ejecutar hacia atrs la instruccin MoveAbsJ y evitar problemas con puntos
singulares o reas ambiguas, resulta esencial que las instrucciones posteriores cumplan
determinados requisitos, como se indica a continuacin (consulte la Figura 1).
Punto singular
MoveJ
MoveAbsJ
rea ambigua
Cualquier
instruccin de
MoveAbsJ movimiento
MoveAbsJ
Sintaxis
MoveAbsJ
[ \ Conc , ]
[ ToJointPos := ] < expresin (IN) de jointtarget >
[ \ NoEoffs ] ,
[ Speed := ] < expresin (IN) de speeddata >
[ \ V := < expresin (IN) de num > ]
| [ \ T := < expresin (IN) de num > ] ,
[Zone := ] < expresin (IN) de zonedata >
[ \ Z := < expresin (IN) de num > ]
[ \ Inpos := < expresin (IN) de stoppointdata > ] ,
[ Tool := ] < variable persistente (PERS) de tooldata >
[ \ WObj := < variable persistente (PERS) de wobjdata > ] ;
Informacin relacionada
Descrito en:
Otras instrucciones de posicionamiento Resumen sobre RAPID - Movimiento
Definicin de jointtarget Tipos de datos - jointtarget
Definicin de velocidad Tipos de datos - speeddata
Definicin de datos de zona Tipos de datos - zonedata
Definicin de datos de punto de paro Tipos de datos - stoppointdata
Definicin de herramientas Tipos de datos - tooldata
Definicin de objetos de trabajo Tipos de datos - wobjdata
Movimiento en general Principios de movimiento y E/S
Ejecucin simultnea de programas Principios de movimiento y E/S -
Sincronizacin con instrucciones
lgicas
Ejemplos
MoveC p1, p2, v500, z30, tool2;
Se realiza un crculo completo si las posiciones son las mismas que las mostradas
en la Figura 10.
p1
p4 p2
p3
Figura 10 Se realiza un crculo completo mediante dos instrucciones MoveC.
Argumentos
MoveC [ \Conc ] CirPoint ToPoint Speed [ \V ] | [ \T ] Zone [ \Z]
[ \Inpos ] Tool [ \WObj ] [ \Corr ]
El punto de crculo del robot. El punto de crculo es una posicin del crculo entre
el punto de inicio y el punto de destino. Para conseguir la mxima exactitud, debe
estar situado a mitad de camino entre los puntos de inicio y de destino. Si lo sita
demasiado cerca del punto de inicio o del punto de destino, es posible que el robot
genere una advertencia. El punto de crculo se define como una posicin con
nombre o se almacena directamente en la instruccin (marcada con un asterisco
* en la instruccin). No se utiliza la posicin de los ejes externos.
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).
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.
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.
Los datos de zona del movimiento. Los datos de zona describen el tamao de la
trayectoria de esquina generada.
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.
Ejecucin de programas
Las unidades del robot y las externas se trasladan hacia el punto de destino de la forma
siguiente:
Orientacin de CirPoint
la herramienta
Punto de inicio
ToPoint
La orientacin del punto circular no es esencial. Slo se usa para distinguir entre dos
sentidos de orientacin posibles. La exactitud de la reorientacin a lo largo de la
trayectoria slo depende de la orientacin en los puntos inicial y de destino.
- Los ejes externos no coordinados se ejecutan a una velocidad constante para que
alcancen el punto de destino al mismo tiempo que los ejes del robot. No se
utiliza la posicin de la posicin de crculo.
Ejemplos
MoveC *, *, v500 \V:=550, z40 \Z:=45, grip3;
Limitaciones
Existen algunas limitaciones en cuanto a las posibilidades de posicionamiento de
CirPoint y ToPoint, como se muestra en la figura siguiente.
x
CirPoint
0,1 mm x CirPoint
x Inicio x ToPoint
Inicio ToPoint
x x x CirPoint
x a x
0,1 mm Inicio a > 1 grado ToPoint
La exactitud puede ser baja cerca de los lmites, es decir, si el punto de inicio y el punto
ToPoint del crculo estn muy cerca el uno del otro, el error causado por la inclinacin
del crculo puede ser mucho mayor que la exactitud con la que se programaron los
puntos.
Los cambios del modo de ejecucin de la ejecucin hacia adelante a la ejecucin hacia
atrs, o viceversa, mientras el robot se detiene en una trayectoria circular no se
permiten y generan un mensaje de error.
Asegrese de que el robot pueda alcanzar el punto de crculo durante la ejecucin del
programa y dividir el segmento del crculo si es necesario.
Sintaxis
MoveC
[ \ Conc , ]
[ CirPoint := ] < expresin (IN) de robtarget > ,
[ ToPoint := ] < expresin (IN) de robtarget > ,
[ Speed := ] < expresin (IN) de speeddata >
[ \ V := < expresin (IN) de num > ]
| [ \ T := < expresin (IN) de num > ] ,
[Zone := ] < expresin (IN) de zonedata >
[ \ Z := < expresin (IN) de num > ]
[ \ Inpos := < expresin (IN) de stoppointdata > ] ,
[ Tool := ] < variable persistente (PERS) de tooldata >
[ \ WObj := < variable persistente (PERS) de wobjdata > ]
[ \ Corr ];
Informacin relacionada
Descrito en:
Otras instrucciones de posicionamiento Resumen sobre RAPID - Movimiento
Definicin de velocidad Tipos de datos - speeddata
Definicin de datos de zona Tipos de datos - zonedata
Definicin de datos de punto de paro Tipos de datos - stoppointdata
Definicin de herramientas Tipos de datos - tooldata
Definicin de objetos de trabajo Tipos de datos - wobjdata
Escritura en una entrada de correccin Instrucciones - CorrWrite
Movimiento en general Principios de movimiento y E/S
Sistemas de coordenadas Principios de movimiento y E/S -
Sistemas de coordenadas
Ejecucin simultnea de programas Principios de movimiento y E/S -
Sincronizacin con instrucciones
lgicas
Ejemplos
MoveCDO p1, p2, v500, z30, tool2, do1,1;
Argumentos
MoveCDO CirPoint ToPoint Speed [ \T ] Zone Tool [\WObj ]
Signal Value
CirPoint Tipo de dato: robtarget
El punto de crculo del robot. El punto de crculo es una posicin del crculo entre
el punto de inicio y el punto de destino. Para conseguir la mxima exactitud, debe
estar situado a mitad de camino entre los puntos de inicio y de destino. Si lo sita
demasiado cerca del punto de inicio o del punto de destino, es posible que el
robot genere una advertencia. El punto de crculo se define como una posicin
con nombre o se almacena directamente en la instruccin (marcada con un
asterisco * en la instruccin). No se utiliza la posicin de los ejes externos.
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).
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.
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.
Los datos de zona del movimiento. Los datos de zona describen el tamao de la
trayectoria de esquina generada.
Ejecucin de programas
Consulte la instruccin MoveC para obtener ms informacin acerca del movimiento
circular.
CirPoint
Siguiente
ToPoint punto
Zona
Figura 12 Activacin/desactivacin de una seal digital de salida en la trayectoria de esquina con
MoveCDO.
168 Manual de referencia de RAPID la parte 1, Instrucciones A-Z
MoveCDO
Instruccin
Limitaciones
Limitaciones generales acorde con la instruccin MoveC.
Sintaxis
MoveCDO
[ CirPoint := ] < expresin (IN) de robtarget > ,
[ ToPoint := ] < expresin (IN) de robtarget > ,
[ Speed := ] < expresin (IN) de speeddata >
[ \ T := < expresin (IN) de num > ] ,
[ Zone := ] < expresin (IN) de zonedata > ,
[ Tool := ] < variable persistente (PERS) de tooldata >
[ \ WObj := < variable persistente (PERS) de wobjdata > ] ,
[ Signal := ] < variable (VAR) de signaldo>] ,
[ Value := ] < expresin (IN) de dionum > ] ;
Informacin relacionada
Descrito en:
Otras instrucciones de posicionamiento Resumen sobre RAPID - Movimiento
Definicin de velocidad Tipos de datos - speeddata
Definicin de datos de zona Tipos de datos - zonedata
Definicin de herramientas Tipos de datos - tooldata
Definicin de objetos de trabajo Tipos de datos - wobjdata
Movimiento en general Principios de movimiento y E/S
Sistemas de coordenadas Principios de movimiento y E/S -
Sistemas de coordenadas
Movimientos con parmetros de E/S Principios de movimiento y E/S -
Sincronizacin con instrucciones
lgicas
Ejemplos
MoveCSync p1, p2, v500, z30, tool2, proc1;
Argumentos
MoveCSync CirPoint ToPoint Speed [ \T ] Zone Tool [\WObj ]
ProcName
CirPoint Tipo de dato: robtarget
El punto de crculo del robot. El punto de crculo es una posicin del crculo entre
el punto de inicio y el punto de destino. Para conseguir la mxima exactitud, debe
estar situado a mitad de camino entre los puntos inicial y de destino. Si lo sita
demasiado cerca del punto de inicio o del punto de destino, es posible que el
robot genere una advertencia. El punto de crculo se define como una posicin
con nombre o se almacena directamente en la instruccin (marcada con un
asterisco * en la instruccin). No se utiliza la posicin de los ejes externos.
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).
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.
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.
Los datos de zona del movimiento. Los datos de zona describen el tamao de la
trayectoria de esquina generada.
Ejecucin de programas
Consulte la instruccin MoveC para obtener ms informacin acerca de los
movimientos circulares.
Limitacin
Limitaciones generales acorde con la instruccin MoveC.
Si tras un punto de paro se cambia el modo de ejecucin del modo continuo o cclico
al modo de ejecucin paso a paso hacia adelante o hacia atrs, se genera un error. Este
error informa al usuario de que el cambio de modo de ejecucin puede dar lugar a que
no llegue a ejecutarse el procedimiento de RAPID que est en cola para su ejecucin
en la trayectoria. Este error puede evitarse si el programa se detiene con StopInstr antes
del cambio de modo.
Sintaxis
MoveCSync
[ CirPoint := ] < expresin (IN) de robtarget > ,
[ ToPoint := ] < expresin (IN) de robtarget > ,
[ Speed := ] < expresin (IN) de speeddata >
[ \ T := < expresin (IN) de num > ] ,
[ Zone := ] < expresin (IN) de zonedata > ,
[ Tool := ] < variable persistente (PERS) de tooldata >
[ \ WObj := < variable persistente (PERS) de wobjdata > ] ,
[ ProcName := ] < expresin (IN) de string > ] ;
Informacin relacionada
Descrito en:
Otras instrucciones de posicionamiento Resumen sobre RAPID - Movimiento
Definicin de velocidad Tipos de datos - speeddata
Definicin de datos de zona Tipos de datos - zonedata
Definicin de herramientas Tipos de datos - tooldata
Definicin de objetos de trabajo Tipos de datos - wobjdata
Movimiento en general Principios de movimiento y E/S
Sistemas de coordenadas Principios de movimiento y E/S -
Sistemas de coordenadas
Los ejes del robot y los ejes externos se desplazan hasta la posicin de destino a lo
largo de una trayectoria no lineal. Todos los ejes alcanzan la posicin de destino al
mismo tiempo.
Ejemplos
MoveJ p1, vmax, z30, tool2;
Argumentos
MoveJ [ \Conc ] ToPoint Speed [ \V ] | [ \T ] Zone [ \Z ]
[ \Inpos ] Tool [ \WObj ]
[ \Conc ] (concurrente) Tipo de dato: switch
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).
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.
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.
Los datos de zona del movimiento. Los datos de zona describen el tamao de la
trayectoria de esquina generada.
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.
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.
Ejemplos
MoveJ *, v2000\V:=2200, z40 \Z:=45, grip3;
Sintaxis
MoveJ
[ \ Conc , ]
[ ToPoint := ] < expresin (IN) de robtarget > ,
[ Speed := ] < expresin (IN) de speeddata >
[ \ V := < expresin (IN) de num > ]
| [ \ T := < expresin (IN) de num > ] ,
[Zone := ] < expresin (IN) de zonedata >
[ \ Z := < expresin (IN) de num > ]
[ \ Inpos := < expresin (IN) de stoppointdata > ] ,
[ Tool := ] < variable persistente (PERS) de tooldata >
[ \ WObj := < variable persistente (PERS) de wobjdata > ] ;
Informacin relacionada
Descrito en:
Otras instrucciones de posicionamiento Resumen sobre RAPID - Movimiento
Definicin de velocidad Tipos de datos - speeddata
Definicin de datos de zona Tipos de datos - zonedata
Definicin de datos de punto de paro Tipos de datos - stoppointdata
Definicin de herramientas Tipos de datos - tooldata
Definicin de objetos de trabajo Tipos de datos - wobjdata
Movimiento en general Principios de movimiento y E/S
Sistemas de coordenadas Principios de movimiento y E/S -
Sistemas de coordenadas
Ejecucin simultnea de programas Principios de movimiento y E/S -
Sincronizacin con instrucciones
lgicas
Los ejes del robot y los ejes externos se desplazan hasta la posicin de destino a lo
largo de una trayectoria no lineal. Todos los ejes alcanzan la posicin de destino al
mismo tiempo.
Ejemplos
MoveJDO p1, vmax, z30, tool2, do1, 1;
Argumentos
MoveJDO ToPoint Speed [ \T ] Zone Tool [ \WObj ] Signal Value
ToPoint Tipo de dato: robtarget
El punto de destino de los ejes del robot y de los ejes externos Se define como
una posicin con nombre o se almacena directamente en la instruccin (marcada
con un asterisco * en la instruccin).
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.
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.
Los datos de zona del movimiento. Los datos de zona describen el tamao de la
trayectoria de esquina generada.
Ejecucin de programas
Consulte la instruccin MoveJ para obtener ms informacin acerca del movimiento de
ejes.
p3
p1 p2
Zona
Sintaxis
MoveJDO
[ ToPoint := ] < expresin (IN) de robtarget > ,
[ Speed := ] < expresin (IN) de speeddata >
[ \ T := < expresin (IN) de num > ] ,
[ Zone := ] < expresin (IN) de zonedata > ,
[ Tool := ] < variable persistente (PERS) de tooldata >
[ \ WObj := < variable persistente (PERS) de wobjdata > ] ,
[ Signal := ] < variable (VAR) de signaldo>] ,
[ Value := ] < expresin (IN) de dionum > ] ;
Informacin relacionada
Descrito en:
Otras instrucciones de posicionamiento Resumen sobre RAPID - Movimiento
Definicin de velocidad Tipos de datos - speeddata
Definicin de datos de zona Tipos de datos - zonedata
Definicin de herramientas Tipos de datos - tooldata
Definicin de objetos de trabajo Tipos de datos - wobjdata
Movimiento en general Principios de movimiento y E/S
Sistemas de coordenadas Principios de movimiento y E/S -
Sistemas de coordenadas
Movimientos con parmetros de E/S Principios de movimiento y E/S -
Sincronizacin con instrucciones
lgicas
Los ejes del robot y los ejes externos se desplazan hasta la posicin de destino a lo
largo de una trayectoria no lineal. Todos los ejes alcanzan la posicin de destino al
mismo tiempo.
Ejemplos
MoveJSync p1, vmax, z30, tool2, proc1;
Argumentos
MoveJSync ToPoint Speed [ \T ] Zone Tool [ \WObj ]
ProcName
ToPoint Tipo de dato: robtarget
El punto de destino de los ejes del robot y de los ejes externos Se define como
una posicin con nombre o se almacena directamente en la instruccin (marcada
con un asterisco * en la instruccin).
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.
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.
Los datos de zona del movimiento. Los datos de zona describen el tamao de la
trayectoria de esquina generada.
Ejecucin de programas
Consulte la instruccin MoveJ para obtener ms informacin acerca de los
movimientos de ejes.
p1
Limitacin
Si tras un punto de paro se cambia el modo de ejecucin del modo continuo o cclico
al modo de ejecucin paso a paso hacia adelante o hacia atrs, se genera un error. Este
error informa al usuario de que el cambio de modo de ejecucin puede dar lugar a que
no llegue a ejecutarse el procedimiento de RAPID que est en cola para su ejecucin
en la trayectoria. Este error puede evitarse si el programa se detiene con StopInstr antes
del cambio de modo.
Sintaxis
MoveJSync
[ ToPoint := ] < expresin (IN) de robtarget > ,
[ Speed := ] < expresin (IN) de speeddata >
[ \ T := < expresin (IN) de num > ] ,
[Zone := ] < expresin (IN) de zonedata >
[ \ Z := < expresin (IN) de num > ] ,
[ Tool := ] < variable persistente (PERS) de tooldata >
[ \ WObj := < variable persistente (PERS) de wobjdata > ] ,
[ ProcName := ] < expresin (IN) de string > ] ;
Informacin relacionada
Descrito en:
Otras instrucciones de posicionamiento Resumen sobre RAPID - Movimiento
Definicin de velocidad Tipos de datos - speeddata
Definicin de datos de zona Tipos de datos - zonedata
Definicin de herramientas Tipos de datos - tooldata
Definicin de objetos de trabajo Tipos de datos - wobjdata
Movimiento en general Principios de movimiento y E/S
Sistemas de coordenadas Principios de movimiento y E/S -
Sistemas de coordenadas
Ejemplo
MoveL p1, v1000, z30, tool2;
Argumentos
MoveL [ \Conc ] ToPoint Speed [ \V ] | [ \T ] Zone [ \Z ]
[ \Inpos ] Tool [ \WObj ] [ \Corr ]
[ \Conc ] (concurrente) Tipo de dato: switch
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).
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.
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.
Los datos de zona del movimiento. Los datos de zona describen el tamao de la
trayectoria de esquina generada.
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.
Ejecucin de programas
Las unidades del robot y las externas se trasladan hacia la posicin de destino de la
forma siguiente:
Ejemplos
MoveL *, v2000 \V:=2200, z40 \Z:=45, grip3;
Sintaxis
MoveL
[ \ Conc , ]
[ ToPoint := ] < expresin (IN) de robtarget > ,
[ Speed := ] < expresin (IN) de speeddata >
[ \ V := < expresin (IN) de num > ]
| [ \ T := < expresin (IN) de num > ] ,
[Zone := ] < expresin (IN) de zonedata >
[ \ Z := < expresin (IN) de num > ]
[ \ Inpos := < expresin (IN) de stoppointdata > ] ,
[ Tool := ] < variable persistente (PERS) de tooldata >
[ \ WObj := < variable persistente (PERS) de wobjdata > ]
[ \ Corr ];
Informacin relacionada
Descrito en:
Otras instrucciones de posicionamiento Resumen sobre RAPID - Movimiento
Definicin de velocidad Tipos de datos - speeddata
Definicin de datos de zona Tipos de datos - zonedata
Definicin de datos de punto de paro Tipos de datos - stoppointdata
Definicin de herramientas Tipos de datos - tooldata
Definicin de objetos de trabajo Tipos de datos - wobjdata
Escritura en una entrada de correccin Instrucciones - CorrWrite
Movimiento en general Principios de movimiento y E/S
Sistemas de coordenadas Principios de movimiento y E/S -
Sistemas de coordenadas
Ejecucin simultnea de programas Principios de movimiento y E/S -
Sincronizacin con instrucciones
lgicas
Cuando se desea que el TCP permanezca estacionario, esta instruccin puede usarse
tambin para reorientar la herramienta.
Ejemplo
MoveLDO p1, v1000, z30, tool2, do1,1;
Argumentos
MoveLDO ToPoint Speed [ \T ] Zone Tool
[ \WObj ] Signal Value
ToPoint Tipo de dato: robtarget
El punto de destino de los ejes del robot y de los ejes externos Se define como
una posicin con nombre o se almacena directamente en la instruccin (marcada
con un asterisco * en la instruccin).
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.
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.
Los datos de zona del movimiento. Los datos de zona describen el tamao de la
trayectoria de esquina generada.
Ejecucin de programas
Consulte la instruccin MoveL para obtener ms informacin acerca de los
movimientos lineales.
p3
p1 p2
Zona
Sintaxis
MoveLDO
[ ToPoint := ] < expresin (IN) de robtarget > ,
[ Speed := ] < expresin (IN) de speeddata >
[ \ T := < expresin (IN) de num > ] ,
[ Zone := ] < expresin (IN) de zonedata > ,
[ Tool := ] < variable persistente (PERS) de tooldata >
[ \ WObj := < variable persistente (PERS) de wobjdata > ] ,
[ Signal := ] < variable (VAR) de signaldo>] ,
[ Value := ] < expresin (IN) de dionum > ] ;
Informacin relacionada
Descrito en:
Otras instrucciones de posicionamiento Resumen sobre RAPID - Movimiento
Definicin de velocidad Tipos de datos - speeddata
Definicin de datos de zona Tipos de datos - zonedata
Definicin de herramientas Tipos de datos - tooldata
Definicin de objetos de trabajo Tipos de datos - wobjdata
Movimiento en general Principios de movimiento y E/S
Sistemas de coordenadas Principios de movimiento y E/S -
Sistemas de coordenadas
Movimientos con parmetros de E/S Principios de movimiento y E/S -
Sincronizacin con instrucciones
lgicas
Cuando se desea que el TCP permanezca estacionario, esta instruccin puede usarse
tambin para reorientar la herramienta.
Ejemplo
MoveLSync p1, v1000, z30, tool2, proc1;
Argumentos
MoveLSync ToPoint Speed [ \T ] Zone Tool
[ \WObj ] ProcName
ToPoint Tipo de dato: robtarget
El punto de destino de los ejes del robot y de los ejes externos. Se define como
una posicin con nombre o se almacena directamente en la instruccin (marcada
con un asterisco * en la instruccin).
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.
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.
Los datos de zona del movimiento. Los datos de zona describen el tamao de la
trayectoria de esquina generada.
Ejecucin de programas
Consulte la instruccin MoveL para obtener ms informacin acerca de los
movimientos lineales.
p1
Limitacin
Si tras un punto de paro se cambia el modo de ejecucin del modo continuo o cclico
al modo de ejecucin paso a paso hacia adelante o hacia atrs, se genera un error. Este
error informa al usuario de que el cambio de modo de ejecucin puede dar lugar a que
no llegue a ejecutarse el procedimiento de RAPID que est en cola para su ejecucin
en la trayectoria. Este error puede evitarse si el programa se detiene con StopInstr antes
del cambio de modo.
Sintaxis
MoveLSync
[ ToPoint := ] < expresin (IN) de robtarget > ,
[ Speed := ] < expresin (IN) de speeddata >
[ \ T := < expresin (IN) de num > ] ,
[ Zone := ] < expresin (IN) de zonedata > ,
[ Tool := ] < variable persistente (PERS) de tooldata >
[ \ WObj := < variable persistente (PERS) de wobjdata > ] ,
[ ProcName := ] < expresin (IN) de string > ] ;
Informacin relacionada
Descrito en:
Otras instrucciones de posicionamiento Resumen sobre RAPID - Movimiento
Definicin de velocidad Tipos de datos - speeddata
Definicin de datos de zona Tipos de datos - zonedata
Definicin de herramientas Tipos de datos - tooldata
Definicin de objetos de trabajo Tipos de datos - wobjdata
Movimiento en general Principios de movimiento y E/S
Sistemas de coordenadas Principios de movimiento y E/S -
Sistemas de coordenadas
La calibracin tambin puede realizarse con un mtodo manual, utilizando el TPU (se
describen en el Manual del usuario - Calibracin).
Descripcin
Para definir la orientacin de la herramienta, necesita una punta de referencia fija en el
espacio de trabajo del robot.
Como ayuda para apuntar hacia el eje x y el eje x positivos, puede usarse algn
tipo de herramienta alargadora.
z
x
RefTip XPos
Herramienta x
alargadora
ZPos Punta de referencia
fija
z
Ejemplo
! Creado con la punta de referencia fija en el origen, eje x positivo y
! eje x positivo.
CONST jointtarget pos_tip := [...];
CONST jointtarget pos_z := [...];
CONST jointtarget pos_x := [...];
Argumentos
MToolRotCalib RefTip ZPos [\XPos]Tool
RefTip Tipo de dato: jointtarget
Ejecucin de programas
El sistema calcula y actualiza la orientacin de la herramienta (tfame.rot) en los datos
tooldata. El clculo se basa en los 2 3 jointtarget especificados. El resto de los datos
de la herramienta, por ejemplo el TCP (tframe.trans), permanece sin cambios.
Sintaxis
MToolRotCalib
[ RefTip := ] < expresin (IN) de jointtarget > ,
[ ZPos := ] < expresin (IN) de jointtarget >
[ \XPos := < expresin (IN) de jointtarget > ] ,
[ Tool := ] < variable persistente (PERS) de tooldata > ;
Informacin relacionada
Descrito en:
Calibracin del TCP de una herramienta mvil Instrucciones - MToolTCPCalib
Calibracin del TCP de una herramienta Instrucciones - SToolTCPCalib
estacionaria
Calibracin del TCP y de la rotacin Instrucciones - SToolRotCalib
de una herramienta estacionaria
La calibracin tambin puede realizarse con un mtodo manual, utilizando el TPU (se
describen en el Manual del usuario - Calibracin).
Descripcin
Para definir el TCP de una herramienta, necesita una punta de referencia fija en el
espacio de trabajo del robot.
3
1
2 4
Ejemplo
! Creado con el TCP real apuntando hacia la punta de referencia fija
CONST jointtarget p1 := [...];
CONST jointtarget p2 := [...];
CONST jointtarget p3 := [...];
CONST jointtarget p4 := [...];
Argumentos
MToolTCPCalib Pos1 Pos2 Pos3 Pos4 Tool MaxErr MeanErr
Pos1 Tipo de dato: jointtarget
La distancia media que separa los puntos de aproximacin del TCP calculado, es
decir, la exactitud con la que el robot se posicion respecto de la punta.
Ejecucin de programas
El sistema calcula y actualiza el valor del TCP en el sistema de coordenadas de la
mueca (tfame.trans) en el valor especificado tooldata. El clculo se basa en los 4
valores especificados de jointtarget. Los dems datos de tooldata, por ejemplo la
orientacin de la herramienta (tframe.rot), permanecen sin cambios.
Sintaxis
MToolTCPCalib
[ Pos1 := ] < expresin (IN) de jointtarget > ,
[ Pos2 := ] < expresin (IN) de jointtarget > ,
[ Pos3 := ] < expresin (IN) de jointtarget > ,
[ Pos4 := ] < expresin (IN) de jointtarget > ,
[ Tool := ] < variable persistente (PERS) de tooldata > ,
[ MaxErr := ] < variable (VAR) de num > ,
[ MeanErr := ] < variable (VAR) de num > ;
Informacin relacionada
Descrito en:
Calibracin de la rotacin de una herramienta Instrucciones - MToolRotCalib
mvil
Calibracin del TCP de una herramienta Instrucciones - SToolTCPCalib
estacionaria
Calibracin del TCP y de la rotacin Instrucciones - SToolRotCalib
de una herramienta estacionaria
Ejemplo
VAR iodev logfile;
...
Open "HOME:" \File:= "LOGFILE1.DOC", logfile \Write;
Argumentos
Open Object [\File] IODevice [\Read] | [\Write] | [\Append] [\Bin]
Object Tipo de dato: string
El objeto de E/S (dispositivo de E/S) que se desea abrir, por ejemplo "HOME:",
"TEMP:", "flp1:"(opcional), com2: o pc:(opcional).
Tabla 3 Distintos dispositivos de E/S del sistema
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.
Ejemplo
VAR iodev printer;
...
Open "com2:", printer \Bin;
WriteStrBin printer, "Este mensaje se enva a la impresora\0D";
Close printer;
Ejecucin de programas
El archivo o canal serie especificado se abre de forma que sea posible leer su contenido
o escribir en l.
Es posible abrir el mismo archivo fsico varias veces simultneamente, pero cada
ejecucin de la instruccin Open devuelve una referencia distinta al archivo (tipo de
dato iodev). Por ejemplo, es posible tener un puntero para escribir y otro puntero para
leer del mismo archivo de forma simultnea.
La variable iodev utilizada al abrir un archivo o canal serie debe estar libre para su uso.
Si se ha usado anteriormente para abrir un archivo, es necesario cerrar el archivo antes
de ejecutar una nueva instruccin Open con la misma variable iodev.
Gestin de errores
Si no es posible abrir un archivo, la variable de sistema ERRNO cambia a
ERR_FILEOPEN. A continuacin, este error puede ser gestionado en el gestor de
errores.
Sintaxis
Open
[Object :=] <expresin (IN) de string>
[\File:= <expresin (IN) de string>] ,
[IODevice :=] <variable (VAR) de iodev>
[\Read] | [\Write] | [\Append]
[\Bin] ;
Informacin relacionada
Descrito en:
Escritura y lectura a travs de Resumen sobre RAPID - Comunicacin
archivos o canales serie
PROGRAMMED PATH
ROBOT TCP
Ejemplo
PathAccLim TRUE \AccMax := 4, TRUE \AccMin := 4;
Argumentos
PathAccLim AccLim [\AccMax] DecelLim [\DecelMax]
AccLim Tipo de dato: bool
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.
- Segn AccSet
- Segn PathAccLim
Ejemplo
p2 p3
p2
p1
MoveL p1, v1000, fine, tool0;
PathAccLim TRUE\AccMax := 4, FALSE;
MoveL p2, v1000, z30, tool0;
MoveL p3, v1000, fine, tool0;
PathAccLim FALSE, FALSE;
Limitaciones
La aceleracin/deceleracin mnima permitida es de 0,5 m s 2 .
Gestin de errores
Si se establece un valor demasiado bajo para los parmetros AccMax o DecelMax, la
variable de sistema ERRNO cambia a ERR_ACC_TOO_LOW. A continuacin, este
error puede ser gestionado en el gestor de errores.
Sintaxis
PathAccLim
[ AccLim := ] < expresin (IN) de bool >
[\AccMax := <expresin (IN) de num >],
[DecelLim := ] < expresin (IN) de bool>
[\DecelMax := <expresin (IN) de num >];
Informacin relacionada
Descrito en:
Instrucciones de posicionamiento Resumen sobre RAPID - Movimiento
Datos de parmetros de movimiento Tipos de datos - motsetdata
Reduccin de la aceleracin Instrucciones - AccSet
Descripcin
La resolucin de la trayectoria afecta a la exactitud de la trayectoria interpolada y el
tiempo de ciclo de programa. Aumenta la exactitud de la trayectoria y, con frecuencia,
el tiempo de ciclo se reduce cuando se reduce el valor del parmetro PathSampleTime.
Sin embargo, si se usa un valor demasiado bajo para el parmetro PathSampleTime,
pueden aparecer problemas de exceso de carga en las aplicaciones que consumen ms
recursos del sistema. Sin embargo, el uso del valor estndar configurado para la
resolucin de la trayectoria (PathSampleTime 100%) evita problemas de sobrecarga de
la CPU y proporciona una exactitud de trayectoria adecuada para la mayora de las
situaciones.
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.
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.
Ejemplo
MoveJ p1,v1000,fine,tool1;
PathResol 150;
Argumentos
PathResol PathSampleTime
Ejecucin de programas
Las resoluciones de la trayectoria en todas las instrucciones posteriores de
posicionamiento se ven afectadas hasta que se ejecuta una nueva instruccin
PathResol. Esto afectar a la resolucin de la ruta durante todas las operaciones de
movimiento del programa (el nivel de trayectoria predeterminado y el nivel de
trayectoria despus de StorePath) y tambin durante el movimiento.
El ajuste actual del tiempo de muestreo puede leerse a travs de la variable C_MOTSET
(tipo de dato motsetdata), en el componente pathresol.
Limitaciones
Si esta instruccin va precedida de una instruccin de movimiento, sta ltima debe
programarse con un punto de paro (zonedata fino), no un punto de paso. De lo
contrario, no ser posible reanudar la ejecucin tras una cada de suministro elctrico.
Sintaxis
PathResol
[PathSampleTime := ] < expresin (IN) de num> ;
Informacin relacionada
Descrito en:
Instrucciones de posicionamiento Principios de movimiento y E/S -
Movimientos
Parmetros de movimiento Resumen sobre RAPID -
Parmetros de movimiento
Configuracin de la resolucin de la trayectoria Parmetros del sistema -
Optimizacin de la CPU
Ejemplos
PDispOff;
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
Descrito en:
Definicin del desplazamiento de programa Instrucciones - PDispOn
mediante dos posiciones
Definicin del desplazamiento de programa Instrucciones - PDispSet
mediante valores
Ejemplos
MoveL p10, v500, z10, tool1;
PDispOn \ExeP:=p10, p20, tool1;
Argumentos
PDispOn [ \Rot ] [ \ExeP ] ProgPoint Tool [ \WObj ]
Ejecucin de programas
El desplazamiento de programa implica que el sistema de coordenadas ProgDisp se
traslada respecto del sistema de coordenadas de objeto. Dado que todas las posiciones
dependen del sistema de coordenadas ProgDisp, se desplazan tambin todas las
posiciones programadas. Consulte la Figura 20.
y
Nueva
posicin, ExeP
y
Posicin
original, ProgPoint
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.
Nueva
y posicin, ExeP
y
Nueva
Orientacin
original, ProgPoint
original x
Desplazamiento del
Posicin
original programa Sistema de coordenadas de desplazamiento del programa
(ProgDisp)
x
Sistema de coordenadas de objeto
Ejemplo
PROC draw_square()
PDispOn *, tool1;
MoveL *, v500, z10, tool1;
MoveL *, v500, z10, tool1;
MoveL *, v500, z10, tool1;
MoveL *, v500, z10, tool1;
PDispOff;
ENDPROC
.
MoveL p10, v500, fine \Inpos := inpos50, tool1;
draw_square;
MoveL p20, v500, fine \Inpos := inpos50, tool1;
draw_square;
MoveL p30, v500, fine \Inpos := inpos50, tool1;
draw_square;
p30
p10
p20
Sintaxis
PDispOn
[ [ \ Rot ]
[ \ ExeP := < expresin (IN) de robtarget >] ,]
[ ProgPoint := ] < expresin (IN) de robtarget > ,
[ Tool := ] < variable persistente (PERS) de tooldata>
[ \WObj := < variable persistente (PERS) de wobjdata> ] ;
Informacin relacionada
Descrito en:
Desactivacin de un desplazamiento Instrucciones - PDispOff
de programa
Definicin del desplazamiento de programa Instrucciones - PDispSet
mediante valores
Sistemas de coordenadas Principios de movimiento - Sistemas
de coordenadas
Definicin de herramientas Tipos de datos - tooldata
Definicin de objetos de trabajo Tipos de datos - wobjdata
Ms ejemplos Instrucciones - PDispOff
Ejemplo
VAR pose xp100 := [ [100, 0, 0], [1, 0, 0, 0] ];
.
PDispSet xp100;
Objeto ProgDisp
100 X
Figura 23 Un desplazamiento de programa de 100 mm a lo largo del eje x.
Argumentos
PDispSet DispFrame
Ejecucin de programas
El desplazamiento de programa implica la traslacin y/o la rotacin del sistema de
coordenadas ProgDisp respecto del sistema de coordenadas de objeto. Dado que todas
las posiciones dependen del sistema de coordenadas ProgDisp, se desplazan tambin
todas las posiciones programadas. Consulte la Figura 24.
.
Nueva
y posicin
y
Nueva
Posicin
original
original x
Desplazamiento del
Orientacin programa
original Sistema de coordenadas de desplazamiento del programa
(ProgDisp)
x
Sistema de coordenadas de objeto
Sintaxis
PDispSet
[ DispFrame := ] < expresin (IN) de pose> ;
Informacin relacionada
Descrito en:
Desactivacin de un desplazamiento Instrucciones - PDispOff
de programa
Definicin del desplazamiento de programa Instrucciones - PDispOn
mediante dos posiciones
Definicin de datos del tipo pose Tipos de datos - pose
Sistemas de coordenadas Principios de movimiento - Sistemas
de coordenadas
Ejemplos de cmo puede usarse el Instrucciones - PDispOn
desplazamiento de programa
Ejemplos
weldpipe1;
errormessage;
Set do1;
.
PROC errormessage()
TPWrite "ERROR";
ENDPROC
Argumentos
Procedure { Argument }
Procedure Identificador
Ejemplo
weldpipe2 10, lowspeed;
weldpipe3 10 \speed:=20;
Limitaciones
Los argumentos deben coincidir con sus parmetros:
Una rutina puede llamar a otra rutina, que a su vez puede llamar a otra, etc. Una rutina
tambin puede llamarse a s misma, lo que se conoce como llamada recursiva. El
nmero de niveles de rutinas permitido depende del nmero de parmetros, pero
normalmente se permiten ms de 10 niveles.
Sintaxis
(EBNF)
<procedimiento> [ <lista de argumentos> ] ;
Informacin relacionada
Descrito en:
Argumentos, parmetros Caractersticas bsicas - Rutinas
Ms ejemplos Ejemplos de programa
Ejemplos
PulseDO do15;
Se genera un pulso con una duracin de 0,2 seg en la seal de salida do15.
Se genera el valor positivo (valor 1) en la seal do3 desde dos tareas de programa
casi al mismo tiempo. El resultado es un pulso positivo con una duracin ms
larga que la duracin predeterminada de 0,2 seg o dos pulsos positivos uno
despus del otro, con una duracin de pulso de 0,2 seg.
Argumentos
PulseDO [ \High ] [ \PLength ] Signal
[ \High ] (nivel alto) Tipo de dato: switch
Especifica que el valor de la seal debe ser siempre el valor alto (valor 1) cuando
se ejecuta la instruccin, independientemente de su estado actual.
Ejecucin de programas
Se genera un pulso con una duracin especificada (consulte la Figura 25).
:
1
Nivel de la seal
0
Ejecucin de la instruccin PulseDO
Ejecucin de la instruccin PulseDO
1
Nivel de la seal
0
1
Nivel de la seal
0
Ejecucin de la instruccin PulseDO \High
Ejecucin de la instruccin PulseDO \High
1
Nivel de la seal
0
y
x
1
Nivel de la seal
0
Limitaciones
La duracin del pulso tiene una resolucin de 0,01 segundos. Los valores programados
que difieran de esta resolucin se redondean.
Sintaxis
PulseDO
[ [ \High]
[ \PLength := < expresin (IN) de num >] , ]
[ Signal := ] < variable (VAR) de signaldo > ;
Informacin relacionada
Descrito en:
Instrucciones de entrada y salida Resumen sobre RAPID - Seales de
entrada y salida
Funcionalidad general de las entradas y salidas Principios de movimiento y E/S -
Principios de E/S
Configuracin de E/S Gua del usuario - Parmetros del
sistema
Por ejemplo, esta instruccin puede usarse para volver a un nivel ms alto de la
estructura del programa, por ejemplo al gestor de errores de la rutina principal, si se
produce un error en el nivel inferior.
Ejemplo
IF ...
IF ...
IF ...
RAISE escape1;
.
ERROR
IF ERRNO=escape1 RAISE;
Argumentos
RAISE [ N de error ]
N de error Tipo de dato: errnum
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:
Gestin de errores
Si el nmero de error est fuera de rango, la variable de sistema ERRNO cambia a
ERR_ILLRAISE (consulte Tipos de datos - errnum). El error puede ser gestionado
en el gestor de errores.
Sintaxis
(EBNF)
RAISE [<nmero de error>] ;
Informacin relacionada
Descrito en:
Gestin de errores Caractersticas bsicas - Recuperacin
en caso de error
Recuperacin en caso de error con Caractersticas bsicas -
un salto largo Recuperacin en caso de error
Registro de nmeros de error Instruccin - BookErrNo
Ejemplo
VAR iodev channel2;
VAR robtarget next_target;
...
Open "com2:", channel2 \Bin;
ReadAnyBin channel2, next_target;
Se lee del canal al que se hace referencia con channel2 el siguiente objetivo que
debe ejecutar el robot, next_target.
Argumentos
ReadAnyBin IODevice Data [\Time])
IODevice Tipo de dato: iodev
El nombre (la referencia) del canal serie o el archivo binario del que se desea leer.
Ejecucin de programas
Se lee del canal serie o del 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 lectura binaria.
Los datos que se desea leer con esta instruccin deben tener un tipo de dato de valor
atomic, string o record. No se permite el uso de tipos de datos de semivalor ni sin valor.
Recuerde que la variable VAR o PERS, que se usa para almacenar los datos ledos,
puede actualizarse en varios pasos. Por tanto, espere siempre hasta que se actualice toda
la estructura de datos antes de leer la informacin desde una rutina TRAP o desde otra
tarea de programa.
Gestin de errores
Si se produce un error durante la lectura, la variable de sistema ERRNO cambia a
ERR_FILEACC.
Si se detecta el final del archivo antes de completar la lectura de todos los bytes, la
variable de sistema ERRNO cambia a ERR_RANYBIN_EOF.
Ejemplo
CONST num NEW_ROBT:=12;
CONST num NEW_WOBJ:=20;
VAR iodev channel;
VAR num input;
VAR robtarget cur_robt;
VAR wobjdata cur_wobj;
Close channel;
Como primer paso, se lee del canal serie el cdigo de operacin (opcode) del
mensaje. Acorde con el cdigo de operacin, se lee el dato robtarget o wobjdata
del canal serie.
Sintaxis
ReadAnyBin
[IODevice:=] <variable (VAR) de iodev>,
[Data:=] <variable o variable persistente (INOUT) de ANYTYPE>
[\Time:= <expresin (IN) de num>];
Informacin relacionada
Descrito en:
Apertura y otras operaciones Resumen sobre RAPID - Comunicacin
con canales serie o archivos
Consulte la Gua del usuario - Gestin de errores, Mensajes del sistema y de error para
obtener ms informacin.
Ejemplo
VAR errdomain err_domain;
VAR num err_number;
VAR errtype err_type;
VAR trapdata err_data;
VAR string string1;
VAR string string2;
...
TRAP trap_err
GetTrapData err_data;
ReadErrData err_data, err_domain, err_number,
err_type \Str1:=string1 \Str2:=string2;
ENDTRAP
Argumentos
ReadErrData TrapEvent ErrorDomain ErrorId ErrorType
[\Str1] [\Str2] [\Str3] [\Str4] [\Str5]
TrapEvent Tipo de dato: trapdata
El nmero del error que se ha producido. El nmero del error se devuelve sin el
primer dgito (el dominio del error) y sin los ceros iniciales que s aparecen en el
nmero de error completo. Por ejemplo, el error 10008 Program restarted, se
devuelve como 8.
Manual de referencia de RAPID la parte 1, Instrucciones A-Z 241
ReadErrData
Advanced functions (Funciones avanzadas) Instruccin
Ejecucin de programas
Las variables ErrorDomain, ErrorId, ErrorType y Str1 ... Str5 se actualizan acorde con
el contenido de TrapEvent.
Si hay varios eventos conectados a una misma rutina TRAP, el programa debe
asegurarse de que el evento est relacionado con la monitorizacin de errores. Esto
puede hacerse comprobando que INTNO coincide con el nmero de interrupcin
utilizado en la instruccin IError.
Ejemplo
VAR intnum err_interrupt;
VAR trapdata err_data;
VAR errdomain err_domain;
VAR num err_number;
VAR errtype err_type;
...
CONNECT err_interrupt WITH trap_err;
IError COMMON_ERR, TYPE_ERR, err_interupt;
...
IDelete err_interrupt;
...
TRAP trap_err
GetTrapData err_data;
ReadErrData err_data, err_domain, err_number, err_type;
! Seleccionar el dominio n 1 ... 13
SetGO go_err1, err_domain;
! Seleccionar el error n 1 ...9999
SetGO go_err2, err_number;
ENDTRAP
Limitacin
No es posible obtener informacin sobre los errores internos.
Sintaxis
ReadErrData
[TrapEvent :=] <variable (VAR) de trapdata>,
[ErrorDomain :=] <variable (VAR) de errdomain>,
[ErrorId:=] <variable (VAR) de num>,
[ErrorType :=] <variable (VAR) de errtype>
[\Str1 :=<variable (VAR) de string>]
[\Str2 :=<variable (VAR) de string>]
[\Str3 :=<variable (VAR) de string>]
[\Str4 :=<variable (VAR) de string>]
[\Str5 :=<variable (VAR) de string>];
Informacin relacionada
Descrito en:
Resumen de interrupciones Resumen sobre RAPID -
Interrupciones
Ms informacin sobre la gestin Caractersticas bsicas -
de interrupciones Interrupciones
Dominios de error, constantes predefinidas Tipos de datos - errdomain
Tipos de error, constantes predefinidas Tipos de datos - errtype
Peticin de una interrupcin en caso de error Instrucciones - IError
Obtencin de datos de interrupcin para Instrucciones - GetTrapData
la rutina TRAP actual
Ejemplos
Reset do15;
Reset weld;
Argumentos
Reset Signal
Signal Tipo de dato: signaldo
Ejecucin de programas
El valor real depende de la configuracin de la seal. Si la seal est invertida en los
parmetros del sistema, esta instruccin hace que el canal fsico cambie a 1.
Sintaxis
Reset
[ Signal := ] < variable (VAR) de signaldo > ;
Informacin relacionada
Descrito en:
Activacin de una seal digital de salida Instrucciones - Set
Instrucciones de entrada y salida Resumen sobre RAPID - Seales de
entrada y salida
Funcionalidad general de las entradas y salidas Principios de movimiento y E/S -
Principios de E/S
Configuracin de E/S Parmetros del sistema
Ejemplo
RestoPath;
Ejecucin de programas
La trayectoria de movimiento actual de los ejes del robot y de los ejes externos se
elimina y la trayectoria almacenada anteriormente con la instruccin StorePath se
restablece. Sin embargo, no se produce ningn movimiento hasta que se ejecuta la
instruccin StartMove o se reanuda la ejecucin mediante RETRY en un gestor de
errores.
Ejemplo
ArcL p100, v100, seam1, weld5, weave1, z10, gun1;
...
ERROR
IF ERRNO=AW_WELD_ERR THEN
gun_cleaning;
RETRY;
ENDIF
...
PROC gun_cleaning()
VAR robtarget p1;
StorePath;
p1 := CRobT();
MoveL pclean, v100, fine, gun1;
...
MoveL p1, v100, fine, gun1;
RestoPath;
ENDPROC
Limitaciones
Con la instruccin StorePath slo se almacenan los datos de la trayectoria de
movimiento. Si el usuario desea solicitar movimientos en un nuevo nivel de trayectoria,
es necesario almacenar la posicin de paro directamente despus de que StorePath y
antes de que RestoPath hacen el movimiento hacia la posicin de paro almacenada en
la trayectoria.
Sintaxis
RestoPath;
Informacin relacionada
Descrito en:
Almacenamiento de trayectorias Instrucciones - StorePath
Ms ejemplos Instrucciones - StorePath
Ejemplo
reg2 := reg3/reg4;
.
ERROR
IF ERRNO = ERR_DIVZERO THEN
reg4 := 1;
RETRY;
ENDIF
Se intenta dividir reg3 por reg4. Si reg4 es igual a 0 (lo cual da lugar a una
divisin por cero), se salta al gestor de errores, que inicializa reg4. A
continuacin, se usa la instruccin RETRY para saltar desde el gestor de errores
y se hace otro intento de completar la divisin.
Ejecucin de programas
La ejecucin del programa contina en (y ejecuta de nuevo) la instruccin que provoc
el error.
Gestin de errores
Si se supera el nmero mximo de reintentos (4 reintentos), la ejecucin del programa
se detiene y se genera un mensaje de error. El nmero mximo de reintentos puede
configurarse en los Parmetros del sistema (Otros parmetros del sistema).
Limitaciones
La instruccin slo puede existir en el gestor de errores de la rutina. Si el error se cre
usando una instruccin RAISE, no es posible reanudar la ejecucin del programa con
una instruccin RETRY, debe utilizarse la instruccin TRYNEXT.
Sintaxis
RETRY ;
Informacin relacionada
Descrito en:
Gestores de errores Caractersticas bsicas - Recuperacin
en caso de error
Configuracin del nmero mximo Parmetros del sistema - Otros
de reintentos parmetros del sistema
Continuacin en la instruccin siguiente Instrucciones - TRYNEXT
Ejemplos
errormessage;
Set do1;
.
PROC errormessage()
TPWrite "ERROR";
RETURN;
ENDPROC
Argumentos
RETURN [ Valor de retorno ]
Valor de retorno Tipo de dato: Segn la declaracin
de la funcin
Ejecucin de programas
El resultado de la instruccin RETURN puede variar, en funcin del tipo de rutina en el
que se utiliza:
Sintaxis
(EBNF)
RETURN [ <expresin> ];
Informacin relacionada
Descrito en:
Funciones y procedimientos Caractersticas bsicas - Rutinas
Rutinas TRAP Caractersticas bsicas - Interrupciones
Gestores de errores Caractersticas bsicas - Recuperacin en
caso de error
Ejemplo
Rewind iodev1;
Argumentos
Rewind IODevice
IODevice Tipo de dato: iodev
Ejecucin de programas
El archivo especificado se rebobina hasta el principio.
Ejemplo
! Variable de dispositivo de E/S y de nmero para usarlas conjuntamente con un
archivo binario
VAR iodev dev;
VAR num bindata;
! Abre el archivo binario con el modificador \Bin para un acceso binario de lectura y
escritura
Open "HOME:"\File := "bin_file",dev \Bin;
WriteStrBin dev,"Hello world";
Gestin de errores
Si se produce un error durante el rebobinado, la variable de sistema ERRNO cambia a
ERR_FILEACC. A continuacin, este error puede ser gestionado en el gestor de
errores.
Sintaxis
Rewind
[IODevice :=] <variable (VAR) de iodev>;
Informacin relacionada
Descrito en:
Apertura y otras operaciones con archivos Resumen sobre RAPID -
Comunicacin
Ejemplo
Load "HOME:/PART_B.MOD";
...
Save "PART_B";
Argumentos
Save [\Task] ModuleName [\FilePath] [\File]
[\Task] Tipo de dato: taskid
Existen variables predefinidas con el tipo de dato taskid para todas las tareas de
programa del sistema. La identificacin de la variable ser
nombre_tarea+ID. Por ejemplo, para la tarea MAIN la identificacin de la
tarea es MAINId, para TSK1 es TSK1Id, etc.
Ejecucin de programas
La ejecucin del programa espera a que el mdulo de programa termine de guardarse
antes de continuar en la instruccin siguiente.
Ejemplo
Save "PART_A" \FilePath:="HOME:/DOORDIR/PART_A.MOD";
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.
Gestin de errores
Si no es posible guardar el mdulo de programa porque no hay ningn nombre de
mdulo, ste es desconocido o se trata de un nombre de mdulo ambiguo, la variable
de sistema ERRNO cambia a ERR_MODULE.
Sintaxis
Save
[ \ Task := <variable (VAR) de taskid> , ]
[ ModuleName := ] <expresin (IN) de string>
[ \ FilePath :=<expresin (IN) de string> ]
[ \ File := <expresin (IN) de string>] ;
Informacin relacionada
Descrito en:
Tareas de programa Tipos de datos - taskid
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.
Ejemplos
SearchC di1, sp, cirpoint, p10, v100, probe;
Argumentos
SearchC [ \Stop ] | [ \PStop ] | [ \SStop ] | [ \Sup
] Signal [ \Flanks ] SearchPoint CirPoint ToPoint Speed [ \V ] | [ \T
] Tool [ \WObj ] [ \Corr ]
[ \Stop ] (paro rgido) Tipo de dato: switch
Los bordes positivo y negativo de la seal son vlidos para determinar el xito de
una bsqueda.
La posicin del TCP y de los ejes externos en el momento del disparo de la seal
de bsqueda. La posicin se especifica en el sistema de coordenadas ms externo,
teniendo en cuenta la herramienta especificada, el objeto de trabajo y el sistema
de coordenadas ProgDisp/ExtOffs activo.
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).
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.
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.
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.
Ejecucin de programas
Consulte la instruccin MoveC para obtener ms informacin acerca del movimiento
circular.
El movimiento termina siempre con un punto de paro, lo que implica que el robot se
detiene en el punto de destino.
Cuando se realiza una bsqueda en vuelo, es decir, cuando se utiliza el argumento \Sup,
el movimiento del robot contina siempre hacia el punto de destino programado.
Cuando se realiza una bsqueda con el modificador \Stop, \PStop o \SStop, el
movimiento del robot se detiene cuando se detecta la primera seal.
La instruccin SearchC devuelve la posicin del TCP cuando el valor de la seal digital
cambia al valor solicitado, como se representa en la Figura 26.
Figura 26 Deteccin de seal disparada por flancos (la posicin se almacena slo
cuando la seal cambia por primera vez).
Ejemplo
SearchC \Sup, di1\Flanks, sp, cirpoint, p10, v100, probe;
Limitaciones
Limitaciones generales acorde con la instruccin MoveC.
La instruccin SearchC no debe reanudarse en ningn caso una vez traspasado el punto
de crculo. De lo contrario, el robot no tomar la trayectoria programada
(posicionamiento alrededor de la trayectoria circular en otra direccin, en comparacin
con la programada).
Punto final
Figura 27 Se encuentra una posicin en el lado incorrecto del objeto a causa del uso de
datos de zona incorrectos.
Gestin de errores
Durante las bsquedas, se generan errores en los casos siguientes:
Los errores pueden gestionarse de formas distintas en funcin del modo de ejecucin
seleccionado:
Sintaxis
SearchC
[ \ Stop, ] | [ \ PStop ,] | [ \ SStop , ] | [ \ Sup , ]
[ Signal := ] < variable (VAR) de signaldi >
[\ Flanks],
[ SearchPoint := ] < variable o variable persistente (INOUT) de robtarget > ,
[ CirPoint := ] < expresin (IN) de robtarget > ,
[ ToPoint := ] < expresin (IN) de robtarget > ,
[ Speed := ] < expresin (IN) de speeddata >
[ \ V := < expresin (IN) de num > ]
| [ \ T := < expresin (IN) de num > ] ,
[ Tool := ] < variable persistente (PERS) de tooldata >
[ \ WObj := < variable persistente (PERS) de wobjdata > ]
[ \ Corr ];
Informacin relacionada
Descrito en:
Bsquedas lineales Instrucciones - SearchL
Escritura en una entrada de correccin Instrucciones - CorrWrite
Movimiento circular Principios de movimiento y E/S -
Posicionamiento durante la ejecucin
del programa
Definicin de velocidad Tipos de datos - speeddata
Definicin de herramientas Tipos de datos - tooldata
Definicin de objetos de trabajo Tipos de datos - wobjdata
Utilizacin de gestores de errores Resumen sobre RAPID -
Recuperacin en caso de error
Movimiento en general Principios de movimiento y E/S
Ms ejemplos de bsqueda Instrucciones - SearchL
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.
Ejemplos
SearchL di1, sp, p10, v100, probe;
Argumentos
SearchL [ \Stop ] | [ \PStop ] | [ \SStop ] | [ \Sup ] Signal
[ \Flanks ] SearchPoint ToPoint Speed [ \V ] | [ \T ] Tool [ \WObj ]
[ \Corr ]
[ \Stop ] (paro rgido) Tipo de dato: switch
Los bordes positivo y negativo de la seal son vlidos para determinar el xito de
una bsqueda.
La posicin del TCP y de los ejes externos en el momento del disparo de la seal
de bsqueda. La posicin se especifica en el sistema de coordenadas ms externo,
teniendo en cuenta la herramienta especificada, el objeto de trabajo y el sistema
de coordenadas ProgDisp/ExtOffs activo.
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.
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.
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.
Ejecucin de programas
Consulte la instruccin MoveL para obtener ms informacin acerca del movimiento
lineal.
El movimiento termina siempre con un punto de paro, lo que implica que el robot se
detiene en el punto de destino.
Cuando se realiza una bsqueda en vuelo, es decir, cuando se utiliza el argumento \Sup,
el movimiento del robot contina siempre hacia el punto de destino programado.
Cuando se realiza una bsqueda con el modificador \Stop, \PStop o \SStop, el
movimiento del robot se detiene cuando se detecta la primera seal.
La instruccin SearchL almacena la posicin del TCP cuando el valor de la seal digital
cambia al valor solicitado, como se representa en la Figura 28.
Figura 28 Deteccin de seal disparada por flancos (la posicin se almacena slo
cuando la seal cambia por primera vez).
Ejemplos
SearchL \Sup, di1\Flanks, sp, p10, v100, probe;
Limitaciones
Los datos de zona de la instruccin de posicionamiento que precede a SearchL deben
usarse con cuidado. El comienzo de la bsqueda, es decir, cuando la seal de E/S est
preparada para reaccionar, no es en este caso el punto de destino de la instruccin de
posicionamiento anterior, sino un punto que se encuentra en la trayectoria real del
robot. Las figuras de la Figura 29 a la Figura 31 ilustran ejemplos de lo que puede fallar
cuando se utilizan datos de zona distintos de fine.
Figura 29 Se encuentra una posicin en el lado incorrecto del objeto a causa del uso de
datos de zona incorrectos.
Gestin de errores
Durante las bsquedas, se generan errores en los casos siguientes:
Los errores pueden gestionarse de formas distintas en funcin del modo de ejecucin
seleccionado:
Ejemplo
VAR num fk;
.
MoveL p10, v100, fine, tool1;
SearchL \Stop, di1, sp, p20, v100, tool1;
.
ERROR
IF ERRNO=ERR_WHLSEARCH THEN
MoveL p10, v100, fine, tool1;
RETRY;
ELSEIF ERRNO=ERR_SIGSUPSEARCH THEN
TPWrite La seal de la instruccin SearchL ya est activada!;
TPReadFK fk, Desea intentarlo de nuevo despus de poner a cero
manualmente la seal?,S,,,,NO;
IF fk = 1 THEN
MoveL p10, v100, fine, tool1;
RETRY;
ELSE
Stop;
ENDIF
ENDIF
Sintaxis
SearchL
[ \ Stop, ] | [ \ PStop ,] | [ \ SStop , ] | [ \ Sup , ]
[ Signal := ] < variable (VAR) de signaldi >
[\ Flanks],
[ SearchPoint := ] < variable o variable persistente (INOUT) de robtarget > ,
[ ToPoint := ] < expresin (IN) de robtarget > ,
[ Speed := ] < expresin (IN) de speeddata >
[ \ V := < expresin (IN) de num > ]
| [ \ T := < expresin (IN) de num > ] ,
[ Tool := ] < variable persistente (PERS) de tooldata >
[ \ WObj := < variable persistente (PERS) de wobjdata > ]
[ \ Corr ];
Informacin relacionada
Descrito en:
Bsquedas circulares Instrucciones - SearchC
Escritura en una entrada de correccin Instrucciones - CorrWrite
Movimiento lineal Principios de movimiento y E/S -
Posicionamiento durante la ejecucin
del programa
Definicin de velocidad Tipos de datos - speeddata
Definicin de herramientas Tipos de datos - tooldata
Definicin de objetos de trabajo Tipos de datos - wobjdata
Utilizacin de gestores de errores Resumen sobre RAPID -
Recuperacin en caso de error
Movimiento en general Principios de movimiento y E/S
Ejemplos
Set do15;
Set weldon;
Argumentos
Set Signal
Signal Tipo de dato: signaldo
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.
Sintaxis
Set
[ Signal := ] < variable (VAR) de signaldo > ;
Informacin relacionada
Descrito en:
Cambio de una seal digital de salida a cero Instrucciones - Reset
Cambio del valor de una seal digital de salida Instruccin - SetDO
Instrucciones de entrada y salida Resumen sobre RAPID - Seales
de entrada y salida
Funcionalidad general de las entradas y salidas Principios de movimiento y E/S -
Principios de E/S
Configuracin de E/S Parmetros del sistema
Ejemplo
SetAO ao2, 5.5;
Argumentos
SetAO Signal Value
Signal Tipo de dato: signalao
Ejecucin de programas
Al valor programado se le aplica una escala (acorde con los parmetros del sistema)
antes de enviarlo al canal fsico. Consulte la Figura 32.
MX. DE SEAL
MX. DE PROGRAMA
Valor lgico en el
programa
MN. DE PROGRAMA
MN. DE SEAL
Figura 32 Diagrama de cmo se ajustan los valores de las seales analgicas a una
escala.
Ejemplo
SetAO weldcurr, curr_outp;
Sintaxis
SetAO
[ Signal := ] < variable (VAR) de signalao > ,
[ Value := ] < expresin (IN) de num > ;
Informacin relacionada
Descrito en:
Instrucciones de entrada y salida Resumen sobre RAPID - Seales
de entrada y salida
Funcionalidad general de las entradas y salidas Principios de movimiento y E/S -
Principios de E/S
Configuracin de E/S Parmetros del sistema
Ejemplos
SetDO do15, 1;
Se cambia el valor de la seal weld a high con un retardo de 0,2 seg. Sin embargo,
la ejecucin del programa contina en la instruccin siguiente.
Se cambia la seal do1 a 0 La ejecucin del programa espera hasta que la seal
cambia fsicamente al valor especificado.
Argumentos
SetDO [ \SDelay ]|[ \Sync ] Signal Value
[ \SDelay ] (retardo de seal) Tipo de dato: num
Si se utiliza este argumento, la ejecucin del programa espera hasta que la seal
cambie fsicamente al valor especificado.
0 0
Cualquier valor excepto 0 1
Ejecucin de programas
El valor real depende de la configuracin de la seal. Si la seal est invertida en los
parmetros del sistema, el valor del canal fsico es el opuesto.
Sintaxis
SetDO
[ \ SDelay := < expresin (IN) de num > , ] |[ \ Sync , ]
[ Signal := ] < variable (VAR) de signaldo > ,
[ Value := ] < expresin (IN) de dionum > ;
Informacin relacionada
Descrito en:
Instrucciones de entrada y salida Resumen sobre RAPID - Seales de
entrada y salida
Funcionalidad general de las entradas Principios de movimiento y E/S -
y salidas Principios de E/S
Configuracin de E/S Gua del usuario - Parmetros del
sistema
Ejemplo
SetGO go2, 12;
Se cambia la seal go2 a 12. Si go2 se compone de 4 seales, por ejemplo, las
salidas de la 6 a la 9, las salidas 6 y 7 cambian a cero, mientras que las salidas 8
y 9 cambian a uno.
Se cambia la seal go2 a 10. Si go2 se compone de 4 seales, por ejemplo, las
salidas de la 6 a la 9, las salidas 6 y 8 cambian a cero mientras que las seales 7
y 9 cambian a uno, con un retardo de 0,4 seg. Sin embargo, la ejecucin del
programa contina en la instruccin siguiente.
Argumentos
SetGO [ \SDelay ] Signal Value
[ \SDelay ] (retardo de seal) Tipo de dato: num
Ejecucin de programas
El valor programado se convierte en un nmero binario sin signo. Este nmero binario
se enva al grupo de seales, con el resultado de que se cambian a 0 1 las distintas
seales del grupo. Debido a los retardos internos, el valor de la seal puede permanecer
sin definir durante un breve periodo de tiempo.
Sintaxis
SetDO
[ \ SDelay := < expresin (IN) de num > , ]
[ Signal := ] < variable (VAR) de signalgo > ,
[ Value := ] < expresin (IN) de num > ;
Informacin relacionada
Descrito en:
Otras instrucciones de entrada y salida Resumen sobre RAPID - Seales
de entrada y salida
Funcionalidad general de las entradas y salidas Principios de movimiento y E/S -
Principios de E/S
Configuracin de E/S (parmetros del sistema) Parmetros del sistema
SingArea tambin se usa para definir la interpolacin lineal y circular en los robots con
menos de seis ejes.
Ejemplos
SingArea \Wrist;
Es posible que los robots con menos de seis ejes no puedan alcanzar una
orientacin de herramienta interpolada. Al utilizar SingArea \Wrist, el robot
puede conseguir el movimiento, pero la orientacin de la herramienta cambiar
ligeramente.
SingArea \Off;
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
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.
Sintaxis
SingArea
[ \ Wrist ] | [ \ Off ] ;
Informacin relacionada
Descrito en:
Singularidad Principios de movimiento - Singularidad
Interpolacin Principios de movimiento -
Posicionamiento durante la ejecucin del
programa
SkipWarn hace posible realizar una recuperacin de errores repetitiva en RAPID sin
llenar el registro de servicio con mensajes que slo son de advertencia.
Ejemplo
%"notexistingproc"%;
nextinstruction;
ERROR
IF ERRNO = ERR_REFUNKPRC THEN
SkipWarn;
TRYNEXT;
ENDIF
ENDPROC
Sintaxis
SkipWarn ;
Informacin relacionada
Descrito en:
Recuperacin en caso de error Resumen sobre RAPID -
Recuperacin en caso de error
Caractersticas bsicas -
Recuperacin en caso de error
Nmero de error Tipos de datos - errnum
Ejemplo
SoftAct 3, 20;
Activacin del servo suave en el eje 3 del robot, con un valor de suavidad del
20%.
SoftAct 1, 90 \Ramp:=150;
Activacin del servo suave en el eje 1 del robot, con un valor de suavidad del
90% y un factor de pendiente del 150%.
Activacin del servo suave en el eje 1 para la unidad mecnica orbit1, con un
valor de suavidad del 40% y un factor de pendiente del 120%.
Argumentos
SoftAct [\MechUnit] Axis Softness [\Ramp ]
El nmero del eje del robot o del eje externo que debe funcionar con el servo
suave.
Ejecucin de programas
La suavidad se activa con el valor especificado para el eje actual. El valor de suavidad
es vlido para todos los movimientos hasta que se programa un nuevo valor de suavidad
para el eje actual o hasta que se desactiva mediante una instruccin.
Limitaciones
El servo suave de cualquier eje del robot o eje externo se desactiva siempre que se
produce una cada de alimentacin elctrica. Esta limitacin puede gestionarse en el
programa del usuario cuando se reanuda la ejecucin despus de una cada de
alimentacin.
No se debe activar el mismo eje dos veces, a no ser que exista una instruccin de
movimiento entre las dos activaciones. Por tanto, debe evitarse la secuencia de
programa siguiente. De lo contrario, se producir un salto en el movimiento del robot:
SoftAct n , x;
SoftAct n , y;
(n = eje n del robot, x e y = valores de suavidad)
Sintaxis
SoftAct
[\MechUnit := < variable (VAR) de mecunit> ,]
[Axis := ] < expresin (IN) de num> ,
[Softness := ] < expresin (IN) de num>
[ \Ramp := < expresin (IN) de num> ];
Informacin relacionada
Descrito en:
Comportamiento con el servo suave activado Principios de movimiento y E/S -
Posicionamiento durante la ejecucin
del programa
Ejemplo
SoftDeact;
SoftDeact \Ramp:=150;
Desactiva el servo suave en todos los ejes, con un factor de pendiente del 150%.
Argumentos
SoftDeact [\Ramp ]
Ejecucin de programas
El servo suave se desactiva en todos los ejes del robot y los ejes externos.
Sintaxis
SoftDeact
[ \Ramp := < expresin (IN) de num> ];
Informacin relacionada
Descrito en:
Activacin del servo suave Instrucciones - SoftAct
Ejemplo
SpyStart HOME:/spy.log;
Argumentos
SpyStart File
File Tipo de dato: string
Ejecucin de programas
El archivo especificado se abre para escritura y los datos de tiempo de ejecucin
empiezan a grabarse en el archivo.
Limitaciones
Evite usar el disquete (opcionalmente) para la grabacin, ya que la escritura en el
disquete es muy lenta.
Gestin de errores
Si no es posible abrir el archivo de la instruccin SpyStart, la variable de sistema
ERRNO cambia a ERR_FILEOPEN (consulte Tipos de datos - errnum).
A continuacin, este error puede ser gestionado en el gestor de errores.
Formato de archivo
TASK INSTR IN CODE OUT
----- SYSTEM TRAP ----- significa que el sistema est haciendo algo distinto de la
ejecucin de instrucciones de RAPID.
Sintaxis
SpyStart
[File:=]<expresin (IN) de string>;
Informacin relacionada
Descrito en:
Detencin de la grabacin de los datos Instrucciones - SpyStop
de ejecucin
Esta informacin, que puede resultar til a la hora de optimizar el tiempo de ciclo de
ejecucin, se almacena en un archivo para su anlisis posterior.
Ejemplo
SpyStop;
Ejecucin de programas
La grabacin de los datos de ejecucin se detiene y el archivo especificado por la
instruccin SpyStart anterior se cierra. Si no se ha ejecutado anteriormente la
instruccin SpyStart, la instruccin SpyStop no se tiene en cuenta.
Ejemplos
IF debug = TRUE SpyStart "HOME:/spy.log";
produce_sheets;
IF debug = TRUE SpyStop;
Limitaciones
Evite usar el disquete (opcionalmente) para la grabacin, ya que la escritura en el
disquete es muy lenta.
Sintaxis
SpyStop;
Informacin relacionada
Descrito en:
Inicio de la grabacin de los datos de ejecucin Instrucciones - SpyStart
Modo esttico
Tabla 5 Cmo afectan las distintas operaciones a los programas o mdulos de
sistema cargados en el modo esttico
Modo dinmico
Tabla 6 Cmo afectan las distintas operaciones a los programas o mdulos de sistema
cargados en el modo dinmico
Trasladar el puntero de
Abrir un nuevo programa de
programa a main desde
RAPID
TP
Tanto los mdulos cargados en modo esttico como los cargados en modo dinmico se
descargan al utilizar la instruccin UnLoad.
Ejemplo
VAR loadsession load1;
! Se inicia la carga de un nuevo mdulo de programa PART_B, que contiene la rutina
routine_b,
! en modo dinmico
StartLoad \Dynamic, diskhome \File:=PART_B.MOD, load1;
! Ejecucin en paralelo del mdulo anterior PART_A, que contiene la rutina routine_a
%routine_a%;
! Descarga del mdulo de programa anterior PART_A
UnLoad diskhome \File:=PART_A.MOD;
! Espera hasta que la carga y vinculacin del nuevo mdulo de programa PART_B se
ha completado
WaitLoad load1;
Argumentos
StartLoad [\Dynamic] FilePath [\File] LoadNo
[\Dynamic] Tipo de dato: switch
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.
Ejemplos
StartLoad \Dynamic, HOME:/DOORDIR/DOOR1.MOD, load1;
Lo mismo que en los dos ejemplos anteriores, pero el mdulo se carga en el modo
esttico.
Es lo mismo que:
Gestin de errores
Si la variable especificada en el argumento LoadNo ya se est utilizando, la variable de
sistema ERRNO cambia a ERR_LOADNO_INUSE. A continuacin, este error puede
ser gestionado en el gestor de errores.
Sintaxis
StartLoad
[\Dynamic ,]
[FilePath :=] <expresin (IN) de string>
[\File := <expresin (IN) de string> ] ,
[LoadNo :=] <variable (VAR) de loadsession> ;
Informacin relacionada
Descrito en:
Conexin de un mdulo cargado a una tarea Instrucciones - WaitLoad
Sesin de carga Tipos de datos - loadsession
Carga de un mdulo de programa Instrucciones - Load
Descarga de un mdulo de programa Instrucciones - UnLoad
Cancelacin de la carga de un mdulo Instrucciones - CancelLoad
de programa
Aceptacin de referencias no resueltas Parmetros del sistema - Controlador/
Tareas/ RefBind
Ejemplo
StopMove;
WaitDI ready_input, 1;
StartMove;
Ejecucin de programas
Cualquier proceso asociado al movimiento detenido se reanuda al mismo tiempo que
se reanuda el movimiento.
Gestin de errores
Si el robot est demasiado alejado de la trayectoria (ms de 10 mm o 20 grados) para
realizar el inicio del movimiento interrumpido, la variable de sistema ERRNO cambia
a ERR_PATHDIST.
Sintaxis
StartMove;
Informacin relacionada
Descrito en:
Detencin del movimiento Instrucciones - StopMove
Ms ejemplos Instrucciones - StorePath
La calibracin tambin puede realizarse con un mtodo manual, utilizando el TPU (se
describe en el Manual del usuario - Calibracin).
Descripcin
Para definir el TCP y la rotacin de una herramienta estacionaria, necesita una
herramienta apuntadora mvil montada en el elemento terminal del robot.
Como ayuda para apuntar hacia el eje x y el eje x positivos, puede usarse algn tipo de
herramienta alargadora.
Herramienta apuntadora
Herramienta alargadora
x
XPos
RefTip z
ZPos
Herramienta
estacionaria
Ejemplo
! Creado con el TCP apuntador orientado hacia el sistema de coordenadas de la
! herramienta estacionaria
CONST robtarget pos_tip := [...];
CONST robtarget pos_z := [...];
CONST robtarget pos_x := [...];
Argumentos
SToolRotCalib RefTip ZPos XPos Tool
RefTip Tipo de dato: robtarget
Ejecucin de programas
El sistema calcula y actualiza el TCP (tframe.trans) y la orientacin (tfame.rot) de la
herramienta en los datos especificados tooldata. El clculo se basa en los 3 valores
especificados de robtarget. Los dems datos de tooldata permanecen sin cambios.
Sintaxis
SToolRotCalib
[ RefTip := ] < expresin (IN) de robtarget > ,
[ ZPos := ] < expresin (IN) de robtarget > ,
[ XPos := ] < expresin (IN) de robtarget > ,
[ Tool := ] < variable persistente (PERS) de tooldata > ;
Informacin relacionada
Descrito en:
Calibracin del TCP de una herramienta Instrucciones - MToolTCPCalib
mvil
Calibracin de la rotacin de una herramienta Instrucciones - MToolRotCalib
mvil
Calibracin del TCP de una herramienta Instrucciones - SToolTCPCalib
estacionaria
La calibracin tambin puede realizarse con un mtodo manual, utilizando el TPU (se
describe en el Manual del usuario - Calibracin).
Descripcin
Para definir el TCP de una herramienta estacionaria, necesita una herramienta
apuntadora mvil montada en el elemento terminal del robot.
3 Herramienta apuntadora
1
2 Herramienta
4
estacionaria
Ejemplo
! Creado con el TCP apuntador orientado hacia el TCP estacionario
CONST robtarget p1 := [...];
CONST robtarget p2 := [...];
CONST robtarget p3 := [...];
CONST robtarget p4 := [...];
Argumentos
SToolTCPCalib Pos1 Pos2 Pos3 Pos4 Tool MaxErr MeanErr
Pos1 Tipo de dato: robtarget
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
MToolTCPCalib
[ Pos1 := ] < expresin (IN) de robtarget > ,
[ Pos2 := ] < expresin (IN) de robtarget > ,
[ Pos3 := ] < expresin (IN) de robtarget > ,
[ Pos4 := ] < expresin (IN) de robtarget > ,
[ Tool := ] < variable persistente (PERS) de tooldata > ,
[ MaxErr := ] < variable (VAR) de num > ,
[ MeanErr := ] < variable (VAR) de num > ;
Informacin relacionada
Descrito en:
Calibracin del TCP de una herramienta Instrucciones - MToolTCPCalib
mvil
Calibracin de la rotacin de una herramienta Instrucciones - MToolRotCalib
mvil
Calibracin del TCP y de la rotacin Instrucciones - SToolRotCalib
de una herramienta estacionaria
La ejecucin del programa tambin puede detenerse mediante la instruccin EXIT. Sin
embargo, sta slo debe usarse si la tarea se ha completado o si se produce un error no
recuperable, dado que la ejecucin del programa no puede reanudarse tras usar EXIT.
Ejemplo
TPWrite La lnea al ordenador anfitrin se ha interrumpido;
Stop;
Argumentos
Stop [ \NoRegain ]
[ \NoRegain ] Tipo de dato: switch
Especifica si los ejes del robot y los ejes externos deben recuperar la posicin de
paro la siguiente vez que se reanude el programa en el modo manual. En el modo
automtico, los ejes del robot y los ejes externos recuperan siempre la posicin
de paro.
Si se usa el argumento NoRegain, ni los ejes del robot ni los ejes externos
recuperan la posicin de paro (si han sido alejados de esa posicin).
Si se omite el argumento y los ejes del robot o los ejes externos han sido alejados
de la posicin de paro, el robot muestra una pregunta en la unidad de
programacin. A continuacin, el usuario puede decidir si el robot debe
recuperar la posicin de paro.
Ejecucin de programas
La instruccin detiene la ejecucin del programa tan pronto como los ejes del robot y
los ejes externos alcanzan el punto de destino programado para el movimiento que est
realizando en cada momento. Posteriormente es posible reanudar la ejecucin del
programa a partir de la instruccin siguiente.
Ejemplo
MoveL p1, v500, fine, tool1;
TPWrite Mover el robot a la posicin de la esquina del pal 1;
Stop \NoRegain;
p1_read := CRobT();
MoveL p2, v500, z50, tool1;
Limitaciones
Si esta instruccin va precedida de una instruccin de movimiento, sta ltima debe
programarse con un punto de paro (zonedata fine), no un punto de paso. De lo
contrario, no ser posible reanudar la ejecucin tras una cada de suministro elctrico.
Sintaxis
Stop
[ \ NoRegain ];
Informacin relacionada
Descrito en:
Paro despus de un error no recuperable Instrucciones - EXIT
Finalizacin de la ejecucin del programa Instrucciones - EXIT
Paro de los movimientos del robot nicamente Instrucciones - StopMove
Por ejemplo, esta instruccin puede usarse en una rutina TRAP para parar
temporalmente el robot cuando se produce una interrupcin.
Ejemplo
StopMove;
WaitDI ready_input, 1;
StartMove;
Argumentos
StopMove [\Quick]
[\Quick] Tipo de dato: switch
Ejecucin de programas
Los movimientos de los ejes del robot y de los ejes externos se detienen sin aplicar los
frenos. Cualquier proceso asociado con el movimiento en curso se detiene al mismo
tiempo que se detiene el movimiento.
La ejecucin del programa contina sin esperar a que se detengan los ejes del robot ni
los ejes externos (en reposo).
Ejemplos
VAR intnum intno1;
...
CONNECT intno1 WITH go_to_home_pos;
ISignalDI di1,1,intno1;
TRAP go_to_home_pos
VAR robtarget p10;
StopMove;
StorePath;
p10:=CRobT();
MoveL home,v500,fine,tool1;
WaitDI di1,0;
Move L p10,v500,fine,tool1;
RestoPath;
StartMove;
ENDTRAP
Cuando se asigna el valor 1 a la entrada di1, se activa una interrupcin que activa
a su vez la rutina de interrupcin go_to_home_pos. El movimiento actual se
detiene y el robot pasa a moverse hacia la posicin home. Cuando se cambia a 0
la seal di1, el robot vuelve a la posicin en la cual se produjo la interrupcin y
sigue movindose a lo largo de la trayectoria programada.
VAR intnum intno1;
...
CONNECT intno1 WITH go_to_home_pos;
ISignalDI di1,1,intno1;
TRAP go_to_home_pos ()
VAR robtarget p10;
StorePath;
p10:=CRobT();
MoveL home,v500,fine,tool1;
WaitDI di1,0;
Move L p10,v500,fine,tool1;
RestoPath;
StartMove;
ENDTRAP
Es similar al ejemplo anterior, pero el robot no se mueve hacia la posicin home
hasta que se completa la instruccin de movimiento actual.
Sintaxis
StopMove [\Quick] ;
Informacin relacionada
Descrito en:
Continuacin de un movimiento Instrucciones - StartMove
Almacenamiento y restauracin de Instrucciones - StorePath - RestoPath
la trayectoria
Por ejemplo, esta instruccin puede usarse para ir a una posicin de servicio o limpiar
una pistola cuando se produce un error.
Ejemplo
StorePath;
Ejecucin de programas
Se guarda la trayectoria actual de movimientos de los ejes del robot y los ejes externos.
Despus de esta operacin, es posible iniciar otro movimiento en una rutina TRAP o
un gestor de errores. Tras corregir el motivo del error o de la interrupcin, es posible
restaurar la trayectoria de movimientos guardada.
Ejemplo
TRAP machine_ready
VAR robtarget p1;
StorePath;
p1 := CRobT();
MoveL p100, v100, fine, tool1;
...
MoveL p1, v100, fine, tool1;
RestoPath;
StartMove;
ENDTRAP
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.
Sintaxis
StorePath;
Informacin relacionada
Descrito en:
Restauracin de la trayectoria Instrucciones - RestoPath
Ms ejemplos Instrucciones - RestoPath
Ejemplo
TEST reg1
CASE 1,2,3 :
routine1;
CASE 4 :
routine2;
DEFAULT:
TPWrite "Opcin no vlida";
Stop;
ENDTEST
Argumentos
TEST Dato de prueba {CASE Valor de prueba {, Valor de
prueba} : ...}
[ DEFAULT: ...] ENDTEST
Dato de prueba Tipo de dato: todos
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.
Sintaxis
(EBNF)
TEST <expresin>
{( CASE <valor de prueba> { , <valor de prueba> } :
<lista de instrucciones> ) | <CSE> }
[ DEFAULT : <lista de instrucciones> ]
ENDTEST
Informacin relacionada
Descrito en:
Expresiones Caractersticas bsicas - Expresiones
Slo es posible obtener informacin de las seales de prueba de los ejes externos del
robot. Para usar la seal de prueba con los ejes principales del robot o si necesita usar
seales de prueba no predefinidas, pngase en contacto con el centro ms cercano de
ABB Flexible Automation.
Ejemplo
TestSignDefine 1, resolver_angle, Orbit, 2, 0,1;
Argumentos
TestSignDefine Channel SignalId MechUnit Axis SampleTime
Channel Tipo de dato: num
Tiempo de muestreo en
Resultado de TestSignRead
segundos
Ejecucin de programas
La definicin de la seal de prueba se activa y el sistema de robot empieza a muestrear
la seal de prueba.
- Hasta que se ejecuta una nueva instruccin TestSignDefine para el canal actual
- Hasta que se desactivan todas las seales de prueba con la ejecucin de la
instruccin TestSignReset
- Hasta que todas las seales se desactivan con el arranque en caliente del sistema
Gestin de errores
Si hay algn error en el parmetro MechUnit, el parmetro de sistema ERRNO cambia
a ERR_UNIT_PAR. Si hay algn error en el parmetro Axis, ERRNO cambia a
ERR_AXIS_PAR.
Sintaxis
TestSignDefine
[ Channel := ] < expresin (IN) de num> ,
[ SignalId := ] < expresin (IN) de testsignal> ,
[ MechUnit := ] < variable (VAR) de mecunit> ,
[Axis := ] < expresin (IN) de num> ,
[ SampleTime := ] < expresin (IN) de num > ;
Informacin relacionada
Descrito en:
Seal de prueba Tipos de datos - testsignal
Lectura de una seal de test Funciones - TestSignRead
Puesta a cero de seales de test Instrucciones - TestSignReset
Ejemplo
TestSignReset;
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.
Sintaxis
TestSignReset;
Informacin relacionada
Descrito en:
Definicin de una seal de test Instrucciones - TestSignDefine
Lectura de una seal de test Funciones - TestSignRead
Ejemplo
TPErase;
TPWrite "Ejecucin iniciada";
Ejecucin de programas
Se elimina todo el texto de la pantalla de la unidad de programacin. La prxima vez
que se escribe un texto, ste aparece en la lnea superior de la pantalla.
Sintaxis
TPErase;
Informacin relacionada
Descrito en:
Escritura en la unidad de programacin Resumen sobre RAPID -
Comunicacin
Ejemplo
TPReadFK reg1, Ms?, stEmpty, stEmpty, stEmpty, S, No;
Ms?
S No
Argumentos
TPReadFK Answer Text FK1 FK2 FK3 FK4 FK5 [\MaxTime]
[\DIBreak] [\BreakFlag]
Answer Tipo de dato: num
El texto que debe escribirse como ttulo de la tecla de funcin adecuada (con un
mximo de 7 caracteres). FK1 es la tecla que se encuentra en el extremo
izquierdo.
Para especificar que una tecla de funcin no debe tener un ttulo, se utiliza la
constante de cadena de caracteres predefinida stEmpty para cadenas de caracteres
vacas ().
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.
Ejecucin de programas
El texto de informacin se escribe siempre en una nueva lnea. Si la pantalla est llena
de texto, el cuerpo de texto se mueve previamente una lnea hacia arriba. Las cadenas
que tengan una longitud mayor que la anchura de la unidad de programacin (40
caracteres) se dividen en dos lneas.
Los mensajes se escriben sobre las teclas de funcin adecuadas. Las teclas que no
tienen ningn ttulo se desactivan.
La ejecucin del programa espera hasta que se presiona una de las teclas de funcin
activadas.
Ejemplo
VAR errnum errvar;
...
TPReadFK reg1, Ir a la posicin de servicio?, stEmpty, stEmpty, stEmpty, S,
No \MaxTime:= 600
\DIBreak:= di5\BreakFlag:= errvar;
IF reg1 = 4 o OR errvar = ERR_TP_DIBREAK THEN
MoveL service, v500, fine, tool1;
Stop;
ENDIF
IF errvar = ERR_TP_MAXTIME EXIT;
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.
Datos predefinidos
CONST string stEmpty := ;
La constante predefinida stEmpty debe usarse en el caso de las teclas de funcin que
no tienen ttulos asignados.
El uso de stEmpty en lugar de permite ahorrar aproximadamente 80 bytes con cada
tecla de funcin sin ttulo.
Sintaxis
TPReadFK
[Answer:=] <variable o variable persistente (INOUT) de num>,
[Text:=] <expresin (IN) de string>,
[FK1 :=] <expresin (IN) de string>,
[FK2 :=] <expresin (IN) de string>,
[FK3 :=] <expresin (IN) de string>,
[FK4 :=] <expresin (IN) de string>,
[FK5 :=] <expresin (IN) de string>
[\MaxTime := <expresin (IN) de num>]
[\DIBreak := <variable (VAR) de signaldi>]
[\BreakFlag := <variable o variable persistente (INOUT) de errnum>];
Informacin relacionada
Descrito en:
Escritura y lectura a travs Resumen sobre RAPID - Comunicacin
de la unidad de programacin
Respuesta a travs de la unidad Produccin en curso
de programacin
Ejemplo
TPReadNum reg1, Cuntas unidades es necesario producir?;
Argumentos
TPReadNum Answer String [\MaxTime] [\DIBreak]
[\BreakFlag]
Answer Tipo de dato: num
Ejecucin de programas
El texto de informacin se escribe siempre en una nueva lnea. Si la pantalla est llena
de texto, el cuerpo de texto se mueve previamente una lnea hacia arriba. Las cadenas
que tengan una longitud mayor que la anchura de la unidad de programacin (40
caracteres) se dividen en dos lneas.
La ejecucin del programa espera hasta que se escribe un nmero mediante el teclado
numrico (seguido de Intro u OK).
Ejemplo
TPReadNum reg1, Cuntas unidades es necesario producir?;
FOR i FROM 1 TO reg1 DO
produce_part;
ENDFOR
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.
Sintaxis
TPReadNum
[Answer:=] <variable o variable persistente (INOUT) de num>,
[String:=] <expresin (IN) de string>
[\MaxTime := <expresin (IN) de num>]
[\DIBreak := <variable (VAR) de signaldi>]
[\BreakFlag := <variable o variable persistente (INOUT) de errnum>];
Informacin relacionada
Descrito en:
Escritura y lectura a travs Resumen sobre RAPID - Comunicacin
de la unidad de programacin
Introduccin de un nmero Produccin en curso
en la unidad
Ejemplos de cmo usar los argumentos Instrucciones - TPReadFK
MaxTime, DIBreak y BreakFlag
Ejemplos
TPShow TP_PROGRAM;
TPShow TP_LATEST;
Argumentos
TPShow Window
Window Tipo de dato: tpnum
Datos predefinidos
CONST tpnum TP_PROGRAM := 1;
CONST tpnum TP_LATEST := 2;
CONST tpnum TP_SCREENVIEWER := 3;
Ejecucin de programas
Se activa la ventana de la unidad de programacin que se seleccione.
Sintaxis
TPShow
[Window:=] <expresin (IN) de tpnum> ;
Informacin relacionada
Descrito en:
Comunicacin a travs de Resumen sobre RAPID - Comunicacin
la unidad de programacin
Nmero de ventana de la unidad Tipos de datos - tpnum
de programacin
Ejemplos
TPWrite Ejecucin iniciada;
Argumentos
TPWrite String [\Num] | [\Bool] | [\Pos] | [\Orient]
String Tipo de dato: string
Ejecucin de programas
El texto escrito en la unidad de programacin comienza siempre en una nueva lnea. Si
la pantalla est llena de texto, dicho texto se mueve previamente una lnea hacia arriba.
Las cadenas que tengan una longitud mayor que la anchura de la unidad de
programacin (40 caracteres) se dividen en dos lneas.
Si se usa uno de los argumentos \Num, \Bool, \Pos o \Orient, su valor se convierte en
primer lugar en una cadena de texto, antes de aadirla a la primera cadena. La
conversin del valor a una cadena de texto se realiza de la forma siguiente:
El valor se convierte en una cadena con un formato estndar de RAPID. Esto significa
en principio 6 dgitos significativos. Si la parte decimal es menor que 0,000005 o mayor
que 0,999995, el nmero se redondea a un entero.
Limitaciones
Los argumentos \Num, \Bool, \Pos y \Orient son excluyentes entre s y por tanto no
pueden usarse simultneamente en una misma instruccin.
Sintaxis
TPWrite
[String:=] <expresin (IN) de string>
[\Num:= <expresin (IN) de num> ]
| [\Bool:= <expresin (IN) de bool> ]
| [\Pos:= <expresin (IN) de pos> ]
| [\Orient:= <expresin (IN) de orient> ];
Informacin relacionada
Descrito en:
Borrado y lectura a travs de Resumen sobre RAPID - Comunicacin
la unidad de programacin
Ejemplos
VAR triggdata gunon;
La seal digital de salida gun se activa cuando el TCP del robot atraviesa el punto
central de la trayectoria de esquina del punto p1.
Punto circular p2
Argumentos
TriggC [\Conc] CirPoint ToPoint Speed [ \T
] Trigg_1[ \T2 ] [ \T3 ] [ \T4] [ \T5] [ \T6] Zone [ \Inpos] Tool [
\WObj ] [ \Corr ]
[ \Conc ] (concurrente) Tipo de dato: switch
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).
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).
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.
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.
Los datos de zona del movimiento. Los datos de zona describen el tamao de la
trayectoria de esquina generada.
Ejecucin de programas
Consulte la instruccin MoveC para obtener ms informacin acerca del movimiento
circular.
Durante la ejecucin paso a paso hacia delante, las actividades de E/S se realizan pero
las rutinas de interrupcin no se ejecutan. Durante la ejecucin paso a paso hacia atrs,
no se realiza ninguna actividad de disparo.
Ejemplos
VAR intnum intno1;
VAR triggdata trigg1;
...
CONNECT intno1 WITH trap1;
TriggInt trigg1, 0.1 \Time, intno1;
...
TriggC p1, p2, v500, trigg1, fine, gun1;
TriggC p3, p4, v500, trigg1, fine, gun1;
...
IDelete intno1;
Gestin de errores
Si el resultado del argumento ScaleValue programado para la seal de salida analgica
especificada AOp en alguna de las instrucciones TriggSpeed est fuera del lmite de la
seal analgica que corresponde a la velocidad Speed programada en esta instruccin,
la variable de sistema ERRNO cambia a ERR_AO_LIM.
Limitaciones
Limitaciones generales acorde con la instruccin MoveC.
No se debe iniciar la instruccin TriggC desde el principio con la posicin del robot
ms all del punto de crculo. De lo contrario, el robot no toma la trayectoria
programada (posicionamiento alrededor de la trayectoria circular en otra direccin, en
comparacin con la programada).
Sintaxis
TriggC
[ \ Conc , ]
[ CirPoint := ] < expresin (IN) de robtarget > ,
[ ToPoint := ] < expresin (IN) de robtarget > ,
[ Speed := ] < expresin (IN) de speeddata >
[ \ T := < expresin (IN) de num > ] ,
[Trigg_1 := ] < variable (VAR) de triggdata >
[ \ T2 := < variable (VAR) de triggdata > ]
[ \ T3 := < variable (VAR) de triggdata > ]
[ \ T4 := < variable (VAR) de triggdata > ]
[ \ T5 := < variable (VAR) de triggdata > ]
[ \ T6 := < variable (VAR) de triggdata > ] ,
[Zone := ] < expresin (IN) de zonedata >
[ \ Inpos := < expresin (IN) de stoppointdata > ] ,
[ Tool := ] < variable persistente (PERS) de tooldata >
[ \ WObj := < variable persistente (PERS) de wobjdata > ]
[ \ Corr ];
Informacin relacionada
Descrito en:
Movimiento lineal con disparadores Instrucciones - TriggL
Movimiento de ejes con disparadores Instrucciones - TriggJ
Definicin de disparadores Instrucciones - TriggIO, TriggEquip,
TriggInt o TriggCheckIO
Escritura en una entrada de correccin Instrucciones - CorrWrite
Movimiento circular Principios de movimiento -
Posicionamiento durante la ejecucin
del programa
Definicin de velocidad Tipos de datos - speeddata
Definicin de datos de zona Tipos de datos - zonedata
Definicin de datos de punto de paro Tipos de datos - stoppointdata
Definicin de herramientas Tipos de datos - tooldata
Definicin de objetos de trabajo Tipos de datos - wobjdata
Movimiento en general Principios de movimiento
Ejemplos
VAR triggdata checkgrip;
VAR intnum intno1;
Punto de inicio TriggL p1, v500, checkgrip, z50, grip1; Punto final p1
100 mm
Argumentos
TriggCheckIO TriggData Distance [ \Start ] | [ \Time ]
Signal Relation CheckValue [ \StopMove ] Interrupt
TriggData Tipo de dato: triggdata
Una variable para almacenar el triggdata devuelto por la instruccin. Estos datos
triggdata se utilizan a continuacin en las instrucciones TriggL, TriggC o TriggJ
posteriores.
La posicin fija de E/S basada en tiempo slo puede usarse con tiempos breves
(< 0,5 seg) antes de que el robot alcance el punto final de la instruccin. Consulte
la seccin Limitaciones para obtener ms detalles.
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).
Ejecucin de programas
Cuando se ejecuta la instruccin TriggCheckIO, la condicin de disparo se almacena
en una variable especificada para el argumento TriggData.
A continuacin, cuando se ejecuta una de las instrucciones TriggL, TriggC o TriggJ,
se aplica lo siguiente respecto de las definiciones de TriggCheckIO:
La distancia especificada en el argumento Distance:
Movimiento lineal La distancia en lnea recta
Movimiento circular La longitud del arco del crculo
Movimiento no lineal La longitud de arco aproximada a lo largo de la
trayectoria (para conseguir la exactitud adecuada,
la distancia no debe superar la mitad de la longitud
del arco).
Si la distancia es 0, la seal se
comprueba cuando el TCP se encuentra aqu
Figura 38 Comprobacin de E/S en una posicin fija con una trayectoria de esquina.
La comprobacin de la E/S con una posicin fija se realiza cuando se atraviesa el punto
de inicio (punto final) si la distancia especificada respecto del punto final (punto de
inicio) no se encuentra dentro de la longitud de movimiento de la instruccin actual
(Trigg...).
Cuando el TCP se encuentra en el punto especificado de la trayectoria, se realiza la
comprobacin de E/S siguiente en el sistema:
- Lectura del valor actual de la seal de E/S
- Comparacin del valor ledo con CheckValue, acorde con la relacin
especificada en Relation
- Si la comparacin da como resultado TRUE, no se hace nada ms
- Si la comparacin da como resultado FALSE, se hace lo siguiente:
- Si est presente el parmetro opcional \StopMove, el robot se detiene en la
trayectoria lo antes posible
- Se genera y se ejecuta la rutina TRAP especificada
Manual de referencia de RAPID la parte 1, Instrucciones A-Z 347
TriggCheckIO
Advanced functions (Funciones avanzadas) Instruccin
Ejemplos
VAR triggdata checkgate;
VAR intnum gateclosed;
CONNECT gateclosed WITH waitgate;
TriggCheckIO checkgate, 150, gatedi, EQ, 1 \StopMove, gateclosed;
TriggL p1, v600, checkgate, z50, grip1;
....
TRAP waitgate
! Se registra informacin
...
WaitDI gatedi,1;
StartMove;
ENDTRAP
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.
Las comprobaciones de E/S basadas en tiempo slo pueden especificarse a partir del
punto final del movimiento. Este tiempo no puede superar el tiempo de frenado actual
del robot, que tiene un mximo aproximado de 0,5 seg (valores tpicos a una velocidad
de 500 mm/seg: 150 mseg en el caso del IRB2400 y de 250 mseg en el caso del
IRB6400). Si el tiempo especificado es mayor que el tiempo de frenado actual, la
comprobacin de E/S se genera en cualquier caso, pero no hasta que se inicia el frenado
(ms tarde de lo especificado). Sin embargo, la totalidad del tiempo de movimiento
para el movimiento actual puede utilizarse durante los movimientos pequeos y
rpidos.
Sintaxis
TriggCheckIO
[ TriggData := ] < variable (VAR) de triggdata> ,
[ Distance := ] < expresin (IN) de num>
[ \ Start ] | [ \ Time ] ,
[ Signal := ] < variable (VAR) de anytype> ,
[ Relation := ] < expresin (IN) de opnum> ,
[ CheckValue := ] < expresin (IN) de num>
[ \ StopMove] ,
[ Interrupt := ] < variable(VAR) de intnum> ;
Informacin relacionada
Descrito en:
Utilizacin de disparos Instrucciones - TriggL, TriggC, TriggJ
Definicin de eventos de E/S basados Instruccin - TriggIO,TriggEquip
en la posicin y el tiempo
Definicin de interrupciones basadas Instruccin - TriggInt
en la posicin
Ms ejemplos Tipos de datos - triggdata
Definicin de operadores de comparacin Tipos de datos - opnum
Ejemplos
VAR triggdata gunon;
Punto de inicio TriggL p1, v500, gunon, z50, gun1; Punto final p1
10 mm
Argumentos
TriggEquip TriggData Distance [ \Start ] EquipLag [ \DOp ] |
[ \GOp ] | [\AOp ] | [\ProcID ] SetValue [ \Inhib ]
TriggData Tipo de dato: triggdata
Una variable para almacenar el triggdata devuelto por la instruccin. Estos datos
triggdata se utilizan a continuacin en las instrucciones TriggL, TriggC o TriggJ
posteriores.
Distancia Distancia
\Start
+ - + -
EquipLag
(La identidad del proceso IPM que debe recibir el evento. El selector se
especifica en el argumento SetValue.)
El valor deseado para la seal de salida (dentro del rango permitido para la seal
actual).
Ejecucin de programas
Cuando se ejecuta la instruccin TriggEquip, la condicin de disparo se almacena en
una variable especificada para el argumento TriggData.
Figura 41 E/S en una posicin y un tiempo fijos con una trayectoria de esquina.
Ejemplos
VAR triggdata glueflow;
La seal analgica de salida glue cambia al valor 5,3 cuando el TCP atraviesa un
punto situado a 1 mm despus del punto de inicio p1, con una compensacin de
retardo del equipo de 0,05 seg.
...
TriggL p3, v500, glueflow, z50, tool1;
La seal analgica de salida glue cambia de nuevo al valor 5,3 cuando el TCP
atraviesa un punto situado a 1 mm despus del punto de inicio p2.
Gestin de errores
Si el argumento SetValue programado para la seal analgica de salida AOp est fuera
de lmites, la variable de sistema ERRNO cambia a ERR_AO_LIM. El error puede ser
gestionado en el gestor de errores.
Limitaciones
Los eventos de E/S basados en una distancia (sin el argumento \Time) se han diseado
para los puntos de paso (trayectorias de esquina). Los eventos de E/S basados en
distancia, con puntos de paro, presentan una exactitud menor que la especificada a
continuacin.
En cuanto a la exactitud de los eventos de E/S con distancia y con puntos de paso, se
aplica lo siguiente a la hora de activar una salida digital a una distancia especfica del
punto de inicio o del punto final con las instrucciones TriggL o TriggC:
Los eventos de E/S basados en tiempo (con el argumento \Time) se han diseado para
los puntos de paro. Los eventos de E/S basados en tiempo, con puntos de paso,
presentan una exactitud menor que la especificada a continuacin. Los eventos de E/S
basados en tiempo slo pueden especificarse a partir del punto final del movimiento.
Este tiempo no puede superar el tiempo de frenado actual del robot, que tiene un
mximo aproximado de 0,5 seg (valores tpicos a una velocidad de 500 mm/seg: 150
mseg en el caso del IRB2400 y de 250 mseg en el caso del IRB6400). Si el tiempo
especificado es mayor que el tiempo de frenado actual, el evento se genera en cualquier
caso, pero no hasta que se inicia el frenado (ms tarde de lo especificado). Sin
embargo, la totalidad del tiempo de movimiento para el movimiento actual puede
utilizarse durante los movimientos pequeos y rpidos.
Sintaxis
TriggEquip
[ TriggData := ] < variable (VAR) de triggdata> ,
[ Distance := ] < expresin (IN) de num>
[ \ Start ] ,
[ EquipLag := ] < expresin (IN) de num>
[ \ DOp := < variable (VAR) de signaldo> ]
| [ \ GOp := < variable (VAR) de signalgo> ]
| [ \ AOp := < variable (VAR) de signalao> ]
| [ \ ProcID := < expresin (IN) de num> ] ,
[ SetValue := ] < expresin (IN) de num>
[ \ Inhib := < variable persistente (PERS) de bool> ] ,
Informacin relacionada
Descrito en:
Utilizacin de disparos Instrucciones - TriggL, TriggC, TriggJ
Definicin de otros tipos de disparos Instrucciones - TriggIO, TriggInt
Ms ejemplos Tipos de datos - triggdata
Establecimiento de E/S Instrucciones - SetDO, SetGO, SetAO
Configuracin del tiempo preestablecido Gua del usuario - Parmetros del
para eventos sistema - Manipulador
Ejemplos
VAR intnum intno1;
VAR triggdata trigg1;
...
CONNECT intno1 WITH trap1;
TriggInt trigg1, 5, intno1;
...
TriggL p1, v500, trigg1, z50, gun1;
TriggL p2, v500, trigg1, z50, gun1;
...
IDelete intno1;
Punto de inicio TriggL p1, v500, trigg1, z50, gun1; Punto final p1 o p2
5 mm
Se genera la interrupcin
cuando el TCP se encuentra aqu
Figura 42 Ejemplo de interrupcin relacionada con una posicin.
Argumentos
TriggInt TriggData Distance [ \Start ] | [ \Time ]
Interrupt
TriggData Tipo de dato: triggdata
Una variable para almacenar el triggdata devuelto por la instruccin. Estos datos
triggdata se utilizan a continuacin en las instrucciones TriggL, TriggC o TriggJ
posteriores.
Las interrupciones relacionadas con una posicin y basadas en tiempo slo puede
usarse con tiempos breves (< 0,5 seg) antes de que el robot alcance el punto final
de la instruccin. Consulte la seccin Limitaciones para obtener ms detalles.
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.
Si la distancia es 0, la interrupcin se
genera cuando el TCP se encuentra aqu
Ejemplos
En este ejemplo se describe la programacin de las instrucciones que interactan para
generar interrupciones dependientes de una posicin:
IDelete 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.
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) de triggdata> ,
[ Distance := ] < expresin (IN) de num>
[ \ Start ] | [ \ Time ] ,
[ Interrupt := ] < variable (VAR) de intnum > ;
Informacin relacionada
Descrito en:
Utilizacin de disparos Instrucciones - TriggL, TriggC, TriggJ
Definicin de E/S relacionadas con Instrucciones - TriggIO, TriggEquip
una posicin
Ms ejemplos Tipos de datos - triggdata
Interrupciones Caractersticas bsicas -
Interrupciones
Ejemplos
VAR triggdata gunon;
Punto de inicio TriggL p1, v500, gunon, z50, gun1; Punto final p1
10 mm
Argumentos
TriggIO TriggData Distance [ \Start ] | [ \Time ]
[ \DOp ] | [ \GOp ] | [\AOp ] | [\ProcID ] SetValue
[ \DODelay ]
TriggData Tipo de dato: triggdata
Una variable para almacenar el triggdata devuelto por la instruccin. Estos datos
triggdata se utilizan a continuacin en las instrucciones TriggL, TriggC o TriggJ
posteriores.
La posicin fija de E/S basada en tiempo slo puede usarse con tiempos breves
(< 0,5 seg) antes de que el robot alcance el punto final de la instruccin. Consulte
la seccin Limitaciones para obtener ms detalles.
(La identidad del proceso IPM que debe recibir el evento. El selector se
especifica en el argumento SetValue.)
El valor deseado para la seal de salida (dentro del rango permitido para la seal
actual).
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.
Ejecucin de programas
Cuando se ejecuta la instruccin TriggIO, la condicin de disparo se almacena en una
variable especificada para el argumento TriggData.
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...).
Ejemplos
VAR triggdata glueflow;
La seal analgica de salida glue cambia al valor 5,3 cuando el punto de trabajo
atraviesa un punto situado a 1 mm despus del punto de inicio p1.
...
TriggL p3, v500, glueflow, z50, tool1;
La seal analgica de salida glue cambia de nuevo al valor 5,3 cuando el punto
de trabajo atraviesa un punto situado a 1 mm despus del punto de inicio p2.
Gestin de errores
Si el argumento SetValue programado para la seal analgica de salida AOp est fuera
de lmites, la variable de sistema ERRNO cambia a ERR_AO_LIM. El error puede ser
gestionado en el gestor de errores.
Limitaciones
Los eventos de E/S basados en una distancia (sin el argumento \Time) se han diseado
para los puntos de paso (trayectorias de esquina). Los eventos de E/S basados en
distancia, con puntos de paro, presentan una exactitud menor que la especificada a
continuacin.
Los eventos de E/S basados en tiempo (con el argumento \Time) se han diseado para
los puntos de paro. Los eventos de E/S basados en tiempo, con puntos de paso,
presentan una exactitud menor que la especificada a continuacin. Los eventos de E/S
basados en tiempo slo pueden especificarse a partir del punto final del movimiento.
Este tiempo no puede superar el tiempo de frenado actual del robot, que tiene un
mximo aproximado de 0,5 seg (valores tpicos a una velocidad de 500 mm/seg: 150
mseg en el caso del IRB2400 y de 250 mseg en el caso del IRB6400). Si el tiempo
especificado es mayor que el tiempo de frenado actual, el evento se genera en cualquier
caso, pero no hasta que se inicia el frenado (ms tarde de lo especificado). Sin embargo,
la totalidad del tiempo de movimiento para el movimiento actual puede utilizarse
durante los movimientos pequeos y rpidos.
Sintaxis
TriggIO
[ TriggData := ] < variable (VAR) de triggdata> ,
[ Distance := ] < expresin (IN) de num>
[ \ Start ] | [ \ Time ]
[ \ DOp := < variable (VAR) de signaldo> ]
| [ \ GOp := < variable (VAR) de signalgo> ]
| [ \ AOp := < variable (VAR) de signalao> ]
| [ \ ProcID := < expresin (IN) de num> ] ,
[ SetValue := ] < expresin (IN) de num>
[ \ DODelay := < expresin (IN) de num> ] ;
Informacin relacionada
Descrito en:
Utilizacin de disparos Instrucciones - TriggL, TriggC, TriggJ
Definicin de eventos de E/S basados Instruccin - TriggEquip
en la posicin y el tiempo
Definicin de interrupciones basadas Instruccin - TriggInt
en la posicin
Ms ejemplos Tipos de datos - triggdata
Establecimiento de E/S Instrucciones - SetDO, SetGO, SetAO
Ejemplos
VAR triggdata gunon;
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.
Argumentos
TriggJ [\Conc] ToPoint Speed [ \T ] Trigg_1 [ \T2 ] [ \T3 ]
[ \T4 ] [ \T5 ] [ \T6 ] Zone [ \Inpos ] Tool [ \WObj ]
[ \Conc ] (concurrente) Tipo de dato: switch
Si se omite este argumento, la instruccin posterior slo se ejecuta una vez que
el robot ha alcanzado el punto de paro especificado, o 100 mseg antes de la zona
especificada.
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).
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.
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.
Los datos de zona del movimiento. Los datos de zona describen el tamao de la
trayectoria de esquina generada.
Ejecucin de programas
Consulte la instruccin MoveJ para obtener ms informacin acerca del movimiento
de ejes.
Durante la ejecucin paso a paso hacia delante, las actividades de E/S se realizan pero
las rutinas de interrupcin no se ejecutan. Durante la ejecucin paso a paso hacia atrs,
no se realiza ninguna actividad de disparo.
Ejemplos
VAR intnum intno1;
VAR triggdata trigg1;
...
CONNECT intno1 WITH trap1;
TriggInt trigg1, 0.1 \Time, intno1;
...
TriggJ p1, v500, trigg1, fine, gun1;
TriggJ p2, v500, trigg1, fine, gun1;
...
IDelete intno1;
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.
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.
Sintaxis
TriggJ
[ \ Conc , ]
[ ToPoint := ] < expresin (IN) de robtarget > ,
[ Speed := ] < expresin (IN) de speeddata >
[ \ T := < expresin (IN) de num > ] ,
[Trigg_1 := ] < variable (VAR) de triggdata >
[ \ T2 := < variable (VAR) de triggdata > ]
[ \ T3 := < variable (VAR) de triggdata > ]
[ \ T4 := < variable (VAR) de triggdata > ]
[ \ T5 := < variable (VAR) de triggdata > ]
[ \ T6 := < variable (VAR) de triggdata > ] ,
[Zone := ] < expresin (IN) de zonedata >
[ \ Inpos := < expresin (IN) de stoppointdata > ] ,
[ Tool := ] < variable persistente (PERS) de tooldata >
[ \ WObj := < variable persistente (PERS) de wobjdata > ] ;
Informacin relacionada
Descrito en:
Movimiento lineal con disparadores Instrucciones - TriggL
Movimiento circular con disparadores Instrucciones - TriggC
Definicin de disparadores Instrucciones - TriggIO, TriggEquip,
TriggInt o TriggCheckIO
Movimiento de ejes Principios de movimiento -
Posicionamiento durante la ejecucin
del programa
Definicin de velocidad Tipos de datos - speeddata
Definicin de datos de zona Tipos de datos - zonedata
Definicin de datos de punto de paro Tipos de datos - stoppointdata
Definicin de herramientas Tipos de datos - tooldata
Definicin de objetos de trabajo Tipos de datos - wobjdata
Movimiento en general Principios de movimiento
Ejemplos
VAR triggdata gunon;
La seal digital de salida gun se activa cuando el TCP del robot atraviesa el punto
central de la trayectoria de esquina del punto p1.
Punto de inicio p1 TriggL p2, v500, gunon, fine, gun1; Punto final p2
Argumentos
TriggL [\Conc] ToPoint Speed [ \T ] Trigg_1 [ \T2 ] [ \T3 ]
[ \T4 ] [ \T5 ] [ \T6 ] Zone [ \Inpos ] Tool [ \WObj ] [ \Corr ]
[ \Conc ] (concurrente) Tipo de dato: switch
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).
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.
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.
Los datos de zona del movimiento. Los datos de zona describen el tamao de la
trayectoria de esquina generada.
Ejecucin de programas
Consulte la instruccin MoveL para obtener ms informacin acerca del movimiento
lineal.
Durante la ejecucin paso a paso hacia delante, las actividades de E/S se realizan pero
las rutinas de interrupcin no se ejecutan. Durante la ejecucin paso a paso hacia atrs,
no se realiza ninguna actividad de disparo.
Manual de referencia de RAPID la parte 1, Instrucciones A-Z 377
TriggL
Advanced functions (Funciones avanzadas) Instruccin
Ejemplos
VAR intnum intno1;
VAR triggdata trigg1;
...
CONNECT intno1 WITH trap1;
TriggInt trigg1, 0.1 \Time, intno1;
...
TriggL p1, v500, trigg1, fine, gun1;
TriggL p2, v500, trigg1, fine, gun1;
...
IDelete intno1;
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.
Limitaciones
Si el punto de inicio actual se desva del habitual, de forma que la longitud de
posicionamiento total de la instruccin TriggL es ms corta de lo habitual (es decir, al
principio de TriggL con la posicin del robot en el punto final), puede ocurrir que se
cumplan varias de las condiciones de disparo, o incluso todas ellas, inmediatamente y
en una misma posicin. En estos casos, la secuencia en la que se realizan las actividades
de disparo no estar definida. La lgica de programa del programa del usuario no puede
basarse en una secuencia normal de actividades de disparo para un movimiento
incompleto.
Sintaxis
TriggL
[ \ Conc , ]
[ ToPoint := ] < expresin (IN) de robtarget > ,
[ Speed := ] < expresin (IN) de speeddata >
[ \ T := < expresin (IN) de num > ] ,
[Trigg_1 := ] < variable (VAR) de triggdata >
[ \ T2 := < variable (VAR) de triggdata > ]
[ \ T3 := < variable (VAR) de triggdata > ]
[ \ T4 := < variable (VAR) de triggdata > ]
[ \ T5 := < variable (VAR) de triggdata > ]
[ \ T6 := < variable (VAR) de triggdata > ] ,
[Zone := ] < expresin (IN) de zonedata >
[ \ Inpos := < expresin (IN) de stoppointdata > ] ,
[ Tool := ] < variable persistente (PERS) de tooldata >
[ \ WObj := < variable persistente (PERS) de wobjdata > ]
[ \ Corr ];
Informacin relacionada
Descrito en:
Movimiento circular con disparadores Instrucciones - TriggC
Movimiento de ejes con disparadores Instrucciones - TriggJ
Definicin de disparadores Instrucciones - TriggIO, TriggEquip,
TriggInt o TriggCheckIO
Escritura en una entrada de correccin Instrucciones - CorrWrite
Movimiento lineal Principios de movimiento -
Posicionamiento durante la ejecucin
del programa
Definicin de velocidad Tipos de datos - speeddata
Definicin de datos de zona Tipos de datos - zonedata
Definicin de datos de punto de paro Tipos de datos - stoppointdata
Definicin de herramientas Tipos de datos - tooldata
Definicin de objetos de trabajo Tipos de datos - wobjdata
Movimiento en general Principios de movimiento
Ejemplo
reg2 := reg3/reg4;
.
ERROR
IF ERRNO = ERR_DIVZERO THEN
reg2 := 0;
TRYNEXT;
ENDIF
Se intenta dividir reg3 por reg4. Si reg4 es igual a 0 (divisin por cero), se salta
al gestor de errores, en el que se asigna 0 a reg2 0. A continuacin, la instruccin
TRYNEXT se usa para seguir con la instruccin siguiente.
Ejecucin de programas
La ejecucin del programa contina en la instruccin siguiente a la instruccin que
provoc el error.
Limitaciones
La instruccin slo puede existir en el gestor de errores de la rutina.
Sintaxis
TRYNEXT;
Informacin relacionada
Descrito en:
Gestores de errores Caractersticas bsicas - Recuperacin
en caso de error
Ejemplo
TuneReset;
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:
Sintaxis
TuneReset ;
Informacin relacionada
Descrito en:
Ajuste de servos Instrucciones - TuneServo
Nota. Para obtener el ajuste ptimo, resulta esencial que se utilicen datos de carga
correctos.
Comprubelo antes de usar TuneServo.
Normalmente, los valores de ajuste ptimos suelen diferir de un robot a otro. El ajuste
ptimo tambin puede cambiar con el paso del tiempo.
En el caso de los robots que funcionan a velocidades bajas, TuneServo puede usarse
para mejorar la exactitud de la trayectoria, mediante:
Descripcin
Tune_df
Siempre existe un valor de ajuste ptimo, que puede variar en funcin de la posicin y
la longitud del movimiento. Este valor ptimo puede determinarse cambiando el ajuste
en pequeos pasos (del 1% al 2%) en los ejes que presentan este comportamiento no
deseado. Normalmente, el ajuste ptimo se encontrar dentro del rango del 70% al
130%. Un valor de ajuste demasiado bajo o demasiado alto puede tener un efecto
negativo y puede perjudicar considerablemente a los movimientos.
IRB 6400, en una aplicacin de servicio de prensa (carga extendida y flexible), ejes del
4 al 6: Reduzca el valor de ajuste del eje de mueca actual hasta que el movimiento sea
aceptable. No se observarn cambios en el movimiento hasta que se est alcanzando el
valor ptimo. Un valor bajo afectar considerablemente al movimiento. Valor de ajuste
tpico: 25%.
IRB 6400, partes superiores del rea de trabajo. El eje 1 puede optimizarse con
frecuencia con valor de ajuste del 85% al 95%.
IRB 6400, movimiento corto (< 80 mm). El eje 1 puede optimizarse con frecuencia con
valor de ajuste del 94% al 98%.
IRB 2400 con movimiento sobre un track. En algunos casos, es posible optimizar los
ejes del 2 al 3 con un valor de ajuste del 110% al 130%. El movimiento a lo largo del
track puede requerir un valor de ajuste distinto en comparacin con el movimiento en
ngulos rectos respecto del track.
Tune_dg
El ajuste de tune_dg puede realizarse en pasos grandes del valor de ajuste (por ejemplo
50%, 100%, 200%, 400%).
Tune_dh
El valor de ajuste debe ser siempre inferior a 100. El uso de tune_dh aumenta la
desviacin de la trayectoria y tambin suele aumentar el tiempo de ciclo.
Ejemplo:
IRB6400 con una carga flexible de gran tamao que vibra cuando el robot se ha
detenido. Utilice tune_dh con el valor de ajuste 15.
Tune_dh slo debe ejecutarse en un nico eje. Todos los ejes de la misma unidad
mecnica obtienen automticamente el mismo valor de ajuste.
Tune_di
Tune_di slo debe ejecutarse en un nico eje. Todos los ejes de la misma unidad
mecnica obtienen automticamente el mismo valor de ajuste.
Tune_dk, Tune_dl
Slo para uso interno de ABB. No utilice estos tipos de ajuste. Un uso incorrecto
puede dar lugar a movimientos de oscilacin o pares que pueden causar daos en
el robot.
En el caso de los ejes del robot, estos tipos de ajuste tienen otro significado y pueden
usarse para reducir los errores de trayectoria a baja velocidad (< 500 mm/seg).
Valores recomendados: tune_kv del 100% al 180%, tune_ti del 50% al 100%. No debe
utilizar Tune_kp con los ejes del robot. El uso de valores demasiado altos o demasiado
bajos para tune_kv/tune_ti causarn vibraciones u oscilaciones. Tenga cuidado si
intenta superar estos valores recomendados. Haga los cambios en pasos pequeos y
evite la oscilacin de los motores.
Ajuste siempre un eje cada vez. Cambie los valores de ajuste en pequeos pasos.
Intente mejorar la trayectoria en el punto en que ese eje concreto cambia de direccin
de movimiento o en el punto en que se acelera o decelera.
No utilice nunca estos tipos de ajuste a altas velocidades ni cuando se haya conseguido
la exactitud necesaria en la trayectoria.
Estos tipos de ajuste pueden usarse para reducir los errores de trayectoria del robot que
se deban a la friccin y a los movimientos no deseados que se producen a baja
velocidad (de 10 a 200 mm/seg). Estos errores de trayectoria aparecen cuando un eje
del robot cambia de sentido de movimiento. Para activar la compensacin de friccin
para un eje, cambie a TRUE el parmetro de sistema Friccin ffw on (tema:
Manipulador, tipo: Parmetros de control).
El ajuste de Nivel friccin ffw (con tune_fric_lev) en cada eje del robot puede aumentar
considerablemente la exactitud de la trayectoria del robot en el rango de velocidad de
20 a 100 mm/seg. Sin embargo, en robots grandes (especialmente en el caso de la
familia IRB6400) el efecto ser mnimo dado que en estos robots dominan otros
mtodos de seguimiento de errores.
Los valores finales de ajuste pueden transferirse a los parmetros del sistema. Ejemplo:
Cambie el valor de Nivel friccin ffw a 1,5 y el valor de ajuste al 100% (el valor
predeterminado), para conseguir el valor equivalente.
Argumentos
TuneServo MecUnit Axis TuneValue [\Type]
El tipo de ajuste del servo. Los tipos disponibles son TUNE_DF, TUNE_KP,
TUNE_KV, TUNE_TI, TUNE_FRIC_LEV, TUNE_FRIC_RAMP, TUNE_DG,
TUNE_DH, TUNE_DI. Los tipos TUNE_DK y TUNE_DL son slo para uso
interno de ABB.
Estos tipos estn predefinidos en el sistema mediante constantes.
Ejemplo
TuneServo MHA160R1, 1, 110 \Type:= TUNE_KP;
Activacin del tipo de ajuste TUNE_KP con un valor de ajuste del 110% en el eje
1 de la unidad mecnica MHA160R1.
Ejecucin de programas
El tipo de ajuste especificado y el valor de ajuste se activan para el eje especificado.
Este valor se aplica a todos los movimientos hasta que se programa un nuevo valor para
el eje actual o hasta que se restablecen los tipos y valores de ajuste de todos los ejes
mediante la instruccin TuneReset.
Los valores de ajuste predeterminados del servo de todos los ejes se ajustan
automticamente mediante la ejecucin de la instruccin TuneReset en los casos
siguientes:
- En los arranques en fro
- Cuando se carga un nuevo programa
- Cuando se inicia la ejecucin del programa desde el principio
Limitaciones
Cualquier ajuste de servo activo se devuelve siempre a los valores predeterminados en
caso de una cada de alimentacin.
Esta limitacin puede gestionarse en el programa del usuario al reanudar la ejecucin
despus de una cada de alimentacin.
Sintaxis
TuneServo
[MecUnit := ] < variable (VAR) de mecunit> ,
[Axis := ] < expresin (IN) de num> ,
[TuneValue := ] < expresin (IN) de num>
[\ Type := <expresin (IN) de tunetype>];
Informacin relacionada
Descrito en:
Otros parmetros de movimiento Resumen sobre RAPID - Parmetros
de movimiento
Tipos de ajuste de servo Tipos de datos - tunetype
Restablecimiento de todos los ajustes de servo Instrucciones - TuneReset
Ajuste de los ejes externos Parmetros del sistema - Manipulador
Compensacin de friccin Parmetros del sistema - Manipulador
390 Manual de referencia de RAPID la parte 1, Instrucciones A-Z
UnLoad
Instruccin
Ejemplo
UnLoad diskhome \File:=PART_A.MOD;
Argumentos
UnLoad [\Save] FilePath [\File]
[\Save] Tipo de dato: switch
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.
Ejemplos
UnLoad "HOME:/DOORDIR/DOOR1.MOD";
Limitaciones
No se permite descargar mdulos de programa que se estn ejecutando.
Las rutinas TRAP, los eventos de E/S del sistema y otras tareas de programa no pueden
ejecutarse durante la descarga.
Gestin de errores
Si no es posible descargar el archivo que se indica en la instruccin UnLoad debido a
que se est ejecutando el mdulo o a que se indica una ruta incorrecta (por ejemplo
cuando no se ha cargado el mdulo con Load o StartLoad), la variable de sistema
ERRNO cambia a ERR_UNLOAD. A continuacin, este error puede ser gestionado
en el gestor de errores.
Sintaxis
UnLoad
[\Save ,]
[FilePath :=] <expresin (IN) de string>
[\File:= <expresin (IN) de string>];
Informacin relacionada
Descrito en:
Carga de un mdulo de programa Instrucciones - Load
Instrucciones - StartLoad-WaitLoad
Aceptacin de referencias no resueltas Parmetros de sistema - Controlador,
Parmetros de sistema - Tareas,
Parmetros de sistema - RefBind
Ejemplo
WaitDI di4, 1;
WaitDI grip_status, 0;
Argumentos
WaitDI Signal Value [\MaxTime] [\TimeFlag]
Signal Tipo de dato: signaldi
El nombre de la seal.
Ejecucin de programas
Si el valor de la seal es correcto cuando se ejecuta la instruccin, el programa
sencillamente contina con la instruccin siguiente.
Sintaxis
WaitDI
[ Signal := ] < variable (VAR) de signaldi > ,
[ Value := ] < expresin (IN) de dionum >
[\MaxTime :=<expresin (IN) de num>]
[\TimeFlag:=<variable (VAR) de bool>] ;
Informacin relacionada
Descrito en:
Espera hasta que se cumple una condicin Instrucciones - WaitUntil
Espera durante un periodo determinado Instrucciones - WaitTime
Ejemplo
WaitDO do4, 1;
WaitDO grip_status, 0;
Argumentos
WaitDO Signal Value [\MaxTime] [\TimeFlag]
Signal Tipo de dato: signaldo
El nombre de la seal.
Ejecucin de programas
Si el valor de la seal es correcto cuando se ejecuta la instruccin, el programa
sencillamente contina con la instruccin siguiente.
Sintaxis
WaitDO
[ Signal := ] < variable (VAR) de signaldo > ,
[ Value := ] < expresin (IN) de dionum >
[\MaxTime :=<expresin (IN) de num>]
[\TimeFlag:=<variable (VAR) de bool>] ;
Informacin relacionada
Descrito en:
Espera hasta que se cumple una condicin Instrucciones - WaitUntil
Espera durante un periodo determinado Instrucciones - WaitTime
Esta instruccin tambin puede combinarse con la funcin que descarga otro mdulo
de programa, para reducir al mnimo el nmero de vnculos (1 en lugar de 2).
Ejemplo
VAR loadsession load1;
...
StartLoad "HOME:/PART_A.MOD", load1;
MoveL p10, v1000, z50, tool1 \WObj:=wobj1;
MoveL p20, v1000, z50, tool1 \WObj:=wobj1;
MoveL p30, v1000, z50, tool1 \WObj:=wobj1;
MoveL p40, v1000, z50, tool1 \WObj:=wobj1;
WaitLoad load1;
%"routine_x"%;
UnLoad "HOME:/PART_A.MOD";
Argumentos
WaitLoad [\UnloadPath] [\UnloadFile] LoadNo
[\UnloadPath] Tipo de dato: string
Ejecucin de programas
A continuacin, la instruccin WaitLoad espera primero a que se complete la carga , si
no se completado an, y despus el mdulo ser vinculado e inicializado. La
inicializacin del mdulo cargado devuelve todas las variables del nivel de mdulo a
sus valores iniciales.
Ejemplos
StartLoad "HOME:/DOORDIR/DOOR2.MOD", load1;
...
WaitLoad \UnloadPath:="HOME:/DOORDIR/DOOR1.MOD", load1;
Gestin de errores
Si no es posible encontrar el archivo especificado en la instruccin StartLoad, la
variable de sistema ERRNO cambia a ERR_FILNOTFND en el momento de la
ejecucin de WaitLoad.
Recuerde que no se permite usar RETRY para la recuperacin de errores generados por
WaitLoad.
Sintaxis
WaitLoad
[ [ \ UnloadPath := <expresin (IN) de string> ]
[ \ UnloadFile := <expresin (IN) de string> ] , ]
[LoadNo :=] <variable (VAR) de loadsession> ;
Informacin relacionada
Carga de mdulos de programa durante Instrucciones - StartLoad
la ejecucin
Sesin de carga Tipos de datos - loadsession
Carga de un mdulo de programa Instrucciones - Load
Descarga de un mdulo de programa Instrucciones - UnLoad
Cancelacin de la carga de un mdulo Instrucciones - CancelLoad
de programa
Aceptacin de referencias no resueltas Parmetros del sistema - Controlador/
Tareas/ RefBind
Ejemplo
WaitTime 0.5;
Argumentos
WaitTime [\InPos] Time
[\InPos] Tipo de dato: switch
Si se usa este argumento, los ejes del robot y los ejes externos deben estar
completamente parados antes de que empiece a contar el tiempo de espera.
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.
Ejemplo
WaitTime \InPos,0;
La ejecucin del programa espera hasta que los ejes del robot y los ejes externos
se hayan detenido completamente.
Limitaciones
Si se usa el argumento \Inpos y la instruccin aparece precedida de una instruccin de
movimiento, dicha instruccin de movimiento debe programarse con un punto de paro
(zonedata fine), no un punto de paso. De lo contrario, no ser posible reanudar la
ejecucin en caso de una cada de alimentacin.
Sintaxis
WaitTime
[\InPos,]
[Time :=] <expresin (IN) de num>;
Informacin relacionada
Descrito en:
Espera hasta que se cumple una condicin Instrucciones - WaitUntil
Espera hasta que se activa o desactiva una E/S Instrucciones - WaitDI
Ejemplo
WaitUntil di4 = 1;
Argumentos
WaitUntil [\InPos] Cond [\MaxTime] [\TimeFlag]
[\InPos] Tipo de dato: switch
Si se usa este argumento, los ejes del robot y los ejes externos deben detener su
movimiento antes de que comience a evaluarse la condicin.
Ejecucin de programas
Si no se cumple la condicin programada al ejecutar una instruccin WaitUntil, la
condicin se comprueba de nuevo cada 100 mseg.
Ejemplos
VAR bool timeout;
WaitUntil start_input = 1 AND grip_status = 1\MaxTime := 60
\TimeFlag := timeout;
IF timeout THEN
TPWrite "No se ha recibido ninguna orden de inicio en el tiempo especificado.";
ELSE
start_next_cycle;
ENDIF
La ejecucin del programa espera hasta que el robot se ha detenido y hasta que
se activa la entrada di4.
Limitacin
Si se usa el argumento \Inpos y la instruccin aparece precedida de una instruccin de
movimiento, dicha instruccin de movimiento debe programarse con un punto de paro
(zonedata fine), no un punto de paso. De lo contrario, no ser posible reanudar la
ejecucin en caso de una cada de alimentacin.
Sintaxis
WaitUntil
[\InPos,]
[Cond :=] <expresin (IN) de bool>
[\MaxTime :=<expresin (IN) de num>]
[\TimeFlag:=<variable (VAR) de bool>] ;
Informacin relacionada
Descrito en:
Espera hasta que se activa o desactiva Instrucciones - WaitDI
una entrada
Espera durante un tiempo determinado Instrucciones - WaitTime
Expresiones Caractersticas bsicas - Expresiones
Ejemplo
VelSet 50, 800;
Todas las velocidades programadas se reducen hasta el 50% del valor indicado
en la instruccin. Por otro lado, no se permite que la velocidad del TCP exceda
los 800 mm/seg.
Argumentos
VelSet Override Max
Override Tipo de dato: num
Ejecucin de programas
La velocidad programada de todas las instrucciones de posicionamiento posteriores se
ve afectada hasta que se ejecuta la instruccin VelSet.
Los valores predeterminados de Override y Max son del 100% y de vmax.v_tcp mm/
seg *) respectivamente. Estos valores se establecen automticamente en los casos
siguientes:
*) Velocidad del TCP mxima para el tipo de robot utilizado y los valores normales
prcticos para el TCP.
La funcin MaxRobSpeed de RAPID devuelve el mismo valor.
Ejemplo
VelSet 50, 800;
MoveL p1, v1000, z10, tool1;
MoveL p2, v2000, z10, tool1;
MoveL p3, v1000\T:=5, z10, tool1;
Limitaciones
La velocidad mxima no se tiene en cuenta cuando se especifica un tiempo en la
instruccin de posicionamiento.
Sintaxis
VelSet
[ Override := ] < expresin (IN) de num > ,
[ Max := ] < expresin (IN) de num > ;
Informacin relacionada
Descrito en:
Definicin de velocidad Tipos de datos - speeddata
Velocidad mxima del TCP para el robot actual Funcin - MaxRobSpeed
Instrucciones de posicionamiento Resumen sobre RAPID -
Movimiento
Ejemplo
WHILE reg1 < reg2 DO
...
reg1 := reg1 + 1;
ENDWHILE
Repite las instrucciones que se encuentran dentro del bloque WHILE siempre y
cuando reg1 < reg2.
Argumentos
WHILE Condicin DO ... ENDWHILE
Condicin Tipo de dato: bool
La condicin cuya evaluacin debe dar como resultado TRUE para que se
ejecuten las instrucciones que se encuentran dentro del bloque WHILE.
Ejecucin de programas
1. Se evala la expresin de la condicin. Si la evaluacin de la expresin da como
resultado TRUE, se ejecutan las instrucciones que se encuentran dentro del bloque
WHILE.
2. A continuacin, la expresin de la condicin se evala de nuevo y, si el resultado de
la evaluacin es TRUE, se ejecutan de nuevo las instrucciones del bloque WHILE.
3. Este proceso contina hasta que el resultado de la evaluacin de la expresin d
como resultado FALSE.
En ese momento, la iteracin se termina y la ejecucin del programa contina en la
instruccin que sigue al bloque WHILE.
Si el resultado de la evaluacin de la expresin da como resultado FALSE desde el
principio, no se llegan a ejecutar las instrucciones y el control del programa se
transfiere inmediatamente a la instruccin que sigue al bloque WHILE.
Comentarios
Si es posible determinar el nmero de repeticiones, puede usarse la instruccin FOR.
Sintaxis
(EBNF)
WHILE <expresin condicional> DO
<lista de instrucciones>
ENDWHILE
Informacin relacionada
Descrito en:
Expresiones Caractersticas bsicas - Expresiones
Repetir un nmero determinado de veces Instrucciones - FOR
Ejemplo
WorldAccLim \On := 3.5;
WorldAccLim \Off;
Argumentos
WorldAccLim [\On] | [\Off]
[\On] Tipo de dato: num
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.
- Segn WorldAccLim
- Segn AccSet
- Segn PathAccLim
Limitaciones
Slo puede usarse junto con el tipo de robot IRB5400-04 con movimiento sobre track.
Gestin de errores
Si el argumento On recibe un valor demasiado bajo, la variable de sistema ERRNO
cambia a ERR_ACC_TOO_LOW. A continuacin, este error puede ser gestionado en
el gestor de errores.
Sintaxis
WorldAccLim
[\On := <expresin (IN) de num >] | [\Off ];
Informacin relacionada
Descrito en:
Instrucciones de posicionamiento Resumen sobre RAPID - Movimiento
Datos de parmetros de movimiento Tipos de datos - motsetdata
Reduccin de la aceleracin Instrucciones - AccSet
Limitacin de la aceleracin a lo largo Instrucciones - PathAccLim
de la trayectoria
Ejemplos
Write logfile, "Ejecucin iniciada";
Argumentos
Write IODevice String [\Num] | [\Bool] | [\Pos] | [\Orient]
[\NoNewLine]
IODevice Tipo de dato: iodev
El texto a escribir.
Omite el carcter de salto de lnea que suele indicar el final del texto.
Ejecucin de programas
La cadena de texto se escribe en un archivo o un canal serie especificado. Si no se usa
el argumento \NoNewLine, tambin se escribe un carcter de salto de lnea.
Si se usa uno de los argumentos \Num, \Bool, \Pos o \Orient, su valor se convierte en
primer lugar en una cadena de texto, antes de aadirla a la primera cadena. La
conversin del valor a una cadena de texto se realiza de la forma siguiente:
El valor se convierte en una cadena con un formato estndar de RAPID. Esto significa
en principio 6 dgitos significativos. Si la parte decimal es menor que 0,000005 o mayor
que 0,999995, el nmero se redondea a un entero.
Ejemplo
VAR iodev printer;
.
Open "com2:", printer\Write;
WHILE DInput(stopprod)=0 DO
produce_part;
Write printer, "Pieza producida="\Num:=reg1\NoNewLine;
Write printer, " "\NoNewLine;
Write printer, CTime();
ENDWHILE
Close printer;
Con cada ciclo, se enva a una impresora una lnea que contiene el nmero de la
pieza producida y la hora. La impresora est conectada al canal serie com2:. El
mensaje impreso puede tener el aspecto siguiente:
Limitaciones
Los argumentos \Num, \Bool, \Pos y \Orient son excluyentes entre s y por tanto no
pueden usarse simultneamente en una misma instruccin.
Esta instruccin slo puede usarse con canales serie o archivos que hayan sido abiertos
para escritura.
Gestin de errores
Si se produce un error durante la escritura, la variable de sistema ERRNO cambia a
ERR_FILEACC. A continuacin, este error puede ser gestionado en el gestor de
errores.
Sintaxis
Write
[IODevice:=] <variable (VAR) de iodev>,
[String:=] <expresin (IN) de string>
[\Num:= <expresin (IN) de num> ]
| [\Bool:= <expresin (IN) de bool> ]
| [\Pos:= <expresin (IN) de pos> ]
| [\Orient:= <expresin (IN) de orient> ]
[\NoNewLine];
Informacin relacionada
Descrito en:
Apertura de un archivo o canal serie Resumen sobre RAPID -
Comunicacin
Ejemplo
VAR iodev channel2;
VAR orient quat1 := [1, 0, 0, 0];
...
Open "com2:", channel2 \Bin;
WriteAnyBin channel2, quat1;
El dato de orientacin quat1 se escribe en el canal al que se hace referencia con
channel2.
Argumentos
WriteAnyBin IODevice Data
IODevice Tipo de dato: iodev
El nombre (la referencia) del canal serie o el archivo binario que debe usarse con
la operacin de escritura.
Data Tipo de dato: ANYTYPE
La variable de tipo VAR o PERS que contiene la informacin que se desea
escribir.
Ejecucin de programas
Se escriben en el canal serie o el archivo binario especificado el nmero de bytes
necesario para los datos especificados.
Limitaciones
Esta instruccin slo puede usarse con canales serie o archivos que hayan sido abiertos
para escritura.
Los datos que se desea escribir con esta instruccin deben tener un tipo de dato de valor
atomic, string o record. No se permite el uso de tipos de datos de semivalor ni sin
valor.
No se permite el uso de datos de matriz.
Manual de referencia de RAPID la parte 1, Instrucciones A-Z 419
WriteAnyBin
Advanced functions (Funciones avanzadas) Instruccin
Gestin de errores
Si se produce un error durante la escritura, la variable de sistema ERRNO cambia a
ERR_FILEACC. A continuacin, este error puede ser gestionado en el gestor de
errores.
Ejemplo
VAR iodev channel;
VAR num input;
VAR robtarget cur_robt;
Close channel;
Sintaxis
WriteAnyBin
[IODevice:=] <variable (VAR) de iodev>,
[Data:=] <variable o variable persistente (INOUT) de ANYTYPE>;
Informacin relacionada
Descrito en:
Apertura y otras operaciones con Resumen sobre RAPID - Comunicacin
canales serie o archivos
Lectura de datos de un canal serie binario Funciones - ReadAnyBin
o archivos binarios
Ejemplo
WriteBin channel2, text_buffer, 10;
Argumentos
WriteBin IODevice Buffer NChar
IODevice Tipo de dato: iodev
La lista (matriz) que contiene los nmeros (caracteres) que se desean escribir.
Ejecucin de programas
Se escribe en el canal serie la cantidad especificada de nmeros (caracteres) de la lista.
Limitaciones
Esta instruccin slo puede usarse con canales serie que hayan sido abiertos para
lectura y escritura binaria.
Gestin de errores
Si se produce un error durante la escritura, la variable de sistema ERRNO cambia a
ERR_FILEACC. A continuacin, este error puede ser gestionado en el gestor de
errores.
Ejemplo
VAR iodev channel;
VAR num out_buffer{20};
VAR num input;
VAR num nchar;
Open "com2:", channel\Bin;
Sintaxis
WriteBin
[IODevice:=] <variable (VAR) de iodev>,
[Buffer:=] <matriz {*} (IN) de num>,
[NChar:=] <expresin (IN) de num>;
Informacin relacionada
Descrito en:
Apertura y otras operaciones con canales serie Resumen sobre RAPID -
Comunicacin
Conversin de una cadena de caracteres a datos de byte Funciones - StrToByte
Datos de byte Tipos de datos - byte
Ejemplo
WriteStrBin channel2, "Hola mundo\0A";
Argumentos
WriteStrBin IODevice Str
IODevice Tipo de dato: iodev
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.
Ejemplo
VAR iodev channel;
VAR num input;
Open "com2:", channel\Bin;
Close channel;
Se escribe la cadena de texto Hola mundo (con los caracteres de control asociados
en formato hexadecimal) en un canal serie binario.
Sintaxis
WriteStrBin
[IODevice:=] <variable (VAR) de iodev>,
[Str:=] <expresin (IN) de string>;
Informacin relacionada
Descrito en:
Apertura y otras operaciones con canales serie Resumen sobre RAPID -
Comunicacin
Ejemplo
.
corner2
Z
Y Prisma
corner1
X Mnimo 10 mm
Sistema de coordenadas mundo
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 queda fuera del prisma (el volumen inverso).
Una variable para el almacenamiento del volumen definido (datos privados del
sistema).
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).
Sintaxis
WZBoxDef
[\Inside] | [\Outside] ,
[Shape:=]<variable (VAR) de shapedata>,
[LowPoint:=]<expresin (IN) de pos>,
[HighPoint:=]<expresin (IN) de pos>;
Informacin relacionada
Descrito en:
Zonas mundo Principios de movimiento y E/S -
Zonas mundo
Forma de las zonas mundo Tipos de datos - shapedata
Definicin de zonas mundo esfricas Instrucciones - WZSphDef
Definicin de zonas mundo cilndricas Instrucciones - WZCylDef
Definicin de una zona mundo para Instruccin - WZHomeJointDef
las posiciones iniciales de los ejes
Definicin de una zona mundo para Instruccin - WZLimJointDef
las posiciones lmite de los ejes
Activacin de la supervisin de lmites Instrucciones - WZLimSup
de las zonas mundo
Activacin de salidas digitales Instrucciones - WZDOSet
basadas en zonas mundo
Ejemplo
R2 (Mnimo 5 mm)
H2 (Mnimo 10 mm)
Z
Y
C2
X
Sistema de coordenadas mundo
Argumentos
WZCylDef [\Inside] | [\Outside] Shape CentrePoint Radius Height
\Inside Tipo de dato: switch
Define el volumen que queda fuera del cilindro (el volumen inverso).
Una variable para el almacenamiento del volumen definido (datos privados del
sistema).
Ejecucin de programas
La definicin del cilindro se almacena en la variable de tipo shapedata (el argumento
Shape), para su uso futuro en instrucciones WZLimSup o WZDOSet.
Limitaciones
Si el robot se usa para apuntar hacia fuera de CentrePoint, el objeto de trabajo wobj0
debe estar activo (se usa como argumento el componente trans de robtarget, por
ejemplo, p1.trans).
Sintaxis
WZCylDef
[\Inside] | [\Outside] ,
[Shape:=]<variable (VAR) de shapedata>,
[CentrePoint:=]<expresin (IN) de pos>,
[Radius:=]<expresin (IN) de num>,
[Height:=]<expresin (IN) de num>;
Informacin relacionada
Descrito en:
Zonas mundo Principios de movimiento y E/S -
Zonas mundo
Forma de las zonas mundo Tipos de datos - shapedata
Definicin de zonas mundo en forma Instrucciones - WZBoxDef
de prisma
Definicin de zonas mundo esfricas Instrucciones - WZSphDef
Definicin de una zona mundo para Instruccin - WZHomeJointDef
las posiciones iniciales de los ejes
Definicin de una zona mundo para Instruccin - WZLimJointDef
las posiciones lmite de los ejes
Activacin de la supervisin de lmites Instrucciones - WZLimSup
de las zonas mundo
Activacin de salidas digitales basadas Instrucciones - WZDOSet
en zonas mundo
Ejemplo
VAR wztemporary wzone;
...
PROC ...
WZLimSup \Temp, wzone, volume;
MoveL p_pick, v500, z40, tool1;
WZDisable wzone;
MoveL p_place, v200, z30, tool1;
ENDPROC
Al moverse hacia p_pick, se comprueba la posicin del TCP del robot para que
no entre dentro del volumen wzone especificado. Esta supervisin no se realiza
cuando se va hacia p_place.
Argumentos
WZDisable WorldZone
WorldZone Tipo de dato: wztemporary
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 o variable persistente (INOUT) de wztemporary>;
Informacin relacionada
Descrito en:
Zonas mundo Principios de movimiento y E/S -
Zonas mundo
Forma de las zonas mundo Tipos de datos - shapedata
Datos de zona mundo temporal Tipos de datos - wztemporary
Activacin de la supervisin de lmites Instrucciones - WZLimSup
de las zonas mundo
Activacin de salidas digitales basadas Instrucciones - WZDOSet
en zonas mundo
Activacin de zonas mundo Instrucciones - WZEnable
Eliminacin de zonas mundo Instrucciones - WZFree
Despus de la ejecucin de esta instruccin, cuando el TCP del robot o los ejes del
robot o los ejes externos (la zona de los ejes) se encuentra dentro de la zona mundo
definida o se est acercando a ella, se establece una seal digital de salida con el valor
especificado.
Ejemplo
VAR wztemporary service;
PROC zone_output()
VAR shapedata volume;
CONST pos p_service:=[500,500,700];
...
WZSphDef \Inside, volume, p_service, 50;
WZDOSet \Temp, service \Inside, volume, do_service, 1;
ENDPROC
Argumentos
WZDOSet [\Temp] | [\Stat] WorldZone [\Inside] | [\Before] Shape
Signal SetValue
\Temp (temporal) Tipo de dato: switch
La seal digital de salida se activa cuando el TCP del robot se encuentra dentro
del volumen definido.
La seal digital de salida se activa antes de que el TCP del robot alcance el
volumen definido (lo antes posible antes del volumen).
Si se utiliza una zona mundo estacionaria, la seal debe estar protegida contra
escritura frente al acceso del usuario (RAPID, TP). Cambie Acceso = Sistema
para la seal en Parmetros sistema.
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).
Ejemplo
VAR wztemporary home;
VAR wztemporary service;
PERS wztemporary equip1:=[0];
PROC main()
...
! Definicin de todas las zonas mundo temporales
zone_output;
...
! equip1 en el rea de trabajo del robot
WZEnable equip1;
...
! equip1 fuera del rea de trabajo del robot
WZDisable equip1;
...
! Ya no se usa equip1
WZFree equip1;
...
ENDPROC
PROC zone_output()
VAR shapedata volume;
CONST pos p_home:=[800,0,800];
CONST pos p_service:=[800,800,800];
CONST pos p_equip1:=[-800,-800,0];
...
WZSphDef \Inside, volume, p_home, 50;
WZDOSet \Temp, home \Inside, volume, do_home, 1;
WZSphDef \Inside, volume, p_service, 50;
WZDOSet \Temp, service \Inside, volume, do_service, 1;
WZCylDef \Inside, volume, p_equip1, 300, 1000;
WZLimSup \Temp, equip1, volume;
! equip1 fuera del rea de trabajo del robot
WZDisable equip1;
ENDPROC
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.
Sintaxis
WZDOSet
(\Temp) | (\Stat) ,
[WorldZone:=]<variable o variable persistente (INOUT) de wztemporary>
(\Inside) | (\Before) ,
[Shape:=]<variable (VAR) de shapedata>,
[Signal:=]<variable (VAR) de signaldo>,
[SetValue:=]<expresin (IN) de dionum>;
Informacin relacionada
Descrito en:
Zonas mundo Principios de movimiento y E/S -
Zonas mundo
Forma de las zonas mundo Tipos de datos - shapedata
Zona mundo temporal Tipos de datos - wztemporary
Zona mundo estacionaria Tipos de datos - wzstationary
Definicin de zonas mundo en forma Instrucciones - WZBoxDef
de prisma recto
Definicin de zonas mundo esfricas Instrucciones - WZSphDef
Definicin de zonas mundo cilndricas Instrucciones - WZCylDef
Activacin de la supervisin de lmites Instrucciones - WZLimSup
de las zonas mundo
Modo de acceso a seales Gua del usuario - Parmetros de
sistema Seales de E/S
Ejemplo
VAR wztemporary wzone;
...
PROC ...
WZLimSup \Temp, wzone, volume;
MoveL p_pick, v500, z40, tool1;
WZDisable wzone;
MoveL p_place, v200, z30, tool1;
WZEnable wzone;
MoveL p_home, v200, z30, tool1;
ENDPROC
Al moverse hacia p_pick, se comprueba la posicin del TCP del robot para que
no entre dentro del volumen wzone especificado. Esta supervisin no se realiza
cuando se va hacia p_place, pero se reactiva antes del movimiento hacia p_home
Argumentos
WZEnable WorldZone
WorldZone Tipo de dato: wztemporary
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 o variable persistente (INOUT) de wztemporary>;
Informacin relacionada
Descrito en:
Zonas mundo Principios de movimiento y E/S -
Zonas mundo
Forma de las zonas mundo Tipos de datos - shapedata
Datos de zona mundo temporal Tipos de datos - wztemporary
Activacin de la supervisin de lmites Instrucciones - WZLimSup
de las zonas mundo
Activacin de salidas digitales basadas Instrucciones - WZDOSet
en zonas mundo
Desactivacin de zonas mundo Instrucciones - WZDisable
Eliminacin de zonas mundo Instrucciones - WZFree
Ejemplo
VAR wztemporary wzone;
...
PROC ...
WZLimSup \Temp, wzone, volume;
MoveL p_pick, v500, z40, tool1;
WZDisable wzone;
MoveL p_place, v200, z30, tool1;
WZEnable wzone;
MoveL p_home, v200, z30, tool1;
WZFree wzone;
ENDPROC
Al moverse hacia p_pick, se comprueba la posicin del TCP del robot para que
no entre dentro del volumen wzone especificado. Esta supervisin no se realiza
cuando se va hacia p_place, pero se reactiva antes del movimiento hacia p_home.
Cuando se alcanza esta posicin, se elimina la definicin de zona mundo.
Argumentos
WZFree WorldZone
WorldZone Tipo de dato: wztemporary
Una variable o una variable persistente de tipo wztemporary que contiene la
identidad de la zona mundo que debe eliminarse.
Ejecucin de programas
La zona mundo temporal se desactiva primero, tras lo cual su definicin se elimina.
Despus de eliminar una zona mundo temporal, no es posible reactivarla ni
desactivarla.
Limitaciones
Slo es posible desactivar, reactivar o eliminar las zonas mundo temporales. Las zonas
mundo estacionarias estn siempre activadas.
Sintaxis
WZFree
[WorldZone:=]<variable o variable persistente (INOUT) de wztemporary>;
Informacin relacionada
Descrito en:
Zonas mundo Principios de movimiento y E/S -
Zonas mundo
Forma de las zonas mundo Tipos de datos - shapedata
Datos de zona mundo temporal Tipos de datos - wztemporary
Activacin de la supervisin de Instrucciones - WZLimSup
lmites de las zonas mundo
Activacin de salidas digitales Instrucciones - WZDOSet
basadas en zonas mundo
Desactivacin de zonas mundo Instrucciones - WZDisable
Activacin de zonas mundo Instrucciones - WZEnable
Ejemplo
VAR wzstationary home;
...
PROC power_on()
VAR shapedata joint_space;
CONST jointtarget home_pos := [ [ 0, 0, 0, 0, 0, -45],
[ 0, 9E9, 9E9, 9E9, 9E9, 9E9] ];
CONST jointtarget delta_pos := [ [ 2, 2, 2, 2, 2, 2],
[ 5, 9E9, 9E9, 9E9, 9E9, 9E9] ];
...
WZHomeJointDef \Inside, joint_space, home_pos, delta_pos;
WZDOSet \Stat, home \Inside, joint_space, do_home, 1;
ENDPROC
Argumentos
WZHomeJointDef [\Inside] | [\Outside] Shape
MiddleJointVal DeltaJointVal
\Inside Tipo de dato: switch
Una variable para el almacenamiento del espacio de ejes (datos privados del
sistema).
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
MiddleJointVal
_ DeltaJointVal
+
ngulo de brazo
MiddleJointVal
DeltaJointVal
DeltaJointVal
_ +
Posicin de brazo
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.
Limitaciones
Slo las unidades mecnicas activas y sus ejes activos en el momento de la activacin
de la zona mundo (con la instruccin WZDOSet o WZLimSup), se incluyen en la
supervisin de la posicin INICIO respecto de la limitacin del rea de trabajo.
Adems, para que sean supervisados, la unidad mecnica y sus ejes deben seguir
estando activos durante el movimiento desde el programa o mediante un movimiento
especial.
Por ejemplo, si un eje con supervisin est fuera de la posicin de ejes INICIO pero
est desactivado, esto no impide que la seal digital de salida de la posicin de ejes
INICIO se establezca si todos los dems ejes activos con supervisin de espacio se
encuentran dentro de la posicin de ejes INICIO. Cuando se activa de nuevo el eje, ste
se incluye en la supervisin y el sistema de robot se encuentra fuera de la posicin de
ejes INICIO. La salida digital se restablece.
Sintaxis
WZHomeJointDef
[\Inside] | [\Outside],
[Shape:=]<variable (VAR) de shapedata>,
[MiddleJointVal :=]<expresin (IN) de jointtarget>,
[DeltaJointVal :=]<expresin (IN) de jointtarget>;
Informacin relacionada
Descrito en:
Zonas mundo Principios de movimiento y E/S -
Zonas mundo
Forma de las zonas mundo Tipos de datos - shapedata
Definicin de zonas mundo en forma Instrucciones - WZBoxDef
de prisma
Definicin de zonas mundo cilndricas Instrucciones - WZCylDef
Definicin de zonas mundo esfricas Instrucciones - WZSphDef
Definicin de una zona mundo para Instruccin - WZLimJointDef
las posiciones lmite de los ejes
Activacin de la supervisin de lmites Instrucciones - WZLimSup
de las zonas mundo
Activacin de salidas digitales basadas Instrucciones - WZDOSet
en zonas mundo
Con WZLimJointDef es posible limitar el rea de trabajo de cada eje del robot y cada
eje externo en el programa RAPID, aparte de la limitacin que puede realizar con
Parmetros sistema/Manipulador/Brazo/irb_.../Lmite sup. eje ... Lmite inf. eje.
Ejemplo
VAR wzstationary work_limit;
...
PROC power_on()
VAR shapedata joint_space;
CONST jointtarget low_pos := [ [ -90, 9E9, 9E9, 9E9, 9E9, 9E9],
[ -1000, 9E9, 9E9, 9E9, 9E9,
CONST jointtarget high_pos := [ [ 90, 9E9, 9E9, 9E9,9E9, 9E9],
[ 9E9, 9E9, 9E9, 9E9, 9E9, 9E9] ];
...
WZLimJointDef \Outside, joint_space, low_pos, high_pos;
WZLimSup \Stat, work_limit, joint_space;
ENDPROC
Argumentos
WZLimJointDef [\Inside] | [\Outside] Shape
LowJointVal HighJointVal
\Inside Tipo de dato: switch
Una variable para el almacenamiento del espacio de ejes (datos privados del
sistema).
La posicin en coordenadas de ejes para el lmite inferior del espacio de ejes que
se desea definir.
Especifica la posicin para cada eje del robot y cada eje externo (grados en el
caso de los ejes de rotacin y mm en el caso de los ejes lineales). Especifica la
posicin en posiciones absolutas de los ejes (no dentro del sistema de
coordenadas de desplazamiento EOffsSet-EOffsOn en el caso de los ejes
externos).
El valor 9E9 en un eje significa que el eje no se supervisar en cuanto al lmite
inferior. Los ejes externos no activos tambin usan 9E9 en el momento de la
programacin.
La posicin en coordenadas de ejes para el lmite superior del espacio de ejes que
se desea definir.
Especifica la posicin para cada eje del robot y cada eje externo (grados en el
caso de los ejes de rotacin y mm en el caso de los ejes lineales). Especifica la
posicin en posiciones absolutas de los ejes (no dentro del sistema de
coordenadas de desplazamiento EOffsSet-EOffsOn en el caso de los ejes
externos).
El valor 9E9 en un eje significa que el eje no se supervisar en cuanto al lmite
superior. Los ejes externos no activos tambin usan 9E9 en el momento de la
programacin.
(El valor de HighJointVal-LowJointVal de cada eje debe ser superior a 0 para todos los
ejes cuyos lmites inferior y superior se desea supervisar.
LowJointVal
_
+ HighJointVal
ngulo de brazo
LowJointVal HighJointVal
_ +
Posicin de brazo
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 interior de ejes (argumento \Inside) junto con
WZLimSup, se detiene el robot tan pronto como el ltimo de los ejes activos con
supervisin de espacio de ejes alcanza el espacio de ejes. Esto significa que uno o
varios ejes, pero no todos los ejes activos y supervisados, se encontrarn dentro del
espacio de ejes en un momento determinado.
Limitaciones
Slo las unidades mecnicas activas y sus ejes activos en el momento de la activacin
de la zona mundo (con la instruccin WZDOSet o WZLimSup), se incluyen en la
supervisin de la posicin INICIO respecto de la limitacin del rea de trabajo.
Adems, para que sean supervisados, la unidad mecnica y sus ejes deben seguir
estando activos durante el movimiento desde el programa o mediante un movimiento
especial.
Por ejemplo, si un eje con supervisin est fuera de la posicin de ejes INICIO pero
est desactivado, esto no impide que la seal digital de salida de la posicin de ejes
INICIO se establezca si todos los dems ejes activos con supervisin de espacio se
encuentran dentro de la posicin de ejes INICIO. Cuando se activa de nuevo el eje, ste
se incluye en la supervisin y el sistema de robot se encuentra fuera de la posicin de
ejes INICIO. La salida digital se restablece.
Sintaxis
WZLimJointDef
[\Inside] | [\Outside],
[Shape:=]<variable (VAR) de shapedata>,
[LowJointVal :=]<expresin (IN) de jointtarget>,
[HighJointVal :=]<expresin (IN) de jointtarget>;
Informacin relacionada
Descrito en:
Zonas mundo Principios de movimiento y E/S -
Zonas mundo
Forma de las zonas mundo Tipos de datos - shapedata
Definicin de zonas mundo en Instrucciones - WZBoxDef
forma de prisma
Definicin de zonas mundo cilndricas Instrucciones - WZCylDef
Definicin de zonas mundo esfricas Instrucciones - WZSphDef
Definicin de una zona mundo para Instruccin - WZHomeJointDef
las posiciones iniciales de los ejes
Activacin de la supervisin de lmites de Instrucciones - WZLimSup
las zonas mundo
Activacin de salidas digitales basadas Instrucciones - WZDOSet
en zonas mundo
Ejemplo
VAR wzstationary max_workarea;
...
PROC POWER_ON()
VAR shapedata volume;
...
WZBoxDef \Outside, volume, corner1, corner2;
WZLimSup \Stat, max_workarea, volume;
ENDPROC
Definicin y activacin de la zona mundo estacionaria max_workarea, con la
forma del rea que queda fuera de un prisma (almacenado temporalmente en
volume) y la supervisin del rea de trabajo para la realizacin de acciones.
El robot se detiene y muestra un mensaje de error antes de entrar en el rea que
queda fuera del prisma.
Argumentos
WZLimSup [\Temp] | [\Stat] WorldZone Shape
\Temp (temporal) Tipo de dato: switch
La zona mundo a definir es una zona mundo temporal.
\Stat (estacionaria) Tipo de dato: switch
La zona mundo a definir es una zona mundo estacionaria.
Es imprescindible especificar uno de los argumentos \Temp o \Stat.
WorldZone Tipo de dato: wztemporary
Una variable o una variable persistente que se actualizar con la identidad
(el valor numrico) de la zona mundo.
Si se usa el modificador \Temp, el tipo de dato debe ser wztemporary.
Si se usa el modificador \Stat, el tipo de dato debe ser wzstationary.
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.
Ejemplo
VAR wzstationary box1_invers;
VAR wzstationary box2;
PROC wzone_power_on()
VAR shapedata volume;
CONST pos box1_c1:=[500,-500,0];
CONST pos box1_c2:=[-500,500,500];
CONST pos box2_c1:=[500,-500,0];
CONST pos box2_c2:=[200,-200,300];
...
WZBoxDef \Outside, volume, box1_c1, box1_c2;
WZLimSup \Stat, box1_invers, volume;
WZBoxDef \Inside, volume, box2_c1, box2_c2;
WZLimSup \Stat, box2, volume;
ENDPROC
Limitacin del rea de trabajo para el robot con las siguientes zonas mundo
estacionarias:
Limitaciones
Las zonas mundo no pueden redefinirse usando la misma variable en el argumento
WorldZone.
Sintaxis
WZLimSup
[\Temp] | [\Stat],
[WorldZone:=]<variable o variable persistente (INOUT) de wztemporary>,
[Shape:=] <variable (VAR) de shapedata>;
Informacin relacionada
Descrito en:
Zonas mundo Principios de movimiento y E/S -
Zonas mundo
Forma de las zonas mundo Tipos de datos - shapedata
Zona mundo temporal Tipos de datos - wztemporary
Zona mundo estacionaria Tipos de datos - wzstationary
Definicin de zonas mundo en forma Instrucciones - WZBoxDef
de prisma recto
Definicin de zonas mundo esfricas Instrucciones - WZSphDef
Definicin de zonas mundo cilndricas Instrucciones - WZCylDef
Definicin de una zona mundo para Instruccin - WZHomeJointDef
las posiciones iniciales de los ejes
Definicin de una zona mundo para Instruccin - WZLimJointDef
las posiciones lmite de los ejes
Activacin de salidas digitales basadas Instrucciones - WZDOSet
en zonas mundo
Ejemplo
Z
Y
C1
R1 (mnimo 5 mm)
X
Sistema de coordenadas mundo
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
Una variable para el almacenamiento del volumen definido (datos privados del
sistema).
Ejecucin de programas
La definicin de la esfera se almacena en la variable de tipo shapedata (el argumento
Shape), para su uso futuro en instrucciones WZLimSup o WZDOSet.
Limitaciones
Si el robot se usa para apuntar hacia fuera de CentrePoint, el objeto de trabajo wobj0
debe estar activo (se usa como argumento el componente trans de robtarget, por
ejemplo, p1.trans).
Sintaxis
WZSphDef
[\Inside] | [\Outside] ,
[Shape:=]<variable (VAR) de shapedata>,
[CentrePoint:=]<expresin (IN) de pos>,
[Radius:=]<expresin (IN) de num>;
Informacin relacionada
Descrito en:
Zonas mundo Principios de movimiento y E/S -
Zonas mundo
Forma de las zonas mundo Tipos de datos - shapedata
Definicin de zonas mundo en forma Instrucciones - WZBoxDef
de prisma
Definicin de zonas mundo cilndricas Instrucciones - WZCylDef
Definicin de una zona mundo para Instruccin - WZHomeJointDef
las posiciones iniciales de los ejes
Definicin de una zona mundo para las Instruccin - WZLimJointDef
posiciones lmite de los ejes
Activacin de la supervisin de lmites de Instrucciones - WZLimSup
las zonas mundo
Activacin de salidas digitales basadas Instrucciones - WZDOSet
en zonas mundo
A ConfL 39
CONNECT 45
AccSet 1, 211 cronmetro 29
ActUnit 3
Add 5 D
archivo
abrir 207 DeactUnit 47
carga 147, 255, 297 Decr 49
cerrar 23, 43, 253 desplazamiento de programa
descargar 391, 399 activar 221
escribir 237, 415, 419, 421, 423 desactivar 219
rebobinar 253 DitherDeact 55
spystart 111, 123
E
tsigrset 323
aritmtica 7 E/S de posicin fija 363
asignacin 7 E/S, unidad
desactivar 97
B
habilitar 107
borrar la pantalla de la unidad de progra- ejes externos
macin 325 activar 3
Break 9 desactivar 47
EOffsOff 57
C EOffsOn 59
EOffsSet 61
CallByVar 11 ErrWrite 63
canal serie escribir
abrir 207 en la unidad de programacin 335, 337
archivo 237, 419, 421, 423 mensaje de error 63
cerrar 23, 43 esperar
escribir 415 cualquier condicin 405
rebobinar 253 entrada digital 395
carga hasta que el robot est en posicin 403
activar una carga til 79 salida digital 397
carga til un tiempo determinado 403
activar 79 etiqueta 145
Clear 15, 21 EXIT 65
ClkReset 27 ExitCycle 67
ClkStart 29
ClkStop 31 F
clock
parada 31 FOR 69
poner a cero 27 Funciones 73
poner en marcha 29
G
Close 23, 43
comentario 33 GetTrapData 75
Compact IF (IF compacto) 35 GOTO 77
comprobar E/S 345 GripLoad 79
condicin 91 grupo de E/S 281
ConfJ 37
saltar 77 V
SearchC 259
SearchL 267 velocidad
servo suave mxima 409
activar 287 reducir 409
desactivar 289 velocidad mxima 409
Set 275 VelSet 409
SetAO 277
W
SetDO 279
SetGO 281 WaitDI 395
SingArea 283 WaitDO 397
SkipWarn 285 WaitTime 403
SoftAct 287 WaitUntil 405
SoftDeact 289 WHILE 411
SpyStart 111, 123, 291 Write 415
SpyStop 295 WriteBin 421
StartMove 301 WriteStrBin 237, 419, 423
Stop 311 WZBoxDef 425
StopMove 313 WZCylDef 429
StorePath 315 WZDisable 433
WZDOSet 435
T
WZEnable 439
TEST 317 WZFree 441
TestSignDefine 319 WZLimJointDef 447
TestSignReset 323 WZLimSup 451
TPErase 325 WZSphDef 455
TPReadFK 327
TPReadNum 331
TPShow 335
TPWrite 337
TriggC 339
TriggCheckIO 345
TriggEquip 351
TriggInt 357
TriggIO 363
TriggJ 369
TriggL 375
TRYNEXT 381
TuneReset 383
TuneServo 385
a
ABB Automation Technology Products AB
Robotics
S-721 68 VSTERS
SWEDEN
Telephone: +46 (0) 21 344000
Telefax: +46 (0) 21 132592