Beruflich Dokumente
Kultur Dokumente
BaseWare
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos 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 2, Funciones ndice
y tipos de datos A-Z
Funciones 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.
Ejemplo
reg1 := Abs(reg2);
Se asigna a Reg1 el valor absoluto de reg2.
entre s
Abs (Input)
Input Tipo de dato: num
El valor de entrada.
Ejemplo
TPReadNum no_of_parts, "Cuntas piezas hay que producir? ";
no_of_parts := Abs(no_of_parts);
Se pregunta al operador cuntas piezas deben producirse. Para garantizar que el
valor sea mayor que cero, se convierte en positivo el valor introducido por el
operador.
Sintaxis
Abs (
[ Input := ] < expresin (IN) of num > )
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Descrito en:
Instrucciones y funciones matemticas Resumen sobre RAPID - Matemticas
Ejemplo
VAR num angle;
VAR num value;
.
.
angle := ACos(value);
Return value
ACos Tipo de dato: num
Argumentos
ACos (Value)
Value Tipo de dato: num
Sintaxis
Acos(
[Value :=] <expresin (IN) de num>
)
Informacin relacionada
Descrito en:
Instrucciones y funciones matemticas Resumen sobre RAPID - Matemticas
Ejemplo
IF AOutput(ao4) > 5 THEN ...
Al valor actual se le aplica una escala (acorde con los parmetros del sistema) antes de
leerlo desde el programa de RAPID. Consulte la Figura 1.
MX. DE SEAL
MX. DE PROGRAMA
Valor lgico en el
programa
MN. DE PROGRAMA
MN. DE SEAL
Figura 1 Diagrama de cmo se ajustan los valores de las seales analgicas a una
escala.
Argumentos
AOutput (Signal)
Signal Tipo de dato: signalao
Sintaxis
AOutput (
[ Signal := ] < variable (VAR) of signalao > )
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
VAR num angle;
VAR num value;
.
.
angle := ASin(value);
Argumentos
ASin (Value)
Value Tipo de dato: num
Sintaxis
ASin(
[Value :=] <expresin (IN) de num>
)
Informacin relacionada
Descrito en:
Instrucciones y funciones matemticas Resumen sobre RAPID - Matemticas
Ejemplo
VAR num angle;
VAR num value;
.
.
angle := ATan(value);
Argumentos
ATan (Value)
Value Tipo de dato: num
Sintaxis
ATan(
[Value :=] <expresin (IN) de num>
)
Informacin relacionada
Descrito en:
Instrucciones y funciones matemticas Resumen sobre RAPID - Matemticas
Arco tangente con un valor de retorno en el Funciones - ATan2
rango [-180, 180]
Ejemplo
VAR num angle;
VAR num x_value;
VAR num y_value;
.
.
angle := ATan2(y_value, x_value);
El valor ser igual a ATan(y/x), pero en el rango [-180, 180], ya que la funcin utiliza
el signo de los dos argumentos para determinar el cuadrante del valor de retorno.
Argumentos
ATan2 (Y X)
Y Tipo de dato: num
Sintaxis
ATan2(
[Y :=] <expresin (IN) de num> ,
[X :=] <expresin (IN) de num>
)
Informacin relacionada
Descrito en:
Instrucciones y funciones matemticas Resumen sobre RAPID - Matemticas
Arco tangente con un solo argumento Funciones - ATan
Ejemplo
VAR string con_data_buffer{5};
VAR byte data1 := 122;
con_data_buffer{1} := ByteToStr(data1);
con_data_buffer{2} := ByteToStr(data1\Hex);
con_data_buffer{3} := ByteToStr(data1\Okt);
con_data_buffer{4} := ByteToStr(data1\Bin);
con_data_buffer{5} := ByteToStr(data1\Char);
Valor de retorno
ByteToStr Tipo de dato: string
Argumentos
ByteToStr (BitData [\Hex] | [\Okt] | [\Bin] | [\Char])
BitData Tipo de dato: byte
Limitaciones
El rango de los tipos de datos byte es de 0 a 255 en decimal.
Sintaxis
ByteToStr(
[BitData :=] <expresin (IN) de byte>
[\ Hex ] | [\ Okt] | [\ Bin] | [\ Char]
) ;
Informacin relacionada
Descrito en:
Conversin de una cadena de caracteres Instrucciones - StrToByte
a datos de bits
Otras funciones de bits (bytes) Resumen sobre RAPID -
Funciones de bits
Otras funciones de cadenas de caracteres Resumen sobre RAPID -
Funciones de cadenas de caracteres
Ejemplo
VAR jointtarget jointpos1;
CONST robtarget p1 := [...];
Los valores de los ejes externos, en mm para los ejes lineales y en grados para los ejes
de rotacin.
Argumentos
CalcJointT (Rob_target Tool [\WObj] )
Rob_target Tipo de dato: robtarget
La herramienta utilizada para el clculo de los ngulos de los ejes del robot.
Ejecucin de programas
El valor jointtarget devuelto se calcula a partir del valor de entrada robtarget.
Para calcular los ngulos de los ejes del robot, se tienen en cuenta Tool, WObj (incluida
la base coordinada de coordenadas del usuario) y el ProgDisp activo en el momento de
la ejecucin. Para calcular la posicin de los ejes externos en el momento de la
ejecucin, se tiene en cuenta el EOffs activo.
El clculo selecciona siempre la configuracin del robot acorde con los datos de
configuracin especificados en los datos de entrada robtarget. Ni la instruccin ConfL
ni ConfJ afectan a este principio de clculo. Si se utiliza la singularidad de la mueca,
se cambia el eje 4 a 0 grados.
Gestin de errores
Si al menos uno de los ejes est fuera del rea de trabajo o se superan los lmites en al
menos un eje acoplado, la variable de sistema ERRNO cambia a ERR_ROBLIMIT y
la ejecucin contina en el gestor de errores.
Sintaxis
CalcJointT(
[Rob_target :=] <expresin (IN) de robtarget> ,
[Tool := ] <variable persistente (PERS) de tooldata>
[\WObj := <variable persistente (PERS) de wobjdata>] )
Informacin relacionada
Descrito en:
Clculo de robtarget a partir de jointtarget Funciones - CalcRobT
Definicin de posicin Tipos de datos - robtarget
Definicin de posicin de los ejes Tipos de datos - jointtarget
Definicin de herramientas Tipos de datos - tooldata
Definicin de objetos de trabajo Tipos de datos - wobjdata
Sistemas de coordenadas Principios de movimiento y E/S -
Sistemas de coordenadas
Sistema de coordenadas de desplazamiento Instrucciones - PDispOn
de programa
Sistema de coordenadas de offset Instrucciones - EOffsOn
de ejes externos
Ejemplo
VAR robtarget p1;
CONST jointtarget jointpos1 := [...];
p1 := CalcRobT(jointpos1, tool1 \WObj:=wobj1);
El valor de robtarget que corresponde al valor de jointtarget jointpos1 se
almacena en p1. La herramienta tool1 y el objeto de trabajo wobj1 se utilizan
para calcular la posicin p1.
Argumentos
CalcRobT ( Joint_target Tool [\WObj] )
Joint_target Tipo de dato: jointtarget
La posicin de los ejes del robot y de los ejes externos, respecto del sistema de
coordenadas de calibracin.
Tool Tipo de dato: tooldata
La herramienta utilizada para el clculo de la posicin del robot.
Ejecucin de programas
El valor robtarget devuelto se calcula a partir del valor de entrada jointtarget.
Para calcular la posicin cartesiana del robot, se tienen en cuenta Tool, WObj (incluida
la base coordinada de coordenadas del usuario) y el ProgDisp activo en el momento de
la ejecucin. Para calcular la posicin de los ejes externos, se tiene en cuenta el EOffs
activo en el momento de la ejecucin.
Sintaxis
CalcRobT(
[Joint_target := ] <expresin (IN) de jointtarget> ,
[Tool := ] <variable persistente (PERS) de tooldata>
[\WObj := <variable persistente (PERS) de wobjdata>] )
Informacin relacionada
Descrito en:
Clculo de jointtarget a partir de robtarget Funciones - CalcJointT
Definicin de posicin Tipos de datos - robtarget
Definicin de posicin de los ejes Tipos de datos - jointtarget
Definicin de herramientas Tipos de datos - tooldata
Definicin de objetos de trabajo Tipos de datos - wobjdata
Sistemas de coordenadas Principios de movimiento y E/S -
Sistemas de coordenadas
Sistema de coordenadas de desplazamiento Instrucciones - PDispOn
de programa
Sistema de coordenadas de offset Instrucciones - EOffsOn
de ejes externos
Descripcin
La definicin de una base de coordenadas de usuario para un eje de rotacin externo
requiere que la mesa giratoria (o la estructura mecnica similar) del eje externo tenga
un punto de referencia marcado. Adems, es necesario calibrar la base de coordenadas
principal del robot y el TCP. El procedimiento de calibracin se basa en un conjunto
de posicionamiento del TCP del robot sobre el punto de referencia, mientras la mesa
giratoria gira hasta distintos ngulos. Consulte la Figura 2.
Eje de rotacin
Posicin 3 Posicin 1
l l
x
l Punto de referencia
de la mesa giratoria
z Posicin 4
x
l
l
x
Ejemplo
CONST robtarget pos1 := [...];
CONST robtarget pos2 := [...];
CONST robtarget pos3 := [...];
CONST robtarget pos4 := [...];
VAR robtarget targetlist{10};
VAR num max_err := 0;
VAR num mean_err := 0;
VAR pose resFr:=[...];
PERS tooldata tMyTool:= [...];
! Instrucciones para crear y aplicar ModPos a las posiciones de pos1 a pos4 con el
! TCP orientado hacia la mesa giratoria.
MoveJ pos1, v10, fine, tMyTool;
MoveJ pos2, v10, fine, tMyTool;
MoveJ pos3, v10, fine, tMyTool;
MoveJ pos4, v10, fine, tMyTool;
Se crean cuatro posiciones, de pos1 a pos4 y se les aplica ModPos de forma que
la herramienta del robot tMyTool apunte al mismo punto de referencia del eje
externo STN_1, pero con una rotacin de eje externo diferente. A continuacin,
los puntos se utilizan para calcular la base de coordenadas del eje externo, resFr,
respecto del sistema de coordenadas mundo. Por ltimo, se escribe la base de
coordenadas en el archivo de configuracin cuando se realiza un arranque en
caliente, para aplicar el cambio.
Return value
CalcRotAxisFrame Tipo de dato: pose
Argumentos
CalcRotAxisFrame (MechUnit [\AxisNo] TargetList TargetsInList
MaxErr MeanErr)
MechUnit Tipo de dato: mecunit
Gestin de errores
Si las posiciones no tienen la relacin requerida o no se especifican con una exactitud
suficiente, la variable de sistema ERRNO cambia a ERR_FRAME. A continuacin,
este error puede ser gestionado en el gestor de errores.
Sintaxis
CalcRotAxisFrame(
[MechUnit :=] <variable (VAR) de mecunit>
[\AxisNo := <expresin (IN) de num> ],
[TargetList :=] <matriz {*} (IN) de robtarget> ,
[TargetsInList :=] <expresin (IN) de num> ,
[MaxErr :=] <variable (VAR) de num> ,
[MeanErr :=] <variable (VAR) de num>)
Informacin relacionada
Descrito en:
Instrucciones y funciones matemticas Resumen sobre RAPID - Matemticas
Esta funcin puede usarse para mostrar la fecha actual al operador en la pantalla de la
unidad de programacin o para pegar la fecha actual en un archivo de texto en el que
se escribe desde el programa.
Ejemplo
VAR string date;
date := CDate();
Ejemplo
date := CDate();
TPWrite La fecha actual es: +date;
Write logfile, date;
Sintaxis
CDate ( )
Informacin relacionada
Descrito en:
Instrucciones de tiempo Resumen sobre RAPID -
Sistema y tiempo
Cambio de hora del reloj del sistema Gua del usuario - Servicio tcnico
Ejemplo
VAR jointtarget joints;
joints := CJointT();
Los ngulos actuales de los ejes del robot y los ejes externos de almacenan en
joints.
Los ngulos actuales en grados de los ejes del robot en el lado del brazo.
Los valores actuales de los ejes externos, en mm para los ejes lineales y en grados para
los ejes de rotacin.
Sintaxis
CJointT()
Informacin relacionada
Descrito en:
Definicin de ejes Tipos de datos - jointtarget
Lectura del ngulo actual del motor Funciones - ReadMotor
Ejemplo
reg1:=ClkRead(clock1);
Argumentos
ClkRead (Clock)
Clock Tipo de dato: clock
Ejecucin de programas
El reloj puede leerse tanto cuando est parado como cuando est en marcha.
Despus de leer el reloj, es posible leerlo de nuevo, ponerlo otra vez en marcha, pararlo
o ponerlo a cero.
Gestin de errores
Si el reloj funciona de forma continuada durante 4.294.967 segundos (49 das,
17 horas, 2 minutos y 47 segundos), se desborda y la variable de sistema ERRNO
cambia a ERR_OVERFLOW.
Sintaxis
ClkRead (
[ Clock := ] < variable (VAR) de clock > )
Informacin relacionada
Descrito en:
Instrucciones de reloj Resumen sobre RAPID -
Sistema y tiempo
Desbordamiento de reloj Tipos de datos - clock
Ms ejemplos Instrucciones - ClkStart
Ejemplo
VAR num angle;
VAR num value;
.
.
value := Cos(angle);
Argumentos
Cos (Angle)
Angle Tipo de dato: num
Sintaxis
Cos(
[Angle :=] <expresin (IN) de num>
)
Informacin relacionada
Descrito en:
Instrucciones y funciones matemticas Resumen sobre RAPID - Matemticas
Esta funcin devuelve los valores x, y, z del TCP del robot, en un dato del tipo pos.
Si es necesario leer la posicin completa del robot (robtarget), utilice en su lugar la
funcin CRobT.
Ejemplo
VAR pos pos1;
Recuerde que el robot est en reposo antes de que se lea y calcule la posicin.
Esto se consigue utilizando el punto de paro fine con la exactitud de posicin
inpos50 en la instruccin de movimiento anterior.
Argumentos
CPos ([\Tool] [\WObj])
[\Tool] Tipo de dato: tooldata
Resulta muy conveniente especificar siempre los argumentos \Tool y \WObj durante la
programacin. De esta forma, la posicin devolver siempre la posicin deseada,
incluso si se ha activado manualmente otra herramienta u otro objeto de trabajo.
Ejecucin de programas
Las coordenadas devueltas representan la posicin del TCP en el sistema de
coordenadas ProgDisp.
Ejemplo
VAR pos pos2;
VAR pos pos3;
VAR pos pos4;
Sintaxis
CPos (
[\Tool := <variable persistente (PERS) de tooldata>]
[\WObj := <variable persistente (PERS) de wobjdata>] )
Informacin relacionada
Descrito en:
Definicin de posicin Tipos de datos - pos
Definicin de herramientas Tipos de datos - tooldata
Definicin de objetos de trabajo Tipos de datos - wobjdata
Sistemas de coordenadas Principios de movimiento y E/S -
Sistemas de coordenadas
Lectura del robtarget actual Funciones - CRobT
Esta funcin devuelve un valor de robtarget con la posicin (x, y, z), la orientacin
(q1 ... q4), la configuracin de los ejes del robot y la posicin de los ejes externos. Si
slo es necesario leer los valores x, y, z del TCP del robot (pos), utilice en su lugar la
funcin CPos.
Ejemplo
VAR robtarget p1;
La posicin actual de los ejes del robot y los ejes externos se almacena en p1.
La herramienta tool1 y el objeto de trabajo wobj0 se utilizan para calcular la
posicin.
Recuerde que el robot est en reposo antes de que se lea y calcule la posicin.
Esto se consigue utilizando el punto de paro fine con la exactitud de posicin
inpos50 en la instruccin de movimiento anterior.
La posicin actual de los ejes del robot y de los ejes externos en el sistema de
coordenadas ms externo, teniendo en cuenta la herramienta especificada, el objeto de
trabajo y el sistema de coordenadas ProgDisp/ExtOffs activo.
Argumentos
CRobT ([\Tool] [\WObj])
[\Tool] Tipo de dato: tooldata
Resulta muy conveniente especificar siempre los argumentos \Tool y \WObj durante la
programacin. De esta forma, la posicin devolver siempre la posicin deseada,
incluso si se ha activado manualmente otra herramienta u otro objeto de trabajo.
Ejecucin de programas
Las coordenadas devueltas representan la posicin del TCP en el sistema de
coordenadas ProgDisp. Los ejes externos se representan en el sistema de coordenadas
ExtOffs.
Ejemplo
VAR robtarget p2;
La posicin actual de los ejes del robot y de los ejes externos en el sistema de
coordenadas del objeto (sin ProgDisp ni ExtOffs) se almacena en p2. La
herramienta grip3 y el objeto de trabajo fixture se utilizan para calcular la
posicin.
Sintaxis
CRobT(
[\Tool := <variable persistente (PERS) de tooldata>]
[\WObj := <variable persistente (PERS) de wobjdata>] )
Informacin relacionada
Descrito en:
Definicin de posicin Tipos de datos - robtarget
Definicin de herramientas Tipos de datos - tooldata
Definicin de objetos de trabajo Tipos de datos - wobjdata
Sistemas de coordenadas Principios de movimiento y E/S -
Sistemas de coordenadas
Sistema de coordenadas ExtOffs Instrucciones - EOffsOn
Lectura del pos actual (slo x, y, z) Funciones - CPos
Ejemplo
VAR num myspeed;
myspeed := CSpeedOverride();
Sintaxis
CSpeedOverride()
Informacin relacionada
Descrito en:
Cambio del ajuste de velocidad Gua del usuario Programacin y
testing de ciclos de produccin
Ejemplo
VAR string time;
time := CTime();
La hora actual se almacena en la variable time.
Ejemplo
time := CTime();
TPWrite La hora actual es: +time;
Write logfile, time;
Se escribe la hora actual en la pantalla de la unidad de programacin y dentro de
un archivo de texto.
Sintaxis
CTime ( )
Informacin relacionada
Descrito en:
Instrucciones de hora y fecha Resumen sobre RAPID -
Sistema y tiempo
Cambio de hora del reloj del sistema Gua del usuario -
Parmetros del sistema
Ejemplo
PERS tooldata temp_tool:= [ TRUE, [ [0, 0, 0], [1, 0, 0 ,0] ],
[0.001, [0, 0, 0.001], [1, 0, 0, 0], 0, 0, 0] ];
temp_tool := CTool();
Esta funcin devuelve un valor de tipo tooldata que contiene el valor de la herramienta
actual, es decir, la ltima herramienta utilizada en una instruccin de movimiento.
Sintaxis
CTool()
Informacin relacionada
Descrito en:
Definicin de herramientas Tipos de datos - tooldata
Sistemas de coordenadas Principios de movimiento y E/S -
Sistemas de coordenadas
Ejemplo
PERS wobjdata temp_wobj;
temp_wobj := CWObj();
Esta funcin devuelve un valor de tipo wobjdata que contiene el valor del objeto de
trabajo actual, es decir, el ltimo objeto de trabajo utilizado en una instruccin de
movimiento.
Sintaxis
CWObj()
Informacin relacionada
Descrito en:
Definicin de objetos de trabajo Tipos de datos - wobjdata
Sistemas de coordenadas Principios de movimiento y E/S -
Sistemas de coordenadas
Descripcin
Es posible definir una base de coordenadas cuando se conoce un conjunto de objetivos
en dos posiciones diferentes. Por tanto, se utilizan las mismas posiciones fsicas, pero
expresadas de forma diferente. Debe considerarse con dos enfoques diferentes:
Basta con tres objetivos para definir una base de coordenadas, pero deben
utilizarse varios puntos para aumentar la exactitud.
Ejemplo
pWCS{1}:=p6;
....
pWCS{5}:=p10;
Valor de retorno
DefAccFrame Tipo de dato: pose
Argumentos
DefAccFrame (TargetListOne TargetListTwo TargetsInList
MaxErr MeanErr)
TargetListOne Tipo de dato: robtarget
Gestin de errores
Si las posiciones no tienen la relacin requerida o no se especifican con una exactitud
suficiente, la variable de sistema ERRNO cambia a ERR_FRAME. A continuacin,
este error puede ser gestionado en el gestor de errores.
Sintaxis
DefAccFrame(
[TargetListOne :=] <matriz {*} (IN) de robtarget> ,
[TargetListTwo :=] <matriz {*} (IN) de robtarget> ,
[TargetsInList :=] <expresin (IN) de num> ,
[MaxErr :=] <variable (VAR) de num> ,
[MeanErr :=] <variable (VAR) de num>)
Informacin relacionada
Descrito en:
Clculo de una base de coordenadas a partir Funciones - DefFrame
de tres posiciones
Clculo de una base de coordenadas de Funciones - DefDFrame
desplazamiento
Ejemplo
p3
p6
p5
p4
p1 p2 El nuevo plano
Argumentos
DefDFrame (OldP1 OldP2 OldP3 NewP1 NewP2 NewP3)
OldP1 Tipo de dato: robtarget
La tercera posicin desplazada. Esta posicin definir la rotacin del plano. Por
ejemplo, debe estar situada en el nuevo plano formado por NewP1, NewP2 y
NewP3.
Gestin de errores
Si no es posible calcular la base de coordenadas debido a la baja exactitud de las
posiciones, la variable de sistema ERRNO cambia a ERR_FRAME. A continuacin,
este error puede ser gestionado en el gestor de errores.
Sintaxis
DefDFrame(
[OldP1 :=] <expresin (IN) de robtarget> ,
[OldP2 :=] <expresin (IN) de robtarget> ,
[OldP3 :=] <expresin (IN) de robtarget> ,
[NewP1 :=] <expresin (IN) de robtarget> ,
[NewP2 :=] <expresin (IN) de robtarget> ,
[NewP3 :=] <expresin (IN) de robtarget> )
Informacin relacionada
Descrito en:
Activacin de una base de coordenadas Instrucciones - PDispSet
de desplazamiento
Definicin manual de la base de Gua del usuario - Calibracin
coordenadas de desplazamiento
Ejemplo
y
z p3
z
x
p2
y
frame1
p1
x
Base de coordenadas del objeto
Se utilizan tres posiciones, de p1a p3, en relacin con el sistema de coordenadas del
objeto, para definir el nuevo sistema de coordenadas, frame1. La primera posicin, p1,
define el origen de frame1. La segunda posicin, p2, define la direccin del eje x. La
tercera posicin, p3, define la ubicacin del plano xy. La base de coordenadas frame1
definida puede usarse como base de coordenadas de desplazamiento, como se muestra
en el ejemplo siguiente:
Argumentos
DefFrame (NewP1 NewP2 NewP3 [\Origin])
NewP1 Tipo de dato: robtarget
z z y
Nuevo P3
x
y Nuevo P2
x frame1
Base de coordenadas del objeto Nuevo P1
El valor Origin = 3 significa que el origen se sita en la lnea que va desde NewP1 a
NewP2 y por tanto NewP3 se sita en el eje y. Consulte la figura siguiente.
z y
z Nuevo P3
x
y Nuevo P2
x frame1
Base de coordenadas del objeto Nuevo P1
Limitaciones
Las tres posiciones de p1 a p3, que definen la base de coordenadas deben formar un
tringulo bien definido. El tipo de tringulo mejor definido es aqul en el que todos los
lados tienen la misma longitud.
p2
p3
p1
El tringulo p1, p2, p3 no debe ser demasiado pequeo, es decir, las posiciones no
deben estar demasiado cercanas entre s. Las distancias existentes entre p1 y p2 y entre
p1 y p3 no deben ser inferiores a 0,1 mm.
Gestin de errores
Si no es posible calcular la base de coordenadas a causa de las limitaciones menciona-
das, la variable de sistema ERRNO cambia a ERR_FRAME. A continuacin, este error
puede ser gestionado en el gestor de errores.
Sintaxis
DefFrame(
[NewP1 :=] <expresin (IN) de robtarget> ,
[NewP2 :=] <expresin (IN) de robtarget> ,
[NewP3 :=] <expresin (IN) de robtarget>
[\Origin := <expresin (IN) de num> ])
Informacin relacionada
Descrito en:
Instrucciones y funciones matemticas Resumen sobre RAPID - Matemticas
Activacin de una base de coordenadas
de desplazamiento Instrucciones - PDispSet
Ejemplo
PROC arrmul(VAR num array{*}, num factor)
ENDPROC
Argumentos
Dim (ArrPar DimNo)
ArrPar (parmetro de matriz) Tipo de dato: cualquier tipo
El nombre de la matriz.
Ejemplo
PROC add_matrix(VAR num array1{*,*,*}, num array2{*,*,*})
ELSE
FOR i1 FROM 1 TO Dim(array1, 1) DO
FOR i2 FROM 1 TO Dim(array1, 2) DO
FOR i3 FROM 1 TO Dim(array1, 3) DO
array1{i1,i2,i3} := array1{i1,i2,i3} + array2{i1,i2,i3};
ENDFOR
ENDFOR
ENDFOR
ENDIF
RETURN;
ENDPROC
Sintaxis
Dim (
[ArrPar:=] <referencia (REF) de cualquier tipo> ,
[DimNo:=] <expresin (IN) de num> )
Los parmetros REF exigen que el argumento correspondiente sea una constante, una
variable o una variable persistente entera. El argumento tambin puede ser un
parmetro IN, un parmetro VAR o un parmetro PERS entero.
Informacin relacionada
Descrito en:
Parmetros de matriz Caractersticas bsicas - Rutinas
Declaracin de matriz Caractersticas bsicas - Datos
Ejemplo
y
p2
x
p1
z
Argumentos
Distance (Point1 Point2)
Point1 Tipo de dato: pos
Ejecucin de programas
Clculo de la distancia existente entre dos puntos:
y
x2, y2, z2
x
x1,y1,z1
z
2 2 2
Distancia = ( x 1 x 2 ) + ( y 1 y 2 ) + ( z 1 z 2 )
Sintaxis
Distance(
[Point1 :=] <expresin (IN) de pos> ,
[Point2 :=] <expresin (IN) de pos>
)
Informacin relacionada
Descrito en:
Instrucciones y funciones matemticas Resumen sobre RAPID - Matemticas
Definicin de una posicin con pos Tipos de datos - pos
Ejemplo
B
AB
A
B cos AB A
A B = A B cos AB
El producto escalar:
Los vectores se describen con el tipo de dato pos y el producto escalar se describe con
el tipo de dato num:
Argumentos
DotProd (Vector1 Vector2)
Vector1 Tipo de dato: pos
Sintaxis
DotProd(
[Vector1 :=] <expresin (IN) de pos> ,
[Vector2 :=] <expresin (IN) de pos>
)
Informacin relacionada
Descrito en:
Instrucciones y funciones matemticas Resumen sobre RAPID - Matemticas
Ejemplo
IF DOutput(do2) = 1 THEN . . .
Si el valor actual de la seal do2 es igual a 1, . . .
Argumentos
DOutput (Signal)
Signal Tipo de dato: signaldo
El nombre de la seal a leer.
Ejecucin de programas
El valor ledo depende de la configuracin de la seal. Si la seal est invertida en los
parmetros de sistema, el valor devuelto por esta funcin es lo opuesto al valor real del
canal fsico.
Ejemplo
IF DOutput(auto_on) <> active THEN . . .
Si el valor actual de la seal de sistema auto_on no est activa, ... Es decir, si el
robot se encuentra en el modo de funcionamiento manual, ... Recuerde que la
seal debe estar definida previamente como salida de sistema en los parmetros
de sistema.
Sintaxis
DOutput (
[ Signal := ] < variable (VAR) de signaldo > )
Una funcin con un valor de retorno del tipo de dato 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
VAR num anglex;
VAR num angley;
VAR num anglez;
VAR pose object;
.
.
anglex := EulerZYX(\X, object.rot);
angley := EulerZYX(\Y, object.rot);
anglez := EulerZYX(\Z, object.rot);
Argumentos
EulerZYX ([\X] | [\Y] | [\Z] Rotation)
Los argumentos \X, \Y y \Z son excluyentes entre s. Si no se especifica ninguno de
estos argumentos, se genera un error en tiempo de ejecucin.
Sintaxis
EulerZYX(
['\'X ,] | ['\'Y ,] | ['\'Z ,]
[Rotation :=] <expresin (IN) de orient>
)
Informacin relacionada
Descrito en:
Instrucciones y funciones matemticas Resumen sobre RAPID - Matemticas
Ejemplo
VAR num x;
VAR num value;
.
.
value:= Exp( x);
El valor exponencial, ex .
Argumentos
Exp (Exponent)
Exponent Tipo de dato: num
Sintaxis
Exp(
[Exponent :=] <expresin (IN) de num>
)
Informacin relacionada
Descrito en:
Instrucciones y funciones matemticas Resumen sobre RAPID - Matemticas
Ejemplo
Load "HOME:/notmymod.mod";
WHILE TRUE DO
! Llamar a una rutina de notmymod
notmymodrout;
IF FileTime("HOME:/notmymod.mod" \ModifyTime)
> ModTime("notmymod") THEN
UnLoad "HOME:notmymod.mod";
Load "HOME:notmymod.mod";
ENDIF
ENDWHILE
Argumentos
FileTime ( Path [\ModifyTime] | [\AccessTime] | [\StatCTime] )
Path Tipo de dato: string
Ejecucin de programas
Esta funcin devuelve un valor numrico que especifica el tiempo desde la ltima
operacin de:
- Modificacin
- Acceso
- Cambio de estado
Ejemplo
A continuacin aparece un ejemplo completo en el que se implementa un servicio de
alerta para un mximo de 10 archivos.
ENDPROC
PROC alertFree()
IDelete timeint;
ENDPROC
Gestin de errores
Si el archivo no existe, la variable de sistema ERRNO cambia a ERR_FILEACC.
A continuacin, este error puede ser gestionado en el gestor de errores.
Sintaxis
FileTime (
[ Path := ] < expresin (IN) de string>
[ '\'ModifyTime] |
[ '\'AccessTime] |
[ '\'StatCTime] )
Informacin relacionada
Descrito en:
ltima vez que se ha cargado un mdulo Funciones - ModTime
Ejemplos
VAR num listno := 0;
VAR string name := "";
Argumentos
GetNextMechUnit ( ListNumber UnitName )
ListNumber Tipo de dato: num
Ejemplo
VAR num listno := 4;
VAR string name := "";
VAR bool found := FALSE;
Sintaxis
GetNextMechUnit (
[ ListNumber:= ] < variable (VAR) de num> ,
[ UnitName:= ] < variable (VAR) de string> )
Informacin relacionada
Descrito en:
Unidad mecnica Tipos de datos - mecunit
Activacin y desactivacin de Instrucciones - ActUnit, DeactUnit
unidades mecnicas
Configuracin de unidades mecnicas Gua del usuario -
Parmetros del sistema
Caractersticas de los tipos de datos sin valor Caractersticas bsicas - Tipos de datos
Ejemplo
VAR datapos block;
VAR string name;
VAR bool truevar:=TRUE;
...
SetDataSearch bool \Object:=^my \InMod:=mymod\LocalSym;
WHILE GetNextSym(name,block) DO
SetDataVal name\Block:=block,truevar;
ENDWHILE
Esta sesin cambia a TRUE todos los objetos de datos locales de tipo bool cuyo
nombre comience con my en el mdulo mymod.
TRUE si se ha obtenido un nuevo objeto. El nombre del objeto y el bloque que contiene
se devuelven a travs de los argumentos.
Argumentos
GetNextSym Object Block [\Recursive]
Object Tipo de dato: string
Una variable (VAR o PERS) para almacenar el nombre del objeto de datos que
se obtendr.
Sintaxis
GetNextSym
[ Object := ] < variable o variable persistente (INOUT) de string > ,
[ Block :=] <variable (VAR) de datapos>
[\Recursive ] ;
Informacin relacionada
Descrito en:
Definicin de un conjunto de smbolos Instrucciones - SetDataSearch
en una sesin de bsqueda
Obtencin del valor de un objeto de datos Instrucciones - GetDataVal
Asignacin del valor de un objeto de datos Instrucciones - SetDataVal
Asignacin del valor de varios Instrucciones - SetAllDataVal
objetos de datos
El tipo de datos relacionado datapos Tipos de datos - datapos
Ejemplo
VAR string mytaskname;
VAR num mytaskno;
mytaskname:=GetTaskName(\TaskNo:=mytaskno);
Argumentos
GetTaskName ( [\TaskNo] )
[\TaskNo] Tipo de dato: num
Sintaxis
GetTaskName(
[ \TaskNo := ] < variable (VAR) de num > )
Informacin relacionada
Descrito en:
Multitarea Resumen sobre RAPID -
Multitarea, Caractersticas bsicas.
Ejemplo
hour := GetTime(\Hour);
La hora actual se almacena en la variable hour.
Argumentos
GetTime ( [\WDay] | [\Hour] | [\Min] | [\Sec] )
[\WDay] Tipo de dato: switch
Devuelve el da de la semana.
Rango: de 1 a 7 (de lunes a domingo).
[\Hour] Tipo de dato: switch
Devuelve la hora actual.
Rango: de 0 a 23.
[\Min] Tipo de dato: switch
Devuelve el minuto actual.
Rango: de 0 a 59.
[\Sec] Tipo de dato: switch
Devuelve el segundo actual.
Rango: de 0 a 59.
Es necesario especificar al menos uno de los argumentos. De lo contrario, la ejecucin
del programa se detiene y se genera un mensaje de error.
Ejemplo
weekday := GetTime(\WDay);
hour := GetTime(\Hour);
IF weekday < 6 AND hour >6 AND hour < 16 THEN
production;
ELSE
maintenance;
ENDIF
Sintaxis
GetTime (
[\ WDay ]
| [ \ Hour ]
| [ \ Min ]
| [ \ Sec ] )
Informacin relacionada
Descrito en:
Instrucciones de hora y fecha Resumen sobre RAPID -
Sistema y tiempo
Cambio de hora del reloj del sistema Gua del usuario -
Parmetros del sistema
Ejemplo
IF GOutput(go2) = 5 THEN ...
Se leen los valores de las distintas seales del grupo, que se interpretan como nmeros
binarios sin signo. Estos nmeros binarios se convierten a continuacin a enteros.
El valor devuelto se encuentra dentro de un rango que depende del nmero de seales
del grupo.
Argumentos
GOutput (Signal)
Signal Tipo de dato: signalgo
Sintaxis
GOutput (
[ Signal := ] < variable (VAR) de signalgo > )
Informacin relacionada
Descrito en:
Instrucciones de entrada y salida Resumen sobre RAPID -
Seales de entrada y salida
Funcionalidad general de las entradas y salidasPrincipios de movimiento y E/S -
Principios de E/S
Configuracin de E/S Gua del usuario -
Parmetros del sistema
Ejemplo
IF IsMechUnitActive(SpotWeldGun) CloseGun SpotWeldGun;
Argumentos
IsMechUnitActive ( MechUnit )
Sintaxis
IsMechUnitActive (
[MechUnit := ] < variable (VAR) de mecunit>
)
Informacin relacionada
Descrito en:
Activacin de unidades mecnicas Instrucciones - ActUnit
Desactivacin de unidades mecnicas Instrucciones - DeactUnit
Unidades mecnicas Tipos de datos - mecunit
Ejemplo
PROC procedure1 (INOUT num parameter1)
IF IsVar(parameter1) THEN
! Para esta llamada, hacer referencia a una variable
...
ELSEIF IsPers(parameter1) THEN
! Para esta llamada, hacer referencia a una variable persistente
...
ELSE
! No debe ocurrir
EXIT;
ENDIF
ENDPROC
Argumentos
IsPers (DatObj)
DatObj (objeto de datos) Tipo de dato: cualquier tipo
Sintaxis
IsPers(
[ DatObj := ] < variable o variable persistente (INOUT) de cualquier tipo > )
Informacin relacionada
Descrito en:
Comprobacin de si un dato es una variable Funcin - IsVar
Tipos de parmetros (modos de acceso) Caractersticas de RAPID - Rutinas
Ejemplo
IF NOT IsSysId("6400-1234") THEN
ErrWrite "Fallo de identidad del sistema","Identidad del
sistema errnea para este programa";
EXIT;
ENDIF
Argumentos
IsSysId (SystemId)
SystemId Tipo de dato: string
Sintaxis
IsSysId (
[ SystemId:= ] < expresin (IN) de string> )
Ejemplo
PROC procedure1 (INOUT num parameter1)
IF IsVAR(parameter1) THEN
! Para esta llamada, hacer referencia a una variable
...
ELSEIF IsPers(parameter1) THEN
! Para esta llamada, hacer referencia a una variable persistente
...
ELSE
! No debe ocurrir
EXIT;
ENDIF
ENDPROC
Argumentos
IsVar (DatObj)
DatObj (objeto de datos) Tipo de dato: cualquier tipo
Sintaxis
IsVar(
[ DatObj := ] < variable o variable persistente (INOUT) de cualquier tipo > )
Informacin relacionada
Descrito en:
Comprobacin de si un dato es Funcin - IsPers
una variable persistente
Tipos de parmetros (modos de acceso) Caractersticas de RAPID - Rutinas
Ejemplo
TPWrite Velocidad mxima del TCP en mm/seg de este robot =
\Num:=MaxRobSpeed();
Devuelve la velocidad mxima del TCP en mm/seg para el tipo de robot utilizado y los
valores normales prcticos para el TCP.
Sintaxis
MaxRobSpeed ( )
Informacin relacionada
Descrito en:
Definicin de velocidad Tipos de datos - speeddata
Definicin de la velocidad mxima Instrucciones - VelSet
Ejemplo
CONST robtarget p1;
VAR robtarget p2;
PERS wobjdata mirror;
.
.
p2 := MirPos(p1, mirror);
p1 es un valor de tipo robtarget que contiene una posicin del robot y una
orientacin de la herramienta. La informacin espejo se obtiene en el plano xy
de la base de coordenadas definido por mirror, respecto del sistema de
coordenadas mundo. El resultado es un nuevo dato de tipo robtarget, que se
almacena en p2.
Argumentos
MirPos (Point MirPlane [\WObj] [\MirY])
Point Tipo de dato: robtarget
Los datos del objeto de trabajo que definen el plano espejo. El plano espejo es el
plano xy de la base de coordenadas del objeto definida en MirPlane. La
ubicacin de la base de coordenadas del objeto se define respecto de la base de
coordenadas del usuario, tambin definida en MirPlane, que a su vez se define
respecto de la base de coordenadas mundo.
Se definen los datos del objeto de trabajo que definen la base de coordenadas del
objeto y la base de coordenadas del usuario respecto de la posicin de entrada,
Point. Si no se utiliza el argumento, la posicin se define respecto del sistema de
coordenadas mundo.
Limitaciones
No se realiza ningn reclculo de la parte de configuracin del robot que se incluye en
los datos de entrada robtarget.
Sintaxis
MirPos(
[ Point := ] < expresin (IN) de robtarget>,
[MirPlane :=] <expresin (IN) de wobjdata> ,
[\WObj := <expresin (IN) de wobjdata> ]
[\MirY ])
Informacin relacionada
Descrito en:
Instrucciones y funciones matemticas Resumen sobre RAPID - Matemticas
Ejemplo
MODULE mymod
VAR num mytime;
PROC printMyTime()
mytime := ModTime("mymod");
TPWrite "Mi hora es "+NumToStr(mytime,0);
ENDPROC
El tiempo, medido en segundos, desde las 00:00:00 horas, horario de Greenwich, del
1 de enero de 1970.
Argumentos
ModTime ( Object )
Object Tipo de dato: string
Ejecucin de programas
Esta funcin devuelve un valor numrico que especifica la hora en la que se carg el
mdulo.
Ejemplo
A continuacin aparece un ejemplo completo en el que se implementa un servicio de
actualizacin si es ms reciente.
MODULE updmod
PROC callrout()
Load "HOME:/mymod.mod";
WHILE TRUE DO
! Llamar a una rutina de mymod
mymodrout;
IF FileTime("HOME:/mymod.mod" \ModifyTime)
> ModTime("mymod") THEN
UnLoad "HOME:/mymod.mod";
Load "HOME:/mymod.mod";
ENDIF
ENDWHILE
ENDPROC
ENDMODULE
Sintaxis
ModTime (
[ Object := ] < expresin (IN) de string>)
Informacin relacionada
Descrito en:
Obtener informacin de tiempo Funciones - FileTime
sobre un archivo
Descripcin
La orientacin debe estar normalizada, es decir, la suma de los cuadrados debe ser
igual a 1:
q 12 + q 22 + q 32 + q 42 = 1
2 2 2 2
ABS ( q 1 + q 2 + q 3 + q 4 1 ) = normerr
Ejemplo
Tenemos una posicin ligeramente desnormalizada (0,707170, 0, 0, 0,707170).
2 2 2 2
ABS ( 0,707170 + 0 + 0 + 0,707170 1 ) = 0,0000894
Argumentos
NOrient (Rotation)
Orient Tipo de dato: orient
Sintaxis
NOrient(
[Rotation :=] <expresin (IN) de orient>
)
Informacin relacionada
Descrito en:
Instrucciones y funciones matemticas Resumen sobre RAPID - Matemticas
Ejemplo
VAR string str;
str := NumToStr(0.38521,3);
reg1 := 0.38521
Argumentos
NumToStr (Val Dec [\Exp])
Val (valor) Tipo de dato: num
Sintaxis
NumToStr(
[ Val := ] <expresin (IN) de num> ,
[ Dec := ] <expresin (IN) de num>
[ \Exp ]
)
Informacin relacionada
Descrito en:
Funciones de cadenas de caracteres Resumen sobre RAPID -
Funciones de cadenas de caracteres
Definicin de cadenas Tipos de datos - string
Valores de cadena de caracteres Caractersticas bsicas -
Elementos bsicos
Ejemplos
MoveL Offs(p2, 0, 0, 10), v1000, z50, tool1;
Argumentos
Offs (Point XOffset YOffset ZOffset)
Point Tipo de dato: robtarget
El desplazamiento en la direccin x.
El desplazamiento en la direccin y.
El desplazamiento en la direccin z.
Ejemplo
PROC pallet (num row, num column, num distance, PERS tooldata tool,
PERS wobjdata wobj)
ENDPROC
Se crea una rutina para tomar piezas de un pal. Cada pal se define como un
objeto de trabajo (consulte la Figura 4). La pieza que debe tomarse (fila y
columna) y la distancia existente entre las partes se indican como parmetros de
entrada. El aumento del ndice de fila y columna se realiza fuera de la rutina.
Columnas
Eje Y
O O O O O O O O O O
O O O O O O O O O O
Filas O O O O O O O O O O
O O O O O O O O O O
Eje X
O O O O O O O O O O
Sintaxis
Offs (
[ Point := ] < expresin (IN) de robtarget>,
[XOffset :=] <expresin (IN) de num> ,
[YOffset :=] <expresin (IN) de num> ,
[ZOffset :=] <expresin (IN) de num> )
Informacin relacionada
Descrito en:
Datos de posicin Tipos de datos - robtarget
Ejemplo
TEST OpMode()
CASE OP_AUTO:
...
CASE OP_MAN_PROG:
...
CASE OP_MAN_TEST:
...
DEFAULT:
...
ENDTEST
Valor de Constante
Comentario
retorno simblica
Sintaxis
OpMode( )
Informacin relacionada
Descrito en:
Distintos modos de funcionamiento Gua del usuario - Starting up
Lectura del modo de ejecucin Funciones - RunMode
Ejemplo
VAR num anglex;
VAR num angley;
VAR num anglez;
VAR pose object;
.
object.rot := OrientZYX(anglez, angley, anglex)
Argumentos
OrientZYX (ZAngle YAngle XAngle)
ZAngle Tipo de dato: num
Sintaxis
OrientZYX(
[ZAngle :=] <expresin (IN) de num> ,
[YAngle :=] <expresin (IN) de num> ,
[XAngle :=] <expresin (IN) de num>
)
Informacin relacionada
Descrito en:
Instrucciones y funciones matemticas Resumen sobre RAPID - Matemticas
Ejemplo
VAR robtarget p10;
VAR robtarget p11;
p10 := CRobT();
p11 := ORobT(p10);
Se almacenan en p10 y p11 las posiciones actuales de los ejes del robot y de los
ejes externos. Los valores almacenados en p10 dependen del sistema de
coordenadas ProgDisp/ExtOffs. Los valores almacenados en p11 dependen del
sistema de coordenadas del objeto sin ningn offset en los ejes externos.
Argumentos
ORobT (OrgPoint [\InPDisp] | [\InEOffs])
OrgPoint (punto original) Tipo de dato: robtarget
Devuelve los ejes externos en el sistema de coordenadas del offset, es decir, slo
elimina el desplazamiento de programa del robot.
Ejemplos
p10 := ORobT(p10 \InEOffs );
Sintaxis
ORobT (
[ OrgPoint := ] < expresin (IN) de robtarget>
[\InPDisp] | [\InEOffs])
Informacin relacionada
Descrito en:
Definicin de desplazamientos de Instrucciones - PDispOn, PDispSet
programa para el robot
Definicin de offsets para los ejes externos Instrucciones - EOffsOn, EOffsSet
Sistemas de coordenadas Principios de movimiento y E/S -
Sistemas de coordenadas
Ejemplo
z1
Pose1
z0 Frame1
y1
x1
Frame0
y0 Pose2
x0
Argumentos
PoseInv (Pose)
Pose Tipo de dato: pose
La pose a invertir.
Sintaxis
PoseInv(
[Pose :=] <expresin (IN) de pose>
)
Informacin relacionada
Descrito en:
Instrucciones y funciones matemticas Resumen sobre RAPID - Matemticas
Ejemplo
z1
pose1 y1 z2
z0 pose2
Frame1
x1 Frame2
Frame0
y0 y2
pose3 x2
x0
Argumentos
PoseMult (Pose1 Pose2)
Pose1 Tipo de dato: pose
La primera pose.
La segunda pose.
Sintaxis
PoseMult(
[Pose1 :=] <expresin (IN) de pose> ,
[Pose2 :=] <expresin (IN) de pose>
)
Informacin relacionada
Descrito en:
Instrucciones y funciones matemticas Resumen sobre RAPID - Matemticas
Ejemplo
pos1
pos2 z1
z0
pose1 y1
Frame1
Frame0
y0 x1
x0
Argumentos
PoseVect (Pose Pos)
Pose Tipo de dato: pose
La transformacin a aplicar.
Sintaxis
PoseVect(
[Pose :=] <expresin (IN) de pose> ,
[Pos :=] <expresin (IN) de pos>
)
Informacin relacionada
Descrito en:
Instrucciones y funciones matemticas Resumen sobre RAPID - Matemticas
Ejemplo
VAR num x;
VAR num y
VAR num reg1;
.
reg1:= Pow(x, y);
Se asigna a reg1 el valor xy.
Argumentos
Pow (Base Exponent)
Base Tipo de dato: num
El valor del argumento usado como base.
Exponent Tipo de dato: num
El valor del argumento de exponente.
Limitaciones
La ejecucin de la funcin xy genera un error en los casos siguientes:
. Si x < 0 e y no es un entero
. Si x = 0 e y < 0.
Sintaxis
Pow(
[Base :=] <expresin (IN) de num> ,
[Exponent :=] <expresin (IN) de num>
)
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Descrito en:
Instrucciones y funciones matemticas Resumen sobre RAPID - Matemticas
Ejemplo
PROC feeder (\switch on | \switch off)
ENDPROC
Argumentos
Present (OptPar)
OptPar (parmetro opcional) Tipo de dato: cualquier tipo
Ejemplo
PROC glue (\switch on, num glueflow, robtarget topoint, speeddata speed,
zonedata zone, PERS tooldata tool, \PERS wobjdata wobj)
ENDPROC
Sintaxis
Present (
[OptPar:=] <referencia (REF) de cualquier tipo> )
Informacin relacionada
Descrito en:
Parmetros de rutinas Caractersticas bsicas - Rutinas
Esta funcin es compatible con archivos o canales serie de tipo binario y alfanumrico.
Ejemplo
VAR num character;
VAR iodev inchannel;
...
Open "com2:", inchannel\Bin;
character := ReadBin(inchannel);
Argumentos
ReadBin (IODevice [\Time])
IODevice Tipo de dato: iodev
El nombre (la referencia) del archivo o del canal serie que debe leerse.
Ejecucin de programas
La ejecucin del programa espera hasta que se pueda leer un byte (8 bits) del archivo o
del canal serie.
Ejemplo
VAR num bindata;
VAR iodev file;
Se lee el contenido del archivo binario myfile.bin desde el principio hasta el fin y
se muestran los datos binarios recibidos (un carcter cada vez) en la unidad de
programacin, tras convertirlos en caracteres.
Limitaciones
Esta funcin slo puede usarse con archivos y canales serie que hayan sido abiertos con
un acceso de lectura (\Read en el caso de los archivos alfanumricos, \Bin o \Append
\Bin en el caso de los archivos binarios).
Gestin de errores
Si se produce un error durante la lectura, la variable de sistema ERRNO cambia a
ERR_FILEACC.
Datos predefinidos
La constante EOF_BIN puede usarse para detener la lectura al final del archivo.
Sintaxis
ReadBin(
[IODevice :=] <variable (VAR) de iodev>
[\Time:= <expresin (IN) de num>])
Informacin relacionada
Descrito en:
Apertura y otras operaciones con archivos Resumen sobre RAPID -
o canales serie Comunicacin
Conversin de un byte en una cadena Instrucciones - ByteToStr
de caracteres
Ejemplo
VAR num motor_angle2;
motor_angle2 := ReadMotor(2);
El ngulo actual del motor del segundo eje del robot se almacena en
motor_angle2.
El ngulo actual del motor del eje indicado en radianes, ya sea un eje del robot o un eje
externo.
Argumentos
ReadMotor [\MecUnit ] Axis
Ejecucin de programas
El ngulo de motor devuelto representa la posicin actual del motor en radianes y es
independiente de cualquier offset de calibracin. El valor no depende de ninguna
posicin fija del robot, slo de la posicin cero interna del resolver, es decir,
normalmente la posicin cero del resolver ms cercana a la posicin de calibracin (la
diferencia existente entre la posicin cero del resolver y la posicin de calibracin es
el valor del offset de calibracin). Este valor representa el movimiento completo de
cada eje, si bien puede ser de varios giros.
Ejemplo
VAR num motor_angle3;
El ngulo de motor actual del tercer eje del robot se almacena en motor_angle3.
Sintaxis
ReadMotor(
[\MecUnit := < variable (VAR) de mecunit>,]
[Axis := ] < expresin (IN) de num>
)
Informacin relacionada
Descrito en:
Lectura del ngulo actual del eje Funciones - CJointT
Ejemplo
VAR iodev infile;
...
Open "HOME:/file.doc", infile\Read;
reg1 := ReadNum(infile);
Argumentos
ReadNum (IODevice [\Delim] [\Time])
IODevice Tipo de dato: iodev
El nombre (la referencia) del archivo o del canal serie que debe leerse.
Una cadena que contiene los delimitadores que deben utilizarse para interpretar
las lneas del archivo o del canal serie. De forma predeterminada (sin \Delim), el
archivo se lee una lnea cada vez y el nico delimitador que se tiene en cuenta es
el carcter de salto de lnea (\0A). Cuando se utiliza el argumento \Delim,
cualquier carcter del argumento de cadena especificado se utilizar para
determinar qu parte de la lnea es significativa.
Ejecucin de programas
A partir de la posicin actual del archivo, la funcin lee y desecha cualquier delimitador
de encabezado. Un delimitador de encabezado que se usa sin el argumento \Delim es el
carcter de salto de lnea. Los delimitadores de encabezado con el argumento \Delim
son cualquier carcter del argumento \Delim ms los caracteres de retorno de carro y
salto de lnea. Por tanto, se lee todo lo que se encuentre hasta el siguiente carcter
delimitador e incluyndolo (el delimitador se desecha posteriormente), pero no ms de
80 caracteres. Si la parte significativa tiene ms de 80 caracteres, el resto de los
caracteres se leen en la siguiente operacin de lectura.
Ejemplo
reg1 := ReadNum(infile\Delim:="\09 ");
IF reg1 > EOF_NUM THEN
TPWrite "El archivo est vaco";
...
Lee un nmero en una lnea en la que los nmeros estn separados por caracteres
de tabulador (\09) o espacios ( ).
Antes de usar el nmero ledo del archivo, se realiza una comprobacin para
asegurarse de que el archivo no est vaco.
Limitaciones
La funcin slo puede usarse con archivos alfanumricos que hayan sido abiertos para
lectura.
Gestin de errores
Si se produce un error de acceso durante la lectura, la variable de sistema ERRNO
cambia a ERR_FILEACC.
Datos predefinidos
La constante EOF_NUM puede usarse para detener la lectura al final del archivo.
Sintaxis
ReadNum (
[IODevice :=]<variable (VAR) de iodev>
[\Delim:=<expresin (IN) de string>]
[\Time:=<expresin (IN) de num>])
Informacin relacionada
Descrito en:
Apertura y otras operaciones con Resumen sobre RAPID -
archivos o canales serie Comunicacin
Ejemplo
VAR string text;
VAR iodev infile;
...
Open "HOME:/file.doc", infile\Read;
text := ReadStr(infile);
Argumentos
ReadStr (IODevice [\Delim] [\RemoveCR] [\DiscardHeaders]
[\Time])
IODevice Tipo de dato: iodev
El nombre (la referencia) del archivo o del canal serie que debe leerse.
Una cadena que contiene los delimitadores que deben utilizarse para interpretar
las lneas del archivo o del canal serie. De forma predeterminada, el archivo se
lee una lnea cada vez y el nico delimitador que se tiene en cuenta es el carcter
de salto de lnea (\0A). Cuando se utiliza el argumento \Delim, cualquier carcter
del argumento de cadena especificado, adems del carcter predeterminado de
salto de lnea, se utilizar para determinar qu parte de la lnea es significativa.
Ejecucin de programas
A partir de la posicin actual del archivo, si se utiliza el argumento \DiscardHeaders,
la funcin lee y desecha cualquier delimitador de encabezado (caracteres de salto de
lnea y cualquier carcter especificado en el argumento \Delim). En todos los casos, lee
todo hasta el siguiente carcter delimitador, pero no ms de 80 caracteres. Si la parte
significativa tiene ms de 80 caracteres, el resto de los caracteres se leen en la siguiente
operacin de lectura. El delimitador que causa la detencin de la interpretacin se lee
del archivo pero no se transfiere a la cadena devuelta. Si el ltimo carcter de la cadena
es un carcter de retorno de carro y se utiliza el argumento \RemoveCR, este carcter se
elimina de la cadena.
Ejemplo 1
text := ReadStr(infile);
IF text = EOF THEN
TPWrite "El archivo est vaco";
...
Ejemplo 2
Por ejemplo, veamos un archivo que contiene:
<LF><ESPACIO><TAB>Hola<SPACE><ESPACIO>Mundo<CR><LF>
text := ReadStr(infile);
El texto ser una cadena vaca: el primer carcter del archivo es el delimitador
predeterminado <LF>.
text := ReadStr(infile\DiscardHeaders);
El texto contendr
<ESPACIO><TAB>Hola<ESPACIO><SPACE>Mundo<CR>: el primer
carcter del archivo, el delimitador predeterminado <LF>, se desecha.
text := ReadStr(infile\RemoveCR\DiscardHeaders);
El texto contendr Hola: los primeros caracteres del archivo que coincidan con
el delimitador predeterminado <LF> o con el conjunto de caracteres definido por
\Delim (espacio y tabulador) se desechan. Se transfieren los datos existentes
hasta el primer delimitador ledo del archivo, aunque ste ltimo no se transfiere
a la cadena. Una nueva ejecucin de la misma sentencia devuelve Mundo.
Ejemplo 3
Por ejemplo, veamos un archivo que contiene:
<CR><LF>Hola<CR><LF>
text := ReadStr(infile);
El texto contendr el carcter <CR> (\0d): los caracteres <CR> y <LF> se leen
del archivo, pero slo se transfiere <CR> a la cadena. Una nueva ejecucin de la
misma sentencia devuelve Hola\0d.
text := ReadStr(infile\RemoveCR);
El texto ser una cadena vaca: los caracteres <CR> y <LF> se leen del archivo,
<CR> se transfiere pero se elimina de la cadena. Una nueva ejecucin de la
misma sentencia devuelve Hola.
text := ReadStr(infile\Delim:=\0d);
El texto ser una cadena vaca: <CR> se lee del archivo pero no se transfiere a la
cadena devuelta. Una nueva ejecucin de la misma instruccin devuelve de
nuevo una cadena vaca: <LF> se lee del archivo pero no se transfiere a la cadena
devuelta.
text := ReadStr(infile\Delim:=\0d\DiscardHeaders);
Limitaciones
La funcin slo puede usarse con archivos o canales serie que se han abierto para
lectura en modo alfanumrico.
Gestin de errores
Si se produce un error durante la lectura, la variable de sistema ERRNO cambia a
ERR_FILEACC.
Datos predefinidos
La constante EOF puede usarse para comprobar si el archivo estaba vaco al intentar
leer del archivo o para detener la lectura al final del archivo.
Sintaxis
ReadStr (
[IODevice :=] <variable (VAR) de iodev>
[\Delim:=<expresin (IN) de string>]
[\RemoveCR]
[\DiscardHeaders]
[\Time:= <expresin (IN) de num>])
Informacin relacionada
Descrito en:
Apertura y otras operaciones con Resumen sobre RAPID -
archivos o canales serie Comunicacin
Ejemplo
VAR iodev channel2;
VAR string text;
...
Open com2:, channel2 \Bin;
text := ReadStrBin (channel2, 10);
Se asigna a Text una cadena de texto de 10 caracteres leda del canal serie al que
se hace referencia con channel2.
La cadena de texto leda del canal serie o el archivo especificado. Si el archivo est
vaco (se ha alcanzado el fin del archivo), se devuelve la cadena de caracteres EOF.
Argumentos
ReadStrBin (IODevice NoOfChars [\Time])
IODevice Tipo de dato: iodev
El nombre (la referencia) del canal serie o el archivo binario del que se desea leer.
Ejecucin de programas
La funcin lee el nmero especificado de caracteres del canal serie o del archivo
binario.
Ejemplo
text := ReadStrBin(infile,20);
IF text = EOF THEN
TPWrite "El archivo est vaco";
Antes de usar la cadena de caracteres leda del archivo, se realiza una
comprobacin para asegurarse de que el archivo no est vaco.
Limitaciones
La funcin slo puede usarse con canales serie o archivos que hayan sido abiertos para
lectura en modo binario.
Gestin de errores
Si se produce un error durante la lectura, la variable de sistema ERRNO cambia a
ERR_FILEACC.
Si se agota el tiempo lmite antes de que se complete la operacin de lectura, la variable
de sistema ERRNO cambia a ERR_DEV_MAXTIME.
A continuacin, estos errores pueden ser gestionados en el gestor de errores.
Datos predefinidos
La constante EOF puede usarse para comprobar si el archivo estaba vaco al intentar
leer del archivo o para detener la lectura al final del archivo.
CONST string EOF := "EOF";
Sintaxis
ReadStrBin (
[IODevice :=] <variable (VAR) de iodev>,
[NoOfChars :=] <expresin (IN) de num>
[\Time:= <expresin (IN) de num>])
Una funcin con un valor de retorno del tipo de dato string.
Informacin relacionada
Descrito en:
Apertura y otras operaciones con Resumen sobre RAPID -
canales serie o archivos Comunicacin
Escritura de cadenas binarias Instrucciones - WriteStrBin
Ejemplo
MoveL RelTool (p1, 0, 0, 100), v100, fine, tool1;
Argumentos
RelTool (Point Dx Dy Dz [\Rx] [\Ry] [\Rz])
Point Tipo de dato: robtarget
Sintaxis
RelTool(
[ Point := ] < expresin (IN) de robtarget>,
[Dx :=] <expresin (IN) de num> ,
[Dy :=] <expresin (IN) de num> ,
[Dz :=] <expresin (IN) de num>
[\Rx := <expresin (IN) de num> ]
[\Ry := <expresin (IN) de num> ]
[\Rz := <expresin (IN) de num> ])
Informacin relacionada
Descrito en:
Instrucciones y funciones matemticas Resumen sobre RAPID - Matemticas
Instrucciones de posicionamiento Resumen sobre RAPID - Movimiento
Ejemplo
IF RobOS() THEN
! Sentencias de ejecucin para RC
ELSE
! Sentencias de ejecucin para VC
ENDIF
Sintaxis
RobOS ()
Ejemplo
VAR num val;
val := Round(0.38521\Dec:=3);
val := Round(0.38521\Dec:=1);
val := Round(0.38521);
Argumentos
Round ( Val [\Dec])
Val (valor) Tipo de dato: num
Nmero de decimales.
Sintaxis
Round(
[ Val := ] <expresin (IN) de num>
[ \Dec := <expresin (IN) de num> ]
)
Informacin relacionada
Descrito en:
Instrucciones y funciones matemticas Resumen sobre RAPID - Matemticas
Truncacin de un valor Funciones - Trunc
Ejemplo
IF RunMode() = RUN_CONT_CYCLE THEN
..
ENDIF
El modo de ejecucin actual, con uno de los valores definidos en la tabla siguiente.
Valor de
Constante simblica Comentario
retorno
Argumentos
RunMode ( [ \Main] )
[ \Main ] Tipo de dato: switch
Sintaxis
RunMode ( [\Main] )
Informacin relacionada
Descrito en:
Lectura del modo de funcionamiento Funciones - OpMode
Ejemplo
VAR num angle;
VAR num value;
.
.
value := Sin(angle);
Argumentos
Sin (Angle)
Angle Tipo de dato: num
Sintaxis
Sin(
[Angle :=] <expresin (IN) de num>
)
Informacin relacionada
Descrito en:
Instrucciones y funciones matemticas Resumen sobre RAPID - Matemticas
Ejemplo
VAR num x_value;
VAR num y_value;
.
.
y_value := Sqrt( x_value);
Argumentos
Sqrt (Value)
Value Tipo de dato: num
Sintaxis
Sqrt(
[Value :=] <expresin (IN) de num>
)
Informacin relacionada
Descrito en:
Instrucciones y funciones matemticas Resumen sobre RAPID - Matemticas
Ejemplo
VAR num found;
found := StrFind("Robotics",1,"aeiou");
found := StrFind("Robotics",1,"aeiou"\NotInSet);
Argumentos
StrFind (Str ChPos Set [\NotInSet])
Str (cadena de caracteres) Tipo de dato: string
Sintaxis
StrFind(
[ Str := ] <expresin (IN) de string> ,
[ ChPos := ] <expresin (IN) de num> ,
[ Set:= ] <expresin (IN) de string>
[\NotInSet ]
)
Informacin relacionada
Descrito en:
Funciones de cadenas de caracteres Resumen sobre RAPID -
Funciones de cadenas de caracteres
Definicin de cadenas Tipos de datos - string
Valores de cadena de caracteres Caractersticas bsicas -
Elementos bsicos
Ejemplo
VAR num len;
len := StrLen("Robotics");
Argumentos
StrLen (Str)
Str (cadena de caracteres) Tipo de dato: string
Sintaxis
StrLen(
[ Str := ] <expresin (IN) de string>
)
Informacin relacionada
Descrito en:
Funciones de cadenas de caracteres Resumen sobre RAPID -
Funciones de cadenas de caracteres
Definicin de cadenas Tipos de datos - string
Valores de cadena de caracteres Caractersticas bsicas -
Elementos bsicos
Ejemplo
VAR string str;
str := StrMap("Robotics","aeiou","AEIOU");
Argumentos
StrMap ( Str FromMap ToMap)
Str (cadena de caracteres) Tipo de dato: string
La cadena a convertir.
Sintaxis
StrMap(
[ Str := ] <expresin (IN) de string> ,
[ FromMap:= ] <expresin (IN) de string> ,
[ ToMap:= ] <expresin (IN) de string>
)
Informacin relacionada
Descrito en:
Funciones de cadenas de caracteres Resumen sobre RAPID -
Funciones de cadenas de caracteres
Definicin de cadenas Tipos de datos - string
Valores de cadena de caracteres Caractersticas bsicas -
Elementos bsicos
Ejemplo
VAR num found;
found := StrMatch("Robotics",1,"bo");
Argumentos
StrMatch (Str ChPos Pattern)
Str (cadena de caracteres) Tipo de dato: string
Sintaxis
StrMatch(
[ Str := ] <expresin (IN) de string> ,
[ ChPos := ] <expresin (IN) de num> ,
[ Pattern:= ] <expresin (IN) de string>
)
Informacin relacionada
Descrito en:
Funciones de cadenas de caracteres Resumen sobre RAPID -
Funciones de cadenas de caracteres
Definicin de cadenas Tipos de datos - string
Valores de cadena de caracteres Caractersticas bsicas -
Elementos bsicos
Ejemplo
VAR bool memb;
memb := StrMemb("Robotics",2,"aeiou");
Se asigna a la variable memb el valor TRUE, ya que o forma parte del conjunto
aeiou.
memb := StrMemb("Robotics",3,"aeiou");
Argumentos
StrMemb (Str ChPos Set)
Str (cadena de caracteres) Tipo de dato: string
Sintaxis
StrMemb(
[ Str := ] <expresin (IN) de string> ,
[ ChPos := ] <expresin (IN) de num> ,
[ Set:= ] <expresin (IN) de string>
)
Informacin relacionada
Descrito en:
Funciones de cadenas de caracteres Resumen sobre RAPID -
Funciones de cadenas de caracteres
Definicin de cadenas Tipos de datos - string
Valores de cadena de caracteres Caractersticas bsicas -
Elementos bsicos
Ejemplo
VAR bool le;
le := StrOrder("FIRST","SECOND",STR_UPPER);
TRUE si la primera cadena va antes de la segunda cadena (Str1 <= Str2) cuando se
utiliza la clasificacin de caracteres especificada.
Se supone que los caracteres que no estn incluidos en el orden definido siguen a los
caracteres presentes.
Argumentos
StrOrder ( Str1 Str2 Order)
Str1 (cadena 1) Tipo de dato: string
Sintaxis
StrOrder(
[ Str1 := ] <expresin (IN) de string> ,
[ Str2 := ] <expresin (IN) de string> ,
[ Order := ] <expresin (IN) de string>
)
Informacin relacionada
Descrito en:
Funciones de cadenas de caracteres Resumen sobre RAPID -
Funciones de cadenas de caracteres
Definicin de cadenas Tipos de datos - string
Valores de cadena de caracteres Caractersticas bsicas -
Elementos bsicos
Ejemplo
VAR string part;
part := StrPart("Robotics",1,5);
Se asigna a la variable part el valor "Robot".
Argumentos
StrPart (Str ChPos Len)
Str (cadena de caracteres) Tipo de dato: string
La cadena en la que se desea buscar una parte.
ChPos (posicin de carcter) Tipo de dato: num
La posicin del carcter inicial. Si la posicin est fuera de la cadena de
caracteres, se genera un error de tiempo de ejecucin.
Len (longitud) Tipo de dato: num
La longitud de la cadena parcial. Si la longitud es negativa o es superior a la
longitud de la cadena, o si la subcadena est (parcialmente) fuera de la cadena,
se genera un error de tiempo de ejecucin.
Sintaxis
StrPart(
[ Str := ] <expresin (IN) de string> ,
[ ChPos := ] <expresin (IN) de num> ,
[ Len:= ] <expresin (IN) de num>
)
Una funcin con un valor de retorno del tipo de dato string.
Informacin relacionada
Descrito en:
Funciones de cadenas de caracteres Resumen sobre RAPID -
Funciones de cadenas de caracteres
Definicin de cadenas Tipos de datos - string
Valores de cadena de caracteres Caractersticas bsicas -
Elementos bsicos
Ejemplo
VAR string con_data_buffer{5} := ["10", "AE", "176", "00001010", "A"];
VAR byte data_buffer{5};
data_buffer{1} := StrToByte(con_data_buffer{1});
data_buffer{2} := StrToByte(con_data_buffer{2}\Hex);
data_buffer{3} := StrToByte(con_data_buffer{3}\Okt);
data_buffer{4} := StrToByte(con_data_buffer{4}\Bin);
data_buffer{5} := StrToByte(con_data_buffer{5}\Char);
Argumentos
StrToByte (ConStr [\Hex] | [\Okt] | [\Bin] | [\Char])
ConStr (cadena a convertir) Tipo de dato: string
Limitaciones
En funcin del formato de la cadena que se desea convertir, se aplica el dato de
cadena siguiente:
Sintaxis
StrToByte(
[ConStr :=] <expresin (IN) de string>
[\ Hex ] | [\ Okt] | [\ Bin] | [\ Char]
) ;
Informacin relacionada
Descrito en:
Conversin de un byte en una Instrucciones - ByteToStr
cadena de caracteres
Otras funciones de bits (bytes) Resumen sobre RAPID -
Funciones de bits
Otras funciones de cadenas de caracteres Resumen sobre RAPID -
Funciones de cadenas de caracteres
Ejemplo
VAR bool ok;
VAR num nval;
ok := StrToVal("3.85",nval);
Argumentos
StrToVal ( Str Val )
Str (cadena de caracteres) Tipo de dato: string
Un valor de cadena que contiene datos literales con un formato que corresponde
al tipo de dato utilizado en el argumento Val. El formato vlido es el de los
agregados literales de RAPID.
Ejemplo
VAR string 15 := [600, 500, 225.3];
VAR bool ok;
VAR pos pos15;
ok := StrToVal(str15,pos15);
Sintaxis
StrToVal(
[ Str := ] <expresin (IN) de string> ,
[ Val := ] <variable o variable persistente (INOUT) de ANYTYPE>
)
Informacin relacionada
Descrito en:
Funciones de cadenas de caracteres Resumen sobre RAPID -
Funciones de cadenas de caracteres
Definicin de cadenas Tipos de datos - string
Valores de cadena de caracteres Caractersticas bsicas -
Elementos bsicos
Ejemplo
VAR num angle;
VAR num value;
.
.
value := Tan(angle);
El valor de la tangente.
Argumentos
Tan (Angle)
Angle Tipo de dato: num
Sintaxis
Tan(
[Angle :=] <expresin (IN) de num>
)
Informacin relacionada
Descrito en:
Instrucciones y funciones matemticas Resumen sobre RAPID - Matemticas
Arco tangente con un valor devuelto Funciones - ATan2
en el rango [-180, 180]
Ejemplo
MAIN program task:
PERS bool tproutine_inuse := FALSE;
....
WaitUntil TestAndSet(tproutine_inuse);
TPWrite Primera lnea de MAIN;
TPWrite Segunda lnea de MAIN;
TPWrite Tercera lnea de MAIN;
tproutine_inuse := FALSE;
Para evitar mezclar las lneas, una de MAIN y una de BACK1, el uso de la funcin
TestAndSet garantiza que las tres lneas de cada tarea no se separen.
TRUE si el semforo ha sido activado por la tarea actual (la tarea que ejecuta la funcin
TestAndSet). De lo contrario, FALSE.
Argumentos
TestAndSet Object
Object Tipo de dato: bool
Objeto de datos definido por el usuario para usarlo como semforo.- El objeto de
datos puede ser de tipo VAR o PERS. Si se utilizan funciones TestAndSet entre
tareas de programa diferentes, el objeto debe ser de tipo PERS o de tipo VAR
instalado (objetos compartidos entre tareas).
Ejecucin de programas
Esta funcin comprueba en un paso indivisible si el usuario ha establecido el valor de
la variable y, si no es as, lo establece y devuelve TRUE. De lo contrario, devuelve
FALSE.
Ejemplo
LOCAL VAR bool doit_inuse := FALSE;
...
PROC doit(...)
WaitUntil TestAndSet (doit_inuse);
....
doit_inuse := FALSE;
ENDPROC
Sintaxis
TestAndSet (
[ Object := ] < variable o variable persistente (INOUT) de bool> )
Informacin relacionada
Descrito en:
Mdulo incorporado y compartido Gua del usuario -
Parmetros del sistema
Objetos compartidos entre tareas Manual del programador de RAPID -
Manual de referencia del kernel de RAPID - Objetos compartidos entre tareas
Ejemplos
La ejecucin del programa contina slo cuando tanto la entrada di1 como la
entrada di2 estn activadas.
Argumentos
TestDI (Signal)
Signal Tipo de dato: signaldi
Sintaxis
TestDI (
[ Signal := ] < variable (VAR) de signaldi > )
Informacin relacionada
Descrito en:
Lectura del valor de una seal Funciones - DInput
digital de entrada
Instrucciones de entrada y salida Resumen sobre RAPID -
Seales de entrada y salida
Esta funcin devuelve el valor momentneo o el valor medio de los ltimos muestreos,
en funcin de la especificacin de canal utilizada en la instruccin TestSignDefine.
Ejemplo
CONST num speed_channel;
VAR num speed_value;
...
TestSignDefine speed_channel, speed, orbit, 1, 0;
...
! Durante algunos movimientos con el eje 1 de la unidad mecnica
speed_value := TestSignRead(speed_channel);
...
TestSignReset;
El valor numrico en unidades SI del lado de motor del canal especificado, acorde con
la definicin de la instruccin TestSignDefine.
Argumentos
TestSignRead (Channel)
Channel Tipo de dato: num
Ejecucin de programas
Devuelve el valor momentneo o el valor medio de los ltimos muestreos, en funcin
de la especificacin de canal utilizada en la instruccin TestSignDefine.
Para ms informacin sobre las seales de test predefinidas con unidades SI vlidas
para los ejes de manipuladores externos, consulte el tipo de dato testsignal.
Ejemplo
CONST num torque_channel;
VAR num torque_value;
VAR intnum timer_int;
CONST jointtarget psync := [...];
...
CONNECT timer_int WITH TorqueTrap;
ITimer \Single, 0.05, timer_int;
TestSignDefine torque_channel, torque_ref, IRBP_K, 2, 0.001;
...
MoveAbsJ psync \NoEOffs, v5, fine, tool0;
...
IDelete timer_int;
TestSignReset;
TRAP TorqueTrap
IF (TestSignRead(torque_channel) > 6) THEN
TPWrite Pos de par = + ValToStr(CJointT());
Stop;
EXIT;
ELSE
IDelete timer_int;
CONNECT timer_int WITH TorqueTrap;
ITimer \Single, 0.05, timer_int;
ENDIF
ENDTRAP
La posicin del eje, cuando la referencia de par del eje 2 del manipulador IRBP_K
es por primera vez mayor que 6 Nm en el lado de motor durante el movimiento
lento hasta la posicin psync, se muestra en la ventana Operador de la unidad de
programacin.
Sintaxis
TestSignRead(
[ Channel :=] <expresin (IN) de num>)
Informacin relacionada
Descrito en:
Definicin de una seal de test Instrucciones - TestSignDefine
Puesta a cero de seales de test Instrucciones - TestSignReset
Ejemplo
VAR num val;
val := Trunc(0.38521\Dec:=3);
reg1 := 0.38521
val := Trunc(reg1\Dec:=1);
val := Trunc(0.38521);
Argumentos
Trunc ( Val [\Dec] )
Val (valor) Tipo de dato: num
Nmero de decimales.
Sintaxis
Trunc(
[ Val := ] <expresin (IN) de num>
[ \Dec := <expresin (IN) de num> ]
)
Informacin relacionada
Descrito en:
Instrucciones y funciones matemticas Resumen sobre RAPID - Matemticas
Redondeo de un valor Funciones - Round
Ejemplo
VAR string str;
VAR pos p := [100,200,300];
str := ValToStr(1.234567);
str := ValToStr(TRUE);
str := ValToStr(p);
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.
Argumentos
ValToStr ( Val )
Val (valor) Tipo de dato: ANYTYPE
Sintaxis
ValToStr(
[ Val := ] <expresin (IN) de ANYTYPE>
)
Informacin relacionada
Descrito en:
Funciones de cadenas de caracteres Resumen sobre RAPID -
Funciones de cadenas de caracteres
Definicin de cadenas Tipos de datos - string
Valores de cadena de caracteres Caractersticas bsicas -
Elementos bsicos
Ejemplo
z A
Az
y
Ay
x
Ax
Un vector A puede escribirse como la suma de sus componentes en las tres direcciones
ortogonales:
A = Ax x + Ay y + Az z
La magnitud de A es:
2 2 2
A = Ax + Ay + Az
Argumentos
VectMagn (Vector)
Vector Tipo de dato: pos
Sintaxis
VectMagn(
[Vector :=] <expresin (IN) de pos>
)
Informacin relacionada
Descrito en:
Instrucciones y funciones matemticas Resumen sobre RAPID - Matemticas
Descripcin
Los datos de tipo aiotrigg definen la forma en que se usarn un umbral mximo y un
umbral mnimo para determinar si el valor lgico de una seal analgica cumple las
condiciones para generar una interrupcin.
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.
Datos predefinidos
Se han predefinido las constantes simblicas siguientes del tipo de dato aiotrigg. Puede
usarlas para especificar una condiciones para las instrucciones ISignalAI y ISignalAO.
Caractersticas
aiotrigg es un tipo de dato de alias de num y por tanto hereda sus caractersticas.
Informacin relacionada
Descrito en:
Interrupcin a partir de una seal analgica Instrucciones - ISignalAI
de entrada
Interrupcin a partir de una seal analgica Instrucciones - ISignalAO
de salida
Tipos de datos en general, tipos de datos Caractersticas bsicas - Tipos de datos
de alias
Descripcin
El valor de un dato de tipo bool puede ser TRUE (verdadero) o FALSE (falso).
Ejemplos
flag1 := TRUE;
Informacin relacionada
Descrito en:
Expresiones lgicas Caractersticas bsicas - Expresiones
Operaciones con valores lgicos Caractersticas bsicas - Expresiones
Descripcin
Los datos de tipo byte representan valores de byte decimales.
Ejemplos
CONST num parity_bit := 8;
Gestin de errores
Si un argumento de tipo byte tiene un valor que queda fuera del rango de 0 a 255, se
genera un error al ejecutar el programa.
Caractersticas
Byte es un tipo de dato de alias de num y por tanto hereda sus caractersticas.
Informacin relacionada
Descrito en:
Tipos de datos de alias Caractersticas bsicas - Tipos de datos
Funciones de bits Resumen sobre RAPID - Funciones de bits
Descripcin
Los datos de tipo clock almacenan una medicin de tiempo en segundos y tienen una
exactitud de 0,01 segundos.
Ejemplo
VAR clock clock1;
ClkReset clock1;
Se declara y pone a cero el reloj clock1. Antes de usar ClkReset, ClkStart, ClkStop y
ClkRead, es necesario declarar una variable de tipo clock en el programa.
Limitaciones
El tiempo mximo que puede almacenar una variable de tipo clock es de
aproximadamente 49 das (4.294.967 segundos). Las instrucciones ClkStart, ClkStop y
ClkRead informan de los desbordamientos del reloj en el caso poco probable de que se
produzcan.
Las variables clock deben declararse como variables VAR, no como variables
persistentes.
Caractersticas
Clock es un tipo de dato sin valor y no puede usarse en operaciones basadas en valores.
Informacin relacionada
Descrito en:
Resumen de las instrucciones de hora y fecha Resumen sobre RAPID - Sistema y
tiempo
Caractersticas de los tipos sin valor Caractersticas bsicas - Tipos de datos
Descripcin
Todas las posiciones del robot se definen y almacenan mediante coordenadas
rectangulares. A la hora de calcular las posiciones correspondientes de los ejes, existen
con frecuencia dos o ms soluciones posibles. Esto significa que el robot puede alcanzar
la misma posicin, es decir, situar la herramienta en la misma posicin y con la misma
orientacin, a partir de distintas posiciones o configuraciones de los ejes del robot.
Algunos tipos de robots utilizan mtodos numricos iterativos para determinar las
posiciones de los ejes. En estos casos, los parmetros de configuracin puede usarse
para definir valores de eje iniciales adecuados que puede usar el proceso iterativo.
-4 3
-1 0
-3 -2 1 2
En el caso de un eje lineal, el valor define el intervalo en metros del eje del robot. Para
cada eje, el valor 0 significa una posicin entre 0 y 1 metro y 1 significa una posicin
entre 1 y 2 metros. En el caso de los valores negativos, -1 significa una posicin entre
-1 y 0 metros, etc. (consulte la Figura 6).
-3 -2 -1 0 1 2 Valor de configuracin
cfx se utiliza para seleccionar una de las ocho configuraciones posibles del robot,
numeradas de 0 a 7. En la tabla siguiente se indican estas configuraciones en cuanto a
cmo se posiciona el robot respecto de las tres singularidades.
ABB
ABB
beta -beta
cfx = 0 cfx = 1
Figura 7 Ejemplo de las configuraciones de robot 0 y 1. Observe los distintos signos del
ngulo del eje 5.
Eje 1 Eje 1
beta -beta
ABB
ABB
Centro de Centro de
la mueca la mueca
cfx = 2 cfx = 3
Figura 8 Ejemplo de las configuraciones de robot 2 y 3. Observe los distintos signos del
ngulo del eje 5.
beta -beta
AB
B
AB
cfx = 4 cfx = 5
Figura 9 Ejemplo de las configuraciones de robot 4 y 5. Observe los distintos signos del
ngulo del eje 5.
ABB
beta ABB -beta
cfx = 6 cfx = 7
Figura 10 Ejemplo de las configuraciones de robot 6 y 7. Observe los distintos signos del
ngulo del eje 5.
cf6 no se utiliza
cf6 no se utiliza
Componentes
cf1 Tipo de dato: num
Eje de rotacin:
El cuadrante actual del eje 1, expresado como un nmero entero positivo o
negativo.
Eje lineal:
El intervalo actual en metros del eje 1, expresado como un nmero entero
positivo o negativo.
cf4 Tipo de dato: num
Eje de rotacin:
El cuadrante actual del eje 4, expresado como un nmero entero positivo o
negativo.
Eje lineal:
El intervalo actual en metros del eje 4, expresado como un nmero entero
positivo o negativo.
cf6 Tipo de dato: num
Eje de rotacin:
El cuadrante actual del eje 6, expresado como un nmero entero positivo o
negativo.
Eje lineal:
El intervalo actual en metros del eje 6, expresado como un nmero entero
positivo o negativo.
cfx Tipo de dato: num
Eje de rotacin:
En el robot IRB140, la configuracin actual del robot, expresada como un entero
de 0 a 7.
En el caso del robot IRB5400, el cuadrante actual del eje 5, expresado como un
nmero entero positivo o negativo.
En otros robots, el cuadrante actual del eje 2, expresado como un nmero entero
positivo o negativo.
Eje lineal:
El intervalo actual en metros del eje 2, expresado como un nmero entero
positivo o negativo.
Ejemplo
VAR confdata conf15 := [1, -1, 0, 0]
Estructura
< dataobject of confdata >
< cf1 of num >
< cf4 of num >
< cf6 of num >
< cfx of num >
Informacin relacionada
Descrito en:
Sistemas de coordenadas Principios de movimiento y E/S -
Sistemas de coordenadas
Gestin de datos de configuracin Principios de movimiento y E/S -
Configuracin del robot
Este tipo de dato se utiliza junto con instrucciones y funciones dedicadas a la gestin
de seales digitales de entrada o salida.
Descripcin
Los datos del tipo dionum representan los valores digitales 0 1.
Ejemplos
CONST dionum close := 1;
Datos predefinidos
Las constantes high, low y edge estn predefinidas en el mdulo de sistema user.sys:
Caractersticas
Dionum es un tipo de dato de alias de num y por tanto hereda sus caractersticas.
Informacin relacionada
Descrito en:
Resumen de instrucciones de entrada y salida Resumen sobre RAPID - Seales de
entrada y salida
Configuracin de E/S Gua del usuario - Parmetros del
sistema
Tipos de datos de alias Caractersticas bsicas - Tipos de datos
Descripcin
Los datos de tipo errdomain representan el dominio en el que se ha registrado un error,
una advertencia o un cambio de estado. Consulte 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;
...
TRAP trap_err
GetTrapData err_data;
ReadErrData err_data, err_domain, err_number, err_type;
ENDTRAP
Datos predefinidos
Puede usar las constantes predefinidas siguientes para especificar un dominio de error.
Tabla 1 Dominios de error predefinidos
Caractersticas
errdomain es un tipo de dato de alias de num y por tanto hereda sus caractersticas.
Informacin relacionada
Descrito en:
Peticin de una interrupcin en Instrucciones - IError
caso de error
Nmeros de errores Gua del usuario - Mensajes del sistema y de error
Tipos de datos de alias Caractersticas bsicas - Tipos de datos
Descripcin
Si el robot detecta un error durante la ejecucin del programa, es posible resolverlo con
el gestor de errores de la rutina. Algunos ejemplos de estos errores es la existencia de
valores demasiado altos y la divisin por cero. Por tanto, se asignan valores diferentes
a la variable de sistema ERRNO, del tipo type errnum, en funcin de la naturaleza de
un error. El gestor de errores puede ser capaz de corregir un error leyendo el contenido
de esta variable, tras lo cual la ejecucin del programa puede continuar de la forma
adecuada.
Los errores tambin pueden crearse desde el propio programa mediante la instruccin
RAISE. Este tipo concreto de error puede detectarse en el gestor de errores mediante
la especificacin de un nmero de error (de 0 a 90 o reservado mediante la instruccin
BookErrNo) como argumento de RAISE.
Ejemplos
reg1 := reg2 / reg3;
.
ERROR
IF ERRNO = ERR_DIVZERO THEN
reg3 := 1;
RETRY;
ENDIF
Datos predefinidos
Puede usar la variable de sistema ERRNO para obtener el ltimo error que se ha
producido. Existen varias constantes predefinidas que puede usar para determinar qu
tipo de error se ha producido.
Nombre Causa del error
ERR_ACC_TOO_LOW Se ha especificado una aceleracin o deceleracin
demasiado baja en las instrucciones PathAccLim o
WorldAccLim
ERR_ALRDYCNT La variable de interrupcin ya est vinculada a una
rutina TRAP
ERR_ALRDY_MOVING El robot ya est en movimiento cuando se ejecuta
una instruccin StartMove
ERR_AO_LIM El valor de la seal analgica ScaleLag est fuera
de lmites en TriggIO, TriggEquip o TriggSpeed
ERR_ARGDUPCND Existe ms de un argumento condicional para el
mismo parmetro
ERR_ARGNAME El argumento es una expresin, no presente o de
modificador al ejecutar ArgName
ERR_ARGNOTPER El argumento no es una referencia a una variable
persistente
ERR_ARGNOTVAR El argumento no es una referencia a una variable
ERR_AXIS_ACT El eje no est activo
ERR_AXIS_IND El eje no es independiente
ERR_AXIS_MOVING El eje est en movimiento
ERR_AXIS_PAR El eje indicado como parmetro de las
instrucciones TestSign y SetCurrRef no es correcto
ERR_BWDLIMIT Lmite de StepBwdPath
ERR_CALLIO_INTER Una peticin IOEnable o IODisable es
interrumpida por otra peticin a la misma unidad
ERR_CALLPROC Error en una llamada a un procedimiento (no es
un procedimiento) en tiempo de ejecucin (con
enlazamiento en tiempo de ejecucin)
ERR_CFG_ILLTYPE Error de coincidencia de tipos en ReadCfgData,
WriteCfgData
ERR_CFG_LIMIT Lmite de datos - WriteCfgData
ERR_CFG_NOTFND No encontrado - ReadCfgData, WriteCfgData
ERR_CNTNOTVAR El objetivo de CONNECT no es una referencia a
una variable
ERR_CNV_NOT_ACT El transportador no est activado
ERR_CNV_CONNECT La instruccin WaitWobj ya est activada
ERR_CNV_DROPPED El objeto esperado por la instruccin WaitWobj se
ha cado
Caractersticas
Errnum es un tipo de dato de alias de num y por tanto hereda sus caractersticas.
Informacin relacionada
Descrito en:
Recuperacin en caso de error Resumen sobre RAPID - Recuperacin
datos de alias en caso de error
Caractersticas bsicas - Recuperacin en
caso de error
Tipos de datos en general, tipos de Caractersticas bsicas - Tipos de datos
Descripcin
Los datos de tipo errtype representan el tipo (cambio de estado, advertencia, error) de
un mensaje de error. Consulte 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;
...
TRAP trap_err
GetTrapData err_data;
ReadErrData err_data, err_domain, err_number, err_type;
ENDTRAP
Datos predefinidos
Puede usar las constantes predefinidas siguientes para especificar un tipo de error.
Tabla 2 Tipos de error predefinidos
TYPE_ERR Error 3
Caractersticas
errtype es un tipo de dato de alias de num y por tanto hereda sus caractersticas.
Informacin relacionada
Descrito en:
Peticin de una interrupcin en caso de error Instrucciones - IError
Nmeros de errores Gua del usuario - Mensajes del
sistema y de error
Tipos de datos de alias Caractersticas bsicas - Tipos de datos
Descripcin
El robot puede controlar hasta seis ejes externos adems de los seis ejes internos, es
decir, un total de doce ejes. Los seis ejes externos tienen una denominacin de tipo
lgico: a, b, c, d, e, f. Estos ejes lgicos pueden conectarse a un eje fsico y, en este
caso, la conexin se define en los parmetros de sistema.
Se utilizan datos de tipo extjoint para almacenar los valores de las posiciones de cada
uno de los ejes lgicos del a al f.
Para cada eje lgico conectado a un eje fsico, la posicin se define de la forma
siguiente:
Si un eje lgico no est conectado a uno fsico, se utiliza el valor 9E9 como valor de
posicin, para indicar que el eje no est conectado. En el momento de la ejecucin, se
comprueban los datos de posicin de los distintos ejes y se comprueba si est
conectado el eje correspondiente. Si el valor de posicin almacenado no cumple con la
conexin actual del eje, se aplica lo siguiente:
Si se utiliza un offset del eje externo (instruccin EOffsOn o EOffsSet), las posiciones
se especifican en el sistema de coordenadas ExtOffs.
Componentes
eax_a (eje externo a) Tipo de dato: num
La posicin del eje externo lgico b, expresada en grados o mm (en funcin del
tipo de eje).
...
La posicin del eje externo lgico f, expresada en grados o mm (en funcin del
tipo de eje).
Ejemplo
VAR extjoint axpos10 := [ 11, 12.3, 9E9, 9E9, 9E9, 9E9] ;
Estructura
< dataobject of extjoint >
< eax_a of num >
< eax_b of num >
< eax_c of num >
< eax_d of num >
< eax_e of num >
< eax_f of num >
Informacin relacionada
Descrito en:
Datos de posicin Tipos de datos - robtarget
Sistema de coordenadas ExtOffs Instrucciones - EOffsOn
Descripcin
Cuando se conecta una variable de tipo intnum a una rutina TRAP, recibe un valor
especfico que identifica a la interrupcin. A continuacin, la variable se utiliza en
todas las operaciones realizadas con la interrupcin, por ejemplo, al pedir o desactivar
una interrupcin.
Es posible conectar ms de una identidad de interrupcin a una misma rutina TRAP.
Por tanto, la variable de sistema INTNO puede usarse en las rutinas TRAP para
determinar el tipo de interrupcin que tiene lugar.
Ejemplos
VAR intnum feeder_error;
.
CONNECT feeder_error WITH correct_feeder;
ISignalDI di1, 1, feeder_error;
Se genera una interrupcin cuando la entrada di1 cambia de valor a 1.
Cuando esto ocurre, se hace una llamada a la rutina TRAP correct_feeder.
VAR intnum feeder1_error;
VAR intnum feeder2_error;
.
PROC init_interrupt();
.
CONNECT feeder1_error WITH correct_feeder;
ISignalDI di1, 1, feeder1_error;
CONNECT feeder2_error WITH correct_feeder;
ISignalDI di2, 1, feeder2_error;
.
ENDPROC
.
TRAP correct_feeder
IF INTNO=feeder1_error THEN
.
ELSE
.
ENDIF
.
ENDTRAP
Se genera una interrupcin cuando una de las entradas, di1 o di2, cambia de valor
a 1. En este caso, se realiza una llamada a la rutina TRAP correct_feeder. La
variable de sistema INTNO se utiliza en la rutina TRAP para determinar qu tipo
de interrupcin se ha producido.
Limitaciones
El nmero mximo de variables activas del tipo intnum que pueden existir en un
momento determinado (entre CONNECT y IDelete) est limitado a 40. El nmero
mximo de interrupciones que puede albergar la cola de ejecucin de rutinas TRAP en
un momento determinado est limitado a 30.
Caractersticas
Intnum es un tipo de dato de alias de num y por tanto hereda sus propiedades.
Informacin relacionada
Descrito en:
Resumen de interrupciones Resumen sobre RAPID -
Interrupciones
Tipos de datos de alias Caractersticas bsicas - Tipos de datos
Descripcin
Los datos de tipo iodev contienen una referencia a un archivo o a un canal serie. Pueden
conectarse a la unidad fsica mediante la instruccin Open y utilizarse a continuacin
para operaciones de lectura y escritura.
Ejemplo
VAR iodev file;
.
Open HOME:/LOGDIR/INFILE.DOC, file\Read;
input := ReadNum(file);
Se abre el archivo INFILE.DOC para lectura. Al leer del archivo, se utiliza file
como referencia en lugar del nombre del archivo.
Caractersticas
Iodev es un tipo de dato sin valor.
Informacin relacionada
Descrito en:
Comunicacin a travs de canales serie Resumen sobre RAPID -
Comunicacin
Configuracin de canales serie Gua del usuario - Parmetros del
sistema
Caractersticas de los tipos de datos sin valor Caractersticas bsicas - Tipos de
datos
Descripcin
Jointtarget define las posiciones individuales de los distintos ejes, tanto de los del
robot como de los externos.
Componentes
robax (ejes del robot) Tipo de dato: robjoint
La posicin del eje se define como la rotacin en grados del eje (brazo)
correspondiente en sentido positivo o negativo a partir de la posicin de
calibracin del eje.
Los ejes externos eax_a ... son ejes lgicos. La relacin existente entre el nmero
lgico del eje y el nmero fsico del eje se define en los parmetros del sistema.
El valor 9E9 se utiliza para definir los ejes que no estn conectados. Si los ejes
definidos en los datos de posicin son distintos de los ejes que estn conectados
realmente en el momento de la ejecucin del programa, ocurre lo siguiente:
Ejemplos
CONST jointtarget calib_pos := [ [ 0, 0, 0, 0, 0, 0], [ 0, 9E9, 9E9, 9E9, 9E9, 9E9] ];
Estructura
< dataobject of jointtarget >
< robax of robjoint >
< rax_1 of num >
< rax_2 of num >
< rax_3 of num >
< rax_4 of num >
< rax_5 of num >
< rax_6 of num >
< extax of extjoint >
< eax_a of num >
< eax_b of num >
< eax_c of num >
< eax_d of num >
< eax_e of num >
< eax_f of num >
Informacin relacionada
Descrito en:
Movimiento a una posicin de eje Instrucciones - MoveAbsJ
Instrucciones de posicionamiento Resumen sobre RAPID - Movimiento
Configuracin de los ejes externos Gua del usuario - Parmetros del
sistema
Los datos de carga suelen definir la carga til (la carga de la pinza se define con la
instruccin GripLoad) del robot, es decir, la carga sostenida por la pinza del robot.
La carga de la herramienta se especifica en los datos de la herramienta (tooldata) que
incluyen los datos de carga.
Descripcin
Se utilizan cargas especificadas para configurar un modelo de la dinmica del robot,
de forma que sus movimientos puedan controlarse de la mejor forma posible.
Cuando se especifican datos de carga incorrectos, este hecho suele tener las
consecuencias siguientes:
- Si el valor de los datos de carga especificados es mayor que el valor de la carga real:
-> El robot no funcionar a su capacidad mxima
-> Peor exactitud de la trayectoria, con riesgo de sobrepasar posiciones
-> Riesgo de sobrecarga de la estructura mecnica
- 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
Componentes
mass Tipo de dato: num
IY
IZ
Sistema de coordenadas de la carga til
Ejes de inercia de la carga til
IX
Z Pinza
Sistema de coordenadas
Y de la herramienta
Z
Sistema de coordenadas
Y de la carga til
X
Z
Ejes de inercia de
la carga til
X
Carga til
Carga til
Distancia
x
Dimensiones
Ejemplos
PERS loaddata piece1 := [ 5, [50, 0, 50], [1, 0, 0, 0], 0, 0, 0];
- Peso 5 kg.
- El centro de gravedad es x = 50, y = 0 y z = 50 mm en el sistema de coordenadas
de la herramienta.
- La carga til es una masa puntual.
Set gripper;
WaitTime 0.3;
GripLoad piece1;
Reset gripper;
WaitTime 0.3;
GripLoad load0;
Limitaciones
La carga til slo debe definirse mediante variables persistentes (PERS) y no desde
dentro de una rutina. De esta forma, los valores se guardan al almacenar el programa
en un disquete y se recuperan al cargarlo.
Los argumentos de datos de carga de la instruccin GripLoad deben ser slo del tipo
persistente completo (ni elementos de matriz ni componentes de registro).
Datos predefinidos
La carga load0 define una carga til, el peso de la cual es igual a 0 kg, es decir, ninguna
carga. Esta carga se utiliza como argumento en la instruccin GripLoad para
desconectar una carga til.
La carga load0 est siempre disponible desde el programa, pero no puede ser
modificada (est almacenada en el mdulo de sistema BASE).
Estructura
< dataobject of loaddata >
< mass of num >
< cog of pos >
< x of num >
< y of num >
< z of num >
< aom of orient >
< q1 of num >
< q2 of num >
< q3 of num >
< q4 of num >
< ix of num >
< iy of num >
< iz of num >
Informacin relacionada
Descrito en:
Sistemas de coordenadas Principios de movimiento y E/S -
Sistemas de coordenadas
Definicin de cargas de herramienta Tipos de datos - tooldata
Activacin de una carga til Instrucciones - GripLoad
Descripcin
Los datos de tipo loadsession se utilizan en las instrucciones StartLoad y WaitLoad
para identificar la sesin de carga. Loadsession slo contiene una referencia a la sesin
de carga.
Caractersticas
Loadsession es un tipo de dato sin valor y no puede utilizarse en las operaciones
basadas en valores.
Informacin relacionada
Descrito en:
Carga de mdulos de programa durante Instrucciones - StartLoad, WaitLoad
la ejecucin
Caractersticas de los tipos de datos sin valor Caractersticas bsicas -
Tipos de datos
Los nombres de las unidades mecnicas se definen en los parmetros del sistema y, por
tanto, no debe definirlos en el programa.
Descripcin
Los datos del tipo mecunit slo contienen una referencia a la unidad mecnica.
Limitaciones
No debe definir los datos de tipo mecunit en el programa. Sin embargo, s es posible
utilizarlos como parmetros al declarar una rutina.
Datos predefinidos
Las unidades mecnicas definidas en los parmetros del sistema estn siempre
disponibles desde el programa (datos instalados).
Caractersticas
Mecunit es un tipo de dato sin valor. Esto significa que los datos de este tipo no son
compatibles con operaciones basadas en valores.
Informacin relacionada
Descrito en:
Activacin y desactivacin de unidades mecnicas Instrucciones -
ActUnit, DeactUnit
Configuracin de unidades mecnicas Gua del usuario -
Parmetros del sistema
Caractersticas de los tipos de datos sin valor Caractersticas bsicas -
Tipos de datos
Normalmente, no es necesario utilizar este tipo de dato ya que estos parmetros slo
pueden cambiarse mediante las instrucciones VelSet, AccSet, SingArea, ConfJ, ConfL,
PathResol, MotionSup, PathAccLim, CirPathMode y WorldAccLim.
Descripcin
Los parmetros de movimiento actuales (almacenados en la variable de sistema
C_MOTSET) afectan a todos los movimientos.
Componentes
vel.oride Tipo de dato: veldata/num
Desviacin mxima permitida en grados para el eje 1 (no se utiliza en esta versin).
Desviacin mxima permitida en grados para el eje 4 (no se utiliza en esta versin).
Desviacin mxima permitida en grados para el eje 6 (no se utiliza en esta versin).
Ajuste actual de RAPID como porcentaje del valor de ajuste configurado para la
funcin de supervisin de movimientos.
Limitaciones
Slo y slo uno de los componentes sing.wrist, sing.arm o sing.base puede tener un
valor igual a TRUE.
Ejemplo
IF C_MOTSET.vel.oride > 50 THEN
...
ELSE
...
ENDIF
Datos predefinidos
C_MOTSET describe los parmetros de movimiento actuales del robot y est siempre
disponible desde el programa (datos instalados). Por otro lado, C_MOTSET slo puede
modificarse mediante un conjunto de instrucciones, no mediante asignacin.
Estructura
<dataobject of motsetdata>
<vel of veldata > -> Afectado por la instruccin VelSet
< oride of num >
< max of num >
<acc of accdata > -> Afectado por la instruccin AccSet
< acc of num >
< ramp of num >
<sing of singdata > -> Afectado por la instruccin SingArea
< wrist of bool >
< arm of bool >
< base of bool >
<conf of confsupdata > -> Afectado por las instrucciones ConfJ y
ConfL
< jsup of bool >
<lsup of bool >
< ax1 of num >
< ax4 of num >
< ax6 of num >
<pathresol of num> -> Afectado por la instruccin PathResol
<motionsup of bool> -> Afectado por la instruccin MotionSup
<tunevalue of num> -> Afectado por la instruccin MotionSup
<acclim of bool> -> Afectado por la instruccin PathAccLim
<accmax of num> -> Afectado por la instruccin PathAccLim
<decellim of bool> -> Afectado por la instruccin PathAccLim
<decelmax of num> -> Afectado por la instruccin PathAccLim
<cirpathreori of num> -> Afectado por la instruccin CirPathMode
<worldacclim of bool> -> Afectado por la instruccin WorldAccLim
<worldaccmax of num> -> Afectado por la instruccin WorldAccLim
Informacin relacionada
Descrito en:
Descripcin
El valor del tipo de dato num puede ser:
Tambin puede escribirse de forma exponencial, por ejemplo 2E3 (= 2*103 = 2.000),
2,5E-2 (= 0,025).
Los enteros entre -8388607 y +8388608 se almacenan siempre como enteros exactos.
Los nmeros con decimales son slo nmeros aproximados y, por tanto, no deben
utilizarse en comparaciones de tipo igual a ni distinto de. En el caso de las divisiones
y las operaciones que utilizan nmeros con decimales, el resultado tambin ser un
nmero con decimales, es decir, no un entero exacto.
Ejemplo
VAR num reg1;
.
reg1 := 3;
a := 10 DIV 3;
b := 10 MOD 3;
Datos predefinidos
La constante pi () ya est definida en el mdulo de sistema BASE.
Informacin relacionada
Descrito en:
Expresiones numricas Caractersticas bsicas - Expresiones
Operaciones con valores numricos Caractersticas bsicas - Expresiones
Descripcin
Si la funcin Absolute Limit Modpos se activa y se modifica una posicin con nombre
en una instruccin de movimiento mediante la funcin Modpos, se guarda la posicin
programada original.
Ejemplo de programa antes de Modpos:
CONST jointtarget jpos40:= [[0, 0, 0, 0, 0, 0],
[0, 9E9, 9E9, 9E9, 9E9, 9E9]];
...
MoveAbsJ jpos40, v1000, z50, tool1;
El mismo programa despus de ModPos. En este caso, el punto jpos40 se corrige a
2 grados para el eje 1 del robot:
CONST jointtarget jpos40 := [[2, 0, 0, 0, 0, 0],
[0, 9E9, 9E9, 9E9, 9E9, 9E9]];
CONST o_jointtarget o_jpos40 := [[0, 0, 0, 0, 0, 0],
[0, 9E9, 9E9, 9E9, 9E9, 9E9]];
...
MoveAbsJ jpos40, v1000, z50, tool1;
El punto original programado queda guardado en o_jpos40 (con el tipo de dato
o_jointtarget) y el punto modificado se guarda en jpos40 (con el tipo de dato
jointtarget).
Al guardar el punto programado original, el robot puede comprobar que los valores
Modpos posteriores obtenidos para el punto en cuestin estn dentro de los lmites
respecto del punto programado original.
La convencin de asignacin de nombres a los valores corregidos hace que un punto
programado original denominado xxxxx se guarde con el nombre o_xxxxx al utilizar
Absolute Limit Modpos.
Componentes
robax (ejes del robot) Tipo de dato: robjoint
Posiciones de eje de los ejes del robot, en grados.
extax (ejes externos) Tipo de dato: extjoint
La posicin de los ejes externos.
Estructura
< dataobject of o_jointtarget >
< robax of robjoint>
< rax_1 of num >
< rax_2 of num >
< rax_3 of num >
< rax_4 of num >
< rax_5 of num >
< rax_6 of num >
< extax of extjoint >
< eax_a of num >
< eax_b of num >
< eax_c of num >
< eax_d of num >
< eax_e of num >
< eax_f of num >
Informacin relacionada
Descrito en:
Datos de posicin Tipos de datos - Jointtarget
Configuracin de Limit Modpos Gua del usuario -
Parmetros del sistema
Descripcin
Si la funcin Absolute Limit Modpos se activa y se modifica una posicin con nombre
en una instruccin de movimiento mediante la funcin Modpos, se guarda la posicin
programada original.
CONST robtarget p50 := [[500, 500, 500], [1, 0, 0, 0], [1, 1, 0, 0],
[500, 9E9, 9E9, 9E9, 9E9, 9E9]];
...
MoveL p50, v1000, z50, tool1;
CONST robtarget p50 := [[502, 500, 500], [1, 0, 0, 0], [1, 1, 0, 0],
[500, 9E9, 9E9, 9E9, 9E9, 9E9]];
CONST o_robtarget o_p50 := [[500, 500, 500], [1, 0, 0, 0], [1, 1, 0, 0],
[500, 9E9, 9E9, 9E9, 9E9, 9E9]];
...
MoveL p50, v1000, z50, tool1;
Al guardar el punto programado original, el robot puede comprobar que los valores
Modpos posteriores obtenidos para el punto en cuestin estn dentro de los lmites
respecto del punto programado original.
Componentes
trans (traslacin) Tipo de dato: pos
Estructura
< dataobject of o_robtarget >
< trans of pos >
< x of num >
< y of num >
< z of num >
< rot of orient >
< q1 of num >
< q2 of num >
< q3 of num >
< q4 of num >
< robconf of confdata >
< cf1 of num >
< cf4 of num >
< cf6 of num >
< cfx of num >
< extax of extjoint >
< eax_a of num >
< eax_b of num >
< eax_c of num >
< eax_d of num >
< eax_e of num >
< eax_f of num >
Informacin relacionada
Descrito en:
Datos de posicin Tipos de datos - Robtarget
Configuracin de Limit Modpos Gua del usuario -
Parmetros del sistema
Descripcin
La constante opnum se ha diseado para definir el tipo de comparacin al comprobar
valores en las instrucciones genricas.
Ejemplo
TriggCheckIO checkgrip, 100, airok, EQ, 1, intno1;
Datos predefinidos
Se han predefinido las constantes simblicas siguientes para el tipo de dato opnum.
Puede usarlas para definir el tipo de comparacin utilizado, por ejemplo en la
instruccin TriggCheckIO.
1 LT Menor que
2 LTEQ Menor que o igual a
3 EQ Igual a
4 NOTEQ Distinto de
5 GTEQ Mayor que o igual a
6 GT Mayor que
Caractersticas
opnum es un tipo de dato de alias de num y por tanto hereda sus caractersticas.
Informacin relacionada
Descrito en:
Tipos de datos en general, tipos de Caractersticas bsicas - Tipos de datos
datos de alias
orient - Orientacin
Orient se utiliza para orientaciones (por ejemplo la orientacin de una herramienta) y
rotaciones (por ejemplo la rotacin de un sistema de coordenadas).
Descripcin
La orientacin se describe en forma de un cuaternio compuesto por cuatro elementos:
q1, q2, q3 y q4. Para obtener ms informacin acerca de cmo calcular estos
elementos, consulte la informacin siguiente.
Componentes
q1 Tipo de dato: num
Cuaternio 1.
Cuaternio 2.
Cuaternio 3.
Cuaternio 4.
Ejemplo
VAR orient orient1;
.
orient1 := [1, 0, 0, 0];
Limitaciones
La orientacin debe estar normalizada, es decir, la suma de los cuadrados debe ser
igual a 1:
q 12 + q 22 + q 32 + q 42 = 1
Qu es un cuaternio?
La orientacin de un sistema de coordenadas (por ejemplo el de una herramienta) puede
describirse mediante una matriz de rotacin que describe la direccin de los ejes del
sistema de coordenadas respecto de un sistema de referencia (consulte la Figura 14).
z
z
x
y Sistema de
Sistema de coordenadas
coordenadas girado
x de referencia
y
Figura 14 La rotacin de un sistema de coordenadas se describe mediante un cuaternio.
Los ejes del sistema de coordenadas girado (x, y, z) son vectores que pueden expresarse
en el sistema de coordenadas de referencia de la forma siguiente:
Estos tres vectores pueden reunirse en una matriz, una matriz de rotacin, en la que
cada uno de los vectores compone una de las columnas:
x1 y1 z1
x2 y2 z2
x3 y3 z3
Un cuaternio es slo una forma ms concisa de referirse a esta matriz de rotacin. Los
cuaternios se calculan partiendo de los elementos de la matriz de rotacin:
x1 + y2 + z3 + 1
q1 = -----------------------------------------
2
x1 y2 z3 + 1
q2 = ----------------------------------------
2
sign q2 = sign (y3-z2)
y2 x1 z3 + 1
q3 = ----------------------------------------
2
sign q3 = sign (z1-x3)
z3 x1 y2 + 1
q4 = ----------------------------------------
2
sign q4 = sign (x2-y1)
Ejemplo 1
Una herramienta se orienta de forma que su eje Z apunta directamente hacia delante
(en la misma direccin que el eje X del sistema de coordenadas de la base). El eje Y
de la herramienta se corresponde con el eje Y del sistema de coordenadas de la base
(consulte la Figura 15). Cmo se define la orientacin de la herramienta en los datos
de posicin (robtarget)?.
X
Figura 15 La direccin de una herramienta acorde con el ejemplo 1.
- x = -z = (0, 0, -1)
- y = y = (0, 1, 0)
- z = x = (1, 0, 0) 0 0 1
0 1 0
Esto corresponde a la matriz de rotacin siguiente:
1 0 0
0+1+0+1 2
q1 = ----------------------------------- = ------- = 0,707
2 2
010+1
q2 = ---------------------------------- = 0
2
100+1 2
q3 = ---------------------------------- = ------- = 0,707
2 2
sign q3 = sign (1+1) = +
001+1
q4 = ---------------------------------- = 0
2
Ejemplo 2
X Z
X
- x = (cos30o, 0, -sin30o)
- x = (0, 1, 0)
- x = (sin30o, 0, cos30o)
cos 30 0 sin 30
Esto corresponde a la matriz de rotacin siguiente: 0 1 0
sin 30 0 cos 30
cos 30 + 1 + cos 30 + 1
q1 = ---------------------------------------------------------------- = 0,965926
2
cos 30 1 cos 30 + 1
q2 = ---------------------------------------------------------------- = 0
2
1 cos 30 cos 30 + 1
q3 = ---------------------------------------------------------------- = 0,258819 sign q3 = sign (sin30o+sin30o) = +
2
cos 30 cos 30 1 + 1
q4 = ---------------------------------------------------------------- = 0
2
Estructura
<dataobject of orient>
<q1 of num>
<q2 of num>
<q3 of num>
<q4 of num>
Informacin relacionada
Descrito en:
Operaciones con orientaciones Caractersticas bsicas - Expresiones
El tipo de dato robtarget se utiliza con las posiciones del robot, incluida la orientacin
de la herramienta y la configuracin de los ejes.
Descripcin
Los datos de tipo pos describen las coordenadas de una posicin: X, Y y Z.
Componentes
x Tipo de dato: num
El valor X de la posicin.
El valor Y de la posicin.
El valor Z de la posicin.
Ejemplos
VAR pos pos1;
.
pos1 := [500, 0, 940];
Se asigna a la posicin pos1 el valor: X=500 mm, Y=0 mm, Z=940 mm.
Estructura
<dataobject of pos>
<x of num>
<y of num>
<z of num>
Informacin relacionada
Descrito en:
Operaciones con posiciones Caractersticas bsicas - Expresiones
Posicin del robot incluida su orientacin Tipos de datos - robtarget
Descripcin
Los datos de tipo pose describen cmo se desplaza y gira un sistema de coordenadas
alrededor de otro sistema de coordenadas. Por ejemplo, estos datos pueden describir
cmo est situado y orientado el sistema de coordenadas de la herramienta respecto del
sistema de coordenadas de la mueca.
Componentes
trans (traslacin) Tipo de dato: pos
Ejemplo
VAR pose frame1;
.
frame1.trans := [50, 0, 40];
frame1.rot := [1, 0, 0, 0];
Estructura
<dataobject of pose>
<trans of pos>
<rot of orient>
Informacin relacionada
Descrito en:
Qu es un cuaternio? Tipos de datos - orient
Descripcin
Los valores actuales del desplazamiento de programa estn disponibles a travs de la
variable de sistema C_PROGDISP.
Para obtener ms informacin, consulte las instrucciones PDispSet, PDispOn,
EOffsSet y EOffsOn.
Componentes
pdisp (desplazamiento de programa) Tipo de dato: pose
El desplazamiento de programa del robot, expresado mediante una traslacin y
una orientacin. La traslacin se expresa en mm.
eoffs (offset externo) Tipo de dato: extjoint
El offset de cada uno de los ejes externos. Si el eje es lineal, el valor se expresa
en mm. Si es de rotacin, el valor se expresa en grados.
Ejemplo
VAR progdisp progdisp1;
.
SearchL sen1, psearch, p10, v100, tool1;
PDispOn \ExeP:=psearch, *, tool1;
EOffsOn \ExeP:=psearch, *;
.
progdisp1:=C_PROGDISP;
PDispOff;
EOffsOff;
.
PDispSet progdisp1.pdisp;
EOffsSet progdisp1.eoffs;
En primer lugar, se activa un desplazamiento de programa desde una posicin
buscada. A continuacin, se desactiva temporalmente almacenando el valor en
la variable progdisp1 y se reactiva posteriormente mediante las instrucciones
PDispSet y EOffsSet.
Datos predefinidos
La variable de sistema C_PROGDISP describe el desplazamiento de programa actual
de los ejes del robot y los ejes externos y est siempre disponible desde el programa
(datos instalados). Por otro lado, C_PROGDISP slo puede modificarse mediante un
conjunto de instrucciones, no mediante asignacin.
Estructura
< dataobject of progdisp >
<pdisp of pose>
< trans of pos >
< x of num >
< y of num >
< z of num >
< rot of orient >
< q1 of num >
< q2 of num >
< q3 of num >
< q4 of num >
< eoffs of extjoint >
< eax_a of num >
< eax_b of num >
< eax_c of num >
< eax_d of num >
< eax_e of num >
< eax_f of num >
Informacin relacionada
Descrito en:
Descripcin
Los datos de tipo robjoint se utilizan para almacenar posiciones de eje en grados para
los ejes de robot del 1 al 6. La posicin de un eje se define como la rotacin en grados
del eje (brazo) correspondiente, en sentido positivo o negativo respecto de la posicin
de calibracin del eje.
Componentes
rax_1 (eje 1 del robot) Tipo de dato: num
...
Estructura
< dataobject of robjoint >
< rax_1 of num >
< rax_2 of num >
< rax_3 of num >
< rax_4 of num >
< rax_5 of num >
< rax_6 of num >
Informacin relacionada
Descrito en:
Datos de posicin de ejes Tipos de datos - jointtarget
Movimiento a una posicin de eje Instrucciones - MoveAbsJ
Descripcin
Los datos de posicin se utilizan en las instrucciones de posicionamiento para indicar
la posicin hacia la que deben desplazarse los ejes del robot y los ejes externos.
Debido a que el robot puede alcanzar una misma posicin con mtodos diferentes,
tambin se especifica la configuracin de los ejes. De esta forma, se definen los valores
de los ejes si por algn motivo resultan ambiguas, por ejemplo en los casos siguientes:
Componentes
trans (traslacin) Tipo de dato: pos
La configuracin de ejes del robot (cf1, cf4, cf6 y cfx). Esto se define en forma
del cuarto de revolucin actual de los ejes 1, 4 y 6. El primer cuarto de revolucin
positivo, de 0 a 90 o, se define como 0. El componente cfx slo se utiliza en el
modelo de robot IRB5400.
Los ejes externos eax_a ... son ejes lgicos. La relacin existente entre el nmero
lgico del eje y el nmero fsico del eje se define en los parmetros del sistema.
El valor 9E9 se utiliza para definir los ejes que no estn conectados. Si los ejes
definidos en los datos de posicin son distintos de los ejes que estn conectados
realmente en el momento de la ejecucin del programa, ocurre lo siguiente:
- Si la posicin no est definida en los datos de posicin (su valor es 9E9), el valor
no se tendr en cuenta si el eje est conectado pero no activado. Sin embargo,
si el eje est activado, se genera un error.
- Si la posicin est definida en los datos de posicin, a pesar de que el eje no est
conectado, el valor no se tiene en cuenta.
Ejemplos
CONST robtarget p15 := [ [600, 500, 225.3], [1, 0, 0, 0], [1, 1, 0, 0],
[ 11, 12.3, 9E9, 9E9, 9E9, 9E9] ];
Se establece la posicin p20 en la misma posicin que la posicin actual del robot,
mediante una llamada a la funcin CRobT. A continuacin, se mueve la posicin
10 mm en la direccin x.
Limitaciones
Cuando se utiliza la funcin de edicin configurable Absolute Limit Modpos, el
nmero de caracteres del nombre del dato del tipo robtarget est limitado a 14
(en otros casos es de 16).
Estructura
< dataobject of robtarget >
< trans of pos >
< x of num >
< y of num >
< z of num >
< rot of orient >
< q1 of num >
< q2 of num >
< q3 of num >
< q4 of num >
< robconf of confdata >
< cf1 of num >
< cf4 of num >
< cf6 of num >
< cfx of num >
< extax of extjoint >
< eax_a of num >
< eax_b of num >
< eax_c of num >
< eax_d of num >
< eax_e of num >
< eax_f of num >
Informacin relacionada
Descrito en:
Instrucciones de posicionamiento Resumen sobre RAPID - Movimiento
Sistemas de coordenadas Principios de movimiento y E/S -
Sistemas de coordenadas
Gestin de datos de configuracin Principios de movimiento y E/S -
Configuracin del robot
Configuracin de los ejes externos Gua del usuario -
Parmetros del sistema
Qu es un cuaternio? Tipos de datos - Orient
Descripcin
Es posible definir zonas mundo con 4 formas geomtricas diferentes.
La geometra de una zona mundo se define mediante una de las instrucciones indicadas
anteriormente y la accin de una zona mundo definida mediante la instruccin
WZLimSup o WZDOSet.
Ejemplo
VAR wzstationary pole;
VAR wzstationary conveyor;
...
PROC ...
VAR shapedata volume;
...
WZBoxDef \Inside, volume, p_corner1, p_corner2;
WZLimSup \Stat, conveyor, volume;
WZCylDef \Inside, volume, p_center, 200, 2500;
WZLimSup \Stat, pole, volume;
ENDPROC
Caractersticas
shapedata es un tipo de dato sin valor.
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 de prisma Instrucciones - WZBoxDef
Definicin de zonas mundo esfricas Instrucciones - WZSphDef
Definicin de zonas mundo cilndricas Instrucciones - WZCylDef
Definicin de una zona mundo para las Instruccin - WZHomeJointDef
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
Los nombres de las seales se definen en los parmetros del sistema y, por tanto, no es
necesario definirlos en el programa.
Descripcin
Tipo de dato Finalidad
signalai Seales analgicas de entrada
signalao Seales analgicas de salida
signaldi Seales digitales de entrada
signaldo Seales digitales de salida
signalgi Grupos de seales digitales de entrada
signalgo Grupos de seales digitales de salida
Las variables del tipo signalxo slo contienen una referencia a la seal. El valor se
establece mediante una instruccin, por ejemplo DOutput.
Las variables del tipo signalxi contienen una referencia a una seal, as como la
posibilidad de obtener directamente el valor desde el programa, si se utiliza en un
contexto de valor.
El valor de una seal de entrada puede leerse directamente desde el programa, como
en los ejemplos siguientes:
! Entrada digital
IF di1 = 1 THEN ...
! Entrada analgica
IF ai1 > 5.2 THEN ...
Limitaciones
No debe definir los datos de tipo signalxx en el programa. Sin embargo, si se llega a
hacer, aparecer un mensaje de error tan pronto como se ejecute una instruccin o una
funcin que haga referencia a esta seal. Sin embargo, s es posible utilizarlos como
parmetros al declarar una rutina.
Datos predefinidos
Las seales definidas en los parmetros del sistema estn siempre disponibles desde el
programa mediante las variables de seal predefinidas (datos instalados). Sin embargo,
debe tener en cuenta que si se define otro dato con el mismo nombre, se pierde la
posibilidad de usar la seal.
Caractersticas
Signalxo es un tipo de dato sin valor. Por tanto, los datos de este tipo no son
compatibles con operaciones basadas en valores.
Informacin relacionada
Descrito en:
Resumen de 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
Caractersticas de los tipos de datos sin valor Caractersticas bsicas -
Tipos de datos
Descripcin
Los datos de velocidad se utilizan para definir las velocidades siguientes:
Cuando se combinan varios tipos de movimiento, una de las velocidades suele limitar
todos los movimientos. La velocidad de los dems movimientos se reduce de forma
que todos los movimientos terminen de ejecutarse al mismo tiempo.
La velocidad tambin est limitada por el rendimiento del robot. Este rendimiento es
distinto segn el tipo de robot y la trayectoria del movimiento.
Componentes
v_tcp (velocidad del TCP) Tipo de dato: num
Ejemplo
VAR speeddata vmedium := [ 1000, 30, 200, 15 ];
vmedium.v_tcp := 900;
Datos predefinidos
Existen varios datos de velocidad ya definidos en el mdulo de sistema BASE.
Nombre Velocidad del TCP Orientacin Eje ext. lineal Eje ext. rotacin
v5 5 mm/seg 500o/seg 5.000 mm/seg 1.000o/seg
v10 10 mm/seg 500o/seg 5.000 mm/seg 1.000o/seg
v20 20 mm/seg 500o/seg 5.000 mm/seg 1.000o/seg
v30 30 mm/seg 500o/seg 5.000 mm/seg 1.000o/seg
v40 40 mm/seg 500o/seg 5.000 mm/seg 1.000o/seg
v50 50 mm/seg 500o/seg 5.000 mm/seg 1.000o/seg
v60 60 mm/seg 500o/seg 5.000 mm/seg 1.000o/seg
v80 80 mm/seg 500o/seg 5.000 mm/seg 1.000o/seg
v100 100 mm/seg 500o/seg 5.000 mm/seg 1.000o/seg
v150 150 mm/seg 500o/seg 5.000 mm/seg 1.000o/seg
v200 200 mm/seg 500o/seg 5.000 mm/seg 1.000o/seg
v300 300 mm/seg 500o/seg 5.000 mm/seg 1.000o/seg
v400 400 mm/seg 500o/seg 5.000 mm/seg 1.000o/seg
v500 500 mm/seg 500o/seg 5.000 mm/seg 1.000o/seg
v600 600 mm/seg 500o/seg 5.000 mm/seg 1.000o/seg
v800 800 mm/seg 500o/seg 5.000 mm/seg 1.000o/seg
v1000 1.000 mm/seg 500o/seg 5.000 mm/seg 1.000o/seg
v1500 1.500 mm/seg 500o/seg 5.000 mm/seg 1.000o/seg
v2000 2.000 mm/seg 500o/seg 5.000 mm/seg 1.000o/seg
v2500 2.500 mm/seg 500o/seg 5.000 mm/seg 1.000o/seg
v3000 3.000 mm/seg 500o/seg 5.000 mm/seg 1.000o/seg
v4000 4.000 mm/seg 500o/seg 5.000 mm/seg 1.000o/seg
v5000 5.000 mm/seg 500o/seg 5.000 mm/seg 1.000o/seg
v6000 6.000 mm/seg 500o/seg 5.000 mm/seg 1.000o/seg
v7000 7.000 mm/seg 500o/seg 5.000 mm/seg 1.000o/seg
vmax *) 500o/seg 5000 mm/seg 1.000o/seg
*) Velocidad del TCP mxima para el tipo de robot utilizado y los valores normales
prcticos para el TCP.
La funcin MaxRobSpeed de RAPID devuelve el mismo valor.
Si utiliza valores de TCP extremadamente altos en la base de coordenadas de la
herramienta, cree sus propios datos de velocidad con una velocidad de TCP mayor que
la que devuelve MaxRobSpeed.
Estructura
< dataobject of speeddata >
< v_tcp of num >
< v_ori of num >
< v_leax of num >
< v_reax of num >
Informacin relacionada
Descrito en:
Instrucciones de posicionamiento Resumen sobre RAPID -
Movimiento
Movimiento y velocidad en general Principios de movimiento y E/S -
Posicionamiento durante la
ejecucin del programa
Definicin de la velocidad mxima Instrucciones - VelSet
Velocidad mxima del TCP para el robot actual Funcin - MaxRobSpeed
Configuracin de los ejes externos Gua del usuario -
Parmetros del sistema
Rendimiento de los movimientos Especificaciones del producto
Descripcin
Una posicin puede terminar en forma de un punto de paso o un punto de paro.
El punto de paso significa que la posicin programada no llega a alcanzarse nunca.
La instruccin especifica una zona para el movimiento, definiendo una trayectoria de
esquina. En lugar de dirigirse hacia la posicin programada, la direccin del
movimiento toma la forma de una trayectoria de esquina antes de alcanzar la posicin.
Consulte Tipos de datos - zonedata.
Un punto de paro significa que los ejes del robot y los ejes externos deben alcanzar la
posicin especificada antes de que continen con el movimiento siguiente. Se
considera que el robot ha alcanzado un punto de paro cuando se satisfacen los criterios
de convergencia del punto. Los criterios de convergencia son la velocidad y la
posicin. Tambin es posible especificar criterios de temporizacin. Para el punto de
parada fine, consulte tambin el tipo de dato zonedata.
Es posible definir tres tipos de puntos de paro mediante stoppointdata.
- El tipo de punto de paro en posicin se define como un porcentaje de los
criterios de convergencia (posicin y velocidad) para el punto de paro fine
predefinido. El tipo en posicin tambin utiliza un tiempo mnimo y un
tiempo mximo. El robot espera el cumplimiento de los criterios de posicin y
velocidad, durante al menos el tiempo mnimo y como mucho el tiempo
mximo.
- En los puntos de paro de tiempo de paro, se espera siempre el tiempo
especificado sin dejar el punto de paro.
- Los puntos de paro de tiempo de seguimiento son puntos de paro de un tipo
especial que se utilizan para coordinar los movimientos del robot con un
transportador.
Los datos de tipo stoppointdata tambin determinan cmo deben sincronizarse los
movimientos con la ejecucin de RAPID. Si el movimiento se sincroniza, la ejecucin
de RAPID espera a un evento de tipo en posicin cuando el robot est en posicin.
Si el movimiento no est sincronizado, la ejecucin de RAPID recibe un evento de
precaptura casi medio segundo antes de que el robot fsico alcance la posicin
programada. Cuando el programa ejecutado recibe un evento en posicin o
precaptura, contina con la instruccin siguiente. Cuando llega el evento
precaptura, el robot sigue teniendo un margen de maniobra amplio. Cuando llega el
evento en posicin, el robot est cerca de la posicin programada. Observe que con
los tipos tiempo de paro y tiempo de seguimiento, la instruccin siguiente empieza
a ejecutarse al mismo tiempo que empieza la cuenta atrs del tiempo de parada y del
tiempo de seguimiento, respectivamente. Sin embargo, para el tipo en posicin, la
siguiente instruccin se inicia cuando se cumplen los criterios de convergencia.
En posicin
Velocidad de referencia
Tiempo
Retraso constante Tiempo mn./mx.
Tiempo de paro
Tiempo de seguimiento
Componentes
type (tipo del punto de paro) Tipo de paro: stoppoint
Define el tipo del punto de paro.
1 (inpos) El movimiento termina como un tipo de punto de parada
en posicin.
Activa el elemento inpos de stoppointdata.
No se utilizan los datos de zona de la instruccin, sino fine o z0.
2 (stoptime) El movimiento termina con un tipo de punto de paro de
tiempo de paro.
Activa el elemento stoptime de stoppointdata.
No se utilizan los datos de zona de la instruccin, sino fine o z0.
3 (followtime) El movimiento termina con un tipo de tiempo exacto de
seguimiento del transportador. Los datos de zona de la instruccin se utilizan
cuando el robot abandona el transportador.
Activa el elemento followtime de stoppointdata.
El tipo de dato stoppoint es un tipo de dato de alias de num. Se utiliza para elegir el
tipo de punto de paro y qu elementos de datos de stoppointdata deben utilizarse.
Sus constantes predefinidas son:
Ejemplos
Inpos
VAR stoppointdata my_inpos := [ inpos, TRUE, [ 25, 40, 0.1, 5], 0, 0, , 0, 0];
MoveL *, v1000, z0 \Inpos:=my_inpos, grip4;
Se definen los datos del punto de paro my_inpos con las caractersticas
siguientes:
El robot se mueve hacia la posicin programada hasta que se cumple uno de los
criterios de posicin o velocidad.
my_inpos.inpos.position := 40;
MoveL *, v1000, z0 \Inpos:=my_inpos, grip4;
Stoptime
Se definen los datos del punto de paro my_stoptime con las caractersticas
siguientes:
my_stoptime.stoptime := 6.66;
MoveL *, v1000, z0 \Inpos:=my_stoptime, grip4;
Followtime
Se definen los datos del punto de paro my_followtime con las caractersticas
siguientes:
El robot sigue al transportador durante 0,5 seg antes de dejarlo, con una zona de
10 mm, z10.
my_followtime.followtime := 0.4;
Datos predefinidos
Existen varios datos de punto de paro ya definidos en el mdulo de sistema BASE.
Estructura
< dataobject of stoppointdata >
< type of stoppoint>
< progsynch of bool >
< inpos of inposdata >
< position of num >
< speed of num >
< mintime of num >
< maxtime of num >
< stoptime of num >
< followtime of num >
< signal of string >
< relation of opnum >
< checkvalue of num >
Informacin relacionada
Descrito en:
Instrucciones de posicionamiento Resumen sobre RAPID - Movimiento
Movimiento y trayectorias en general Principios de movimiento y E/S -
Posicionamiento durante la ejecucin
del programa
Configuracin de los ejes externos Gua del usuario -
Parmetros del sistema
Puntos de paso Tipos de datos - zonedata
Descripcin
Las cadenas de caracteres estn compuestas por varios caracteres (un mximo de 80)
encerrados entre comillas (),
Si desea incluir comillas dentro de la cadena de caracteres, debe escribirlas dos veces.
Si desea incluir una barra invertida dentro de la cadena de caracteres, debe escribirla
dos veces.
Por ejemplo: "Esta cadena de caracteres contiene un carcter de barra invertida \\".
Ejemplo
VAR string text;
.
text := Comienzo de soldadura de tubo 1;
TPWrite text;
Limitaciones
Una cadena puede tener de 0 a 80 caracteres, incluidas las comillas o las barras
invertidas que se utilicen.
Datos predefinidos
El sistema dispone de varias constantes de cadena de caracteres predefinidas, que
pueden usarse junto con las funciones para cadenas de caracteres.
Nombre Conjunto de caracteres
STR_DIGIT <dgito> ::=
0|1|2|3|4|5|6|7|8|9
STR_UPPER <letra mayscula> ::=
A|B|C|D|E|F|G|H|I|J
|K|L|M|N|O|P|Q|R|S|T
|U|V|W|X|Y|Z||||
||||||||||
| | | 1) | | | | | | |
| | | | | 2) | 3)
STR_LOWER <letra minscula> ::=
a|b|c|d|e|f|g|h|i|j
|k|l|m|n|o|p|q|r|s|t
|u|v|w|x|y|z||||
||||||||||
| | | 1) | | | | | | |
| | | | | 2) | 3) | |
STR_WHITE <carcter en blanco> ::=
1) Letra eth islandesa
2) Letra Y con acento agudo
3) Letra thorn islandesa
Las constantes siguientes ya estn definidas en el mdulo de sistema BASE:
CONST string diskhome := HOME:;
! Para programas antiguos del sistema S4C
CONST string ram1disk := HOME:;
CONST string disktemp := TEMP:;
CONST string flp1 := flp1:;
CONST string stEmpty := ;
Informacin relacionada
Descrito en:
Operaciones con cadenas de caracteres Caractersticas bsicas - Expresiones
Valores de cadena de caracteres Caractersticas bsicas -
Elementos bsicos
Descripcin
Las constantes de symnum se han diseado para usarlas al comprobar el valor de
retorno de las funciones OpMode y RunMode. Consulte el ejemplo siguiente.
Ejemplo
IF RunMode() = RUN_CONT_CYCLE THEN
.
.
ELSE
.
.
ENDIF
Datos predefinidos
Se han definido las constantes simblicas siguientes del tipo de dato symnum. Puede
usarlas a la hora de comprobar valores de retorno de las funciones OpMode y RunMode
Caractersticas
Symnum es un tipo de dato de alias de num y por tanto hereda sus caractersticas.
Informacin relacionada
Descrito en:
Tipos de datos en general, tipos de Caractersticas bsicas - Tipos de datos
datos de alias
Datos de sistema
Los datos de sistema son los datos internos del robot que pueden utilizarse y leerse
desde el programa. Pueden usarse para leer el estado actual, por ejemplo, la velocidad
mxima actual.
La tabla siguiente contiene una lista con todos los datos de sistema.
ERRNO El ltimo error que ha tenido errnum El robot Tipos de datos - errnum
lugar. Resumen sobre RAPID -
Recuperacin en caso de
error
Los nombres de las tareas de programa se definen en los parmetros del sistema y,
por tanto, no es necesario definirlos en el programa.
Descripcin
Los datos del tipo taskid slo contienen una referencia a la tarea de programa.
Limitaciones
No debe definir los datos de tipo taskid en el programa. Sin embargo, s es posible
utilizarlos como parmetros al declarar una rutina.
Datos predefinidos
Las tareas de programa definidas en los parmetros del sistema estn siempre
disponibles desde el programa (datos instalados).
Existen variables predefinidas con el tipo de dato taskid para todas las tareas de
programa del sistema. La identificacin de la variable ser nombre_tarea+ID.
Por ejemplo, para la tarea MAIN la identificacin de la tarea es MAINId, para TSK1
es TSK1Id, etc.
Caractersticas
Taskid es un tipo de dato sin valor. Esto significa que los datos de este tipo no son
compatibles con operaciones basadas en valores.
Informacin relacionada
Descrito en:
Guardado de mdulos de programa Instrucciones - Save
Configuracin de tareas de programa Gua del usuario -
Parmetros del sistema
Caractersticas de los tipos de datos sin valor Caractersticas bsicas - Tipos de datos
Descripcin
El sistema de robot cuenta con varias seales de test predefinidas. El tipo de dato
testsignal puede usarse para simplificar la programacin de la instruccin
TestSignDefine.
Ejemplos
TestSignDefine 2, speed, Orbit, 2, 0;
Datos predefinidos
El sistema tiene predefinidas las seales de test siguientes para los ejes del
manipulador externo.
Todos los datos se indican en unidades SI y se miden en el lado del motor del eje.
Caractersticas
Testsignal es un tipo de dato de alias de num y por tanto hereda sus caractersticas.
Informacin relacionada
Descrito en:
Definicin de una seal de test Instrucciones - TestSignDefine
Lectura de una seal de test Funciones - TestSignRead
Puesta a cero de seales de test Instrucciones - TestSignReset
Descripcin
Los datos de la herramienta afectan de las formas siguientes a los movimientos del
robot:
Los datos de la herramienta tambin se usan en los movimientos del robot para:
Una definicin incorrecta de los datos de carga puede dar lugar a la sobrecarga
de la estructura mecnica del robot.
Cuando se especifican datos de carga incorrectos para la herramienta, este hecho suele
tener las consecuencias siguientes:
Componentes
robhold (el robot sostiene el objeto) Tipo de dato: bool
Orificio de control
El sistema de coordenadas de la mueca
Y
Z
TCP
Y
X
X
Z
Figura 18 Definicin del sistema de coordenadas de la herramienta.
TCP
IX Y
X Sistema de coordenadas de
X la herramienta
Z
Ejemplos
PERS tooldata gripper := [ TRUE, [[97.4, 0, 223.1], [0.924, 0, 0.383 ,0]],
[5, [23, 0, 75], [1, 0, 0, 0], 0, 0, 0]];
gripper.tframe.trans.z := 225.2;
Limitaciones
Los datos de la herramienta deben definirse como variables persistentes (PERS) y no
deben definirse desde dentro de una rutina. De esta forma, los valores se guardan al
almacenar el programa en un disquete y se recuperan al cargarlo.
Datos predefinidos
La herramienta tool0 define el sistema de coordenadas de la mueca, cuyo origen es el
centro de la brida de montaje. Tool0 est siempre disponible desde el programa, pero
no puede ser modificada en ningn momento (est almacenada en el mdulo de
sistema BASE).
Estructura
< dataobject of tooldata >
< robhold of bool >
< tframe of pose >
< trans of pos >
< x of num >
< y of num >
< z of num >
< rot of orient >
< q1 of num >
< q2 of num >
< q3 of num >
< q4 of num >
< tload of loaddata >
< mass of num >
< cog of pos >
< x of num >
< y of num >
< z of num >
< aom of orient >
< q1 of num >
< q2 of num >
< q3 of num >
< q4 of num >
< ix of num >
< iy of num >
< iz of num >
Informacin relacionada
Descrito en:
Instrucciones de posicionamiento Resumen sobre RAPID - Movimiento
Sistemas de coordenadas Principios de movimiento y E/S -
Sistemas de coordenadas
Definicin de una carga til Instrucciones - Gripload
Definicin de carga Tipos de datos - Datos de carga
Descripcin
Las constantes tpnum se han diseado para su uso con la instruccin TPShow. Consulte
el ejemplo siguiente.
Ejemplo
TPShow TP_PROGRAM;
Datos predefinidos
Se han predefinido las constantes simblicas siguientes para el tipo de dato tpnum.
Puede usarlas con la instruccin TPShow.
Caractersticas
tpnum es un tipo de dato de alias de num y por tanto hereda sus caractersticas.
Informacin relacionada
Descrito en:
Tipos de datos en general, tipos de Caractersticas bsicas - Tipos de datos
datos de alias
Comunicacin a travs de la unidad de Resumen sobre RAPID -
programacin Comunicacin
Cambio de ventana en la unidad de Instrucciones - TPShow
programacin
Descripcin
Para definir las condiciones de las mediciones respectivas de un evento de
posicionamiento, se utilizan variables del tipo triggdata. Los datos contenidos en la
variable se forman en el programa mediante una instruccin TriggIO o TriggInt y se
utilizan desde una instruccin TriggL, TriggC o TriggJ.
Ejemplo
VAR triggdata gunoff;
La seal digital de salida gun cambia al valor off cuando el TCP se encuentra en
una posicin a 5 mm del punto p1.
Caractersticas
Triggdata es un tipo de dato sin valor.
Informacin relacionada
Descrito en:
Definicin de disparos Instrucciones - TriggIO, TriggInt
Utilizacin de disparos Instrucciones - TriggL, TriggC,
TriggJ
Caractersticas de los tipos de datos sin valor Caractersticas bsicas - Tipos de datos
Debe utilizarse en las rutinas TRAP generadas por la instruccin IError, antes del uso
de la instruccin ReadErrData.
Descripcin
Los datos del tipo trapdata representan informacin interna relacionada con la
interrupcin que provoc la ejecucin de la rutina TRAP actual. Su contenido depende
del tipo de interrupcin.
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
Caractersticas
trapdata es un tipo de dato sin valor.
Informacin relacionada
Descrito en:
Resumen de interrupciones Resumen sobre RAPID -
Interrupciones
Ms informacin sobre la gestin de interrupciones Caractersticas bsicas -
Interrupciones
Tipos de datos sin valor Caractersticas bsicas -
Tipos de datos
Peticin de una interrupcin en caso de error Instrucciones - IError
Obtencin de datos de interrupcin para la rutina Instrucciones - GetTrapData
TRAP actual
Obtencin de informacin sobre un error Instrucciones - ReadErrData
Descripcin
Las constantes tunetype se han diseado para su uso como argumento de la instruccin
TuneServo. Consulte el ejemplo siguiente.
Ejemplo
TuneServo MHA160R1, 1, 110 \Type:= TUNE_KP;
Datos predefinidos
Se han definido las constantes simblicas siguientes para el tipo de dato tunetype.
Puede usarlas como argumento de la instruccin TuneServo.
Caractersticas
Tunetype es un tipo de dato de alias de num y por tanto hereda sus caractersticas.
Informacin relacionada
Descrito en:
Tipos de datos en general, tipos de Caractersticas bsicas - Tipos de datos
datos de alias
Uso del tipo de dato tunetype Instrucciones - TuneServo
Descripcin
Si los objetos de trabajo estn definidos en una instruccin de posicionamiento, la
posicin se basar en las coordenadas del objeto de trabajo. Las ventajas de hacerlo son
las siguientes:
- Si se introducen manualmente los datos de posicin, por ejemplo, mediante la
programacin fuera de lnea, suele ser posible tomar los valores de un plano.
- Los programas pueden reutilizarse rpidamente despus de cualquier cambio
en la instalacin del robot. Por ejemplo, si se cambia de posicin un til, slo
es necesario redefinir el sistema de coordenadas del usuario.
- Tambin es posible compensar las variaciones en la forma en que el objeto de
trabajo est fijado. Sin embargo, para estos fines se requerir algn tipo de
sensor para posicionar el objeto de trabajo.
Si se utiliza una herramienta estacionaria o ejes externos coordinados, es necesario
definir el objeto de trabajo, ya que en este caso la trayectoria y la velocidad estaran
relacionadas con el objeto de trabajo en lugar del TCP.
Los datos del objeto de trabajo pueden usarse tambin para los movimientos.
- El robot puede desplazarse en las direcciones del objeto de trabajo.
- La posicin actual mostrada se basa en el sistema de coordenadas del objeto de
trabajo.
Componentes
robhold (el robot sostiene el objeto) Tipo de dato: bool
Define si el robot es el que est sosteniendo el objeto de trabajo:
- TRUE -> El robot sostiene el objeto de trabajo, es decir, se est utilizando una
herramienta estacionaria.
- FALSE -> El robot no est sosteniendo el objeto de trabajo, es decir, el robot
est sosteniendo la herramienta.
ufprog (base de coordenadas del Tipo de dato: bool
usuario programada)
Define si se est utilizando un sistema fijo de coordenadas del usuario:
- TRUE -> Sistema fijo de coordenadas del usuario.
- FALSE -> Sistema mvil de coordenadas del usuario, es decir, se utilizan ejes
externos coordinados.
Coordenadas de la herramienta
Y
TCP
X
Z Z
Z Coordenadas del usuario
Y Z Coordenadas del objeto
Z X Y
Coordenadas de la base Y X
Y X
X
Coordenadas mundo
Figura 20 Los distintos sistemas de coordenadas del objeto (si el robot es el que sostiene
la herramienta).
Ejemplo
PERS wobjdata wobj2 :=[ FALSE, TRUE, "", [ [300, 600, 200], [1, 0, 0 ,0] ],
[ [0, 200, 30], [1, 0, 0 ,0] ] ];
wobj2.oframe.trans.z := 38.3;
Limitaciones
Los datos del objeto de trabajo deben definirse como variables persistentes (PERS) y
no deben definirse desde dentro de una rutina. De esta forma, los valores se guardan al
almacenar el programa en un disquete y se recuperan al cargarlo.
Datos predefinidos
Los datos de objeto de trabajo wobj0 se definen de forma que el sistema de
coordenadas del objeto coincida con el sistema de coordenadas mundo. El robot no
sostiene el objeto de trabajo.
Wobj0 est siempre disponible desde el programa, pero no puede ser modificada en
ningn momento (est almacenada en el mdulo de sistema BASE).
PERS wobjdata wobj0 := [ FALSE, TRUE, "", [ [0, 0, 0], [1, 0, 0 ,0] ],
[ [0, 0, 0], [1, 0, 0 ,0] ] ];
Estructura
< dataobject of wobjdata >
< robhold of bool >
< ufprog of bool>
< ufmec of string >
< uframe of pose >
< trans of pos >
< x of num >
< y of num >
< z of num >
< rot of orient >
< q1 of num >
< q2 of num >
< q3 of num >
< q4 of num >
< oframe of pose >
< trans of pos >
< x of num >
< y of num >
< z of num >
< rot of orient >
< q1 of num >
< q2 of num >
< q3 of num >
< q4 of num >
Informacin relacionada
Descrito en:
Instrucciones de posicionamiento Resumen sobre RAPID - Movimiento
Sistemas de coordenadas Principios de movimiento y E/S -
Sistemas de coordenadas
Ejes externos coordinados Principios de movimiento y E/S -
Sistemas de coordenadas
Calibracin de los ejes externos coordinados Gua del usuario -
Parmetros del sistema
Las zonas mundo se supervisan durante los movimientos del robot, tanto durante la
ejecucin del programa como durante los movimientos. Si el TCP del robot alcanza la
zona mundo o si los ejes del robot o los ejes externos alcanzan la zona mundo, el
movimiento se detiene o se activa o desactiva una seal digital de salida.
Descripcin
Las zonas mundo wzstationary se definen y activan mediante una instruccin
WZLimSup o WZDOSet.
Siempre hay una zona mundo estacionaria, que slo se elimina en los arranques en
caliente (al apagar y encender de nuevo el interruptor o al cambiar los parmetros del
sistema). No es posible desactivar, activar ni eliminar una zona mundo estacionaria a
travs de instrucciones de RAPID.
Las zonas mundo estacionarias deben estar activadas desde la puesta en marcha y
deben estar definidas en la rutina de evento POWER ON o en una tarea semiesttica.
Ejemplo
VAR wzstationary conveyor;
...
PROC ...
VAR shapedata volume;
...
WZBoxDef \Inside, volume, p_corner1, p_corner2;
WZLimSup \Stat, conveyor, volume;
ENDPROC
Limitaciones
Los datos wzstationary deben definirse como variables (VAR) o variables persistentes
(PERS). Pueden ser globales en la tarea o locales dentro del mdulo, pero no locales
dentro de una rutina.
Los argumentos de tipo wzstationary deben ser slo datos completos (ni elementos de
matriz ni componentes de registro).
Ejemplo
Para ver un ejemplo completo, consulte la instruccin WZLimSup.
Caractersticas
wzstationary es un tipo de dato de alias de wztemporary y hereda sus caractersticas.
Informacin relacionada
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
Activacin de la supervisin de lmites de Instrucciones - WZLimSup
las zonas mundo
Activacin de salidas digitales basadas Instrucciones - WZDOSet
en zonas mundo
Las zonas mundo se supervisan durante los movimientos del robot, tanto durante la
ejecucin del programa como durante los movimientos. Si el TCP del robot alcanza la
zona mundo o si los ejes del robot o los ejes externos alcanzan la zona mundo, el
movimiento se detiene o se activa o desactiva una seal digital de salida.
Descripcin
Las zonas mundo wztemporary se definen y activan mediante una instruccin
WZLimSup o WZDOSet.
Una vez definidas y activadas, las zonas mundo temporales pueden desactivarse con
WZDisable, activarse de nuevo con WZEnable y eliminarse con WZFree.
Ejemplo
VAR wztemporary roll;
...
PROC ...
VAR shapedata volume;
CONST pos t_center := [1000, 1000, 1000];
...
WZCylDef \Inside, volume, t_center, 400, 1000;
WZLimSup \Temp, roll, volume;
ENDPROC
Se define una variable de tipo con el nombre roll, con forma de cilindro. Si el
robot alcanza este volumen, se detiene el movimiento.
Limitaciones
Los datos wztemporary deben definirse como variables (VAR) o variables persistentes
(PERS). Pueden ser globales en la tarea o locales dentro del mdulo, pero no locales
dentro de una rutina.
Los argumentos de tipo wztemporary deben ser slo datos completos (ni elementos de
matriz ni componentes de registro).
Las zonas mundo temporales slo deben definirse (WZLimSup o WZDOSet) y liberarse
(WZFree) desde la tarea MAIN. Las definiciones de zonas mundo temporales en
segundo plano afectaran a la ejecucin del programa en la tarea MAIN. Las
instrucciones WZDisable y WZEnable pueden usarse en la tarea en segundo plano.
Cuando sea necesario utilizar una variable persistente en un sistema multitarea, cambie
el valor inicial a 0 en las dos tareas.
Por ejemplo: PERS wztemporary share_workarea := [0];
Ejemplo
Para ver un ejemplo completo, consulte la instruccin WZDOSet.
Estructura
<dataobject of wztemporary>
<wz of num>
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 estacionaria Tipos de datos - wzstationary
Activacin de la supervisin de lmites de Instrucciones - WZLimSup
las zonas mundo
Activacin de salidas digitales basadas Instrucciones - WZDOSet
en zonas mundo
Desactivacin de zonas mundo Instrucciones - WZDisable
Activacin de zonas mundo Instrucciones - WZEnable
Eliminacin de zonas mundo Instrucciones - WZFree
Descripcin
Una posicin puede terminar en forma de un punto de paso o un punto de paro.
Un punto de paro significa que los ejes del robot y los ejes externos deben alcanzar la
posicin especificada (detenindose) antes de que la ejecucin del programa contine
en la instruccin siguiente. Tambin es posible definir puntos de paro distintos del tipo
predefinido fine. Los criterios de paro que indican si se considera que el robot ha
alcanzado el punto, pueden manipularse mediante stoppointdata.
Comienzo de la reorientacin
hacia la posicin siguiente
Inicio de la trayectoria de esquina del TCP
La zona extendida
Las zonas funcionan de la misma forma durante el movimiento de los ejes, pero el
tamao de la zona puede ser algo distinto del programado.
El tamao de la zona no puede ser mayor que la mitad de la distancia existente hasta
la posicin ms cercana (hacia delante o hacia atrs). Si se especifica una zona ms
grande, el robot la reduce automticamente.
Figura 22 Se programan tres posiciones, la ltima de ellas con una orientacin distinta
para la herramienta.
Figura 23 Si todas las posiciones fueran puntos de paro, la ejecucin del programa
tendra el aspecto siguiente.
Tamao de la zona
Figura 24 Si el punto intermedio fuera un punto de paso, la ejecucin del programa
tendra el aspecto siguiente.
Zona reducida
Con reorientaciones grandes de la herramienta o movimientos grandes de los ejes
externos, la zona extendida e incluso la zona del TCP pueden ser reducidas por
el robot. La zona se define como el tamao relativo ms pequeo de la zona,
basado en los componentes de la misma (consulte la pgina siguiente) y en el
movimiento programado.
P1 P2
Cuando los ejes externos estn activos, afectan a los tamaos relativos de la zona
acorde con las frmulas siguientes:
pzone_eax
________________________
longitud del movimiento P1 - P2
zone_leax
________________________
longitud del movimiento mx. lineal de ejes externos P1 - P2
zone_reax
________________________
ngulo de reorientacin mx. de eje externo de rotacin P1 - P2
Componentes
finep (punto fino) Tipo de dato: bool
El tamao de la zona (el radio) para los ejes externos. El tamao se define como
la distancia en mm del TCP respecto del punto programado.
Ejemplos
VAR zonedata path := [ FALSE, 25, 40, 40, 10, 35, 5 ];
path.pzone_tcp := 40;
Datos predefinidos
Existen varios datos de zona ya definidos en el mdulo de sistema BASE.
Puntos de paro
Nombre
fine 0 mm
Puntos de paso
Nombre Trayect. TCP Orient. Eje ext. Orient. Eje lineal Eje rotac.
z0 0,3 mm 0,3 mm 0,3 mm 0,03 o 0,3 mm 0,03 o
z1 1 mm 1 mm 1 mm 0,1 o 1 mm 0,1 o
z5 5 mm 8 mm 8 mm 0,8 o 8 mm 0,8 o
z10 10 mm 15 mm 15 mm 1,5 o 15 mm 1,5 o
z15 15 mm 23 mm 23 mm 2,3 o 23 mm 2,3 o
z20 20 mm 30 mm 30 mm 3,0 o 30 mm 3,0 o
z30 30 mm 45 mm 45 mm 4,5 o 45 mm 4,5 o
z40 40 mm 60 mm 60 mm 6,0 o 60 mm 6,0 o
z50 50 mm 75 mm 75 mm 7,5 o 75 mm 7,5 o
z60 60 mm 90 mm 90 mm 9,0 o 90 mm 9,0 o
z80 80 mm 120 mm 120 mm 12 o 120 mm 12 o
z100 100 mm 150 mm 150 mm 15 o 150 mm 15 o
z150 150 mm 225 mm 225 mm 23 o 225 mm 23 o
z200 200 mm 300 mm 300 mm 30 o 300 mm 30 o
Estructura
< data object of zonedata >
< finep of bool >
< pzone_tcp of num >
< pzone_ori of num >
< pzone_eax of num >
< zone_ori of num >
< zone_leax of num >
< zone_reax of num >
Informacin relacionada
Descrito en:
Instrucciones de posicionamiento Resumen sobre RAPID - Movimiento
Movimiento y trayectorias en general Principios de movimiento y E/S -
Posicionamiento durante la ejecucin
del programa
Configuracin de los ejes externos Gua del usuario -
Parmetros del sistema
Otros puntos de paro Tipos de datos - stoppointdata
A desplazamiento
direccin de la herramienta 143
Abs 1 desplazamiento de programa
ACos 3 eliminar de posicin 111
AOutput 5 desplazar
archivo posicin 105
descargar 63 Dim 61
leer 123, 129, 133, 139 dionum 209
arco coseno 3 DotProd 65, 101, 191
arco seno 7 DOutput 67
arco tangente 9, 11
ASin 7 E
ATan 9
ATan2 11 errdomain 211
ERRNO 293
B errnum 213, 297
errtype 219
base de coordenadas 57 EulerZYX 69
base de coordenadas de desplazamiento 53, 57 Exp 71
bool 195 extjoint 221
byte 197
F
C
fecha 27
C_MOTSET 293 fine 281
C_PROGDISP 293 fino 321
cadena de texto 289
canal serie G
leer 123, 129, 133, 139
carga til 229 GetNextSym 79
CDate 27 GetTime 83
CJointT 17, 29 GOutput 5, 85
ClkRead 31 grupo de E/S 5, 85
clock 199 H
leer 31
confdata 201 hora 43, 83
Cos 33
CPos 35 I
CRobT 21, 39
interrupcin
cronmetro 199
identidad 223
CTime 43
INTNO 293
CTool 45
intnum 223
cuaternio 256
iodev 193, 225
CWobj 47
IsPers 89
D IsSysId 91
IsVar 93
datos de sistema 293
DefDFrame 53 L
DefFrame 23, 57
leer
Tan 175
TestDI 181
TextTabFreeToUse 81
tooldata 299
tpnum 305
trapdata 309
trayectoria de esquina 281, 321
triggdata 307
Trunc 187
tunetype 311
valor absoluto 1
valor exponencial 13, 71, 119
valor lgico 195
valor numrico 245
ValToStr 189
velocidad 277
wobjdata 313
wzstationary 317
wztemporary 319
a
ABB Automation Technology Products AB
Robotics
S-721 68 VSTERS
SWEDEN
Telephone: +46 (0) 21 344000
Telefax: +46 (0) 21 132592