Manual de referencia de RAPID 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 revisión A BaseWare Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
Índice
Funciones A-Z
Tipos de datos A-Z
Índice alfabético
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
La información de este manual puede cambiar sin previo aviso y no puede entenderse como un compromiso por parte de ABB. ABB no se hace responsable de ningún error que pueda aparecer en este manual. Excepto en los casos en que se indica expresamente en este manual, ninguna parte del mismo debe entenderse como ninguna garantía por parte de ABB por las pérdidas, lesiones, daños materiales, idoneidad para un fin determinado ni garantías similares. Se prohibe la reproducción o la copia de este manual o cualquiera de sus partes si no se cuenta con una autorización 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 través de ABB, con el coste aplicable en el momento de su solicitud. © 2003 ABB Reservados todos los derechos. ABB Automation Technology Products AB Robotics SE-721 68 Västerås Suecia
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
Índice Abs - Obtiene el valor absoluto .................................................................................................. 1 ACos - Calcula el valor de arco coseno ..................................................................................... 3 AOutput - Lee el valor de una señal analógica de salida......................................................... 5 ASin - Calcula el valor del arco seno ......................................................................................... 7 ATan - Calcula el valor de arco tangente .................................................................................. 9 ATan2 - Calcula el valor de arco tangente 2 ........................................................................... 11 ByteToStr - Convierte un byte en un dato de cadena de caracteres ..................................... 13 CalcJointT - Calcula los ángulos de las ejes a partir del valor de robtarget ....................... 17 CalcRobT - Calcula el valor de robtarget a partir de jointtarget ........................................ 21 CalcRotAxisFrame - Calcular la base de coordenadas de un eje de rotación ..................... 23 CDate - Lee la fecha actual como una cadena ........................................................................ 27 CJointT - Lee los ángulos actuales de los ejes ........................................................................ 29 ClkRead - Lee un reloj utilizado para la temporización ....................................................... 31 Cos - Calcula el valor del coseno.............................................................................................. 33 CPos - Lee los datos de posición (pos) actuales ...................................................................... 35 CRobT - Lee los datos de posición (robtarget) actuales ........................................................ 39 CSpeedOverride - Lee el ajuste de velocidad actual.............................................................. 41 CTime - Lee la hora actual en forma de una cadena ............................................................. 43 CTool - Lee los datos actuales de la herramienta................................................................... 45 CWObj - Lee los datos del objeto de trabajo actual .............................................................. 47 DefAccFrame - Define una base de coordenadas exacta ....................................................... 49 DefDFrame - Define una base de coordenadas de desplazamiento ...................................... 53 DefFrame - Define una base de coordenadas ......................................................................... 57 Dim - Obtiene las dimensiones de una matriz ........................................................................ 61 Distance - Distancia entre dos puntos...................................................................................... 63 DotProd - Producto escalar de dos vectores pos..................................................................... 65 DOutput - Lee el valor de una señal digital de salida ............................................................ 67 EulerZYX - Obtiene ángulos Euler a partir de una orientación .......................................... 69 Exp - Calcula el valor exponencial .......................................................................................... 71 FileTime - Obtiene la información de hora de un archivo .................................................... 73 GetNextMechUnit - Obtener los nombres de las unidades mecánicas................................. 77 GetNextSym - Obtiene el siguiente símbolo coincidente ....................................................... 79 GetTaskName - Obtiene el nombre de la tarea actual ........................................................... 81 GetTime - Lee la hora actual como un valor numérico ......................................................... 83 GOutput - Lee el valor de un grupo de señales digitales de salida ....................................... 85 IsMechUnitActive - Indica si una unidad mecánica está activa ........................................... 87 IsPers - Determina si es una variable persistente................................................................... 89 IsSysID - Comprobar la identidad del sistema....................................................................... 91 Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
I
Índice IsVar - Determina si un dato es una variable ......................................................................... 93 MaxRobSpeed - Velocidad máxima del robot ........................................................................ 95 MirPos - Obtención de la posición espejo de una posición.................................................... 97 ModTime - Obtener el tiempo de carga de un módulo cargado ........................................... 99 NOrient - Normaliza la orientación....................................................................................... 101 NumToStr - Convierte un valor numérico en una cadena de caracteres ........................... 103 Offs - Desplaza una posición del robot .................................................................................. 105 OpMode - Lee el modo de funcionamiento ........................................................................... 107 OrientZYX - Genera una orientación a partir de ángulos Euler ....................................... 109 ORobT - Elimina un desplazamiento de programa de una posición...................................111 PoseInv - Invierte la pose........................................................................................................ 113 Pose - Tipo de dato:................................................................................................................. 115 PoseVect - Multiplicar una pose y un vector......................................................................... 117 Pow - Calcula el resultado de elevar un valor a una potencia ............................................ 119 Present - Comprueba si se está usando un parámetro opcional ......................................... 121 ReadBin - Lee un byte de un archivo o un canal serie......................................................... 123 ReadMotor - Lee los ángulos actuales de los motores ......................................................... 127 ReadNum - Lee un número de un archivo o un canal serie ................................................ 129 ReadStr - Lee una cadena de caracteres de un archivo o un canal serie ........................... 133 ReadStrBin - Lee una cadena de un canal serie o un archivo binario ............................... 139 RelTool - Hace un desplazamiento respecto de la herramienta .......................................... 143 RobOS - Comprueba si el programa se está ejecutando en RC o VC................................ 145 Round - Redondea un valor numérico .................................................................................. 147 RunMode - Obtiene el modo de ejecución ............................................................................ 149 Sin - Calcula el valor del seno ................................................................................................ 151 Sqrt - Calcula la raíz cuadrada.............................................................................................. 153 StrFind - Busca un carácter en una cadena de caracteres .................................................. 155 StrLen - Obtiene la longitud de una cadena ......................................................................... 157 StrMap - Mapea una cadena de caracteres........................................................................... 159 StrMatch - Busca un patrón dentro de una cadena de caracteres...................................... 161 StrMemb - Comprueba si un carácter pertenece a un conjunto ........................................ 163 StrOrder - Comprueba si dos cadenas de caracteres están ordenadas .............................. 165 StrPart - Busca una parte de una cadena ............................................................................. 167 StrToByte - Convierte una cadena en un byte ...................................................................... 169 StrToVal - Convierte una cadena de caracteres en un valor ............................................... 173 Tan - Calcula el valor de tangente ......................................................................................... 175 TestAndSet - Comprueba una variable y la establece si no está establecida ..................... 177 TestDI - Comprobar si una entrada digital está activada ................................................... 181 Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
II
Índice TestSignRead - Obtiene el valor de una señal de test........................................................... 183 Trunc - Trunca un valor numérico ........................................................................................ 187 ValToStr - Convierte un valor en una cadena....................................................................... 189 VectMagn - Magnitud de un vector pos ................................................................................ 191 aiotrigg - Condición de disparo con E/S analógica .............................................................. 193 bool - Valores lógicos............................................................................................................... 195 byte - Valores decimales de 0 a 255........................................................................................ 197 clock - Medición de tiempo..................................................................................................... 199 confdata - Datos de configuración del robot......................................................................... 201 dionum - Valores digitales 0 y 1 ............................................................................................. 209 errdomain - Dominio de error ............................................................................................... 211 errnum - Número de error ..................................................................................................... 213 errtype - Tipo de error............................................................................................................ 219 extjoint - Posición de los ejes externos................................................................................... 221 intnum - Identidad de interrupción....................................................................................... 223 iodev - Canales serie y archivos ............................................................................................. 225 jointtarget - Datos de posición de eje..................................................................................... 227 loaddata - Datos de carga ....................................................................................................... 229 loadsession - Programar una sesión de carga ....................................................................... 235 mecunit - Unidad mecánica .................................................................................................... 237 motsetdata - Datos de parámetros de movimiento............................................................... 239 num - Valores numéricos (registros)...................................................................................... 245 o_jointtarget - Datos originales de posiciones de ejes .......................................................... 247 o_robtarget - Datos de posición originales............................................................................ 249 opnum - Operador de comparación ...................................................................................... 253 orient - Orientación................................................................................................................. 255 pos - Posiciones (sólo X, Y y Z) .............................................................................................. 261 pose - Transformaciones de coordenadas ............................................................................. 263 progdisp - Desplazamiento de programa .............................................................................. 265 robjoint - Posición de eje de los ejes del robot...................................................................... 267 robtarget - Datos de posición ................................................................................................. 269 shapedata - Datos de forma de zonas mundo ....................................................................... 273 signalxx - Señales digitales y analógicas................................................................................ 275 speeddata - Datos de velocidad .............................................................................................. 277 stoppointdata - Datos de punto de paro ................................................................................ 281 string - Cadenas de caracteres ............................................................................................... 289 symnum - Número simbólico.................................................................................................. 291 Datos de sistema ...................................................................................................................... 293 Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
III
Índice taskid - Identificación de tareas ............................................................................................. 295 testsignal - Señal de test .......................................................................................................... 297 tooldata - Datos de herramientas........................................................................................... 299 tpnum - Número de ventana de la unidad de programación .............................................. 305 triggdata - Eventos de posicionamiento - trigg..................................................................... 307 trapdata - Datos de interrupción para la rutina TRAP actual ........................................... 309 tunetype - Tipo de ajuste de servo ......................................................................................... 311 wobjdata - Datos del objeto de trabajo ................................................................................. 313 wzstationary - Datos de zona mundo estacionaria ............................................................... 317 wztemporary - Datos de zona mundo temporal ................................................................... 319 zonedata - Datos de zonas....................................................................................................... 321
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
IV
Abs Función
Abs - Obtiene el valor absoluto Abs se utiliza para obtener el valor absoluto, es decir, un valor positivo a partir de un dato numérico.
Ejemplo reg1 := Abs(reg2); Se asigna a Reg1 el valor absoluto de reg2.
Valor de retorno
Tipo de dato: num
El valor absoluto, es decir, un valor numérico positivo. Por ejemplo
Valor de entrada Valor devuelto 3
3
-3
3
-2,53
2,53
entre sí Abs
(Input)
Input
Tipo de dato: num
El valor de entrada.
Ejemplo TPReadNum no_of_parts, "¿Cuántas piezas hay que producir? "; no_of_parts := Abs(no_of_parts); Se pregunta al operador cuántas 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 ’:=’ ] < expresión (IN) of num > ’)’ Una función con un valor de retorno del tipo de dato num.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
1
Abs Función
Información relacionada Descrito en: Instrucciones y funciones matemáticas
2
Resumen sobre RAPID - Matemáticas
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
ACos Función
ACos - Calcula el valor de arco coseno ACos (arco coseno) se utiliza para calcular el valor de arco coseno.
Ejemplo VAR num angle; VAR num value; . . angle := ACos(value);
Return value ACos
Tipo de dato: num
El valor del arco coseno, expresado en grados, en el rango [0, 180].
Argumentos ACos
(Value)
Value
Tipo de dato: num
El valor del argumento en el rango [-1, 1].
Sintaxis Acos’(’ [Value ’:=’]
’)’ Una función con un valor de retorno del tipo de dato num.
Información relacionada Descrito en: Instrucciones y funciones matemáticas
Resumen sobre RAPID - Matemáticas
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
3
ACos Función
4
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
AOutput Función
AOutput - Lee el valor de una señal analógica de salida AOutput se utiliza para obtener el valor actual de una señal analógica de salida.
Ejemplo IF AOutput(ao4) > 5 THEN ... Si el valor actual de la señal ao4 es mayor que 5, ...
Valor de retornoTipo de dato: num El valor actual de la señal. Al valor actual se le aplica una escala (acorde con los parámetros del sistema) antes de leerlo desde el programa de RAPID. Consulte la Figura 1. Valor físico de la señal de salida (V, mA, etc.) MÁX. DE SEÑAL MÁX. DE PROGRAMA Valor lógico en el programa MÍN. DE PROGRAMA MÍN. DE SEÑAL Figura 1 Diagrama de cómo se ajustan los valores de las señales analógicas a una escala.
Argumentos AOutput
(Signal)
Signal
Tipo de dato: signalao
El nombre de la salida analógica que debe leerse.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
5
AOutput Función
Sintaxis AOutput ’(’ [ Signal ’:=’ ] < variable (VAR) of signalao > ’)’ Una función con un valor de retorno del tipo de dato num.
Información relacionada Descrito en:
6
Instrucciones de entrada y salida
Resumen sobre RAPID Señales de entrada y salida
Funcionalidad general de las entradas y salidas
Principios de movimiento y E/S Principios de E/S
Configuración de E/S
Guía del usuario Parámetros del sistema
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
ASin Función
ASin - Calcula el valor del arco seno ASin (arco seno) se utiliza para calcular el calor de arco seno.
Ejemplo VAR num angle; VAR num value; . . angle := ASin(value);
Valor de retorno
Tipo de dato: num
El valor del arco seno, expresado en grados, en el rango [-90, 90].
Argumentos ASin
(Value)
Value
Tipo de dato: num
El valor del argumento en el rango [-1, 1].
Sintaxis ASin’(’ [Value ’:=’] ’)’ Una función con un valor de retorno del tipo de dato num.
Información relacionada Descrito en: Instrucciones y funciones matemáticas
Resumen sobre RAPID - Matemáticas
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
7
ASin Función
8
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
ATan Función
ATan - Calcula el valor de arco tangente ATan (arco tangente) se utiliza para calcular el valor de arco tangente.
Ejemplo VAR num angle; VAR num value; . . angle := ATan(value);
Valor de retorno
Tipo de dato: num
El valor del arco tangente, expresado en grados, en el rango [-90, 90].
Argumentos ATan
(Value)
Value
Tipo de dato: num
El valor del argumento.
Sintaxis ATan’(’ [Value ’:=’] ’)’ Una función con un valor de retorno del tipo de dato num.
Información relacionada Descrito en: Instrucciones y funciones matemáticas
Resumen sobre RAPID - Matemáticas
Arco tangente con un valor de retorno en el rango [-180, 180]
Funciones - ATan2
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
9
ATan Función
10
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
ATan2 Función
ATan2 - Calcula el valor de arco tangente 2 ATan2 (arco tangente 2) se utiliza para calcular el valor del arco tangente 2.
Ejemplo VAR num angle; VAR num x_value; VAR num y_value; . . angle := ATan2(y_value, x_value);
Valor de retorno
Tipo de dato: num
El valor del arco tangente, expresado en grados, en el rango [-180, 180]. El valor será igual a ATan(y/x), pero en el rango [-180, 180], ya que la función utiliza el signo de los dos argumentos para determinar el cuadrante del valor de retorno.
Argumentos ATan2
(Y X)
Y
Tipo de dato: num El valor del argumento numerador.
X
Tipo de dato: num El valor del argumento denominador.
Sintaxis ATan2’(’ [Y ’:=’] ’,’ [X ’:=’] ’)’ Una función con un valor de retorno del tipo de dato num.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
11
Atan2 Función
Información relacionada Descrito en:
12
Instrucciones y funciones matemáticas
Resumen sobre RAPID - Matemáticas
Arco tangente con un solo argumento
Funciones - ATan
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
ByteToStr Función
ByteToStr - Convierte un byte en un dato de cadena de caracteres ByteToStr (byte a cadena de caracteres) se utiliza para convertir un byte a un dato del tipo string con un formato de datos de byte definido.
Ejemplo VAR string con_data_buffer{5}; VAR byte data1 := 122; con_data_buffer{1} := ByteToStr(data1); El contenido del componente con_data_buffer{1} de la matriz será “122” después de la función ByteToStr. con_data_buffer{2} := ByteToStr(data1\Hex); El contenido del componente con_data_buffer{2} de la matriz será “7A” después de la función ByteToStr. con_data_buffer{3} := ByteToStr(data1\Okt); El contenido del componente con_data_buffer{3} de la matriz será “172” después de la función ByteToStr. con_data_buffer{4} := ByteToStr(data1\Bin); El contenido del componente con_data_buffer{4} de la matriz será “01111010” después de la función ByteToStr. con_data_buffer{5} := ByteToStr(data1\Char); El contenido del componente con_data_buffer{5} de la matriz será “z” después de la función ByteToStr.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
13
ByteToStr Función
Valor de retorno ByteToStr
Tipo de dato: string
El resultado de la operación de conversión, con el formato siguiente: Formato:
Caracteres:
Longitud de cad.: Rango:
Dec .....:
’0’ - ’9’
1-3
"0" - "255"
Hex .....:
’0’ - ’9’, ’A’ -’F’
2
"00" - "FF"
Okt ......:
’0’ - ’7’
3
"000" - "377"
Bin ......:
’0’ - ’1’
8
"00000000" - "11111111"
Char ....:
Cualquier ASCII (*)
1
Un carácter ASCII
(*) Si es un carácter ASCII no imprimible, el formato de retorno será el formato de código de carácter de RAPID (por ejemplo “\07” para el carácter de control BEL).
Argumentos ByteToStr
(BitData [\Hex] | [\Okt] | [\Bin] | [\Char])
BitData
Tipo de dato: byte
Los datos de bits a convertir. Si se omite el argumento modificador opcional, los datos se convierten al formato decimal (Dec). [\Hex]
(Hexadecimal)
Tipo de dato: switch
Los datos se convierten al formato hexadecimal. [\Okt]
(Octal)
Tipo de dato: switch
Los datos se convierten al formato octal. [\Bin]
(Binario)
Tipo de dato: switch
Los datos se convierten al formato binario. [\Char]
(Carácter)
Tipo de dato: switch
Los datos se convierten al formato de carácter ASCII.
Limitaciones El rango de los tipos de datos byte es de 0 a 255 en decimal. 14
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
Pow Función
Sintaxis ByteToStr’(’ [BitData ’:=’] [’\’ Hex ] | [’\’ Okt] | [’\’ Bin] | [’\’ Char] ’)’ ’;’ Una función con un valor de retorno del tipo de dato string.
Información relacionada Descrito en: Conversión de una cadena de caracteres a datos de bits
Instrucciones - StrToByte
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
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
15
Pow Función
16
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
CalcJointT Función
CalcJointT - Calcula los ángulos de las ejes a partir del valor de robtarget CalcJointT (calcular objetivo de ejes) se utiliza para calcular ángulos de los ejes del robot y de los ejes externos a partir de datos robtarget especificados. Los datos de entrada robtarget deben especificarse con el mismo sistema de coordenadas que se especifique como argumento en Tool, en WObj, en el desplazamiento de programa activo en el momento de la ejecución (ProgDisp) y en el offset de los ejes externos (EOffs). Los datos jointtarget devueltos se expresan en el sistema de coordenadas de calibración.
Ejemplo VAR jointtarget jointpos1; CONST robtarget p1 := [...]; jointpos1 := CalcJointT(p1, tool1 \WObj:=wobj1); El valor de jointtarget que corresponde al valor de robtarget p1 se almacena en jointpos1. La herramienta tool1 y el objeto de trabajo wobj1 se utilizan para calcular los ángulos de los ejes jointpos1.
Valor de retornoTipo de dato: jointtarget Los ángulos en grados de los ejes del robot en el lado del brazo. Los valores de los ejes externos, en mm para los ejes lineales y en grados para los ejes de rotación. Los valores devueltos están siempre relacionados con la posición de calibración.
Argumentos CalcJointT (Rob_target Tool [\WObj] ) Rob_target
Tipo de dato: robtarget
La posición del robot y de los ejes externos en el sistema de coordenadas más externo respecto de la herramienta y el objeto de trabajo especificados y respecto del desplazamiento de programa activo en el momento de la ejecución (ProgDisp) y/o el offset de los ejes externos (EOffs).
Tool
Tipo de dato: tooldata La herramienta utilizada para el cálculo de los ángulos de los ejes del robot.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
17
CalcJointT Función [\WObj]
(Objeto de trabajo)
Tipo de dato: wobjdata
El objeto de trabajo (sistema de coordenadas) con el que está relacionada la posición del robot. Si se omite este argumento, se utiliza el objeto de trabajo wobj0. Este argumento debe especificarse si se utiliza una herramienta estacionaria, ejes externos coordinados o un transportador.
Ejecución 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 ejecución. Para calcular la posición de los ejes externos en el momento de la ejecución, se tiene en cuenta el EOffs activo. El cálculo selecciona siempre la configuración del robot acorde con los datos de configuración especificados en los datos de entrada robtarget. Ni la instrucción ConfL ni ConfJ afectan a este principio de cálculo. Si se utiliza la singularidad de la muñeca, se cambia el eje 4 a 0 grados. Si hay cualquier desplazamiento de programa activo (ProgDisp) y/o se almacena un desplazamiento de eje externo (EOffs) en el momento de almacenar los datos robtarget, es necesario que el mismo desplazamiento de programa y/o el mismo offset de eje externo esté activo cuando se ejecuta CalcJointT.
Gestión de errores Si al menos uno de los ejes está fuera del área de trabajo o se superan los límites en al menos un eje acoplado, la variable de sistema ERRNO cambia a ERR_ROBLIMIT y la ejecución continúa en el gestor de errores. A partir de ese momento, el gestor de errores puede controlar la situación.
Sintaxis CalcJointT’(’ [Rob_target ’:=’] ‘,’ [Tool ’:=’ ] [’\’WObj ’:=’ ] ’)’ Una función con un valor de retorno del tipo de dato jointtarget.
18
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
CalcJointT Función
Información relacionada Descrito en: Cálculo de robtarget a partir de jointtarget
Funciones - CalcRobT
Definición de posición
Tipos de datos - robtarget
Definición de posición de los ejes
Tipos de datos - jointtarget
Definición de herramientas
Tipos de datos - tooldata
Definición 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 de programa
Instrucciones - PDispOn
Sistema de coordenadas de offset de ejes externos
Instrucciones - EOffsOn
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
19
CalcJointT Función
20
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
CalcRobT Función
CalcRobT - Calcula el valor de robtarget a partir de jointtarget CalcRobT (calcular objetivo de robot) se utiliza para calcular los datos de robtarget a partir de datos jointtarget determinados. Esta función devuelve un valor de robtarget con la posición (x, y, z), la orientación (q1 ... q4), la configuración de los ejes del robot y la posición de los ejes externos. Los datos de entrada de jointtarget deben especificarse en el sistema de coordenadas de calibración. Los datos robtarget devueltos se expresan en el sistema de coordenadas más externos y tienen en cuenta la herramienta especificada, el objeto de trabajo, el desplazamiento de programa activo en el momento de la ejecución (ProgDisp) y el offset de los ejes externos (EOffs).
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 posición p1.
Valor de retorno
Tipo de dato: robtarget
La posición de los ejes del robot y de los ejes externos se devuelve con el tipo de dato robtarget y se expresa en el sistema de coordenadas más externo, teniendo en cuenta la herramienta especificada, el objeto de trabajo, el desplazamiento de programa activo en el momento de la ejecución (ProgDisp) y el offset de los ejes externos (EOffs). Si no hay ningún ProgDisp activo, la posición del robot se expresa en el sistema de coordenadas del objeto. Si no hay ningún EOffs activo, la posición de los ejes externos se expresa en el sistema de coordenadas de calibración.
Argumentos CalcRobT ( Joint_target Tool [\WObj] ) Joint_target
Tipo de dato: jointtarget
La posición de los ejes del robot y de los ejes externos, respecto del sistema de coordenadas de calibración.
Tool
Tipo de dato: tooldata La herramienta utilizada para el cálculo de la posición del robot.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
21
CalcRobT Función [\WObj]
(Objeto de trabajo)
Tipo de dato: wobjdata
El objeto de trabajo (sistema de coordenadas) con el que está relacionada la posición del robot devuelta por la función. Si se omite este argumento, se utiliza el objeto de trabajo wobj0. Este argumento debe especificarse si se utiliza una herramienta estacionaria, ejes externos coordinados o un transportador.
Ejecución de programas El valor robtarget devuelto se calcula a partir del valor de entrada jointtarget. Para calcular la posición 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 ejecución. Para calcular la posición de los ejes externos, se tiene en cuenta el EOffs activo en el momento de la ejecución.
Sintaxis CalcRobT’(’ [Joint_target ’:=’ ] ‘,’ [Tool ’:=’ ] [’\’WObj ’:=’ ] ’)’ Una función con un valor de retorno del tipo de dato robtarget.
Información relacionada Descrito en:
22
Cálculo de jointtarget a partir de robtarget
Funciones - CalcJointT
Definición de posición
Tipos de datos - robtarget
Definición de posición de los ejes
Tipos de datos - jointtarget
Definición de herramientas
Tipos de datos - tooldata
Definición 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 de programa
Instrucciones - PDispOn
Sistema de coordenadas de offset de ejes externos
Instrucciones - EOffsOn
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
CalcRotAxisFrame Función
CalcRotAxisFrame - Calcular la base de coordenadas de un eje de rotación CalcRotAxisFrame (calcular base de coordenadas de eje de rotación) se utiliza para calcular el sistema de coordenadas de usuario de una unidad mecánica basada en un eje de rotación.
Descripción La definición de una base de coordenadas de usuario para un eje de rotación externo requiere que la mesa giratoria (o la estructura mecánica similar) del eje externo tenga un punto de referencia marcado. Además, es necesario calibrar la base de coordenadas principal del robot y el TCP. El procedimiento de calibración 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 rotación
Mesa giratoria accionada por un solo eje externo l
Posición 2
l
z
y Posición 1
Posición 3
l
x l
Posición 4
z Origen del sistema de coordenadas del eje de rotación único
y
Mundo
Punto de referencia de la mesa giratoria
x
Figura 2 Definición de puntos de un eje de rotación
El sistema de coordenadas de usuario del eje de rotación tiene su origen en el centro de la mesa giratoria. La dirección z coincide con el eje de rotación y el eje x atraviesa el punto de referencia. La Figura 2 muestra el sistema de coordenadas de usuario para dos posicionamientos diferentes de la mesa giratoria (con la mesa giratoria vista desde arriba).
l
x
y
y
l
Rotación de 0 grados
x
Rotación de +45 grados
Figura 3 El sistema de coordenadas de usuario con distintos ángulos de rotación
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
23
CalcRotAxisFrame Función
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; ! Añadir los objetivos a la matriz targetlist{1}:= pos1; targetlist{2}:= pos2; targetlist{3}:= pos3; targetlist{4}:= pos4; resFr:=CalcRotAxisFrame(STN_1 , targetlist, 4, max_err, mean_err); ! Actualizar los parámetros de sistema. IF (max_err < 1.0) AND (mean_err < 0.5) THEN WriteCfgData "/MOC/SINGLE/STN_1", "base_frame_pos_x",resFr.trans.x; WriteCfgData "/MOC/SINGLE/STN_1", "base_frame_pos_y",resFr.trans.y; WriteCfgData "/MOC/SINGLE/STN_1", "base_frame_pos_z",resFr.trans.z; WriteCfgData "/MOC/SINGLE/STN_1", "base_frame_orient_u1",resFr.rot.q1; WriteCfgData "/MOC/SINGLE/STN_1", "base_frame_orient_u2",resFr.rot.q2; WriteCfgData "/MOC/SINGLE/STN_1", "base_frame_orient_u3",resFr.rot.q3; WriteCfgData "/MOC/SINGLE/STN_1", "base_frame_orient_u4",resFr.rot.q4; TPReadFK reg1,"Se requiere un arranque en caliente para que se aplique la calibración." ,stEmpty,stEmpty,stEmpty, stEmpty,"OK"; WarmStart; ENDIF Se crean cuatro posiciones, de pos1 a pos4 y se les aplica ModPos de forma que la herramienta del robot tMyTool apunte al mismo punto de referencia del eje externo STN_1, pero con una rotación de eje externo diferente. A continuación, 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 configuración cuando se realiza un arranque en caliente, para aplicar el cambio.
24
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
CalcRotAxisFrame Función
Return value CalcRotAxisFrame
Tipo de dato: pose
La base de coordenadas calculada.
Argumentos CalcRotAxisFrame (MechUnit [\AxisNo] TargetList TargetsInList MaxErr MeanErr) MechUnit
Tipo de dato: mecunit
El nombre de la unidad mecánica a calibrar. [\AxisNo]
Tipo de dato: num
Un argumento opcional que define el número de eje cuya base de coordenadas debe determinarse. Si sólo existe un eje de rotación, éste recibe el valor 1. En el caso de las unidades mecánicas con varios ejes, el número del eje debe indicarse con este argumento. TargetList
Tipo de dato: robtarget
Una matriz de robtargets que contienen las posiciones definidas al apuntar la mesa giratoria hacia fuera. El número mínimo de robtargets es 4 y el máximo es 10. TargetsInList
Tipo de dato: num
Número de robtargets de la matriz. MaxErr
Tipo de dato: num
El error máximo estimado, en mm. MeanErr
Tipo de dato: num
El error medio estimado, en mm.
Gestión de errores Si las posiciones no tienen la relación requerida o no se especifican con una exactitud suficiente, la variable de sistema ERRNO cambia a ERR_FRAME. A continuación, este error puede ser gestionado en el gestor de errores.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
25
CalcRotAxisFrame Función
Sintaxis CalcRotAxisFrame’(’ [MechUnit ’:=’] [\AxisNo ’:=’ ]’,’ [TargetList ’:=’] ’,’ [TargetsInList ’:=’] ’,’ [MaxErr ’:=’] ’,’ [MeanErr ’:=’] ’)’ Una función con un valor de retorno del tipo de dato pose.
Información relacionada Descrito en: Instrucciones y funciones matemáticas
26
Resumen sobre RAPID - Matemáticas
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
CDate Función
CDate - Lee la fecha actual como una cadena CDate (fecha actual) se utiliza para leer la fecha actual del sistema. Esta función puede usarse para mostrar la fecha actual al operador en la pantalla de la unidad de programación 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(); La fecha actual se almacena en la variable date.
Valor de retorno Tipo de dato: string La fecha actual en una cadena. El formato de fecha estándar es “año-mes-día”, por ejemplo “1998-01-29”.
Ejemplo date := CDate(); TPWrite “La fecha actual es: “+date; Write logfile, date; Se escribe la fecha actual en la pantalla de la unidad de programación y dentro de un archivo de texto.
Sintaxis CDate ’(’ ’)’ Una función con un valor de retorno del tipo de dato string.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
27
CDate Función
Información relacionada Descrito en:
28
Instrucciones de tiempo
Resumen sobre RAPID Sistema y tiempo
Cambio de hora del reloj del sistema
Guía del usuario - Servicio técnico
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
CJointT Función
CJointT - Lee los ángulos actuales de los ejes CJointT (objetivo de ejes actual) se utiliza para leer los ángulos actuales de los ejes del robot y los ejes externos.
Ejemplo VAR jointtarget joints; joints := CJointT(); Los ángulos actuales de los ejes del robot y los ejes externos de almacenan en joints.
Valor de retorno
Tipo de dato: jointtarget
Los ángulos actuales en grados de los ejes del robot en el lado del brazo. Los valores actuales de los ejes externos, en mm para los ejes lineales y en grados para los ejes de rotación. Los valores devueltos están relacionados con la posición de calibración.
Sintaxis CJointT’(’’)’ Una función con un valor de retorno del tipo de dato jointtarget.
Información relacionada Descrito en: Definición de ejes
Tipos de datos - jointtarget
Lectura del ángulo actual del motor
Funciones - ReadMotor
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
29
CJointT Función
30
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
ClkRead Función
ClkRead - Lee un reloj utilizado para la temporización ClkRead se utiliza para leer un reloj que funciona como un cronómetro para funciones de temporización.
Ejemplo reg1:=ClkRead(clock1); Se lee el reloj clock1 y su tiempo en segundos se almacena en la variable reg1.
Valor de retorno
Tipo de dato: num
El tiempo almacenado en el reloj, en segundos. Tiene una exactitud de 0,010 segundos.
Argumentos ClkRead
(Clock)
Clock
Tipo de dato: clock
El nombre del reloj a leer.
Ejecución de programas El reloj puede leerse tanto cuando está parado como cuando está en marcha. Después de leer el reloj, es posible leerlo de nuevo, ponerlo otra vez en marcha, pararlo o ponerlo a cero.
Gestión de errores Si el reloj funciona de forma continuada durante 4.294.967 segundos (49 días, 17 horas, 2 minutos y 47 segundos), se desborda y la variable de sistema ERRNO cambia a ERR_OVERFLOW. El error puede ser gestionado en el gestor de errores.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
31
ClkRead Función
Sintaxis ClkRead ’(’ [ Clock ’:=’ ] < variable (VAR) de clock > ’)’ Una función con un valor de retorno del tipo de dato num.
Información relacionada Descrito en:
32
Instrucciones de reloj
Resumen sobre RAPID Sistema y tiempo
Desbordamiento de reloj
Tipos de datos - clock
Más ejemplos
Instrucciones - ClkStart
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
Cos Función
Cos - Calcula el valor del coseno Cos (coseno) se utiliza para calcular el valor de coseno de un valor de ángulo.
Ejemplo VAR num angle; VAR num value; . . value := Cos(angle);
Valor de retorno
Tipo de dato: num
El valor del coseno en el rango [-1, 1] .
Argumentos Cos
(Angle)
Angle
Tipo de dato: num
El valor del ángulo, expresado en grados.
Sintaxis Cos’(’ [Angle ’:=’] ’)’ Una función con un valor de retorno del tipo de dato num.
Información relacionada Descrito en: Instrucciones y funciones matemáticas
Resumen sobre RAPID - Matemáticas
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
33
Cos Función
34
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
CPos Función
CPos - Lee los datos de posición (pos) actuales CPos (posición actual) se utiliza para leer la posición actual del robot. Esta función devuelve los valores x, y, z del TCP del robot, en un dato del tipo pos. Si es necesario leer la posición completa del robot (robtarget), utilice en su lugar la función CRobT.
Ejemplo VAR pos pos1; MoveL *, v500, fine \Inpos := inpos50, tool1; pos1 := CPos(\Tool:=tool1 \WObj:=wobj0); La posición actual del TCP del robot se almacena en la variable pos1. La herramienta tool1 y el objeto de trabajo wobj0 se utilizan para calcular la posición. Recuerde que el robot está en reposo antes de que se lea y calcule la posición. Esto se consigue utilizando el punto de paro fine con la exactitud de posición inpos50 en la instrucción de movimiento anterior.
Valor de retorno
Tipo de dato: pos
La posición actual (pos) del robot con x, y, z en el sistema de coordenadas más externo, teniendo en cuenta la herramienta especificada, el objeto de trabajo y el sistema de coordenadas ProgDisp activo.
Argumentos CPos ([\Tool] [\WObj]) [\Tool]
Tipo de dato: tooldata
La herramienta utilizada para el cálculo de la posición actual del robot. Si se omite este argumento, se utiliza la herramienta activa actualmente.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
35
CPos Función [\WObj]
(Objeto de trabajo)
Tipo de dato: wobjdata
El objeto de trabajo (sistema de coordenadas) con el que está relacionada la posición actual del robot devuelta por la función. Si se omite este argumento, se utiliza el objeto de trabajo activo actualmente. Resulta muy conveniente especificar siempre los argumentos \Tool y \WObj durante la programación. De esta forma, la posición devolverá siempre la posición deseada, incluso si se ha activado manualmente otra herramienta u otro objeto de trabajo.
Ejecución de programas Las coordenadas devueltas representan la posición del TCP en el sistema de coordenadas ProgDisp.
Ejemplo VAR pos pos2; VAR pos pos3; VAR pos pos4; pos2 := CPos(\Tool:=grip3 \WObj:=fixture); . . pos3 := CPos(\Tool:=grip3 \WObj:=fixture); pos4 := pos3-pos2; La posición x, y, z del robot se captura en dos puntos dentro del programa, mediante la función CPos. La herramienta grip3 y el objeto de trabajo fixture se utilizan para calcular la posición. A continuación se calculan las distancias x, y, z recorridas entre estas posiciones y se almacenan dichas distancias en la variable de tipo pos pos4.
Sintaxis CPos ’(’ [’\’Tool ’:=’ ] [’\’WObj ’:=’ ] ’)’ Una función con un valor de retorno del tipo de dato pos.
36
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
CPos Función
Información relacionada Descrito en: Definición de posición
Tipos de datos - pos
Definición de herramientas
Tipos de datos - tooldata
Definición 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
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
37
CPos Función
38
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
CRobT Función
CRobT - Lee los datos de posición (robtarget) actuales CRobT (objetivo actual del robot) se utiliza para leer la posición actual de los ejes del robot y los ejes externos. Esta función devuelve un valor de robtarget con la posición (x, y, z), la orientación (q1 ... q4), la configuración de los ejes del robot y la posición de los ejes externos. Si sólo es necesario leer los valores x, y, z del TCP del robot (pos), utilice en su lugar la función CPos.
Ejemplo VAR robtarget p1; MoveL *, v500, fine \Inpos := inpos50, tool1; p1 := CRobT(\Tool:=tool1 \WObj:=wobj0); La posición 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 posición. Recuerde que el robot está en reposo antes de que se lea y calcule la posición. Esto se consigue utilizando el punto de paro fine con la exactitud de posición inpos50 en la instrucción de movimiento anterior.
Valor de retorno
Tipo de dato: robtarget
La posición actual de los ejes del robot y de los ejes externos en el sistema de coordenadas más 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
La herramienta utilizada para el cálculo de la posición actual del robot. Si se omite este argumento, se utiliza la herramienta activa actualmente. [\WObj]
(Objeto de trabajo)
Tipo de dato: wobjdata
El objeto de trabajo (sistema de coordenadas) con el que está relacionada la posición actual del robot devuelta por la función. Si se omite este argumento, se utiliza el objeto de trabajo activo actualmente. Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
39
CRobT Función Resulta muy conveniente especificar siempre los argumentos \Tool y \WObj durante la programación. De esta forma, la posición devolverá siempre la posición deseada, incluso si se ha activado manualmente otra herramienta u otro objeto de trabajo.
Ejecución de programas Las coordenadas devueltas representan la posición del TCP en el sistema de coordenadas ProgDisp. Los ejes externos se representan en el sistema de coordenadas ExtOffs.
Ejemplo VAR robtarget p2; p2 := ORobT( RobT(\Tool:=grip3 \WObj:=fixture) ); La posición 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 posición.
Sintaxis CRobT’(’ [’\’Tool ’:=’ ] [’\’WObj ’:=’ ] ’)’ Una función con un valor de retorno del tipo de dato robtarget.
Información relacionada Descrito en:
40
Definición de posición
Tipos de datos - robtarget
Definición de herramientas
Tipos de datos - tooldata
Definición 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 (sólo x, y, z)
Funciones - CPos
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
CSpeedOverride Función
CSpeedOverride - Lee el ajuste de velocidad actual CSpeedOverride se utiliza para leer el ajuste de velocidad definido por el operador desde las ventanas de programa o producción. El valor de retorno se muestra como un porcentaje, en el que el 100% corresponde a la velocidad programada. Importante: No debe confundirlo con el argumento Override de la instrucción de RAPID VelSet.
Ejemplo VAR num myspeed; myspeed := CSpeedOverride(); El ajuste de velocidad actual se almacena en la variable myspeed. Por ejemplo, si el valor es 100, equivale al 100%
Valor de retorno
Tipo de dato: num
El valor del ajuste de velocidad, como porcentaje de la velocidad programada. Será un valor numérico en el rango de 0 a 100.
Sintaxis CSpeedOverride’(’’)’ Una función con un valor de retorno del tipo de dato num.
Información relacionada Descrito en: Cambio del ajuste de velocidad
Guía del usuario Programación y testing de ciclos de producción
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
41
CSpeedOverride Función
42
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
CTime Función
CTime - Lee la hora actual en forma de una cadena CTime se utiliza para leer la hora actual del sistema. Esta función puede usarse para mostrar la hora actual al operador en la pantalla de la unidad de programación o para pegar la hora actual en un archivo de texto en el que se escribe desde el programa.
Ejemplo VAR string time; time := CTime(); La hora actual se almacena en la variable time.
Valor de retorno
Tipo de dato: string
La hora actual en una cadena. El formato de hora estándar es “horas:minutos:segundos”, por ejemplo “18:20:46”.
Ejemplo time := CTime(); TPWrite “La hora actual es: “+time; Write logfile, time; Se escribe la hora actual en la pantalla de la unidad de programación y dentro de un archivo de texto.
Sintaxis CTime ’(’ ’)’ Una función con un valor de retorno del tipo de dato string.
Información relacionada Descrito en: Instrucciones de hora y fecha
Resumen sobre RAPID Sistema y tiempo
Cambio de hora del reloj del sistema
Guía del usuario Parámetros del sistema
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
43
CTime Función
44
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
CTool Función
CTool - Lee los datos actuales de la herramienta CTool (herramienta actual) se utiliza para leer los datos de la herramienta actual.
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(); El valor de la herramienta actual se almacena en la variable temp_tool.
Valor de retorno
Tipo de dato: tooldata
Esta función devuelve un valor de tipo tooldata que contiene el valor de la herramienta actual, es decir, la última herramienta utilizada en una instrucción de movimiento. El valor devuelto representa la posición y la orientación del TCP en el sistema de coordenadas del centro de la muñeca. Consulte tooldata.
Sintaxis CTool’(’’)’ Una función con un valor de retorno del tipo de dato tooldata.
Información relacionada Descrito en: Definición de herramientas
Tipos de datos - tooldata
Sistemas de coordenadas
Principios de movimiento y E/S Sistemas de coordenadas
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
45
CTool Función
46
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
CWObj Función
CWObj - Lee los datos del objeto de trabajo actual CWObj (objeto de trabajo actual) se utiliza para leer los datos del objeto de trabajo actual.
Ejemplo PERS wobjdata temp_wobj; temp_wobj := CWObj(); El valor del objeto de trabajo actual se almacena en la variable temp_wobj.
Valor de retorno
Tipo de dato: wobjdata
Esta función 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 instrucción de movimiento. El valor devuelto representa la posición y la orientación del objeto de trabajo en el sistema de coordenadas mundo. Consulte wobjdata.
Sintaxis CWObj’(’’)’ Una función con un valor de retorno del tipo de dato wobjdata.
Información relacionada Descrito en: Definición de objetos de trabajo
Tipos de datos - wobjdata
Sistemas de coordenadas
Principios de movimiento y E/S Sistemas de coordenadas
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
47
CWObj Función
48
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
DefAccFrame Función
DefAccFrame - Define una base de coordenadas exacta DefAccFrame (definir base de coordenadas exacta) se utiliza para definir una base de coordenadas de tres a diez posiciones originales y un número igual de posiciones desplazadas.
Descripción 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 físicas, pero expresadas de forma diferente. Debe considerarse con dos enfoques diferentes: I: Se expresan las mismas posiciones físicas respecto de sistemas de coordenadas diferentes. Por ejemplo, se obtienen varias posiciones de un plano de CAD, por lo que las posiciones se expresan en el sistema de coordenadas local del CAD. A continuación, las mismas posiciones se expresan en el sistema de coordenadas mundo del robot. A partir de estos dos conjuntos de posiciones, se calcula la base de coordenadas existente entre el sistema de coordenadas de CAD y el sistema de coordenadas mundo. II: Existe un conjunto de posiciones relacionadas con un objeto en una posición original. Después de un desplazamiento del objeto, se determinan de nuevo las posiciones (buscadas con frecuencia). A partir de estos dos conjuntos de posiciones (posiciones anteriores y nuevas posiciones) se calcula la base de coordenadas de desplazamiento. Basta con tres objetivos para definir una base de coordenadas, pero deben utilizarse varios puntos para aumentar la exactitud.
Ejemplo
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
49
DefAccFrame Función
CONST robtarget p1 := [...]; CONST robtarget p2 := [...]; CONST robtarget p3 := [...]; CONST robtarget p4 := [...]; CONST robtarget p5 := [...]; VAR robtarget p6 := [...]; VAR robtarget p7 := [...]; VAR robtarget p8 := [...]; VAR robtarget p9 := [...]; VAR robtarget p10 := [...]; VAR robtarget pWCS{5}; VAR robtarget pCAD{5}; VAR pose frame1; VAR num max_err; VAR num mean_err; ! Añadir las posiciones a las matrices robtarget pCAD{1}:=p1; .... pCAD{5}:=p5; pWCS{1}:=p6; .... pWCS{5}:=p10; frame1 := DefAccFrame (pCAD, pWCS, 5, max_err, mean_err); Se han almacenado cinco posiciones, de p1 a p5, relacionadas con un objeto. Las mismas posiciones también se almacenan en relación con el sistema de coordenadas mundo, como de p6 a p10. A partir de estas 10 posiciones se calcula la base de coordenadas frame1 existente entre el sistema de coordenadas del objeto y el sistema de coordenadas mundo.
Valor de retorno DefAccFrame
Tipo de dato: pose
La base de coordenadas calculada.
50
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
DefAccFrame Función
Argumentos DefAccFrame (TargetListOne TargetListTwo TargetsInList MaxErr MeanErr) TargetListOne
Tipo de dato: robtarget
Una matriz de robtargets que contienen las posiciones definidas en el primer sistema de coordenadas. El número mínimo de robtargets es 3 y el máximo es 10. TargetListTwo
Tipo de dato: robtarget
Una matriz de robtargets que contienen las posiciones definidas en el segundo sistema de coordenadas. El número mínimo de robtargets es 3 y el máximo es 10. TargetsInList
Tipo de dato: num
Número de robtargets de la matriz. MaxErr
Tipo de dato: num
El error máximo estimado, en mm. MeanErr
Tipo de dato: num
El error medio estimado, en mm.
Gestión de errores Si las posiciones no tienen la relación requerida o no se especifican con una exactitud suficiente, la variable de sistema ERRNO cambia a ERR_FRAME. A continuación, este error puede ser gestionado en el gestor de errores.
Sintaxis DefAccFrame’(’ [TargetListOne ’:=’] ’,’ [TargetListTwo ’:=’] ’,’ [TargetsInList ’:=’] ’,’ [MaxErr ’:=’] ’,’ [MeanErr ’:=’] ’)’ Una función con un valor de retorno del tipo de dato pose.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
51
DefAccFrame Función
Información relacionada Descrito en:
52
Cálculo de una base de coordenadas a partir de tres posiciones
Funciones - DefFrame
Cálculo de una base de coordenadas de desplazamiento
Funciones - DefDFrame
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
DefDFrame Función
DefDFrame - Define una base de coordenadas de desplazamiento DefDFrame (definir base de coordenadas de desplazamiento) se utiliza para calcular una base de coordenadas de desplazamiento a partir de tres posiciones originales y tres posiciones desplazadas.
Ejemplo p3 p6 p5 p4 p1
p2
El nuevo plano
CONST robtarget p1 := [...]; CONST robtarget p2 := [...]; CONST robtarget p3 := [...]; VAR robtarget p4; VAR robtarget p5; VAR robtarget p6; VAR pose frame1; . ! Buscas las nuevas posiciones SearchL sen1, p4, *, v50, tool1; . SearchL sen1, p5, *, v50, tool1; . SearchL sen1, p6, *, v50, tool1; frame1 := DefDframe (p1, p2, p3, p4, p5, p6); . ! Activación del desplazamiento definido por frame1 PDispSet frame1; Se han almacenado tres posiciones, de p1 a p3, relacionadas con un objeto en una posición original. Después de un desplazamiento del objeto, se buscan tres posiciones nuevas, que se almacenan como de p4 a p6. La base de coordenadas de desplazamiento se calcula a partir de estas seis posiciones. A continuación se utiliza la base de coordenadas calculada para desplazar todas las posiciones almacenadas en el programa.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
53
DefDFrame Función
Valor de retorno
Tipo de dato: pose
La base de coordenadas de desplazamiento.
Argumentos DefDFrame
(OldP1
OldP2 OldP3 NewP1
OldP1
NewP2
NewP3)
Tipo de dato: robtarget
La primera posición original. OldP2
Tipo de dato: robtarget
La segunda posición original. OldP3
Tipo de dato: robtarget
La tercera posición original. NewP1
Tipo de dato: robtarget
La primera posición desplazada. La diferencia entre OldP1 y NewP1 define la parte de traslación de la base de coordenadas y debe medirse y determinarse con una gran exactitud. NewP2
Tipo de dato: robtarget
La segunda posición desplazada. La línea NewP1 ... NewP2 define la rotación de la línea anterior OldP1 ... OldP2. NewP3
Tipo de dato: robtarget
La tercera posición desplazada. Esta posición definirá la rotación del plano. Por ejemplo, debe estar situada en el nuevo plano formado por NewP1, NewP2 y NewP3.
Gestión 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 continuación, este error puede ser gestionado en el gestor de errores.
54
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
DefDFrame Función
Sintaxis DefDFrame’(’ [OldP1 ’:=’] ’,’ [OldP2 ’:=’] ’,’ [OldP3 ’:=’] ’,’ [NewP1 ’:=’] ’,’ [NewP2 ’:=’] ’,’ [NewP3 ’:=’] ’)’ Una función con un valor de retorno del tipo de dato pose.
Información relacionada Descrito en: Activación de una base de coordenadas de desplazamiento
Instrucciones - PDispSet
Definición manual de la base de coordenadas de desplazamiento
Guía del usuario - Calibración
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
55
DefDFrame Función
56
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
DefFrame Función
DefFrame - Define una base de coordenadas DefFrame (definir base de coordenadas) se utiliza para calcular una base de coordenadas a partir de tres posiciones que la definen.
Ejemplo y z
z
p3 x p2
y x Base de coordenadas del objeto
p1
frame1
Se utilizan tres posiciones, de p1a p3, en relación con el sistema de coordenadas del objeto, para definir el nuevo sistema de coordenadas, frame1. La primera posición, p1, define el origen de frame1. La segunda posición, p2, define la dirección del eje x. La tercera posición, p3, define la ubicación del plano xy. La base de coordenadas frame1 definida puede usarse como base de coordenadas de desplazamiento, como se muestra en el ejemplo siguiente: CONST robtarget p1 := [...]; CONST robtarget p2 := [...]; CONST robtarget p3 := [...]; VAR pose frame1; . . frame1 := DefFrame (p1, p2, p3); . . !Activación del desplazamiento definido por frame1 PDispSet frame1;
Valor de retorno
Tipo de dato: pose
La base de coordenadas calculada. El cálculo se realiza respecto del sistema de coordenadas del objeto activo.
Tipos de datos y rutinas de sistema de RAPID
57
DefFrame Función
Argumentos DefFrame
(NewP1
NewP2 NewP3 [\Origin])
NewP1
Tipo de dato: robtarget
La primera posición, que definirá el origen de la nueva base de coordenadas. NewP2
Tipo de dato: robtarget
La segunda posición, que definirá la dirección del eje x de la nueva base de coordenadas. NewP3
Tipo de dato: robtarget
La tercera posición, que definirá el plano xy de la nueva base de coordenadas. La posición del punto 3 estará en el lado y positivo, como se muestra en la figura anterior.
[\Origin]
Tipo de dato: num
Un argumento opcional que definirá cómo se posiciona el origen de la base de coordenadas. El valor Origin = 1 significa que el origen se sitúa en NewP1, es decir, el mismo que si se omite este argumento. El valor Origin = 2 significa que el origen se sitúa en NewP2. Consulte la figura siguiente. z
z
y
Nuevo P3 x Nuevo P2
y x Base de coordenadas del objeto
Nuevo P1
frame1
El valor Origin = 3 significa que el origen se sitúa en la línea que va desde NewP1 a NewP2 y por tanto NewP3 se sitúa en el eje y. Consulte la figura siguiente.
58
Tipos de datos y rutinas de sistema de RAPID
DefFrame Función
z
y Nuevo P3
z
x y
Nuevo P2
x Base de coordenadas del objeto
Nuevo P1
frame1
Cualquier otro valor, o la omisión de Origin, situará el origen en Nuevo P1.
Limitaciones Las tres posiciones de p1 a p3, que definen la base de coordenadas deben formar un triángulo bien definido. El tipo de triángulo mejor definido es aquél en el que todos los lados tienen la misma longitud. p2 p3
p1
θ
Se considera que este ángulo no está bien definido si el ángulo θ es demasiado pequeño. El ángulo θ es demasiado pequeño si se cumple la expresión siguiente: cos Θ
<1
– 10
–4
El triángulo p1, p2, p3 no debe ser demasiado pequeño, 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.
Gestión de errores Si no es posible calcular la base de coordenadas a causa de las limitaciones mencionadas, la variable de sistema ERRNO cambia a ERR_FRAME. A continuación, este error puede ser gestionado en el gestor de errores.
Tipos de datos y rutinas de sistema de RAPID
59
DefFrame Función
Sintaxis DefFrame’(’ [NewP1 ’:=’] ’,’ [NewP2 ’:=’] ’,’ [NewP3 ’:=’] [’\’Origin ’:=’ ]’)’ Una función con un valor de retorno del tipo de dato pose.
Información relacionada Descrito en:
60
Instrucciones y funciones matemáticas
Resumen sobre RAPID - Matemáticas
Activación de una base de coordenadas de desplazamiento
Instrucciones - PDispSet
Tipos de datos y rutinas de sistema de RAPID
Dim Función
Dim - Obtiene las dimensiones de una matriz Dim (dimensiones) se utiliza para obtener el número de elementos de una matriz.
Ejemplo PROC arrmul(VAR num array{*}, num factor) FOR index FROM 1 TO Dim(array, 1) DO array{index} := array{index} * factor; ENDFOR ENDPROC Se multiplican por un factor todos los elementos de una matriz de elementos de tipo num. Este procedimiento acepta como entrada cualquier matriz de una sola dimensión y compuesta de elementos de tipo num.
Valor de retorno
Tipo de dato: num
El número de elementos de la matriz en la dimensión especificada.
Argumentos Dim
(ArrPar DimNo)
ArrPar
(parámetro de matriz)
Tipo de dato: cualquier tipo
El nombre de la matriz. DimNo
(número de dimensión)
Tipo de dato: num
La dimensión deseada de la matriz: 1 = Primera dimensión 2 = Segunda dimensión 3 = Tercera dimensión
Ejemplo PROC add_matrix(VAR num array1{*,*,*}, num array2{*,*,*}) IF Dim(array1,1) <> Dim(array2,1) OR Dim(array1,2) <> Dim(array2,2) OR Dim(array1,3) <> Dim(array2,3) THEN TPWrite "Las dos matrices son de distinto tamaño"; Stop; Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
61
Dim Función ELSE FOR i1 FROM 1 TO Dim(array1, 1) DO FOR i2 FROM 1 TO Dim(array1, 2) DO FOR i3 FROM 1 TO Dim(array1, 3) DO array1{i1,i2,i3} := array1{i1,i2,i3} + array2{i1,i2,i3}; ENDFOR ENDFOR ENDFOR ENDIF RETURN; ENDPROC Se suman dos matrices. Si las matrices son de distinto tamaño, el programa se detiene y aparece un mensaje de error. Este procedimiento acepta como entrada dos matrices tridimensionales y compuestas de elementos de tipo num.
Sintaxis Dim ’(’ [ArrPar’:=’] ’,’ [DimNo’:=’] ’)’ Los parámetros REF exigen que el argumento correspondiente sea una constante, una variable o una variable persistente entera. El argumento también puede ser un parámetro IN, un parámetro VAR o un parámetro PERS entero. Una función con un valor de retorno del tipo de dato num.
Información relacionada Descrito en:
62
Parámetros de matriz
Características básicas - Rutinas
Declaración de matriz
Características básicas - Datos
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
Distance Función
Distance - Distancia entre dos puntos Distance se utiliza para calcular la distancia entre dos puntos del espacio.
Ejemplo y p2 x z
p1
VAR num dist; CONST pos p1 := [4,0,4]; CONST pos p2 := [-4,4,4]; ... dist := Distance(p1, p2); Se calcula la distancia en el espacio existente entre los puntos p1 y p2. El resultado se asigna a la variable dist.
Valor de retorno
Tipo de dato: num
La distancia (siempre positiva) entre los puntos.
Argumentos Distance (Point1 Point2) Point1
Tipo de dato: pos
El primer punto descrito con el tipo de dato pos. Point2
Tipo de dato: pos
El segundo punto descrito con el tipo de dato pos.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
63
Distance Función
Ejecución de programas Cálculo de la distancia existente entre dos puntos:
y x2, y2, z2 x z
x1,y1,z1
2 2 2 Distancia = ( x 1 – x 2 ) + ( y 1 – y 2 ) + ( z 1 – z 2 )
Sintaxis Distance’(’ [Point1 ’:=’] ’,’ [Point2 ’:=’] ’)’ Una función con un valor de retorno del tipo de dato num.
Información relacionada Descrito en:
64
Instrucciones y funciones matemáticas
Resumen sobre RAPID - Matemáticas
Definición de una posición con pos
Tipos de datos - pos
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
DotProd Función
DotProd - Producto escalar de dos vectores pos DotProd (producto escalar) se utiliza para calcular el producto escalar de dos vectores pos. La aplicación típica de esta función es calcular la proyección de un vector sobre el otro o calcular el ángulo existente entre dos vectores.
Ejemplo B
θAB
B cos θAB
A A
El producto escalar de los vectores A y B es un escalar que equivale al producto de las magnitudes de A y B y al coseno del ángulo que forman. A ⋅ B = A B cos θAB El producto escalar: • Es menor o igual que el producto de las magnitudes. • Puede ser un valor positivo o negativo, en función de si el ángulo formado por los vectores es superior o inferior a 90 grados. • Es igual al producto de la magnitud de un vector y la protección del segundo vector sobre el primero. • Es cero si los vectores son perpendiculares entre sí. Los vectores se describen con el tipo de dato pos y el producto escalar se describe con el tipo de dato num: VAR num dotprod; VAR pos vector1; VAR pos vector2; . . vector1 := [1,1,1]; vector2 := [1,2,3]; dotprod := DotProd(vector1, vector2);
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
65
DotProd Función
Valor de retorno
Tipo de dato: num
El valor del producto escalar de los dos vectores.
Argumentos DotProd
(Vector1 Vector2)
Vector1
Tipo de dato: pos
El primer vector descrito con el tipo de dato pos. Vector2
Tipo de dato: pos
El segundo vector descrito con el tipo de dato pos.
Sintaxis DotProd’(’ [Vector1 ’:=’] ’,’ [Vector2 ’:=’] ’)’ Una función con un valor de retorno del tipo de dato num.
Información relacionada Descrito en: Instrucciones y funciones matemáticas
66
Resumen sobre RAPID - Matemáticas
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
DOutput Función
DOutput - Lee el valor de una señal digital de salida DOutput se utiliza para leer el valor actual de una señal digital de salida.
Ejemplo IF DOutput(do2) = 1 THEN . . . Si el valor actual de la señal do2 es igual a 1, . . .
Valor de retorno
Tipo de dato: dionum
El valor actual de la señal (0 ó 1).
Argumentos DOutput
(Signal)
Signal
Tipo de dato: signaldo
El nombre de la señal a leer.
Ejecución de programas El valor leído depende de la configuración de la señal. Si la señal está invertida en los parámetros de sistema, el valor devuelto por esta función es lo opuesto al valor real del canal físico.
Ejemplo IF DOutput(auto_on) <> active THEN . . . Si el valor actual de la señal de sistema auto_on no está activa, ... Es decir, si el robot se encuentra en el modo de funcionamiento manual, ... Recuerde que la señal debe estar definida previamente como salida de sistema en los parámetros de sistema.
Sintaxis DOutput ’(’ [ Signal ’:=’ ] < variable (VAR) de signaldo > ’)’ Una función con un valor de retorno del tipo de dato dionum.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
67
DOutput Función
Información relacionada Descrito en:
68
Instrucciones de entrada y salida
Resumen sobre RAPID Señales de entrada y salida
Funcionalidad general de las entradas y salidas
Principios de movimiento y E/S Principios de E/S
Configuración de E/S
Guía del usuario - Parámetros del sistema
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
EulerZYX Función
EulerZYX - Obtiene ángulos Euler a partir de una orientación EulerZYX (rotaciones ZYX Euler) se utiliza para obtener un componente de ángulo Euler a partir de una variable de tipo orient.
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);
Valor de retorno
Tipo de dato: num
El ángulo Euler correspondiente, expresado en grados, en el rango [-180, 180].
Argumentos EulerZYX ([\X] | [\Y] | [\Z] Rotation) 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 ejecución. [\X]
Tipo de dato: switch Obtiene la rotación alrededor del eje X.
[\Y]
Tipo de dato: switch Obtiene la rotación alrededor del eje Y.
[\Z]
Tipo de dato: switch Obtiene la rotación alrededor del eje Z.
Rotation
Tipo de dato: orient
La rotación representada en forma de cuaternio.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
69
EulerZYX Función
Sintaxis EulerZYX’(’ ['\'X ’,’] | ['\'Y ’,’] | ['\'Z ’,’] [Rotation ’:=’] ’)’ Una función con un valor de retorno del tipo de dato num.
Información relacionada Descrito en: Instrucciones y funciones matemáticas
70
Resumen sobre RAPID - Matemáticas
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
Exp Función
Exp - Calcula el valor exponencial Exp (exponencial) se utiliza para calcular el valor exponencial, ex.
Ejemplo VAR num x; VAR num value; . . value:= Exp( x);
Valor de retorno
Tipo de dato: num
El valor exponencial, ex .
Argumentos Exp
(Exponent)
Exponent
Tipo de dato: num
El valor del argumento de exponente.
Sintaxis Exp’(’ [Exponent ’:=’] ’)’ Una función con un valor de retorno del tipo de dato num.
Información relacionada Descrito en: Instrucciones y funciones matemáticas
Resumen sobre RAPID - Matemáticas
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
71
Exp Función
72
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
FileTime Función
FileTime - Obtiene la información de hora de un archivo FileTime se utiliza para obtener la última hora de modificación, acceso o cambio de estado de un archivo. El tiempo se indica en segundos a partir de las 00:00:00 horas, hora de Greenwich, del 1 de enero de 1970. La hora se devuelve como un valor de tipo num.
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 Este programa recarga un módulo si hay un módulo más reciente en el origen. Utiliza ModTime para obtener el último tiempo de carga del módulo especificado y para compararlo con los valores de FileTime\ModifyTime del origen. A continuación, si el origen es más reciente, el programa descarga y carga de nuevo el módulo.
Valor de retorno
Tipo de dato: num
El tiempo, medido en segundos, desde las 00:00:00 horas, horario de Greenwich, del 1 de enero de 1970.
Argumentos FileTime ( Path [\ModifyTime] | [\AccessTime] | [\StatCTime] ) Path
Tipo de dato: string El archivo especificado con una ruta completa o relativa.
ModifyTime
Tipo de dato: switch
Última hora de modificación.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
73
FileTime Función AccessTime
Tipo de dato: switch
Hora del último acceso (lectura, ejecución o modificación). StatCTime
Tipo de dato: switch
Hora del último cambio de estado (cualificación de acceso) del archivo.
Ejecución de programas Esta función devuelve un valor numérico que especifica el tiempo desde la última operación de: - Modificación - Acceso - Cambio de estado del archivo especificado.
Ejemplo A continuación aparece un ejemplo completo en el que se implementa un servicio de alerta para un máximo de 10 archivos. LOCAL RECORD falert string filename; num ftime; ENDRECORD LOCAL VAR falert myfiles[10]; LOCAL VAR num currentpos:=0; LOCAL VAR intnum timeint; LOCAL TRAP mytrap VAR num pos:=1; WHILE pos <= currentpos DO IF FileTime(myfiles{pos}.filename \ModifyTime) > myfiles{pos}.ftime THEN TPWrite "El archivo "+myfiles{pos}.filename+" ha cambiado."; ENDIF pos := pos+1; ENDWHILE ENDTRAP PROC alertInit(num freq) currentpos:=0; CONNECT timeint WITH mytrap; ITimer freq,timeint;
74
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
FileTime Función ENDPROC PROC alertFree() IDelete timeint; ENDPROC PROC alertNew(string filename) currentpos := currentpos+1; IF currentpos <= 10 THEN myfiles{currentpos}.filename := filename; myfiles{currentpos}.ftime := FileTime (filename \ModifyTime); ENDIF ENDPROC
Gestión de errores Si el archivo no existe, la variable de sistema ERRNO cambia a ERR_FILEACC. A continuación, este error puede ser gestionado en el gestor de errores.
Sintaxis FileTime ’(’ [ Path ’:=’ ] < expresión (IN) de string> [ '\'ModifyTime] | [ '\'AccessTime] | [ '\'StatCTime] ’)’ Una función con un valor de retorno del tipo de dato num.
Información relacionada Descrito en: Última vez que se ha cargado un módulo
Funciones - ModTime
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
75
FileTime Función
76
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
GetNextMechUnit Función
GetNextMechUnit - Obtener los nombres de las unidades mecánicas GetNextMechUnit se utiliza para obtener los nombres de las unidades mecánicas del sistema de robot.
Ejemplos VAR num listno := 0; VAR string name := ""; TPWrite "Lista de unidades mecánicas:"; WHILE GetNextMechUnit(listno, name) DO TPWrite name; ! listno := listno + 1Es realizado por GetNextMechUnit ENDWHILE Se muestran en la unidad de programación los nombres de todas las unidades mecánicas disponibles en el sistema.
Valor de retorno
Tipo de dato: bool
TRUE si se encuentra alguna unidad mecánica. De lo contrario, FALSE.
Argumentos GetNextMechUnit
( ListNumber UnitName )
ListNumber
Tipo de dato: num
Este parámetro especifica qué elementos de la lista de unidades mecánicas se desea obtener. En el momento del retorno, la variable aumenta siempre su valor en uno para facilitar el acceso a la siguiente unidad de la lista. La primera unidad mecánica de la lista tiene el número de índice 0. UnitName
Tipo de dato: string
El nombre de la unidad mecánica.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
77
GetNextMechUnit Función
Ejemplo VAR num listno := 4; VAR string name := ""; VAR bool found := FALSE; found := GetNextMechUnit (listno, name); Si found es TRUE, el nombre de la unidad mecánica 4 estará en la variable name, de lo contrario name sólo contiene una cadena de caracteres vacía.
Sintaxis GetNextMechUnit ’(’ [ ListNumber’:=’ ] < variable (VAR) de num> ’,’ [ UnitName’:=’ ] < variable (VAR) de string> ’)’ Una función con un valor de retorno del tipo de dato bool.
Información relacionada Descrito en: Unidad mecánica
Tipos de datos - mecunit
Activación y desactivación de unidades mecánicas
Instrucciones - ActUnit, DeactUnit
Configuración de unidades mecánicas
Guía del usuario Parámetros del sistema
Características de los tipos de datos sin valor Características básicas - Tipos de datos
78
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
GetNextSym Función
GetNextSym - Obtiene el siguiente símbolo coincidente GetNextSym (obtener el símbolo siguiente) se utiliza junto con SetDataSearch para obtener objetos de datos del sistema.
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 sesión cambia a TRUE todos los objetos de datos locales de tipo bool cuyo nombre comience con my en el módulo mymod.
Valor de retorno
Tipo de dato: bool
TRUE si se ha obtenido un nuevo objeto. El nombre del objeto y el bloque que contiene se devuelven a través de los argumentos. FALSE si no se han encontrado más objetos coincidentes.
Argumentos GetNextSym Object Block [\Recursive] Object
Tipo de dato: string
Una variable (VAR o PERS) para almacenar el nombre del objeto de datos que se obtendrá. Block
Tipo de dato: datapos
El bloque que contiene el objeto. [\Recursive]
Tipo de dato: switch
Este modificador obliga a que la búsqueda a entrar en el bloque subyacente. Por ejemplo, si la sesión ha comenzado en el nivel de tarea, también buscará en los módulos y las rutinas que se encuentran por debajo de la tarea.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
79
GetNextSym Función
Sintaxis GetNextSym [ Object ’:=’ ] < variable o variable persistente (INOUT) de string > ’,’ [ Block ’:=’] [’\’Recursive ] ’;’ Una función con un valor de retorno del tipo de dato bool.
Información relacionada Descrito en:
80
Definición de un conjunto de símbolos en una sesión de búsqueda
Instrucciones - SetDataSearch
Obtención del valor de un objeto de datos
Instrucciones - GetDataVal
Asignación del valor de un objeto de datos
Instrucciones - SetDataVal
Asignación del valor de varios objetos de datos
Instrucciones - SetAllDataVal
El tipo de datos relacionado datapos
Tipos de datos - datapos
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
GetTaskName Función
GetTaskName - Obtiene el nombre de la tarea actual GetTaskName se utiliza para obtener la identidad de la tarea de programa actual, con su nombre y su número.
Ejemplo VAR string mytaskname; VAR num mytaskno; mytaskname:=GetTaskName(\TaskNo:=mytaskno); El nombre de la tarea actual se almacena en la variable mytaskname. La identidad numérica de la tarea se almacena en mytaskno.
Valor de retorno
Tipo de dato: string
El nombre de la tarea en la que se ejecuta la función.
Argumentos GetTaskName ( [\TaskNo] ) [\TaskNo]
Tipo de dato: num
La identidad de la tarea, representada como un valor numérico. Los números devueltos estarán en el rango de 1 a 10, en el cual 1 es la identidad de la tarea principal.
Sintaxis GetTaskName’(’ [ \TaskNo ’:=’ ] < variable (VAR) de num > ’)’ Una función con un valor de retorno del tipo de dato string.
Información relacionada Descrito en: Multitarea
Resumen sobre RAPID Multitarea, Características básicas.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
81
GetTaskName Función
82
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
GetTime Función
GetTime - Lee la hora actual como un valor numérico GetTime se utiliza para leer un componente concreto del sistema actual como un valor numérico. Puede usar GetTime para: - Hacer que el programa realice una acción a una hora determinada - Realizar determinadas actividades en un día laborable - No realizar determinadas actividades durante el fin de semana - Responder de una forma distinta ante los errores en función de la hora del día
Ejemplo hour := GetTime(\Hour); La hora actual se almacena en la variable hour.
Valor de retorno
Tipo de dato: num
Uno de los cuatro componentes de hora especificados a continuación.
Argumentos GetTime ( [\WDay] | [\Hour] | [\Min] | [\Sec] ) [\WDay]
Tipo de dato: switch
Devuelve el día 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 ejecución del programa se detiene y se genera un mensaje de error.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
83
GetTime Función
Ejemplo weekday := GetTime(\WDay); hour := GetTime(\Hour); IF weekday < 6 AND hour >6 AND hour < 16 THEN production; ELSE maintenance; ENDIF Si el día actual es un día laborable y la hora está entre las 7 y las 15:49 horas, el robot realiza tareas de producción. En cualquier otro momento, el robot se encuentra en el modo de mantenimiento.
Sintaxis GetTime ’(’ [’\’ WDay ] | [ ’\’ Hour ] | [ ’\’ Min ] | [ ’\’ Sec ] ’)’ Una función con un valor de retorno del tipo de dato num.
Información relacionada Descrito en:
84
Instrucciones de hora y fecha
Resumen sobre RAPID Sistema y tiempo
Cambio de hora del reloj del sistema
Guía del usuario Parámetros del sistema
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
GOutput Función
GOutput - Lee el valor de un grupo de señales digitales de salida GOutput se utiliza para leer el valor actual de un grupo de señales digitales de salida.
Ejemplo IF GOutput(go2) = 5 THEN ... Si el valor actual de la señal go2 es igual a 5, ...
Valor de retorno
Tipo de dato: num
El valor actual de la señal (un entero positivo). Se leen los valores de las distintas señales del grupo, que se interpretan como números binarios sin signo. Estos números binarios se convierten a continuación a enteros. El valor devuelto se encuentra dentro de un rango que depende del número de señales del grupo. Nº de señales
Valor devuelto
1
0-1
9
0 - 511
2
0-3
10
0- 1.023
3
0-7
11
0 - 2.047
4
0 - 15
12
0 - 4.095
5
0 - 31
13
0 - 8.191
6
0 - 63
14
0 - 16.383
7
0 - 127
15
0 - 32.767
8
0 - 255
16
0 - 65.535
Nº de señales
Valor devuelto
Argumentos GOutput
(Signal)
Signal
Tipo de dato: signalgo
El nombre del grupo de señales a leer.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
85
GOutput Función
Sintaxis GOutput ’(’ [ Signal ’:=’ ] < variable (VAR) de signalgo > ’)’ Una función con un valor de retorno del tipo de dato num.
Información relacionada Descrito en: Instrucciones de entrada y salida
Resumen sobre RAPID Señales de entrada y salida
Funcionalidad general de las entradas y salidasPrincipios de movimiento y E/S Principios de E/S Configuración de E/S
86
Guía del usuario Parámetros del sistema
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
IsMechUnitActive Función
IsMechUnitActive - Indica si una unidad mecánica está activa IsMechUnitActive (está activa la unidad mecánica) se utiliza para comprobar si una unidad mecánica está activada.
Ejemplo IF IsMechUnitActive(SpotWeldGun) CloseGun SpotWeldGun; Si la unidad mecánica SpotWeldGun está activada, se llama a la rutina CloseGun, que se utiliza para cerrar la pistola.
Valor de retorno
Tipo de dato: bool
La función devuelve lo siguiente: - TRUE si la unidad mecánica está activada - FALSE si la unidad mecánica está desactivada
Argumentos IsMechUnitActive ( MechUnit ) MechUnit
(unidad mecánica)
Tipo de dato: mecunit
El nombre de la unidad mecánica.
Sintaxis IsMechUnitActive ’(’ [MechUnit ’:=’ ] < variable (VAR) de mecunit> ’)’ Una función con un valor de retorno del tipo de dato bool.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
87
IsMechUnitActive Función
Información relacionada Descrito en:
88
Activación de unidades mecánicas
Instrucciones - ActUnit
Desactivación de unidades mecánicas
Instrucciones - DeactUnit
Unidades mecánicas
Tipos de datos - mecunit
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
IsPers Función
IsPers - Determina si es una variable persistente IsPers se utiliza para comprobar si un objeto de datos es una variable persistente o no.
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 El procedimiento procedure1 toma caminos diferentes en función de si el parámetro recibido parameter1 es una variable o una variable persistente.
Valor de retorno
Tipo de dato: bool
TRUE si el parámetro INOUT comprobado es una variable persistente. FALSE si el parámetro INOUT comprobado no es una variable persistente.
Argumentos IsPers DatObj
(DatObj) (objeto de datos)
Tipo de dato: cualquier tipo
El nombre formal del parámetro INOUT.
Sintaxis IsPers’(’ [ DatObj ’:=’ ] < variable o variable persistente (INOUT) de cualquier tipo > ’)’ Una función con un valor de retorno del tipo de dato bool.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
89
IsPers Función
Información relacionada Descrito en:
90
Comprobación de si un dato es una variable
Función - IsVar
Tipos de parámetros (modos de acceso)
Características de RAPID - Rutinas
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
IsSysId Función
IsSysID - Comprobar la identidad del sistema IsSysId (identidad de sistema) puede usarse para comprobar la identidad del sistema.
Ejemplo IF NOT IsSysId("6400-1234") THEN ErrWrite "Fallo de identidad del sistema","Identidad del sistema errónea para este programa"; EXIT; ENDIF El programa se ha diseñado para un sistema de robot en concreto y no puede usarse con ningún otro.
Valor de retorno
Tipo de dato: bool
TRUE = La identidad del sistema es la misma que la especificada en la comprobación. FALSE = La identidad del sistema es distinta de la especificada en la comprobación.
Argumentos IsSysId
(SystemId)
SystemId
Tipo de dato: string
La identidad del sistema.
Sintaxis IsSysId ’(’ [ SystemId’:=’ ] < expresión (IN) de string> ’)’ Una función con un valor de retorno del tipo de dato bool.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
91
IsSysId Función
92
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
IsVar Función
IsVar - Determina si un dato es una variable IsVar se utiliza para comprobar si un objeto de datos es una variable.
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 El procedimiento procedure1 toma caminos diferentes en función de si el parámetro recibido parameter1 es una variable o una variable persistente.
Valor de retorno
Tipo de dato: bool
TRUE si el parámetro INOUT comprobado es una variable. FALSE si el parámetro INOUT comprobado no es una variable.
Argumentos IsVar (DatObj) DatObj
(objeto de datos)
Tipo de dato: cualquier tipo
El nombre formal del parámetro INOUT.
Sintaxis IsVar’(’ [ DatObj ’:=’ ] < variable o variable persistente (INOUT) de cualquier tipo > ’)’ Una función con un valor de retorno del tipo de dato bool.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
93
IsVar Función
Información relacionada Descrito en:
94
Comprobación de si un dato es una variable persistente
Función - IsPers
Tipos de parámetros (modos de acceso)
Características de RAPID - Rutinas
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
MaxRobSpeed Función
MaxRobSpeed - Velocidad máxima del robot MaxRobSpeed (velocidad máxima del robot) devuelve la velocidad máxima del TCP del tipo de robot utilizado.
Ejemplo TPWrite “Velocidad máxima del TCP en mm/seg de este robot = “ \Num:=MaxRobSpeed(); Se escribe el mensaje “Velocidad máxima del TCP en mm/seg de este robot = 5000” en la unidad de programación.
Valor de retorno
Tipo de dato: num
Devuelve la velocidad máxima del TCP en mm/seg para el tipo de robot utilizado y los valores normales prácticos para el TCP. 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.
Sintaxis MaxRobSpeed ’(’ ’)’ Una función con un valor de retorno del tipo de dato num.
Información relacionada Descrito en: Definición de velocidad
Tipos de datos - speeddata
Definición de la velocidad máxima
Instrucciones - VelSet
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
95
MaxRobSpeed Función
96
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
MirPos Función
MirPos - Obtención de la posición espejo de una posición MirPos (obtener la posición espejo de una posición) se utiliza para obtener los valores espejo de las partes de traslación y rotación de una posición.
Ejemplo CONST robtarget p1; VAR robtarget p2; PERS wobjdata mirror; . . p2 := MirPos(p1, mirror); p1 es un valor de tipo robtarget que contiene una posición del robot y una orientación de la herramienta. La información espejo se obtiene en el plano xy de la base de coordenadas definido por mirror, respecto del sistema de coordenadas mundo. El resultado es un nuevo dato de tipo robtarget, que se almacena en p2.
Valor de retorno
Tipo de dato: robtarget
La nueva posición, que es la posición espejo de la posición de entrada.
Argumentos MirPos
(Point
MirPlane
[\WObj] [\MirY])
Point
Tipo de dato: robtarget La posición de entrada del robot. La parte de orientación de esta posición define la orientación actual del sistema de coordenadas de la herramienta.
MirPlane
(plano espejo)
Tipo de dato: wobjdata
Los datos del objeto de trabajo que definen el plano espejo. El plano espejo es el plano xy de la base de coordenadas del objeto definida en MirPlane. La ubicación de la base de coordenadas del objeto se define respecto de la base de coordenadas del usuario, también definida en MirPlane, que a su vez se define respecto de la base de coordenadas mundo.
[\WObj]
(objeto de trabajo)
Tipo de dato: wobjdata
Se definen los datos del objeto de trabajo que definen la base de coordenadas del objeto y la base de coordenadas del usuario respecto de la posición de entrada, Point. Si no se utiliza el argumento, la posición se define respecto del sistema de coordenadas mundo. Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
97
MirPos Función Nota: Si la posición se crea con un objeto de trabajo activado, es necesario hacer referencia al objeto en el argumento.
[\MirY]
(posición espejo Y)
Tipo de dato: switch
Si se omite este modificador, que es la regla predeterminada, se obtiene una imagen espejo de la base de coordenadas de la herramienta en cuanto al eje x y al eje z. Si se utiliza este modificador, se obtiene una imagen espejo de la base de coordenadas de la herramienta en cuanto al eje y y al eje z.
Limitaciones No se realiza ningún recálculo de la parte de configuración del robot que se incluye en los datos de entrada robtarget.
Sintaxis MirPos’(’ [ Point ’:=’ ] < expresión (IN) de robtarget>’,’ [MirPlane ’:=’] ’,’ [’\’WObj ’:=’ ] [’\’MirY ]’)’ Una función con un valor de retorno del tipo de dato robtarget.
Información relacionada Descrito en: Instrucciones y funciones matemáticas
98
Resumen sobre RAPID - Matemáticas
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
ModTime Función
ModTime - Obtener el tiempo de carga de un módulo cargado ModTime (hora de módulo) se utiliza para obtener la hora de carga de un módulo determinado. El módulo se especifica con su nombre y debe encontrarse en la memoria de tareas. La hora se indica en segundos a partir de las 00:00:00 horas, hora de Greenwich, del 1 de enero de 1970. La hora se devuelve como un valor de tipo num.
Ejemplo MODULE mymod VAR num mytime; PROC printMyTime() mytime := ModTime("mymod"); TPWrite "Mi hora es "+NumToStr(mytime,0); ENDPROC
Valor de retorno
Tipo de dato: num
El tiempo, medido en segundos, desde las 00:00:00 horas, horario de Greenwich, del 1 de enero de 1970.
Argumentos ModTime ( Object ) Object
Tipo de dato: string
El nombre del módulo.
Ejecución de programas Esta función devuelve un valor numérico que especifica la hora en la que se cargó el módulo.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
99
ModTime Función
Ejemplo A continuación aparece un ejemplo completo en el que se implementa un servicio de “actualización si es más 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 Este programa recarga un módulo si hay un módulo más reciente en el origen. Utiliza ModTime para obtener el último tiempo de carga del módulo especificado y para compararlo con los valores de FileTime\ModifyTime del origen. A continuación, si el origen es más reciente, el programa descarga y carga de nuevo el módulo.
Sintaxis ModTime ’(’ [ Object ’:=’ ] < expresión (IN) de string>’)’ Una función con un valor de retorno del tipo de dato num.
Información relacionada Descrito en: Obtener información de tiempo sobre un archivo
100
Funciones - FileTime
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
NOrient Función
NOrient - Normaliza la orientación NOrient (normalizar orientación) se utiliza para normalizar una orientación no normalizada (cuaternio).
Descripción La orientación debe estar normalizada, es decir, la suma de los cuadrados debe ser igual a 1: q 12 + q 22 + q 32 + q 42 = 1
Si la orientación está ligeramente desnormalizada, es posible normalizarla. El error de normalización es el valor absoluto de la suma de los cuadrados de los componentes de orientación. Se considera que la orientación está ligeramente desnormalizada si el error de normalización es superior a 0,00001 e inferior a 0,1. Si el error de normalización es superior a 0,1, no puede utilizarse la orientación. 2
2
2
2
ABS ( q 1 + q 2 + q 3 + q 4 – 1 ) = normerr
normerr > 0,1 normerr > 0,00001 AND err <= 0,1 normerr <= 0,00001
No utilizable Ligeramente desnormalizada Normalizada
Ejemplo Tenemos una posición ligeramente desnormalizada (0,707170, 0, 0, 0,707170). 2
2
2
2
ABS ( 0,707170 + 0 + 0 + 0,707170 – 1 ) = 0,0000894 0,0000894 > 0,00001 ⇒ unnormalized
VAR orient unnormorient := [0.707170, 0, 0, 0.707170]; VAR orient normorient; . . normorient := NOrient(unnormorient); La normalización de la orientación (0,707170, 0, 0, 0,707170) se convierte en (0,707107, 0, 0, 0,707107).
Valor de retorno
Tipo de dato: orient
La orientación normalizada.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
101
NOrient Función
Argumentos NOrient
(Rotation)
Orient
Tipo de dato: orient
La orientación que debe ser normalizada.
Sintaxis NOrient’(’ [Rotation ’:=’] ’)’ Una función con un valor de retorno del tipo de dato orient.
Información relacionada Descrito en: Instrucciones y funciones matemáticas
102
Resumen sobre RAPID - Matemáticas
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
NumToStr Función
NumToStr - Convierte un valor numérico en una cadena de caracteres NumToStr (número a cadena de caracteres) se utiliza para convertir un valor numérico en una cadena.
Ejemplo VAR string str; str := NumToStr(0.38521,3); Se asigna a la variable str el valor "0.385". reg1 := 0.38521 str := NumToStr(reg1, 2\Exp); Se asigna a la variable str el valor "3.85E-01".
Valor de retorno
Tipo de dato: string
El valor numérico, convertido en una cadena con el número especificado de decimales, en notación científica si así se solicita. Si es necesario, el valor numérico se redondea. Si no se incluye ningún decimal, se suprime el punto decimal.
Argumentos NumToStr Val
(Val Dec [\Exp]) (valor)
Tipo de dato: num
El valor numérico a convertir. Dec
(decimales)
Tipo de dato: num
Número de decimales. El número de decimales no deben ser negativo ni mayor que la precisión disponible para los valores numéricos. [\Exp]
(exponente)
Tipo de dato: switch
Se solicita que se use la notación científica.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
103
NumToStr Función
Sintaxis NumToStr’(’ [ Val ’:=’ ] ’,’ [ Dec ’:=’ ] [ \Exp ] ’)’ Una función con un valor de retorno del tipo de dato string.
Información relacionada Descrito en:
104
Funciones de cadenas de caracteres
Resumen sobre RAPID Funciones de cadenas de caracteres
Definición de cadenas
Tipos de datos - string
Valores de cadena de caracteres
Características básicas Elementos básicos
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
Offs Función
Offs - Desplaza una posición del robot Offs se utiliza para añadir un offset a una posición del robot.
Ejemplos MoveL Offs(p2, 0, 0, 10), v1000, z50, tool1; Se mueve el robot a un punto que se encuentra a 10 mm de la posición p2 (en la dirección z). p1 := Offs (p1, 5, 10, 15); Se desplaza la posición del robot p1 5 mm en la dirección x, 10 mm en la dirección y y 15 mm en la dirección z.
Valor de retorno
Tipo de dato: robtarget
Los datos de la posición desplazada.
Argumentos Offs
(Point XOffset YOffset ZOffset)
Point
Tipo de dato: robtarget Los datos de posición del desplazamiento.
XOffset
Tipo de dato: num
El desplazamiento en la dirección x. YOffset
Tipo de dato: num
El desplazamiento en la dirección y. ZOffset
Tipo de dato: num
El desplazamiento en la dirección z.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
105
Offs Función
Ejemplo PROC pallet (num row, num column, num distance, PERS tooldata tool, PERS wobjdata wobj) VAR robtarget palletpos:=[[0, 0, 0], [1, 0, 0, 0], [0, 0, 0, 0], [9E9, 9E9, 9E9, 9E9, 9E9, 9E9]]; palettpos := Offs (palettpos, (row-1)*distance, (column-1)*distance, 0); MoveL palettpos, v100, fine, tool\WObj:=wobj; ENDPROC Se crea una rutina para tomar piezas de un palé. Cada palé se define como un objeto de trabajo (consulte la Figura 4). La pieza que debe tomarse (fila y columna) y la distancia existente entre las partes se indican como parámetros de entrada. El aumento del índice de fila y columna se realiza fuera de la rutina. Columnas
Filas
O
O
O
O
O
O
O
O
Eje Y O O
O
O
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
O
O
O
O
O
O
O
O
Figura 4 La posición y la orientación del palé se especifican mediante la definición de un objeto de trabajo.
Sintaxis Offs ’(’ [ Point ’:=’ ] < expresión (IN) de robtarget>’,’ [XOffset ’:=’] ’,’ [YOffset ’:=’] ’,’ [ZOffset ’:=’] ’)’ Una función con un valor de retorno del tipo de dato robtarget.
Información relacionada Descrito en: Datos de posición
106
Tipos de datos - robtarget
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
OpMode Función
OpMode - Lee el modo de funcionamiento OpMode (modo de funcionamiento) se utiliza para leer el modo de funcionamiento actual del sistema.
Ejemplo TEST OpMode() CASE OP_AUTO:
... CASE OP_MAN_PROG: ... CASE OP_MAN_TEST: ... DEFAULT: ... ENDTEST Se ejecutan secciones distintas del programa en función del modo de funcionamiento actual.
Valor de retorno
Tipo de dato: symnum
El modo de funcionamiento actual, con uno de los valores definidos en la tabla siguiente. Valor de retorno
Constante simbólica
Comentario
0
OP_UNDEF
Modo de funcionamiento no definido
1
OP_AUTO
Modo de funcionamiento automático
2
OP_MAN_PROG
Modo de funcionamiento manual a 250 mm/seg como máximo
3
OP_MAN_TEST
Modo de funcionamiento manual a máxima velocidad, 100 %
Sintaxis OpMode’(’ ’)’ Una función con un valor de retorno del tipo de dato symnum.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
107
OpMode Función
Información relacionada Descrito en:
108
Distintos modos de funcionamiento
Guía del usuario - Starting up
Lectura del modo de ejecución
Funciones - RunMode
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
OrientZYX Función
OrientZYX - Genera una orientación a partir de ángulos Euler OrientZYX (orientación a partir de ángulos Euler ZYX) se utiliza para genera una variable de tipo orient a partir de ángulos Euler.
Ejemplo VAR num anglex; VAR num angley; VAR num anglez; VAR pose object; . object.rot := OrientZYX(anglez, angley, anglex)
Valor de retorno
Tipo de dato: orient
La orientación obtenida a partir de ángulos Euler. Las rotaciones se realizan en el orden siguiente: - Rotación alrededor del eje z - Rotación alrededor del nuevo eje y - Rotación alrededor del nuevo eje x
Argumentos OrientZYX
(ZAngle YAngle XAngle)
ZAngle
Tipo de dato: num
La rotación, en grados, alrededor del eje Z. YAngle
Tipo de dato: num
La rotación, en grados, alrededor del eje Y. XAngle
Tipo de dato: num
La rotación, en grados, alrededor del eje X. Las rotaciones se realizan en el orden siguiente: - Rotación alrededor del eje z - Rotación alrededor del nuevo eje y - Rotación alrededor del nuevo eje x
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
109
OrientZYX Función
Sintaxis OrientZYX’(’ [ZAngle ’:=’] ’,’ [YAngle ’:=’] ’,’ [XAngle ’:=’] ’)’ Una función con un valor de retorno del tipo de dato orient.
Información relacionada Descrito en: Instrucciones y funciones matemáticas
110
Resumen sobre RAPID - Matemáticas
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
ORobT Función
ORobT - Elimina un desplazamiento de programa de una posición ORobT (objetivo de objeto de robot) se utiliza para transformar una posición del sistema de coordenadas de desplazamiento de programa al sistema de coordenadas del objeto y/o eliminar un offset de los ejes externos.
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 ningún offset en los ejes externos.
Valor de retorno
Tipo de dato: robtarget
Los datos de posición transformados.
Argumentos ORobT (OrgPoint [\InPDisp] | [\InEOffs]) OrgPoint
(punto original)
Tipo de dato: robtarget
El punto original que debe transformarse. [\InPDisp]
(desplazamiento de programa)
Tipo de dato: switch
Devuelve la posición del TCP en el sistema de coordenadas ProgDisp, es decir, sólo elimina el offset de los ejes externos. [\InEOffs]
(offset externo)
Tipo de dato: switch
Devuelve los ejes externos en el sistema de coordenadas del offset, es decir, sólo elimina el desplazamiento de programa del robot.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
111
ORobT Función
Ejemplos p10 := ORobT(p10 \InEOffs ); La función ORobT eliminará cualquier desplazamiento de programa que esté activo, dejando la posición del TCP respecto del sistema de coordenadas del objeto. Los ejes externos permanecen en el sistema de coordenadas del offset. p10 := ORobT(p10 \InPDisp ); La función ORobT eliminará cualquier offset de los ejes externos. La posición del TCP permanece en el sistema de coordenadas ProgDisp.
Sintaxis ORobT ’(’ [ OrgPoint ’:=’ ] < expresión (IN) de robtarget> [’\’InPDisp] | [’\’InEOffs]’)’ Una función con un valor de retorno del tipo de dato robtarget.
Información relacionada Descrito en:
112
Definición de desplazamientos de programa para el robot
Instrucciones - PDispOn, PDispSet
Definición de offsets para los ejes externos
Instrucciones - EOffsOn, EOffsSet
Sistemas de coordenadas
Principios de movimiento y E/S Sistemas de coordenadas
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
PoseInv Función
PoseInv - Invierte la pose PoseInv (inversión de pose) calcula la transformación inversa de una pose.
Ejemplo z1
Pose1 Frame1
z0 x1
Frame0 y0
y1
Pose2
x0 Pose1 representa las coordenadas de Frame1 respecto de Frame0. La transformación que indica las coordenadas de Frame0 respecto de Frame1 se obtiene mediante la transformación inversa: VAR pose pose1; VAR pose pose2; . . pose2 := PoseInv(pose1);
Valor de retornoTipo de dato: pose El valor de la pose inversa.
Argumentos PoseInv
(Pose)
Pose
Tipo de dato: pose La pose a invertir.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
113
PoseInv Función
Sintaxis PoseInv’(’ [Pose ’:=’] ’)’ Una función con un valor de retorno del tipo de dato pose.
Información relacionada Descrito en: Instrucciones y funciones matemáticas
114
Resumen sobre RAPID - Matemáticas
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
PoseMult Función
Pose - Tipo de dato: PoseMult (multiplicación de pose) se utiliza para calcular el producto de dos transformaciones de base de coordenadas. Una aplicación típica es calcular una nueva base de coordenadas como resultado de un desplazamiento que actúa sobre una base de coordenadas original.
Ejemplo z1 y1
pose1
z0
Frame1
pose2
z2
Frame2
x1
Frame0 y0
pose3
x0
x2
y2
Pose1 representa las coordenadas de Frame1 respecto de Frame0. Pose2 representa las coordenadas de Frame2 respecto de Frame1. La transformación que genera pose3, las coordenadas de Frame2 respecto de Frame0, se obtienen mediante el producto de dos transformaciones: VAR pose pose1; VAR pose pose2; VAR pose pose3; . . pose3 := PoseMult(pose1, pose2);
Valor de retorno
Tipo de dato: pose
El valor del producto de dos poses.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
115
PoseMult Función
Argumentos PoseMult (Pose1 Pose2) Pose1
Tipo de dato: pose
La primera pose. Pose2
Tipo de dato: pose
La segunda pose.
Sintaxis PoseMult’(’ [Pose1 ’:=’] ’,’ [Pose2 ’:=’] ’)’ Una función con un valor de retorno del tipo de dato pose.
Información relacionada Descrito en: Instrucciones y funciones matemáticas
116
Resumen sobre RAPID - Matemáticas
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
PoseVect Función
PoseVect - Multiplicar una pose y un vector PoseVect (vector de pose) se utiliza para calcular el producto de una pose y un vector. Se suele utilizar para calcular un vector como resultado del efecto de un desplazamiento o de un vector original.
Ejemplo
pos2
pos1
z1
z0 pose1 Frame0 y0
y1
Frame1 x1
x0 Pose1 representa las coordenadas de Frame1 respecto de Frame0. pos1 es un vector respecto de Frame1. El vector correspondiente respecto de Frame0 se obtiene mediante el producto: VAR pose pose1; VAR pos pos1; VAR pos pos2; . . pos2:= PoseVect(pose1, pos1);
Valor de retorno
Tipo de dato: pos
El valor del producto de la pose y el valor pos original.
Argumentos PoseVect
(Pose Pos)
Pose
Tipo de dato: pose La transformación a aplicar.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
117
PoseVect Función Pos
Tipo de dato: pos El valor pos a transformar.
Sintaxis PoseVect’(’ [Pose ’:=’] ’,’ [Pos ’:=’] ’)’ Una función con un valor de retorno del tipo de dato pos.
Información relacionada Descrito en: Instrucciones y funciones matemáticas
118
Resumen sobre RAPID - Matemáticas
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
Pow Función
Pow - Calcula el resultado de elevar un valor a una potencia Pow (potencia) se utiliza para calcular el valor exponencial en cualquier base.
Ejemplo VAR num x; VAR num y VAR num reg1; . reg1:= Pow(x, y); Se asigna a reg1 el valor xy.
Valor de retorno
Tipo de dato: num
El valor de la base x elevado a la potencia y (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 ejecución de la función 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 ’:=’] ’,’ [Exponent ’:=’] ’)’ Una función con un valor de retorno del tipo de dato num.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
119
Pow Función
Información relacionada Descrito en: Instrucciones y funciones matemáticas
120
Resumen sobre RAPID - Matemáticas
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
Present Función
Present - Comprueba si se está usando un parámetro opcional Present se utiliza para comprobar si se ha utilizado un argumento opcional al llamar a una rutina. Los parámetros opcionales no pueden usarse si no se especificaron al llamar a la rutina. Esta función puede usarse para comprobar si se ha especificado un parámetro, con la finalidad de evitar la aparición de errores.
Ejemplo PROC feeder (\switch on | \switch off) IF Present (on) Set do1; IF Present (off) Reset do1; ENDPROC La salida do1, que controla un transportador, se activa o desactiva en función del argumento utilizado al llamar a la rutina.
Valor de retorno
Tipo de dato: bool
TRUE = Se ha definido el valor de parámetro o el modificador al llamar a la rutina. FALSE = No se ha definido el valor del parámetro o el modificador.
Argumentos Present OptPar
(OptPar) (parámetro opcional)
Tipo de dato: cualquier tipo
El nombre del parámetro opcional cuya presencia se desea comprobar.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
121
Present Función
Ejemplo PROC glue (\switch on, num glueflow, robtarget topoint, speeddata speed, zonedata zone, PERS tooldata tool, \PERS wobjdata wobj) IF Present (on) PulseDO glue_on; SetAO gluesignal, glueflow; IF Present (wobj) THEN MoveL topoint, speed, zone, tool \WObj=wobj; ELSE MoveL topoint, speed, zone, tool; ENDIF ENDPROC Se crea una rutina de aplicación de adhesivo Si se especifica el argumento \on al llamar a la rutina, se genera un pulso en la señal glue_on. A continuación, el robot activa la señal analógica de salida gluesignal, que controla la pistola de adhesivo y la mueve hasta la posición final. Dado que el parámetro wobj es opcional, se utilizan instrucciones MoveL diferentes en función de si se utiliza o no este argumento.
Sintaxis Present ’(’ [OptPar’:=’] ’)’ En este caso, el parámetro REF requiere el nombre del parámetro opcional. Una función con un valor de retorno del tipo de dato bool.
Información relacionada Descrito en: Parámetros de rutinas
122
Características básicas - Rutinas
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
ReadBin Función
Advanced functions (Funciones avanzadas)
ReadBin - Lee un byte de un archivo o un canal serie ReadBin (leer binario) se utiliza para leer un byte (8 bits) de un archivo o un canal serie. Esta función es compatible con archivos o canales serie de tipo binario y alfanumérico.
Ejemplo VAR num character; VAR iodev inchannel; ... Open "com2:", inchannel\Bin; character := ReadBin(inchannel); Se lee un byte del canal serie binario inchannel.
Valor de retorno
Tipo de dato: num
Un byte (8 bits) se lee de un archivo o un canal serie especificado. Este byte se convierte en el valor numérico positivo correspondiente y se devuelve con el tipo de dato num. Si un archivo está vacío (se ha alcanzado el fin del archivo), se devuelve el número -1.
Argumentos ReadBin IODevice
(IODevice [\Time]) Tipo de dato: iodev
El nombre (la referencia) del archivo o del canal serie que debe leerse. [\Time]
Tipo de dato: num
El tiempo máximo para la operación de lectura (tiempo límite) en segundos. Si no se especifica este argumento, el tiempo máximo es de 60 segundos. Si se agota este tiempo antes de que se complete la operación de lectura, se llama al gestor de errores con el código de error ERR_DEV_MAXTIME. Si no hay ningún gestor de errores, se detiene la ejecución. La función de tiempo límite se utiliza también durante un paro de programa y se observará en el programa de RAPID al poner en marcha el programa.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
123
ReadBin Advanced functions (Funciones avanzadas)
Función
Ejecución de programas La ejecución 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; Open “HOME:/myfile.bin”, file \Read \Bin; bindata := ReadBin(file); WHILE bindata <> EOF_BIN DO TPWrite ByteToStr(bindata\Char); bindata := ReadBin(file); ENDWHILE Se lee el contenido del archivo binario myfile.bin desde el principio hasta el fin y se muestran los datos binarios recibidos (un carácter cada vez) en la unidad de programación, tras convertirlos en caracteres.
Limitaciones Esta función sólo puede usarse con archivos y canales serie que hayan sido abiertos con un acceso de lectura (\Read en el caso de los archivos alfanuméricos, \Bin o \Append \Bin en el caso de los archivos binarios).
Gestión de errores Si se produce un error durante la lectura, la variable de sistema ERRNO cambia a ERR_FILEACC. Si se agota el tiempo límite antes de que se complete la operación de lectura, la variable de sistema ERRNO cambia a ERR_DEV_MAXTIME. A continuación, estos errores pueden ser gestionados en el gestor de errores.
Datos predefinidos La constante EOF_BIN puede usarse para detener la lectura al final del archivo. CONST num EOF_BIN := -1;
124
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
ReadBin Función
Advanced functions (Funciones avanzadas)
Sintaxis ReadBin’(’ [IODevice ’:=’] [’\’Time’:=’ ]’)’ Una función con un valor de retorno del tipo de dato num.
Información relacionada Descrito en: Apertura y otras operaciones con archivos o canales serie
Resumen sobre RAPID Comunicación
Conversión de un byte en una cadena de caracteres
Instrucciones - ByteToStr
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
125
ReadBin Advanced functions (Funciones avanzadas)
126
Función
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
ReadMotor Función
ReadMotor - Lee los ángulos actuales de los motores ReadMotor se utiliza para leer los ángulos actuales de los distintos motores de los ejes del robot y de los ejes externos. La aplicación principal de esta función es la realización de procedimientos de calibración del robot.
Ejemplo VAR num motor_angle2; motor_angle2 := ReadMotor(2); El ángulo actual del motor del segundo eje del robot se almacena en motor_angle2.
Valor de retorno
Tipo de dato: num
El ángulo actual del motor del eje indicado en radianes, ya sea un eje del robot o un eje externo.
Argumentos ReadMotor [\MecUnit ] Axis MecUnit
(unidad mecánica)
Tipo de dato: mecunit
El nombre de la unidad mecánica cuyos valores de eje se desea comprobar. Si se omite este argumento, se obtiene el valor de un eje del robot (recuerde que en esta versión sólo se admite un robot en este argumento). Axis
Tipo de dato: num El número del eje cuyo valor se desea obtener (de 1 a 6).
Ejecución de programas El ángulo de motor devuelto representa la posición actual del motor en radianes y es independiente de cualquier offset de calibración. El valor no depende de ninguna posición fija del robot, sólo de la posición cero interna del resolver, es decir, normalmente la posición cero del resolver más cercana a la posición de calibración (la diferencia existente entre la posición cero del resolver y la posición de calibración es el valor del offset de calibración). Este valor representa el movimiento completo de cada eje, si bien puede ser de varios giros.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
127
ReadMotor Función
Ejemplo VAR num motor_angle3; motor_angle3 := ReadMotor(\MecUnit:=robot, 3); El ángulo de motor actual del tercer eje del robot se almacena en motor_angle3.
Sintaxis ReadMotor’(’ [’\’MecUnit ’:=’ < variable (VAR) de mecunit>’,’] [Axis ’:=’ ] < expresión (IN) de num> ’)’ Una función con un valor de retorno del tipo de dato num.
Información relacionada Descrito en: Lectura del ángulo actual del eje
128
Funciones - CJointT
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
ReadNum Función
Advanced functions (Funciones avanzadas)
ReadNum - Lee un número de un archivo o un canal serie ReadNum (leer número) se utiliza para leer un número de un archivo o un canal serie alfanumérico.
Ejemplo VAR iodev infile; ... Open "HOME:/file.doc", infile\Read; reg1 := ReadNum(infile); Se asigna a Reg1 un número leído del archivo file.doc.
Valor de retorno
Tipo de dato: num
El valor numérico leído de un archivo o un canal serie especificado. Si el archivo está vacío (se ha alcanzado el fin del archivo), se devuelve el número 9,999E36.
Argumentos ReadNum
(IODevice [\Delim] [\Time])
IODevice
Tipo de dato: iodev
El nombre (la referencia) del archivo o del canal serie que debe leerse. [\Delim]
(delimitadores)
Tipo de dato: string
Una cadena que contiene los delimitadores que deben utilizarse para interpretar las líneas del archivo o del canal serie. De forma predeterminada (sin \Delim), el archivo se lee una línea cada vez y el único delimitador que se tiene en cuenta es el carácter de salto de línea (\0A). Cuando se utiliza el argumento \Delim, cualquier carácter del argumento de cadena especificado se utilizará para determinar qué parte de la línea es significativa. Cuando se utiliza el argumento \Delim, el sistema de control añade siempre los caracteres de retorno de carro (\0D) y salto de línea (\0A) a los delimitadores especificados por el usuario. Para especificar caracteres no alfanuméricos, utilice \xx, donde xx es la representación hexadecimal del código ASCII del carácter (por ejemplo: TAB se especifica con \09).
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
129
ReadNum Advanced functions (Funciones avanzadas) [\Time]
Función Tipo de dato: num
El tiempo máximo para la operación de lectura (tiempo límite) en segundos. Si no se especifica este argumento, el tiempo máximo es de 60 segundos. Si se agota este tiempo antes de que se complete la operación de lectura, se llama al gestor de errores con el código de error ERR_DEV_MAXTIME. Si no hay ningún gestor de errores, se detiene la ejecución. La función de tiempo límite se utiliza también durante un paro de programa y se observará en el programa de RAPID al poner en marcha el programa.
Ejecución de programas A partir de la posición actual del archivo, la función lee y desecha cualquier delimitador de encabezado. Un delimitador de encabezado que se usa sin el argumento \Delim es el carácter de salto de línea. Los delimitadores de encabezado con el argumento \Delim son cualquier carácter del argumento \Delim más los caracteres de retorno de carro y salto de línea. Por tanto, se lee todo lo que se encuentre hasta el siguiente carácter delimitador e incluyéndolo (el delimitador se desecha posteriormente), pero no más de 80 caracteres. Si la parte significativa tiene más de 80 caracteres, el resto de los caracteres se leen en la siguiente operación de lectura. A continuación, la cadena leída se convierte en un valor numérico. Por ejemplo, “234.4” se convierte en el valor numérico 234,4.
Ejemplo reg1 := ReadNum(infile\Delim:="\09 "); IF reg1 > EOF_NUM THEN TPWrite "El archivo está vacío"; ... Lee un número en una línea en la que los números están separados por caracteres de tabulador (“\09”) o espacios (“ ”). Antes de usar el número leído del archivo, se realiza una comprobación para asegurarse de que el archivo no esté vacío.
Limitaciones La función sólo puede usarse con archivos alfanuméricos que hayan sido abiertos para lectura.
130
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
ReadNum Función
Advanced functions (Funciones avanzadas)
Gestión de errores Si se produce un error de acceso durante la lectura, la variable de sistema ERRNO cambia a ERR_FILEACC. Si se intenta leer un dato no numérico, la variable de sistema ERRNO cambia a ERR_RCVDATA. Si se agota el tiempo límite antes de que se complete la operación de lectura, la variable de sistema ERRNO cambia a ERR_DEV_MAXTIME. A continuación, estos errores pueden ser gestionados en el gestor de errores.
Datos predefinidos La constante EOF_NUM puede usarse para detener la lectura al final del archivo. CONST num EOF_NUM := 9.998E36;
Sintaxis ReadNum ’(’ [IODevice ’:=’] [‘\’Delim’:=’] [’\’Time’:=’]’)’ Una función con un valor de retorno del tipo de dato num.
Información relacionada Descrito en: Apertura y otras operaciones con archivos o canales serie
Resumen sobre RAPID Comunicación
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
131
ReadNum Advanced functions (Funciones avanzadas)
132
Función
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
ReadStr Función
Advanced functions (Funciones avanzadas)
ReadStr - Lee una cadena de caracteres de un archivo o un canal serie ReadStr (leer cadena) se utiliza para leer una cadena de un archivo o un canal serie alfanumérico.
Ejemplo VAR string text; VAR iodev infile; ... Open "HOME:/file.doc", infile\Read; text := ReadStr(infile); Se asigna a Text una cadena de caracteres leída del archivo file.doc.
Valor de retorno
Tipo de dato: string
La cadena de caracteres leída del archivo o canal serie especificado. Si el archivo está vacío (se ha alcanzado el fin del archivo), se devuelve la cadena de caracteres “EOF”.
Argumentos ReadStr
(IODevice [\Delim] [\RemoveCR] [\DiscardHeaders] [\Time])
IODevice
Tipo de dato: iodev
El nombre (la referencia) del archivo o del canal serie que debe leerse. [\Delim]
(delimitadores)
Tipo de dato: string
Una cadena que contiene los delimitadores que deben utilizarse para interpretar las líneas del archivo o del canal serie. De forma predeterminada, el archivo se lee una línea cada vez y el único delimitador que se tiene en cuenta es el carácter de salto de línea (\0A). Cuando se utiliza el argumento \Delim, cualquier carácter del argumento de cadena especificado, además del carácter predeterminado de salto de línea, se utilizará para determinar qué parte de la línea es significativa. Para especificar caracteres no alfanuméricos, utilice \xx, donde xx es la representación hexadecimal del código ASCII del carácter (por ejemplo: TAB se especifica con \09).
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
133
ReadStr Advanced functions (Funciones avanzadas) [\RemoveCR]
Función Tipo de dato: switch
Un modificador utilizado para eliminar el retorno de carro final al leer archivos de PC. En los archivos de PC, los cambios de línea se especifican mediante un retorno de carro y un salto de línea (CRLF). Al leer una línea en este tipo de archivos, el carácter de retorno de carro se lee de forma predeterminada en la cadena de retorno. Cuando se utiliza este argumento, el carácter de retorno de carro se lee del archivo pero no se incluye en la cadena de caracteres devuelta. [\DiscardHeaders]
Tipo de dato: switch
Este argumento especifica si los delimitadores de encabezado (especificados en \Delim más el salto de línea predeterminado) deben ser omitidos o no antes de transferir los datos a la cadena de caracteres de retorno. De forma predeterminada, si el primer carácter de la posición actual del archivo es un delimitador, se lee pero no se transfiere a la cadena de caracteres de retorno, se detiene la interpretación de la línea y el valor devuelto será una cadena de caracteres vacía. Si se utiliza este argumento, todos los delimitadores incluidos en la línea se leerán del archivo pero se desechan. La cadena de caracteres devuelta contendrá los datos a partir del primer carácter de la línea que no sea un delimitador. [\Time]
Tipo de dato: num
El tiempo máximo para la operación de lectura (tiempo límite) en segundos. Si no se especifica este argumento, el tiempo máximo es de 60 segundos. Si se agota este tiempo antes de que se complete la operación de lectura, se llama al gestor de errores con el código de error ERR_DEV_MAXTIME. Si no hay ningún gestor de errores, se detiene la ejecución. La función de tiempo límite se utiliza también durante un paro de programa y se observará en el programa de RAPID al poner en marcha el programa.
Ejecución de programas A partir de la posición actual del archivo, si se utiliza el argumento \DiscardHeaders, la función lee y desecha cualquier delimitador de encabezado (caracteres de salto de línea y cualquier carácter especificado en el argumento \Delim). En todos los casos, lee todo hasta el siguiente carácter delimitador, pero no más de 80 caracteres. Si la parte significativa tiene más de 80 caracteres, el resto de los caracteres se leen en la siguiente operación de lectura. El delimitador que causa la detención de la interpretación se lee del archivo pero no se transfiere a la cadena devuelta. Si el último carácter de la cadena es un carácter de retorno de carro y se utiliza el argumento \RemoveCR, este carácter se elimina de la cadena.
134
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
ReadStr Función
Advanced functions (Funciones avanzadas)
Ejemplo 1 text := ReadStr(infile); IF text = EOF THEN TPWrite "El archivo está vacío"; ... Antes de usar la cadena de caracteres leída del archivo, se realiza una comprobación para asegurarse de que el archivo no esté vacío.
Ejemplo 2 Por ejemplo, veamos un archivo que contiene: HolaMundo text := ReadStr(infile); El texto será una cadena vacía: el primer carácter del archivo es el delimitador predeterminado . text := ReadStr(infile\DiscardHeaders); El texto contendrá HolaMundo: el primer carácter del archivo, el delimitador predeterminado , se desecha. text := ReadStr(infile\RemoveCR\DiscardHeaders); El texto contendrá HolaMundo: el primer carácter del archivo, el delimitador predeterminado , se desecha. El carácter de retorno de carro final se elimina. text := ReadStr(infile\Delim:=” \09”\RemoveCR\DiscardHeaders); El texto contendrá “Hola”: los primeros caracteres del archivo que coincidan con el delimitador predeterminado o con el conjunto de caracteres definido por \Delim (espacio y tabulador) se desechan. Se transfieren los datos existentes hasta el primer delimitador leído del archivo, aunque éste último no se transfiere a la cadena. Una nueva ejecución de la misma sentencia devuelve “Mundo”.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
135
ReadStr Advanced functions (Funciones avanzadas)
Función
Ejemplo 3 Por ejemplo, veamos un archivo que contiene: Hola text := ReadStr(infile); El texto contendrá el carácter (\0d): los caracteres y se leen del archivo, pero sólo se transfiere a la cadena. Una nueva ejecución de la misma sentencia devuelve “Hola\0d”. text := ReadStr(infile\RemoveCR); El texto será una cadena vacía: los caracteres y se leen del archivo, se transfiere pero se elimina de la cadena. Una nueva ejecución de la misma sentencia devuelve “Hola”. text := ReadStr(infile\Delim:=”\0d”); El texto será una cadena vacía: se lee del archivo pero no se transfiere a la cadena devuelta. Una nueva ejecución de la misma instrucción devuelve de nuevo una cadena vacía: se lee del archivo pero no se transfiere a la cadena devuelta. text := ReadStr(infile\Delim:=”\0d”\DiscardHeaders); El texto contendrá “Hola”: una nueva ejecución de la misma instrucción devuelve “EOF” (final del archivo).
Limitaciones La función sólo puede usarse con archivos o canales serie que se han abierto para lectura en modo alfanumérico.
Gestión de errores Si se produce un error durante la lectura, la variable de sistema ERRNO cambia a ERR_FILEACC. Si se agota el tiempo límite antes de que se complete la operación de lectura, la variable de sistema ERRNO cambia a ERR_DEV_MAXTIME. A continuación, estos errores pueden ser gestionados en el gestor de errores.
136
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
ReadStr Función
Advanced functions (Funciones avanzadas)
Datos predefinidos La constante EOF puede usarse para comprobar si el archivo estaba vacío al intentar leer del archivo o para detener la lectura al final del archivo. CONST string EOF := "EOF";
Sintaxis ReadStr ’(’ [IODevice ’:=’] [‘\’Delim’:=’] [‘\’RemoveCR] [‘\’DiscardHeaders] [’\’Time’:=’ ]’)’ Una función con un valor de retorno del tipo de dato string.
Información relacionada Descrito en: Apertura y otras operaciones con archivos o canales serie
Resumen sobre RAPID Comunicación
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
137
ReadStr Advanced functions (Funciones avanzadas)
138
Función
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
ReadStrBin Función
Advanced functions (Funciones avanzadas)
ReadStrBin - Lee una cadena de un canal serie o un archivo binario ReadStrBin (leer cadena de caracteres de binario) se utiliza para leer una cadena de un canal serie o un archivo binario.
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 leída del canal serie al que se hace referencia con channel2.
Valor de retorno
Tipo de dato: string
La cadena de texto leída del canal serie o el archivo especificado. Si el archivo está vacío (se ha alcanzado el fin del archivo), se devuelve la cadena de caracteres “EOF”.
Argumentos ReadStrBin IODevice
(IODevice NoOfChars [\Time]) Tipo de dato: iodev
El nombre (la referencia) del canal serie o el archivo binario del que se desea leer. NoOfChars
Tipo de dato: num
El número de caracteres a leer del canal serie o del archivo binario. [\Time]
Tipo de dato: num
El tiempo máximo para la operación de lectura (tiempo límite) en segundos. Si no se especifica este argumento, el tiempo máximo es de 60 segundos. Si se agota este tiempo antes de que se complete la operación de lectura, se llama al gestor de errores con el código de error ERR_DEV_MAXTIME. Si no hay ningún gestor de errores, se detiene la ejecución. La función de tiempo límite se utiliza también durante un paro de programa y se observará en el programa de RAPID al poner en marcha el programa.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
139
ReadStrBin Advanced functions (Funciones avanzadas)
Función
Ejecución de programas La función lee el número especificado de caracteres del canal serie o del archivo binario.
Ejemplo text := ReadStrBin(infile,20); IF text = EOF THEN TPWrite "El archivo está vacío"; Antes de usar la cadena de caracteres leída del archivo, se realiza una comprobación para asegurarse de que el archivo no esté vacío.
Limitaciones La función sólo puede usarse con canales serie o archivos que hayan sido abiertos para lectura en modo binario.
Gestión de errores Si se produce un error durante la lectura, la variable de sistema ERRNO cambia a ERR_FILEACC. Si se agota el tiempo límite antes de que se complete la operación de lectura, la variable de sistema ERRNO cambia a ERR_DEV_MAXTIME. A continuación, estos errores pueden ser gestionados en el gestor de errores.
Datos predefinidos La constante EOF puede usarse para comprobar si el archivo estaba vacío al intentar leer del archivo o para detener la lectura al final del archivo. CONST string EOF := "EOF";
Sintaxis ReadStrBin ’(’ [IODevice ’:=’] ’,’ [NoOfChars ’:=’] [’\’Time’:=’ ]’)’ Una función con un valor de retorno del tipo de dato string.
140
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
ReadStrBin Función
Advanced functions (Funciones avanzadas)
Información relacionada Descrito en: Apertura y otras operaciones con canales serie o archivos
Resumen sobre RAPID Comunicación
Escritura de cadenas binarias
Instrucciones - WriteStrBin
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
141
ReadStrBin Advanced functions (Funciones avanzadas)
142
Función
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
RelTool Función
RelTool - Hace un desplazamiento respecto de la herramienta RelTool (herramienta relativa) se utiliza para añadir un desplazamiento y/o una rotación, expresada en el sistema de coordenadas del objeto, a una posición del robot.
Ejemplo MoveL
RelTool (p1, 0, 0, 100), v100, fine, tool1;
Se mueve el robot a una posición que se encuentra a 100 mm de p1 en la dirección de la herramienta. MoveL
RelTool (p1, 0, 0, 0 \Rz:= 25), v100, fine, tool1;
Se gira la herramienta 25o alrededor de su eje z.
Valor de retorno
Tipo de dato: robtarget
La nueva posición, con la adición de un desplazamiento y/o una rotación, si la hay, respecto de la herramienta activa.
Argumentos RelTool (Point Point
Dx
Dy
Dz [\Rx]
[\Ry]
[\Rz]) Tipo de dato: robtarget
La posición de entrada del robot. La parte de orientación de esta posición define la orientación actual del sistema de coordenadas de la herramienta. Dx
Tipo de dato: num El desplazamiento en mm en la dirección x del sistema de coordenadas de la herramienta.
Dy
Tipo de dato: num El desplazamiento en mm en la dirección y del sistema de coordenadas de la herramienta.
Dz
Tipo de dato: num El desplazamiento en mm en la dirección z del sistema de coordenadas de la herramienta.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
143
RelTool Función [\Rx]
Tipo de dato: num La rotación en grados alrededor del eje x del sistema de coordenadas de la herramienta.
[\Ry]
Tipo de dato: num La rotación en grados alrededor del eje y del sistema de coordenadas de la herramienta.
[\Rz]
Tipo de dato: num La rotación en grados alrededor del eje z del sistema de coordenadas de la herramienta.
En el caso de que se especifiquen dos o tres rotaciones al mismo tiempo, éstas se realizan primero alrededor del eje x, a continuación alrededor del nuevo eje y, y a continuación alrededor del nuevo eje z.
Sintaxis RelTool’(’ [ Point ’:=’ ] < expresión (IN) de robtarget>’,’ [Dx ’:=’] ’,’ [Dy ’:=’] ’,’ [Dz ’:=’] [’\’Rx ’:=’ ] [’\’Ry ’:=’ ] [’\’Rz ’:=’ ]’)’ Una función con un valor de retorno del tipo de dato robtarget.
Información relacionada Descrito en:
144
Instrucciones y funciones matemáticas
Resumen sobre RAPID - Matemáticas
Instrucciones de posicionamiento
Resumen sobre RAPID - Movimiento
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
RobOS Función
RobOS - Comprueba si el programa se está ejecutando en RC o VC RobOS (sistema operativo del robot) puede usarse para comprobar si la ejecución se está realizando en el controlador de robot RC o en el controlador virtual VC (por ejemplo RobotStudio, ProgramMaker, QuickTeach).
Ejemplo IF RobOS() THEN ! Sentencias de ejecución para RC ELSE ! Sentencias de ejecución para VC ENDIF
Valor de retorno
Tipo de dato: bool
TRUE si la ejecución se está realizando en el controlador de robot. De lo contrario, FALSE.
Sintaxis RobOS ’(’’)’ Una función con un valor de retorno del tipo de dato bool.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
145
RobOS Función
146
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
Round Función
Round - Redondea un valor numérico Round se utiliza para redondear un valor numérico con un número determinado de decimales o a un valor entero.
Ejemplo VAR num val; val := Round(0.38521\Dec:=3); Se asigna a la variable val el valor 0,385. val := Round(0.38521\Dec:=1); Se asigna a la variable val el valor 0,4. val := Round(0.38521); Se asigna a la variable val el valor 0.
Valor de retorno
Tipo de dato: num
El valor numérico redondeado con el número especificado de decimales.
Argumentos Round
( Val [\Dec])
Val
(valor)
Tipo de dato: num
El valor numérico a redondear. [\Dec]
(decimales)
Tipo de dato: num
Número de decimales. Si el número de decimales especificado es 0 o se omite el argumento, el valor se redondea a un entero. El número de decimales no debe ser negativo ni mayor que la precisión disponible para los valores numéricos.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
147
Round Función
Sintaxis Round’(’ [ Val ’:=’ ] [ \Dec ’:=’ ] ’)’ Una función con un valor de retorno del tipo de dato num.
Información relacionada Descrito en:
148
Instrucciones y funciones matemáticas
Resumen sobre RAPID - Matemáticas
Truncación de un valor
Funciones - Trunc
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
RunMode Función
RunMode - Obtiene el modo de ejecución RunMode (modo de ejecución) se utiliza para leer el modo de ejecución actual de la tarea de programa.
Ejemplo IF RunMode() = RUN_CONT_CYCLE THEN .. ENDIF La sección de programa sólo se ejecuta para un funcionamiento continuado o cíclico.
Valor de retorno
Tipo de dato: symnum
El modo de ejecución actual, con uno de los valores definidos en la tabla siguiente.
Valor de retorno
Constante simbólica
Comentario
0
RUN_UNDEF
Modo de ejecución no definido
1
RUN_CONT_CYCLE
Modo de ejecución continuo o en modo ciclo
2
RUN_INSTR_FWD
Modo de ejecución de avance de instrucciones
3
RUN_INSTR_BWD
Modo de ejecución hacia atrás
4
RUN_SIM
Modo de ejecución simulado
5
RUN_STEP_MOVE
Instrucciones de movimiento en ejecución hacia delante, instrucciones lógicas en modo de ejecución continuo
Argumentos RunMode ( [ \Main] ) [ \Main ]
Tipo de dato: switch
Devuelve el modo de ejecución actual de la tarea de programa main. Se utiliza en sistemas multitarea para obtener el modo de ejecución actual de la tarea de programa main desde otra tarea de programa. Si se omite el argumento, el valor de retorno siempre refleja el modo de ejecución opuesto de la tarea de programa que ejecuta la función RunMode. Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
149
RunMode Función
Sintaxis RunMode ’(’ [’\’Main] ’)’ Una función con un valor de retorno del tipo de dato symnum.
Información relacionada Descrito en: Lectura del modo de funcionamiento
150
Funciones - OpMode
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
Sin Función
Sin - Calcula el valor del seno Sin (seno) se utiliza para calcular el valor de seno de un valor de ángulo.
Ejemplo VAR num angle; VAR num value; . . value := Sin(angle);
Valor de retorno
Tipo de dato: num
El valor del seno en el rango [-1, 1].
Argumentos Sin
(Angle)
Angle
Tipo de dato: num
El valor del ángulo, expresado en grados.
Sintaxis Sin’(’ [Angle ’:=’] ’)’ Una función con un valor de retorno del tipo de dato num.
Información relacionada Descrito en: Instrucciones y funciones matemáticas
Resumen sobre RAPID - Matemáticas
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
151
Sin Función
152
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
Sqrt Función
Sqrt - Calcula la raíz cuadrada Sqrt (raíz cuadrada) se utiliza para calcular la raíz cuadrada.
Ejemplo VAR num x_value; VAR num y_value; . . y_value := Sqrt( x_value);
Valor de retorno
Tipo de dato: num
El valor de la raíz cuadrada.
Argumentos Sqrt
(Value)
Value
Tipo de dato: num
El valor del argumento de la raíz cuadrada (
); debe ser
≥0.
Sintaxis Sqrt’(’ [Value ’:=’] ’)’ Una función con un valor de retorno del tipo de dato num.
Información relacionada Descrito en: Instrucciones y funciones matemáticas
Resumen sobre RAPID - Matemáticas
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
153
Sqrt Función
154
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
StrFind Función
StrFind - Busca un carácter en una cadena de caracteres StrFind (búsqueda en cadena) se utiliza para buscar en una cadena, a partir de una posición especificada, un carácter que se encuentra dentro de un conjunto determinado de caracteres.
Ejemplo VAR num found; found := StrFind("Robotics",1,"aeiou"); Se asigna a la variable found el valor 2. found := StrFind("Robotics",1,"aeiou"\NotInSet); Se asigna a la variable found el valor 1. found := StrFind("IRB 6400",1,STR_DIGIT); Se asigna a la variable found el valor 5. found := StrFind("IRB 6400",1,STR_WHITE); Se asigna a la variable found el valor 4.
Valor de retorno
Tipo de dato: num
La posición de carácter del primer carácter, ya sea en o después de la posición especificada, que pertenece al conjunto especificado. Si no se encuentra ninguno de los caracteres especificados, se devuelve la longitud de la cadena de caracteres +1.
Argumentos StrFind Str
(Str ChPos Set [\NotInSet]) (cadena de caracteres)
Tipo de dato: string
La cadena en la que se desea buscar. ChPos
(posición de carácter)
Tipo de dato: num
La posición del carácter inicial. Si la posición está fuera de la cadena de caracteres, se genera un error de tiempo de ejecución.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
155
StrFind Función Set
Tipo de dato: string El conjunto de caracteres que se desea comprobar.
[\NotInSet]
Tipo de dato: switch
Buscar un carácter que no se encuentra en el conjunto de caracteres.
Sintaxis StrFind’(’ [ Str ’:=’ ] ’,’ [ ChPos ’:=’ ] ’,’ [ Set’:=’ ] [’\’NotInSet ] ’)’ Una función con un valor de retorno del tipo de dato num.
Información relacionada Descrito en:
156
Funciones de cadenas de caracteres
Resumen sobre RAPID Funciones de cadenas de caracteres
Definición de cadenas
Tipos de datos - string
Valores de cadena de caracteres
Características básicas Elementos básicos
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
StrLen Función
StrLen - Obtiene la longitud de una cadena StrLen (longitud de cadena) se utiliza para obtener la longitud actual de la cadena.
Ejemplo VAR num len; len := StrLen("Robotics"); Se asigna a la variable len el valor 8.
Valor de retorno
Tipo de dato: num
El número de caracteres de la cadena (>=0).
Argumentos StrLen
(Str)
Str
(cadena de caracteres)
Tipo de dato: string
La cadena de caracteres cuyo número de caracteres se desea contar.
Sintaxis StrLen’(’ [ Str ’:=’ ] ’)’ Una función con un valor de retorno del tipo de dato num.
Información relacionada Descrito en: Funciones de cadenas de caracteres
Resumen sobre RAPID Funciones de cadenas de caracteres
Definición de cadenas
Tipos de datos - string
Valores de cadena de caracteres
Características básicas Elementos básicos
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
157
StrLen Función
158
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
StrMap Función
StrMap - Mapea una cadena de caracteres StrMap (mapeo de cadena de caracteres) se utiliza para crear una copia de una cadena en la que todos los caracteres se convierten acorde con una especificación de mapeo especificada.
Ejemplo VAR string str; str := StrMap("Robotics","aeiou","AEIOU"); Se asigna a la variable str el valor "RObOtIcs". str := StrMap("Robotics",STR_LOWER, STR_UPPER); Se asigna a la variable str el valor "ROBOTICS".
Valor de retorno
Tipo de dato: string
La cadena de caracteres creada mediante la conversión de los caracteres de la cadena especificada, de la forma indicada por las cadenas de origen y destino. Cada carácter de la cadena especificada que se encuentre en la cadena de origen se reemplaza con el carácter de la posición correspondiente de la cadena de destino. Los caracteres para los que no se haya especificado ningún mapeo se copian sin cambios a la cadena resultante.
Argumentos StrMap
( Str FromMap ToMap)
Str
(cadena de caracteres)
Tipo de dato: string
La cadena a convertir. FromMap
Tipo de dato: string
Parte de índice del mapeo. ToMap
Tipo de dato: string
Parte de valor del mapeo.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
159
StrMap Función
Sintaxis StrMap’(’ [ Str ’:=’ ] ’,’ [ FromMap’:=’ ] ’,’ [ ToMap’:=’ ] ’)’ Una función con un valor de retorno del tipo de dato string.
Información relacionada Descrito en:
160
Funciones de cadenas de caracteres
Resumen sobre RAPID Funciones de cadenas de caracteres
Definición de cadenas
Tipos de datos - string
Valores de cadena de caracteres
Características básicas Elementos básicos
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
StrMatch Función
StrMatch - Busca un patrón dentro de una cadena de caracteres StrMatch (correlación de cadenas) se utiliza para buscar un patrón determinado dentro de otra cadena, a partir de una posición especificada.
Ejemplo VAR num found; found := StrMatch("Robotics",1,"bo"); Se asigna a la variable found el valor 3.
Valor de retorno
Tipo de dato: num
La posición de carácter de la primera subcadena, en o después de la posición especificada, que es igual a la cadena de patrón especificada. Si no se encuentra la subcadena, se devuelve la longitud de la cadena + 1.
Argumentos StrMatch Str
(Str ChPos Pattern) (cadena de caracteres)
Tipo de dato: string
La cadena en la que se desea buscar. ChPos
(posición de carácter)
Tipo de dato: num
La posición del carácter inicial. Si la posición está fuera de la cadena de caracteres, se genera un error de tiempo de ejecución. Pattern
Tipo de dato: string
La cadena de caracteres de patrón que se desea buscar.
Sintaxis StrMatch’(’ [ Str ’:=’ ] ’,’ [ ChPos ’:=’ ] ’,’ [ Pattern’:=’ ] ’)’ Una función con un valor de retorno del tipo de dato num. Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
161
StrMatch Función
Información relacionada Descrito en:
162
Funciones de cadenas de caracteres
Resumen sobre RAPID Funciones de cadenas de caracteres
Definición de cadenas
Tipos de datos - string
Valores de cadena de caracteres
Características básicas Elementos básicos
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
StrMemb Función
StrMemb - Comprueba si un carácter pertenece a un conjunto StrMemb (miembro de cadena de caracteres) se utiliza para comprobar si un carácter concreto de una cadena pertenece a un conjunto determinado de caracteres.
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"); Se asigna a la variable memb el valor FALSE, ya que “b” no forma parte del conjunto “aeiou”. memb := StrMemb("S-721 68 VÄSTERÅS",3,STR_DIGIT); Se asigna a la variable memb el valor TRUE.
Valor de retorno
Tipo de dato: bool
TRUE si el carácter de la posición especificada de la cadena especificada se encuentra dentro del conjunto de caracteres especificado.
Argumentos StrMemb Str
(Str ChPos Set) (cadena de caracteres)
Tipo de dato: string
La cadena que se desea comprobar. ChPos
(posición de carácter)
Tipo de dato: num
La posición del carácter que se desea comprobar. Si la posición está fuera de la cadena de caracteres, se genera un error de tiempo de ejecución. Set
Tipo de dato: string El conjunto de caracteres que se desea comprobar.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
163
StrMemb Función
Sintaxis StrMemb’(’ [ Str ’:=’ ] ’,’ [ ChPos ’:=’ ] ’,’ [ Set’:=’ ] ’)’ Una función con un valor de retorno del tipo de dato bool.
Información relacionada Descrito en:
164
Funciones de cadenas de caracteres
Resumen sobre RAPID Funciones de cadenas de caracteres
Definición de cadenas
Tipos de datos - string
Valores de cadena de caracteres
Características básicas Elementos básicos
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
StrOrder Función
StrOrder - Comprueba si dos cadenas de caracteres están ordenadas StrOrder (orden de cadenas de caracteres) se utiliza para comprobar si dos cadenas están en orden acorde con una secuencia de clasificación de caracteres especificada.
Ejemplo VAR bool le; le := StrOrder("FIRST","SECOND",STR_UPPER); Se asigna a la variable le el valor TRUE, porque "FIRST" va antes de "SECOND" en la secuencia de clasificación de caracteres STR_UPPER.
Valor de retorno
Tipo de dato: bool
TRUE si la primera cadena va antes de la segunda cadena (Str1 <= Str2) cuando se utiliza la clasificación de caracteres especificada. Se supone que los caracteres que no están incluidos en el orden definido siguen a los caracteres presentes.
Argumentos StrOrder Str1
( Str1 Str2 Order) (cadena 1)
Tipo de dato: string
El primer valor de cadena. Str2
(cadena 2)
Tipo de dato: string
El segundo valor de cadena. Order
Tipo de dato: string
Una secuencia de caracteres que define el orden.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
165
StrOrder Función
Sintaxis StrOrder’(’ [ Str1 ’:=’ ] ’,’ [ Str2 ’:=’ ] ’,’ [ Order ’:=’ ] ’)’ Una función con un valor de retorno del tipo de dato bool.
Información relacionada Descrito en:
166
Funciones de cadenas de caracteres
Resumen sobre RAPID Funciones de cadenas de caracteres
Definición de cadenas
Tipos de datos - string
Valores de cadena de caracteres
Características básicas Elementos básicos
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
StrPart Función
StrPart - Busca una parte de una cadena StrPart (parte de una cadena) se utiliza para encontrar una parte de una cadena y obtenerla como una cadena nueva.
Ejemplo VAR string part; part := StrPart("Robotics",1,5); Se asigna a la variable part el valor "Robot".
Valor de retorno
Tipo de dato: string
La subcadena de la cadena especificada, que tiene la longitud especificada y comienza en la posición de carácter especificada.
Argumentos StrPart Str
(Str ChPos Len) (cadena de caracteres)
Tipo de dato: string
La cadena en la que se desea buscar una parte. ChPos
(posición de carácter)
Tipo de dato: num
La posición del carácter inicial. Si la posición está fuera de la cadena de caracteres, se genera un error de tiempo de ejecución. 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 ejecución.
Sintaxis StrPart’(’ [ Str ’:=’ ] ’,’ [ ChPos ’:=’ ] ’,’ [ Len’:=’ ] ’)’ Una función con un valor de retorno del tipo de dato string.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
167
StrPart Función
Información relacionada Descrito en:
168
Funciones de cadenas de caracteres
Resumen sobre RAPID Funciones de cadenas de caracteres
Definición de cadenas
Tipos de datos - string
Valores de cadena de caracteres
Características básicas Elementos básicos
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
StrToByte Función
StrToByte - Convierte una cadena en un byte StrToByte (cadena de caracteres a byte) se utiliza para convertir un dato del tipo string con un formato de dato de byte en un dato del tipo byte.
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}); El contenido del componente de matriz data_buffer{1} será 10 en representación decimal después de la función StrToByte.... data_buffer{2} := StrToByte(con_data_buffer{2}\Hex); El contenido del componente de matriz data_buffer{2} será 174 en representación decimal después de la función StrToByte.... data_buffer{3} := StrToByte(con_data_buffer{3}\Okt); El contenido del componente de matriz data_buffer{3} será 126 en representación decimal después de la función StrToByte.... data_buffer{4} := StrToByte(con_data_buffer{4}\Bin); El contenido del componente de matriz data_buffer{4} será 10 en representación decimal después de la función StrToByte.... data_buffer{5} := StrToByte(con_data_buffer{5}\Char); El contenido del componente de matriz data_buffer{5} será 65 en representación decimal después de la función StrToByte....
Valor de retorno
Tipo de dato: byte
El resultado de la operación de conversión en representación decimal.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
169
StrToByte Función
Argumentos StrToByte ConStr
(ConStr [\Hex] | [\Okt] | [\Bin] | [\Char]) (cadena a convertir)
Tipo de dato: string
Los datos de cadena a convertir. Si se omite el argumento modificador opcional, la cadena de caracteres se convierten al formato decimal (Dec). [\Hex]
(Hexadecimal)
Tipo de dato: switch
La cadena de caracteres se convierte al formato hexadecimal. [\Okt]
(Octal)
Tipo de dato: switch
La cadena de caracteres se convierte al formato octal. [\Bin]
(Binario)
Tipo de dato: switch
La cadena de caracteres se convierte al formato binario. [\Char]
(Carácter)
Tipo de dato: switch
La cadena de caracteres se convierte al formato de carácter ASCII.
Limitaciones En función del formato de la cadena que se desea convertir, se aplica el dato de cadena siguiente: Formato: Dec .....: ’0’ - ’9’ Hex .....: ’0’ - ’9’, ’a’ -’f’, ’A’ - ’F’ Okt ......: ’0’ - ’7’ Bin ......: ’0’ - ’1’ Char ....: Cualquier carácter ASCII
Longitud de la cadena: 3 2 3 8 1
Rango: "0" - "255" "0" - "FF" "0" - "377" "0" - "11111111" Un carácter ASCII
Es posible utilizar códigos de carácter de RAPID (por ejemplo “\07” para el carácter de control BEL) como argumentos de ConStr.
170
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
StrToByte Función
Sintaxis StrToByte’(’ [ConStr ’:=’] [’\’ Hex ] | [’\’ Okt] | [’\’ Bin] | [’\’ Char] ’)’ ’;’ Una función con un valor de retorno del tipo de dato byte.
Información relacionada Descrito en: Conversión de un byte en una cadena de caracteres
Instrucciones - ByteToStr
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
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
171
StrToByte Función
172
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
StrToVal Función
StrToVal - Convierte una cadena de caracteres en un valor StrToVal (de cadena de caracteres a valor) se utiliza para convertir una cadena en un valor de cualquier tipo de dato.
Ejemplo VAR bool ok; VAR num nval; ok := StrToVal("3.85",nval); Se asigna a la variable ok el valor TRUE y se asigna a nval el valor 3,85.
Valor de retorno
Tipo de dato: bool
TRUE si la conversión solicitada tiene éxito y FALSE si no es así.
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 válido es el de los agregados literales de RAPID. Val
(valor)
Tipo de dato: ANYTYPE
El nombre de la variable o de la variable persistente de cualquier tipo para el almacenamiento del resultado de la conversión. Los datos permanecen sin cambios si la conversión solicitada no tiene éxito.
Ejemplo VAR string 15 := “[600, 500, 225.3]”; VAR bool ok; VAR pos pos15; ok := StrToVal(str15,pos15); Se asigna a la variable ok el valor TRUE y se asigna a la variable p15 el valor especificado en la cadena str15. Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
173
StrToVal Función
Sintaxis StrToVal’(’ [ Str ’:=’ ] ’,’ [ Val ’:=’ ] ’)’ Una función con un valor de retorno del tipo de dato bool.
Información relacionada Descrito en:
174
Funciones de cadenas de caracteres
Resumen sobre RAPID Funciones de cadenas de caracteres
Definición de cadenas
Tipos de datos - string
Valores de cadena de caracteres
Características básicas Elementos básicos
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
Tan Función
Tan - Calcula el valor de tangente Tan (tangente) se utiliza para calcular el valor de tangente desde un valor de ángulo.
Ejemplo VAR num angle; VAR num value; . . value := Tan(angle);
Valor de retorno
Tipo de dato: num
El valor de la tangente.
Argumentos Tan
(Angle)
Angle
Tipo de dato: num
El valor del ángulo, expresado en grados.
Sintaxis Tan’(’ [Angle ’:=’] ’)’ Una función con un valor de retorno del tipo de dato num.
Información relacionada Descrito en: Instrucciones y funciones matemáticas Arco tangente con un valor devuelto en el rango [-180, 180]
Resumen sobre RAPID - Matemáticas Funciones - ATan2
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
175
Tan Función
176
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
TestAndSet Función
TestAndSet - Comprueba una variable y la establece si no está establecida TestAndSet puede usarse junto con un objeto de datos normal del tipo bool, como semáforo binario, para obtener el derecho exclusivo de acceso a áreas concretas del código de RAPID o a recursos del sistema. Esta función podría utilizarse tanto entre tareas de programa diferentes y niveles de ejecución diferentes (rutinas TRAP o de eventos) como dentro de una misma tarea de programa. A continuación se enumeran algunos de los recursos que pueden necesitar protección de acceso al mismo tiempo: - Uso de algunas rutinas de RAPID que presentan problemas de funcionamiento cuando se ejecutan en paralelo - Uso de la unidad de programación para indicaciones e interacción con el operador
Ejemplo MAIN program task: PERS bool tproutine_inuse := FALSE; .... WaitUntil TestAndSet(tproutine_inuse); TPWrite “Primera línea de MAIN”; TPWrite “Segunda línea de MAIN”; TPWrite “Tercera línea de MAIN”; tproutine_inuse := FALSE; BACK1 program task: PERS bool tproutine_inuse := FALSE; ..... WaitUntil TestAndSet(tproutine_inuse); TPWrite “Primera línea de BACK1”; TPWrite “Segunda línea de BACK1”; TPWrite “Tercera línea de BACK1”; tproutine_inuse := FALSE; Para evitar mezclar las líneas, una de MAIN y una de BACK1, el uso de la función TestAndSet garantiza que las tres líneas de cada tarea no se separen. Si la tarea de programa MAIN activa el semáforo TestAndSet(tproutine_inuse) en primer lugar, la tarea de programa BACK1 debe esperar hasta que la tarea de programa MAIN libere el semáforo.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
177
TestAndSet Función
Valor de retorno
Tipo de dato: num
TRUE si el semáforo ha sido activado por la tarea actual (la tarea que ejecuta la función TestAndSet). De lo contrario, FALSE.
Argumentos TestAndSet
Object
Object
Tipo de dato: bool
Objeto de datos definido por el usuario para usarlo como semáforo.- 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).
Ejecución de programas Esta función comprueba en un paso indivisible si el usuario ha establecido el valor de la variable y, si no es así, lo establece y devuelve TRUE. De lo contrario, devuelve FALSE. IF Object = FALSE THEN Object := TRUE; RETURN TRUE; ELSE RETURN FALSE; ENDIF
Ejemplo LOCAL VAR bool doit_inuse := FALSE; ... PROC doit(...) WaitUntil TestAndSet (doit_inuse); .... doit_inuse := FALSE; ENDPROC Si se instala, incorpora y comparte un módulo, es posible utilizar una variable de módulo local para la protección del acceso desde distintas tareas de programa al mismo tiempo. Recuerde que en este caso: si la ejecución del programa se detiene en la rutina doit y el puntero de programa se traslada a main, la variable doit_inuse no se restablecerá. Para evitarlo, devuelva la variable doit_inuse a FALSE en la rutina de evento START. 178
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
TestAndSet Función
Sintaxis TestAndSet ’(’ [ Object ’:=’ ] < variable o variable persistente (INOUT) de bool> ’)’ Una función con un valor de retorno del tipo de dato bool.
Información relacionada Descrito en: Módulo incorporado y compartido
Guía del usuario Parámetros del sistema
Objetos compartidos entre tareas Manual de referencia del kernel de RAPID -
Manual del programador de RAPID Objetos compartidos entre tareas
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
179
TestAndSet Función
180
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
TestDI Función
TestDI - Comprobar si una entrada digital está activada TestDI se usa para comprobar si una entrada digital está activada. Ejemplos IF TestDI (di2) THEN . . . Si el valor actual de la señal di2 es 1, . . . IF NOT TestDI (di2) THEN . . . Si el valor actual de la señal di2 es 0, . . . WaitUntil TestDI(di1) AND TestDI(di2); La ejecución del programa continúa sólo cuando tanto la entrada di1 como la entrada di2 están activadas.
Valor de retorno
Tipo de dato: bool
TRUE = El valor actual de la señal es 1. FALSE = El valor actual de la señal es 0.
Argumentos TestDI
(Signal)
Signal
Tipo de dato: signaldi
El nombre de la señal a comprobar.
Sintaxis TestDI ’(’ [ Signal ’:=’ ] < variable (VAR) de signaldi > ’)’ Una función con un valor de retorno del tipo de dato bool.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
181
TestDI Función
Información relacionada Descrito en:
182
Lectura del valor de una señal digital de entrada
Funciones - DInput
Instrucciones de entrada y salida
Resumen sobre RAPID Señales de entrada y salida
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
TestSignRead Función
TestSignRead - Obtiene el valor de una señal de test TestSignRead se utiliza para leer el valor actual de una señal de test. Esta función devuelve el valor momentáneo o el valor medio de los últimos muestreos, en función de la especificación de canal utilizada en la instrucción 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 mecánica speed_value := TestSignRead(speed_channel); ... TestSignReset; Se asigna a speed_value el valor medio de los últimos 8 muestreos generados cada 0,5 mseg de la señal de test speed en el canal speed_channel. El canal speed_channel mide la velocidad del eje 1 en la unidad mecánica orbit.
Valor de retorno
Tipo de dato: num
El valor numérico en unidades SI del lado de motor del canal especificado, acorde con la definición de la instrucción TestSignDefine.
Argumentos TestSignRead Channel
(Channel) Tipo de dato: num
El número de canal, de 1 a 12, de la señal de test a leer. Este mismo número debe usarse en la instrucción de definición TestSignDefine.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
183
TestSignRead Función
Ejecución de programas Devuelve el valor momentáneo o el valor medio de los últimos muestreos, en función de la especificación de canal utilizada en la instrucción TestSignDefine. Para más información sobre las señales de test predefinidas con unidades SI válidas 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 posición 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 posición psync, se muestra en la ventana Operador de la unidad de programación.
Sintaxis TestSignRead’(’ [ Channel ’:=’] ’)’ Una función con un valor de retorno del tipo de dato num.
184
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
TestSignRead Función
Información relacionada Descrito en: Definición de una señal de test
Instrucciones - TestSignDefine
Puesta a cero de señales de test
Instrucciones - TestSignReset
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
185
TestSignRead Función
186
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
Trunc Función
Trunc - Trunca un valor numérico Trunc (truncar) se utiliza para truncar un valor numérico hasta un número especificado de decimales o a un valor entero.
Ejemplo VAR num val; val := Trunc(0.38521\Dec:=3); Se asigna a la variable val el valor 0.385. reg1 := 0.38521 val := Trunc(reg1\Dec:=1); Se asigna a la variable val el valor 0.3. val := Trunc(0.38521); Se asigna a la variable val el valor 0.
Valor de retorno
Tipo de dato: num
El valor numérico truncado con el número especificado de decimales.
Argumentos Trunc
( Val [\Dec] )
Val
(valor)
Tipo de dato: num
El valor numérico a truncar. [\Dec]
(decimales)
Tipo de dato: num
Número de decimales. Si el número de decimales especificado es 0 o se omite el argumento, el valor se trunca a un entero. El número de decimales no debe ser negativo ni mayor que la precisión disponible para los valores numéricos.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
187
Trunc Función
Sintaxis Trunc’(’ [ Val ’:=’ ] [ \Dec ’:=’ ] ’)’ Una función con un valor de retorno del tipo de dato num.
Información relacionada Descrito en:
188
Instrucciones y funciones matemáticas
Resumen sobre RAPID - Matemáticas
Redondeo de un valor
Funciones - Round
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
ValToStr Función
ValToStr - Convierte un valor en una cadena ValToStr (valor a cadena) se utiliza para convertir un valor de cualquier tipo de dato en una cadena.
Ejemplo VAR string str; VAR pos p := [100,200,300]; str := ValToStr(1.234567); Se asigna a la variable str el valor "1.23457". str := ValToStr(TRUE); Se asigna a la variable str el valor "TRUE". str := ValToStr(p); Se asigna a la variable str el valor "[100,200,300]".
Valor de retorno
Tipo de dato: string
El valor se convierte en una cadena con un formato estándar de RAPID. Esto significa en principio 6 dígitos significativos. Si la parte decimal es menor que 0,000005 o mayor que 0,999995, el número se redondea a un entero. Si la cadena resultante es demasiado larga, se genera un error de tiempo de ejecución.
Argumentos ValToStr Val
( Val ) (valor)
Tipo de dato: ANYTYPE
Un valor de cualquier tipo de dato.
Sintaxis ValToStr’(’ [ Val ’:=’ ] ’)’ Una función con un valor de retorno del tipo de dato string. Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
189
ValToStr Función
Información relacionada Descrito en:
190
Funciones de cadenas de caracteres
Resumen sobre RAPID Funciones de cadenas de caracteres
Definición de cadenas
Tipos de datos - string
Valores de cadena de caracteres
Características básicas Elementos básicos
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
VectMagn Función
VectMagn - Magnitud de un vector pos VectMagn (magnitud de vector) se utiliza para calcular la magnitud de un vector pos.
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: A =
2
2
2
Ax + Ay + Az
El vector se describe mediante el tipo de dato pos y la magnitud mediante el tipo de dato num: VAR num magnitude; VAR pos vector; . . vector := [1,1,1]; magnitude := VectMagn(vector);
Valor de retorno
Tipo de dato: num
La magnitud del vector (tipo de dato pos).
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
191
VectMagn Función
Argumentos VectMagn
(Vector)
Vector
Tipo de dato: pos
El vector descrito mediante el tipo de dato pos.
Sintaxis VectMagn’(’ [Vector ’:=’] ’)’ Una función con un valor de retorno del tipo de dato num.
Información relacionada Descrito en: Instrucciones y funciones matemáticas
192
Resumen sobre RAPID - Matemáticas
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
aiotrigg Tipo de dato
Advanced functions (Funciones avanzadas)
aiotrigg - Condición de disparo con E/S analógica aiotrigg (disparador de E/S analógica) se utiliza para definir la condición que genera una interrupción para una señal de entrada o salida analógica.
Descripción Los datos de tipo aiotrigg definen la forma en que se usarán un umbral máximo y un umbral mínimo para determinar si el valor lógico de una señal analógica cumple las condiciones para generar una interrupción.
Ejemplo VAR intnum sig1int; CONNECT sig1int WITH iroutine1; ISignalAI \Single, ai1, AIO_BETWEEN, 1.5, 0.5, 0, sig1int; Solicita una interrupción que debe producirse la primera vez que el valor lógico de la señal analógica 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 simbólicas siguientes del tipo de dato aiotrigg. Puede usarlas para especificar una condiciones para las instrucciones ISignalAI y ISignalAO. Valor
Constante simbólica
Comentario
1
AIO_ABOVE_HIGH
La señal genera interrupciones si se encuentra por encima del valor máximo especificado
2
AIO_BELOW_HIGH
La señal genera interrupciones si se encuentra por debajo del valor máximo especificado
3
AIO_ABOVE_LOW
La señal genera interrupciones si se encuentra por encima del valor mínimo especificado
4
AIO_BELOW_LOW
La señal genera interrupciones si se encuentra por debajo del valor mínimo especificado
5
AIO_BETWEEN
La señal genera interrupciones si se encuentra entre los valores mínimo y máximo especificados
6
AIO_OUTSIDE
La señal genera interrupciones si se encuentra por debajo del valor mínimo especificado o por encima del valor máximo especificado
7
AIO_ALWAYS
La señal siempre genera interrupciones
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
193
aiotrigg Advanced functions (Funciones avanzadas)
Tipo de dato
Características aiotrigg es un tipo de dato de alias de num y por tanto hereda sus características.
Información relacionada Descrito en:
194
Interrupción a partir de una señal analógica de entrada
Instrucciones - ISignalAI
Interrupción a partir de una señal analógica de salida
Instrucciones - ISignalAO
Tipos de datos en general, tipos de datos de alias
Características básicas - Tipos de datos
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
bool Tipo de dato
bool - Valores lógicos Bool se utiliza con valores lógicos (verdadero/falso).
Descripción El valor de un dato de tipo bool puede ser TRUE (verdadero) o FALSE (falso).
Ejemplos flag1 := TRUE; Se asigna al flag el valor TRUE (verdadero). VAR bool highvalue; VAR num reg1; . highvalue := reg1 > 100; Se asigna a highvalue el valor TRUE si reg1 es mayor que 100. De lo contrario, se le asigna FALSE. IF highvalue Set do1; La señal do1 se activa si highvalue es TRUE. highvalue := reg1 > 100; mediumvalue := reg1 > 20 AND NOT highvalue; Se asigna a mediumvalue el valor TRUE si reg1 se encuentra entre 20 y 100.
Información relacionada Descrito en: Expresiones lógicas
Características básicas - Expresiones
Operaciones con valores lógicos
Características básicas - Expresiones
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
195
bool Tipo de dato
196
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
byte Tipo de dato
byte - Valores decimales de 0 a 255 Byte se utiliza con valores decimales (de 0 a 255), acorde con el rango que permite un byte. Este tipo de dato se utiliza junto con instrucciones y funciones dedicadas a la manipulación de bits y la conversión.
Descripción Los datos de tipo byte representan valores de byte decimales.
Ejemplos CONST num parity_bit := 8; VAR byte data1 := 130; Definición de una variable data1 con el valor decimal 130. BitClear data1, parity_bit; El bit número 8 (parity_bit) de la variable data1 cambia a 0, con lo que el contenido de la variable data1 cambia de 130 a 2 (en su valor decimal).
Gestión 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.
Características Byte es un tipo de dato de alias de num y por tanto hereda sus características.
Información relacionada Descrito en: Tipos de datos de alias
Características básicas - Tipos de datos
Funciones de bits
Resumen sobre RAPID - Funciones de bits
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
197
byte Tipo de dato
198
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
clock Tipo de dato
clock - Medición de tiempo Clock se utiliza para medir tiempo. Una variable clock funciona como un cronómetro que se usa para temporizaciones.
Descripción Los datos de tipo clock almacenan una medición 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 máximo que puede almacenar una variable de tipo clock es de aproximadamente 49 días (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.
Características Clock es un tipo de dato sin valor y no puede usarse en operaciones basadas en valores.
Información relacionada Descrito en: Resumen de las instrucciones de hora y fecha Resumen sobre RAPID - Sistema y tiempo Características de los tipos sin valor
Características básicas - Tipos de datos
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
199
clock Tipo de dato
200
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
confdata Tipo de dato
confdata - Datos de configuración del robot Confdata se utiliza para definir las configuraciones de ejes del robot.
Descripción 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 más soluciones posibles. Esto significa que el robot puede alcanzar la misma posición, es decir, situar la herramienta en la misma posición y con la misma orientación, a partir de distintas posiciones o configuraciones de los ejes del robot. Algunos tipos de robots utilizan métodos numéricos iterativos para determinar las posiciones de los ejes. En estos casos, los parámetros de configuración puede usarse para definir valores de eje iniciales adecuados que puede usar el proceso iterativo. Para denotar de forma inequívoca una de estas configuraciones posibles, la configuración del robot se especifica mediante cuatro valores de eje. En el caso de un eje de rotación, el valor define el cuadrante actual para el eje del robot. Los cuadrantes tienen los números 0, 1, 2, etc. (también pueden tener un número negativo). El número de cuadrante está conectado al ángulo actual del eje. Para cada eje, el cuadrante 0 es el primer cuarto de revolución, de 0 a 90°, en sentido positivo a partir de la posición cero. El cuadrante 1 es el siguiente cuarto de revolución, de 90 a 180°, y así en adelante. El cuadrante -1 es el cuarto de revolución de 0° a (-90°), etc. (consulte la Figura 5).
-4
-1
-2
-3
3
0
2
1
Figura 5 Los cuadrantes de configuración para el eje 6.
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 posición entre 0 y 1 metro y 1 significa una posición entre 1 y 2 metros. En el caso de los valores negativos, -1 significa una posición entre -1 y 0 metros, etc. (consulte la Figura 6).
-3
0,0
-1,0
-2,0
-3,0
-2
-1
1,0 0
2,0 1
3,0 2
x (m)
Valor de configuración
Figura 6 Valores de configuración para un eje lineal.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
201
confdata Tipo de dato
Datos de configuración del robot IRB140 Existen tres singularidades dentro del rango de trabajo del robot (consulte Principios de movimiento y E/S - Singularidades). cf1 es el número de cuadrante del eje 1. cf4 es el número de cuadrante del eje 4. cf6 es el número de cuadrante del eje 6. cfx se utiliza para seleccionar una de las ocho configuraciones posibles del robot, numeradas de 0 a 7. En la tabla siguiente se indican estas configuraciones en cuanto a cómo se posiciona el robot respecto de las tres singularidades. cfx
Centro de muñeca respecto del eje 1
Centro de muñeca respecto del brazo interior
Ángulo del eje 5
0
Delante de
Delante de
Positivo
1
Delante de
Delante de
Negativo
2
Delante de
Detrás
Positivo
3
Delante de
Detrás
Negativo
4
Detrás
Delante de
Positivo
5
Detrás
Delante de
Negativo
6
Detrás
Detrás
Positivo
7
Detrás
Detrás
Negativo
En las imágenes siguientes se muestran ejemplos de cómo se consiguen la misma posición y la misma orientación de la herramienta con las ocho configuraciones siguientes: Eje 1
Brazo inferior ABB
Brazo inferior ABB
Eje 1
beta
Centro de la muñeca
Centro de la muñeca
cfx = 0
-beta
cfx = 1 Figura 7 Ejemplo de las configuraciones de robot 0 y 1. Observe los distintos signos del ángulo del eje 5.
202
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
confdata Tipo de dato
Eje 1
Eje 1
-beta ABB
ABB
beta Centro de la muñeca
Centro de la muñeca
Brazo inferior
Brazo inferior
cfx = 3
cfx = 2
Figura 8 Ejemplo de las configuraciones de robot 2 y 3. Observe los distintos signos del ángulo del eje 5.
Eje 1
Centro de la muñeca
Eje 1
Centro de la muñeca
beta
-beta
AB B
AB B
Brazo inferior
cfx = 4
Brazo inferior
cfx = 5 Figura 9 Ejemplo de las configuraciones de robot 4 y 5. Observe los distintos signos del ángulo del eje 5.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
203
confdata Tipo de dato
Eje 1
Brazo inferior
Eje 1
Brazo inferior
beta
ABB
Centro de la muñeca
cfx = 6
-beta
ABB
Centro de la muñeca
cfx = 7 Figura 10 Ejemplo de las configuraciones de robot 6 y 7. Observe los distintos signos del ángulo del eje 5.
Datos de configuración del robot IRB340 Sólo se utiliza el parámetro de configuración cf4.
Datos de configuración de los robots IRB540, 640 Sólo se utiliza el parámetro de configuración cf6.
Datos de configuración de los robots IRB1400, 2400, 3400, 4400, 6400 Sólo se utilizan los parámetros de configuración cf1, cf4 y cf6.
Datos de configuración del robot IRB5400 Se utilizan los cuatro parámetros de configuración. Se utilizan cf1, cf4, cf6 para los ejes 1, 4 y 6 respectivamente y cfx para el eje 5.
204
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
confdata Tipo de dato
Datos de configuración de los robots IRB5404, 5406 Estos robots tienen dos ejes de rotación (brazos 1 y 2) y un eje lineal (brazo 3). cf1 se utiliza para el eje de rotación 1 cfx se utiliza para el eje de rotación 2 No se utilizan cf4 ni cf6
Datos de configuración de los robots IRB5413, 5414, 5423 Estos robots tienen dos ejes lineales (brazos 1 y 2) y uno o dos ejes de rotación (brazos 4 y 5) (el brazo 3 está bloqueado). cf1 se utiliza para el eje lineal 1 cfx se utiliza para el eje lineal 2 cf4 se utiliza para el eje de rotación 4 cf6 no se utiliza
Datos de configuración del robot IRB840 Este robot tiene tres ejes lineales (brazos 1, 2 y 3) y un eje de rotación (brazo 4). cf1 se utiliza para el eje lineal 1 cfx se utiliza para el eje lineal 2 cf4 se utiliza para el eje de rotación 4 cf6 no se utiliza Debido a que la estructura del robot es principalmente lineal, el uso de un valor correcto de los parámetros de configuración c1 y cx tiene menos importancia.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
205
confdata Tipo de dato
Componentes cf1
Tipo de dato: num Eje de rotación: El cuadrante actual del eje 1, expresado como un número entero positivo o negativo. Eje lineal: El intervalo actual en metros del eje 1, expresado como un número entero positivo o negativo.
cf4
Tipo de dato: num Eje de rotación: El cuadrante actual del eje 4, expresado como un número entero positivo o negativo. Eje lineal: El intervalo actual en metros del eje 4, expresado como un número entero positivo o negativo.
cf6
Tipo de dato: num Eje de rotación: El cuadrante actual del eje 6, expresado como un número entero positivo o negativo. Eje lineal: El intervalo actual en metros del eje 6, expresado como un número entero positivo o negativo.
cfx
Tipo de dato: num Eje de rotación: En el robot IRB140, la configuración 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 número entero positivo o negativo. En otros robots, el cuadrante actual del eje 2, expresado como un número entero positivo o negativo. Eje lineal: El intervalo actual en metros del eje 2, expresado como un número entero positivo o negativo.
206
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
confdata Tipo de dato
Ejemplo VAR confdata conf15 := [1, -1, 0, 0] Se define la configuración de robot conf15 con los valores siguientes: - La configuración del eje 1 del robot es el cuadrante 1, es decir, de 90 a 180o. - La configuración del eje 4 del robot es el cuadrante -1, es decir, de 0 a -90o). - La configuración del eje 6 del robot es el cuadrante 0, es decir, de 0 a 90o. - La configuración del eje 5 del robot es el cuadrante 0, es decir, de 0 a 90o.
Estructura < dataobject of confdata > < cf1 of num > < cf4 of num > < cf6 of num > < cfx of num >
Información relacionada Descrito en: Sistemas de coordenadas
Principios de movimiento y E/S Sistemas de coordenadas
Gestión de datos de configuración
Principios de movimiento y E/S Configuración del robot
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
207
confdata Tipo de dato
208
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
dionum Tipo de dato
dionum - Valores digitales 0 y 1 Dionum (valor numérico de entrada/salida digital) se utiliza para almacenar valores digitales (0 ó 1). Este tipo de dato se utiliza junto con instrucciones y funciones dedicadas a la gestión de señales digitales de entrada o salida.
Descripción Los datos del tipo dionum representan los valores digitales 0 ó 1.
Ejemplos CONST dionum close := 1; Definición de la constante close con el valor 1. SetDO grip1, close; La señal grip1 cambia al valor close, es decir 1.
Datos predefinidos Las constantes high, low y edge están predefinidas en el módulo de sistema user.sys: CONST dionum low:=0; CONST dionum high:=1; CONST dionum edge:=2; Las constantes low y high se han diseñado para instrucciones de E/S. Edge puede usarse junto con las instrucciones de interrupciones ISignalDI y ISignalDO.
Características Dionum es un tipo de dato de alias de num y por tanto hereda sus características.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
209
dionum Tipo de dato
Información relacionada Descrito en: Resumen de instrucciones de entrada y salida Resumen sobre RAPID - Señales de entrada y salida
210
Configuración de E/S
Guía del usuario - Parámetros del sistema
Tipos de datos de alias
Características básicas - Tipos de datos
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
errdomain Tipo de dato
Advanced functions (Funciones avanzadas)
errdomain - Dominio de error errdomain (dominio de error) se utiliza para especificar un dominio de error.
Descripción Los datos de tipo errdomain representan el dominio en el que se ha registrado un error, una advertencia o un cambio de estado. Consulte Guía del usuario - Gestión de errores, Mensajes del sistema y de error para obtener más información.
Ejemplo VAR errdomain err_domain; VAR num err_number; VAR errtype err_type; VAR trapdata err_data; ... TRAP trap_err GetTrapData err_data; ReadErrData err_data, err_domain, err_number, err_type; ENDTRAP Cuando se detecta un error con la rutina TRAP trap_err, el dominio, el número y el tipo del error se almacenan en las variables adecuadas.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
211
errdomain Advanced functions (Funciones avanzadas)
Tipo de dato
Datos predefinidos Puede usar las constantes predefinidas siguientes para especificar un dominio de error. Tabla 1 Dominios de error predefinidos Nombre
Dominio del error
Valor
COMMON_ERR
Todos los dominios de error y de cambios de estado
0
OP_STATE
Cambio de estado operativo
1
SYSTEM_ERR
Errores de sistema
2
HARDWARE_ERR
Errores de hardware
3
PROGRAM_ERR
Errores de programa
4
MOTION_ERR
Errores de movimiento
5
OPERATOR_ERROR
Errores de operador
6
IO_COM_ERR
Errores de E/S y comunicación
7
USER_DEF_ERR
Errores definidos por el usuario (elevados por RAPID)
8
OPTION_PROD_ERR
Errores de los productos opcionales
9
ARCWELD_ERR
Errores de la aplicación ArcWelding
11
SPOTWELD_ERR
Errores de la aplicación SpotWelding
12
PAINT_ERR
Errores de la aplicación Paint
13
PICKWARE_ERR
Errores de la aplicación Pickware
14
Características errdomain es un tipo de dato de alias de num y por tanto hereda sus características.
Información relacionada Descrito en:
212
Petición de una interrupción en caso de error
Instrucciones - IError
Números de errores
Guía del usuario - Mensajes del sistema y de error
Tipos de datos de alias
Características básicas - Tipos de datos
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
errnum Tipo de dato
errnum - Número de error Errnum se utiliza para describir todos los errores recuperables (no fatales) que se producen durante la ejecución del programa, como por ejemplo, la división por cero.
Descripción Si el robot detecta un error durante la ejecución 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 división por cero. Por tanto, se asignan valores diferentes a la variable de sistema ERRNO, del tipo type errnum, en función 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 ejecución del programa puede continuar de la forma adecuada. Los errores también pueden crearse desde el propio programa mediante la instrucción RAISE. Este tipo concreto de error puede detectarse en el gestor de errores mediante la especificación de un número de error (de 0 a 90 o reservado mediante la instrucción BookErrNo) como argumento de RAISE.
Ejemplos reg1 := reg2 / reg3; . ERROR IF ERRNO = ERR_DIVZERO THEN reg3 := 1; RETRY; ENDIF Si reg3 = 0, el robot detecta un error cuando se realiza la división. Sin embargo, es posible detectar y corregir el error mediante la asignación del valor 1 a reg3. A continuación, puede realizarse de nuevo la división y proseguir con la ejecución del programa. CONST errnum machine_error := 1; . IF di1=0 RAISE machine_error; . ERROR IF ERRNO=machine_error RAISE; Se produce un error en una máquina (lo cual se detecta a través de la señal de entrada di1). Se salta al gestor de errores de la rutina que, a su vez, llama al gestor de errores de la rutina desde la que se llamó a la rutina actual, que es posiblemente el lugar en el que se puede resolver el error. La constante machine_error se utiliza para informar al gestor de errores de qué tipo exacto de error se trata. Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
213
errnum Tipo de dato
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 ERR_ACC_TOO_LOW
ERR_ALRDYCNT ERR_ALRDY_MOVING ERR_AO_LIM ERR_ARGDUPCND ERR_ARGNAME ERR_ARGNOTPER ERR_ARGNOTVAR ERR_AXIS_ACT ERR_AXIS_IND ERR_AXIS_MOVING ERR_AXIS_PAR ERR_BWDLIMIT ERR_CALLIO_INTER ERR_CALLPROC
ERR_CFG_ILLTYPE ERR_CFG_LIMIT ERR_CFG_NOTFND ERR_CNTNOTVAR ERR_CNV_NOT_ACT ERR_CNV_CONNECT ERR_CNV_DROPPED
214
Causa del error Se ha especificado una aceleración o deceleración demasiado baja en las instrucciones PathAccLim o WorldAccLim La variable de interrupción ya está vinculada a una rutina TRAP El robot ya está en movimiento cuando se ejecuta una instrucción StartMove El valor de la señal analógica ScaleLag está fuera de límites en TriggIO, TriggEquip o TriggSpeed Existe más de un argumento condicional para el mismo parámetro El argumento es una expresión, no presente o de modificador al ejecutar ArgName El argumento no es una referencia a una variable persistente El argumento no es una referencia a una variable El eje no está activo El eje no es independiente El eje está en movimiento El eje indicado como parámetro de las instrucciones TestSign y SetCurrRef no es correcto Límite de StepBwdPath Una petición IOEnable o IODisable es interrumpida por otra petición a la misma unidad Error en una llamada a un procedimiento (no es un procedimiento) en tiempo de ejecución (con enlazamiento en tiempo de ejecución) Error de coincidencia de tipos en ReadCfgData, WriteCfgData Límite de datos - WriteCfgData No encontrado - ReadCfgData, WriteCfgData El objetivo de CONNECT no es una referencia a una variable El transportador no está activado La instrucción WaitWobj ya está activada El objeto esperado por la instrucción WaitWobj se ha caído
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
errnum Tipo de dato ERR_DEV_MAXTIME ERR_DIPLAG_LIM
ERR_DIVZERO ERR_EXCRTYMAX
Se alcanzó el tiempo límite al ejecutar una instrucción ReadBin, ReadNum o ReadStr Valor de DipLag demasiado grande en la instrucción TriggSpeed conectada al valor actual de TriggL/ TriggC/TriggJ División por cero Se ha superado el número máximo de reintentos
ERR_EXECPHR
Se ha intentado ejecutar una instrucción con un marcador de sustitución
ERR_FILEACC
El acceso a un archivo se realiza de forma incorrecta
ERR_FILEEXIST ERR_FILEOPEN ERR_FILNOTFND ERR_FNCNORET ERR_FRAME ERR_ILLDIM ERR_ILLQUAT
Un archivo ya existe No es posible abrir un archivo Archivo no encontrado No hay ningún valor de retorno Imposible calcular una nueva base de coordenadas Dimensiones de matriz incorrectas Se ha intentado utilizar una válvula de orientación (cuaternio) no válida Número de error de RAISE fuera de rango No hay más números de interrupción disponibles Se alcanzó el tiempo límite al ejecutar IODisable Se alcanzó el tiempo límite al ejecutar IODNGetAttr o IODNSetAttr Se alcanzó el tiempo límite al ejecutar IOEnable Error de E/S al ejecutar la instrucción Save El módulo de programa ya está cargado Sólo para uso interno de LoadId
ERR_ILLRAISE ERR_INOMAX ERR_IODISABLE ERR_IODN_TIMEOUT ERR_IOENABLE ERR_IOERROR ERR_LOADED ERR_LOADID_FATAL ERR_LOADID_RETRY ERR_LOADNO_INUSE ERR_LOADNO_NOUSE ERR_MAXINTVAL ERR_MODULE ERR_MSG_PENDING ERR_NAME_INVALID ERR_NEGARG ERR_NOTARR ERR_NOTEQDIM ERR_NOTINTVAL
Sólo para uso interno de LoadId La sesión de carga se está utilizando en StartLoad La sesión de carga no se está utilizando en CancelLoad El valor entero es demasiado grande Nombre de módulo incorrecto en la instrucción Save La unidad está ocupada El nombre de la unidad no existe o no se permite la desactivación de la unidad No se permiten argumentos negativos El dato no es una matriz La dimensión de la matriz utilizada al llamar a la rutina no coincide con sus parámetros No es un valor entero
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
215
errnum Tipo de dato ERR_NOTPRES ERR_OUTOFBND ERR_OVERFLOW ERR_PATH ERR_PATHDIST ERR_PID_MOVESTOP ERR_PID_RAISE_PP ERR_RANYBIN_CHK ERR_RANYBIN_EOF
ERR_RCVDATA ERR_REFUNKDAT ERR_REFUNKFUN ERR_REFUNKPRC
ERR_REFUNKTRP ERR_ROBLIMIT ERR_SC_WRITE ERR_SIGSUPSEARCH ERR_STRTOOLNG ERR_SYM_ACCESS ERR_TP_DIBREAK ERR_TP_MAXTIME ERR_UNIT_PAR ERR_UNKINO ERR_UNKPROC ERR_UNLOAD ERR_WAIT_MAXTIME ERR_WHLSEARCH 216
Se utiliza un parámetro, a pesar de que no se utilizó el argumento correspondiente en la llamada a la rutina El índice de la matriz está fuera de los límites permitidos Desbordamiento de reloj Falta la ruta de destino en la instrucción Save Distancia de recuperación excesiva para la instrucción StartMove Sólo para uso interno de LoadId Error en ParIdRobValid o ParIdPosValid Error de suma de comprobación detectado en la transferencia de datos con la instrucción ReadAnyBin Se ha detectado el final del archivo antes de que la instrucción ReadAnyBin lea todos los caracteres previstos Se ha intentado leer un dato no numérico con ReadNum Referencia a un objeto de datos completo desconocido Referencia a una función desconocida Referencia a un procedimiento desconocido en el momento del linkado o en tiempo de ejecución (enlazamiento en tiempo de ejecución) Referencia a una rutina TRAP desconocida El eje está fuera del área de trabajo o ha excedido los límites de al menos un eje acoplado Error de envío a un ordenador externo La señal ya tiene un valor positivo al comienzo del proceso de búsqueda Cadena demasiado larga Error de acceso de lectura o escritura del símbolo Una instrucción TPRead fue interrumpida por una entrada digital Se alcanzó el tiempo límite al ejecutar una instrucción TPRead El parámetro Mech_unit de TestSign y SetCurrRef es incorrecto Número de interrupción desconocido Referencia incorrecta a la sesión de carga de una instrucción WaitLoad Error de descarga en una instrucción UnLoad o WaitLoad Se alcanzó el tiempo límite al ejecutar una instrucción WaitDI o WaitUntil No hay ningún paro de búsqueda
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
errnum Tipo de dato
Características Errnum es un tipo de dato de alias de num y por tanto hereda sus características.
Información relacionada Descrito en: Recuperación en caso de error datos de alias
Resumen sobre RAPID - Recuperación en caso de error Características básicas - Recuperación en caso de error
Tipos de datos en general, tipos de
Características básicas - Tipos de datos
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
217
errnum Tipo de dato
218
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
errtype Tipo de dato
Advanced functions (Funciones avanzadas)
errtype - Tipo de error errtype (error type) se utiliza para especificar un tipo de error (su gravedad).
Descripción Los datos de tipo errtype representan el tipo (cambio de estado, advertencia, error) de un mensaje de error. Consulte Guía del usuario - Gestión de errores, Mensajes del sistema y de error para obtener más información.
Ejemplo VAR errdomain err_domain; VAR num err_number; VAR errtype err_type; VAR trapdata err_data; ... TRAP trap_err GetTrapData err_data; ReadErrData err_data, err_domain, err_number, err_type; ENDTRAP Cuando se detecta un error con la rutina TRAP trap_err, el dominio, el número y el tipo del error se almacenan en las variables adecuadas.
Datos predefinidos Puede usar las constantes predefinidas siguientes para especificar un tipo de error. Tabla 2 Tipos de error predefinidos Nombre
Tipo de error
Valor
TYPE_ALL
Cualquier tipo de error (cambio de estado, advertencia, error)
0
TYPE_STATE
Cambio de estado (mensaje operativo)
1
TYPE_WARN
Advertencia (por ejemplo un error recuperable de RAPID)
2
TYPE_ERR
Error
3
Características errtype es un tipo de dato de alias de num y por tanto hereda sus características. Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
219
errtype Advanced functions (Funciones avanzadas)
Tipo de dato
Información relacionada Descrito en: Petición de una interrupción en caso de error Instrucciones - IError
220
Números de errores
Guía del usuario - Mensajes del sistema y de error
Tipos de datos de alias
Características básicas - Tipos de datos
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
extjoint Tipo de dato
extjoint - Posición de los ejes externos Extjoint se utiliza para definir las posiciones de eje de los ejes externos, los posicionadores o los manipuladores de piezas de trabajo.
Descripción El robot puede controlar hasta seis ejes externos además de los seis ejes internos, es decir, un total de doce ejes. Los seis ejes externos tienen una denominación de tipo lógico: a, b, c, d, e, f. Estos ejes lógicos pueden conectarse a un eje físico y, en este caso, la conexión se define en los parámetros de sistema. Se utilizan datos de tipo extjoint para almacenar los valores de las posiciones de cada uno de los ejes lógicos del a al f. Para cada eje lógico conectado a un eje físico, la posición se define de la forma siguiente: - Para los ejes de rotación: la posición se define como la rotación en grados de la posición de calibración. - Para los ejes lineales: la posición se define como la distancia en mm existente respecto de la posición de calibración. Si un eje lógico no está conectado a uno físico, se utiliza el valor 9E9 como valor de posición, para indicar que el eje no está conectado. En el momento de la ejecución, se comprueban los datos de posición de los distintos ejes y se comprueba si está conectado el eje correspondiente. Si el valor de posición almacenado no cumple con la conexión actual del eje, se aplica lo siguiente: - Si la posición no está definida en los datos de posición (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 posición está definida en los datos de posición, a pesar de que el eje no está conectado, el valor no se tendrá en cuenta. Si se utiliza un offset del eje externo (instrucción EOffsOn o EOffsSet), las posiciones se especifican en el sistema de coordenadas ExtOffs.
Componentes eax_a
(eje externo a)
Tipo de dato: num
La posición del eje externo lógico “a”, expresada en grados o mm (en función del tipo de eje).
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
221
extjoint Tipo de dato eax_b
(eje externo b)
Tipo de dato: num
La posición del eje externo lógico “b”, expresada en grados o mm (en función del tipo de eje). ... eax_f
(eje externo f)
Tipo de dato: num
La posición del eje externo lógico “f”, expresada en grados o mm (en función del tipo de eje).
Ejemplo VAR extjoint axpos10 := [ 11, 12.3, 9E9, 9E9, 9E9, 9E9] ; La posición de un posicionador externo axpos10, se define de la forma siguiente: - Se cambia a 11 la posición del eje externo lógico “a”, expresada en grados o mm (en función del tipo de eje). - Se cambia a 12,3 la posición del eje externo lógico “b”, expresada en grados o mm (en función del tipo de eje). - Los ejes del c al f permanecen sin definir.
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 >
Información relacionada Descrito en:
222
Datos de posición
Tipos de datos - robtarget
Sistema de coordenadas ExtOffs
Instrucciones - EOffsOn
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
intnum Tipo de dato
intnum - Identidad de interrupción Intnum (número de interrupción) se utiliza para identificar a una interrupción.
Descripción Cuando se conecta una variable de tipo intnum a una rutina TRAP, recibe un valor específico que identifica a la interrupción. A continuación, la variable se utiliza en todas las operaciones realizadas con la interrupción, por ejemplo, al pedir o desactivar una interrupción. Es posible conectar más de una identidad de interrupción a una misma rutina TRAP. Por tanto, la variable de sistema INTNO puede usarse en las rutinas TRAP para determinar el tipo de interrupción que tiene lugar.
Ejemplos VAR intnum feeder_error; . CONNECT feeder_error WITH correct_feeder; ISignalDI di1, 1, feeder_error; Se genera una interrupción 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 interrupción 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 interrupción se ha producido. Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
223
intnum Tipo de dato
Limitaciones El número máximo de variables activas del tipo intnum que pueden existir en un momento determinado (entre CONNECT y IDelete) está limitado a 40. El número máximo de interrupciones que puede albergar la cola de ejecución de rutinas TRAP en un momento determinado está limitado a 30.
Características Intnum es un tipo de dato de alias de num y por tanto hereda sus propiedades.
Información relacionada Descrito en:
224
Resumen de interrupciones
Resumen sobre RAPID Interrupciones
Tipos de datos de alias
Características básicas - Tipos de datos
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
iodev Tipo de dato
iodev - Canales serie y archivos Iodev (dispositivo de E/S) se utiliza para canales serie, como impresoras y archivos.
Descripción Los datos de tipo iodev contienen una referencia a un archivo o a un canal serie. Pueden conectarse a la unidad física mediante la instrucción Open y utilizarse a continuación 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.
Características Iodev es un tipo de dato sin valor.
Información relacionada Descrito en: Comunicación a través de canales serie
Resumen sobre RAPID Comunicación
Configuración de canales serie
Guía del usuario - Parámetros del sistema
Características de los tipos de datos sin valor
Características básicas - Tipos de datos
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
225
iodev Tipo de dato
226
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
jointtarget Tipo de dato
jointtarget - Datos de posición de eje Jointtarget se utiliza para definir la posición a la que se moverán los ejes del robot y los ejes externos al ejecutar una instrucción MoveAbsJ.
Descripción 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
Posiciones de eje de los ejes del robot, en grados. La posición del eje se define como la rotación en grados del eje (brazo) correspondiente en sentido positivo o negativo a partir de la posición de calibración del eje. extax
(ejes externos)
Tipo de dato: extjoint
La posición de los ejes externos. La posición se define de la forma siguiente para cada eje independiente (eax_a, eax_b ... eax_f): - Para los ejes de rotación, la posición se define como la rotación en grados de la posición de calibración. - Para los ejes lineales, la posición se define como la distancia en mm existente respecto de la posición de calibración. Los ejes externos eax_a ... son ejes lógicos. La relación existente entre el número lógico del eje y el número físico del eje se define en los parámetros del sistema. El valor 9E9 se utiliza para definir los ejes que no están conectados. Si los ejes definidos en los datos de posición son distintos de los ejes que están conectados realmente en el momento de la ejecución del programa, ocurre lo siguiente: - Si la posición no está definida en los datos de posición (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 posición está definida en los datos de posición, a pesar de que el eje no está conectado, el valor no se tendrá en cuenta.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
227
jointtarget Tipo de dato
Ejemplos CONST jointtarget calib_pos := [ [ 0, 0, 0, 0, 0, 0], [ 0, 9E9, 9E9, 9E9, 9E9, 9E9] ]; En el caso del sistema IRB2400, la posición de calibración normal se define en calib_pos con el tipo de dato jointtarget. La posición 0 (grados o mm) de calibración normal se define también para el eje externo lógico a. Los ejes externos del b al f permanecen sin definir.
Estructura < dataobject of jointtarget > < robax of robjoint > < rax_1 of num > < rax_2 of num > < rax_3 of num > < rax_4 of num > < rax_5 of num > < rax_6 of num > < extax of extjoint > < eax_a of num > < eax_b of num > < eax_c of num > < eax_d of num > < eax_e of num > < eax_f of num >
Información relacionada Descrito en:
228
Movimiento a una posición de eje
Instrucciones - MoveAbsJ
Instrucciones de posicionamiento
Resumen sobre RAPID - Movimiento
Configuración de los ejes externos
Guía del usuario - Parámetros del sistema
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
loaddata Tipo de dato
loaddata - Datos de carga Loaddata se utiliza para describir las cargas fijadas a la interfaz mecánica del robot (la brida de montaje del robot). Los datos de carga suelen definir la carga útil (la carga de la pinza se define con la instrucción 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.
Descripción Se utilizan cargas especificadas para configurar un modelo de la dinámica del robot, de forma que sus movimientos puedan controlarse de la mejor forma posible. Es importante definir siempre la carga real de la herramienta y, si se usa, también la carga útil del robot. Una definición incorrecta de los datos de carga puede dar lugar a la sobrecarga de la estructura mecánica del robot. Cuando se especifican datos de carga incorrectos, este hecho suele tener las consecuencias siguientes: - Si el valor de los datos de carga especificados es mayor que el valor de la carga real: -> El robot no funcionará a su capacidad máxima -> Peor exactitud de la trayectoria, con riesgo de sobrepasar posiciones -> Riesgo de sobrecarga de la estructura mecánica - 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 mecánica La carga útil se conecta y desconecta mediante la instrucción GripLoad.
Componentes mass
Tipo de dato: num El peso de la carga en kilos.
cog
(centro de gravedad)
Tipo de dato: pos
El centro de gravedad de la carga de una herramienta, expresado con el sistema de coordenadas de la muñeca. Si se utiliza una herramienta estacionaria, se trata del centro de gravedad de la herramienta que sostiene el objeto de trabajo. El centro de gravedad de la carga útil, expresado con el sistema de coordenadas de la herramienta. Si se utiliza una herramienta estacionaria, se utiliza el sistema de coordenadas del objeto.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
229
loaddata Tipo de dato aom
(ejes de momento)
Tipo de dato: orient
Carga de la herramienta (consulte la Figura 11) La orientación del sistema de coordenadas definido por los ejes de inercia de la carga de la herramienta. Expresado en el sistema de coordenadas de la muñeca como cuaternios (q1, q2, q3, q4). Si se utiliza una herramienta estacionaria, se trata de los ejes de inercia de la herramienta que sostiene el objeto de trabajo. La orientación del sistema de coordenadas de la herramienta debe coincidir con la orientación del sistema de coordenadas de la muñeca. Siempre debe tener los valores 1, 0, 0, 0. Carga útil (consulte las Figuras 1 y 2) La orientación del sistema de coordenadas definido por los ejes de inercia de la carga útil. Expresado en el sistema de coordenadas de la herramienta como cuaternios (q1, q2, q3, q4). Si se utiliza una herramienta estacionaria, se utiliza el sistema de coordenadas del objeto. La orientación del sistema de coordenadas de la carga útil debe coincidir con la orientación del sistema de coordenadas de la muñeca. Siempre debe tener los valores 1, 0, 0, 0. A causa de esta limitación, el mejor método es definir la orientación del sistema de coordenadas de la herramienta (base de coordenadas de la herramienta) para que coincida con la orientación del sistema de coordenadas de la muñeca.
Sistema de coordenadas de la carga de la herramienta Y
Z
IY El sistema de coordenadas de la muñeca Ejes de inercia de la carga de la herramienta IZ
Y’ Z’
X
IX TCP
Sistema de coordenadas de la herramienta X’ IY’
IX’
IZ’ Sistema de coordenadas de la carga útil Ejes de inercia de la carga útil
Figura 11 Restricción de la orientación de los sistemas de coordenadas de la carga de la herramienta y de la carga útil.
230
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
loaddata Tipo de dato
Sistema de coordenadas de la muñeca Y Pinza
Z
Sistema de coordenadas de la herramienta
Y Z Y’ X
Z’ X
Sistema de coordenadas de la carga útil Ejes de inercia de la carga útil
Carga útil X’
El centro de gravedad de la carga útil
Figura 12 El centro de gravedad y los ejes de inercia de la carga útil
ix
(inercia x)
Tipo de dato: num
El momento de inercia de la carga alrededor del eje x del sistema de coordenadas de la carga de la herramienta o de la carga útil, en kgm2. La definición correcta de los momentos de inercia permitirá una utilización óptima del planificador de trayectorias y un mejor control de los ejes. Esto puede resultar especialmente importante a la hora de manejar grandes planchas de metal, etc. Todos los momentos de inercia de la inercia ix, iy e iz igual a 0 kgm2 implican una masa puntual. Normalmente, sólo es necesario definir momentos de inercia cuando la distancia existente entre la brida de montaje y el centro de gravedad es menor que el tamaño de la carga (consulte la Figura 13).
Distancia
Carga útil x Dimensiones
Figura 13 Normalmente, es necesario definir el momento de inercia cuando la distancia es menor que el tamaño de la carga.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
231
loaddata Tipo de dato iy
(inercia y)
Tipo de dato: num
El momento de inercia de la carga alrededor del eje y, expresado en kgm2. Para obtener más información, consulte ix. iz
(inercia z)
Tipo de dato: num
El momento de inercia de la carga alrededor del eje z, expresado en kgm2. Para obtener más información, consulte ix.
Ejemplos PERS loaddata piece1 := [ 5, [50, 0, 50], [1, 0, 0, 0], 0, 0, 0]; La carga útil de la Figura 11 se describe con los valores siguientes: - 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; Conexión de la carga útil, piece1, especificada en el momento en que el robot sujeta la carga piece1. Reset gripper; WaitTime 0.3; GripLoad load0; Desconexión de la carga útil, especificada en el momento en que el robot suelta una carga útil.
Limitaciones La carga útil sólo 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 instrucción GripLoad deben ser sólo del tipo persistente completo (ni elementos de matriz ni componentes de registro).
232
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
loaddata Tipo de dato
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 instrucción GripLoad para desconectar una carga útil. La carga load0 está siempre disponible desde el programa, pero no puede ser modificada (está almacenada en el módulo de sistema BASE). PERS loaddata load0 := [ 0.001, [0, 0, 0.001], [1, 0, 0, 0],0, 0 ,0 ];
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 >
Información relacionada Descrito en: Sistemas de coordenadas
Principios de movimiento y E/S Sistemas de coordenadas
Definición de cargas de herramienta
Tipos de datos - tooldata
Activación de una carga útil
Instrucciones - GripLoad
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
233
loaddata Tipo de dato
234
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
loadsession Tipo de dato
loadsession - Programar una sesión de carga Loadsession se utiliza para definir distintas sesiones de carga de módulos de programa de RAPID.
Descripción Los datos de tipo loadsession se utilizan en las instrucciones StartLoad y WaitLoad para identificar la sesión de carga. Loadsession sólo contiene una referencia a la sesión de carga.
Características Loadsession es un tipo de dato sin valor y no puede utilizarse en las operaciones basadas en valores.
Información relacionada Descrito en: Carga de módulos de programa durante la ejecución
Instrucciones - StartLoad, WaitLoad
Características de los tipos de datos sin valor
Características básicas Tipos de datos
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
235
loadsession Tipo de dato
236
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
mecunit Tipo de dato
mecunit - Unidad mecánica Mecunit se utiliza para definir las distintas unidades mecánicas que pueden controlarse y utilizarse desde el robot y el programa. Los nombres de las unidades mecánicas se definen en los parámetros del sistema y, por tanto, no debe definirlos en el programa.
Descripción Los datos del tipo mecunit sólo contienen una referencia a la unidad mecánica.
Limitaciones No debe definir los datos de tipo mecunit en el programa. Sin embargo, sí es posible utilizarlos como parámetros al declarar una rutina.
Datos predefinidos Las unidades mecánicas definidas en los parámetros del sistema están siempre disponibles desde el programa (datos instalados).
Características Mecunit es un tipo de dato sin valor. Esto significa que los datos de este tipo no son compatibles con operaciones basadas en valores.
Información relacionada Descrito en: Activación y desactivación de unidades mecánicas Instrucciones ActUnit, DeactUnit Configuración de unidades mecánicas
Guía del usuario Parámetros del sistema
Características de los tipos de datos sin valor
Características básicas Tipos de datos
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
237
mecunit Tipo de dato
238
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
motsetdata Tipo de dato
motsetdata - Datos de parámetros de movimiento Motsetdata se utiliza para definir un conjunto de parámetros de movimiento que afectan a todas las instrucciones de posicionamiento del programa: - Velocidad máxima y ajuste de velocidad - Datos de aceleración - Comportamiento cerca de puntos singulares - Gestión de distintas configuraciones de robot - Ajuste de la resolución de las trayectorias - Supervisión del movimiento - Limitación de la aceleración y deceleración - Reorientación de la herramienta durante trayectorias circulares Normalmente, no es necesario utilizar este tipo de dato ya que estos parámetros sólo pueden cambiarse mediante las instrucciones VelSet, AccSet, SingArea, ConfJ, ConfL, PathResol, MotionSup, PathAccLim, CirPathMode y WorldAccLim. Los valores actuales de estos parámetros de movimiento están disponibles a través de la variable de sistema C_MOTSET.
Descripción Los parámetros de movimiento actuales (almacenados en la variable de sistema C_MOTSET) afectan a todos los movimientos.
Componentes vel.oride
Tipo de dato: veldata/num
Velocidad como porcentaje de la velocidad programada. vel.max
Tipo de dato: veldata/num
Velocidad máxima en mm/seg. acc.acc
Tipo de dato: accdata/num
Aceleración y deceleración como porcentaje de los valores normales. acc.ramp
Tipo de dato: accdata/num
La proporción en que la aceleración y deceleración aumentan como porcentaje de los valores normales.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
239
motsetdata Tipo de dato sing.wrist
Tipo de dato: singdata/bool
La orientación hasta la cual se permite que la herramienta se desvíe levemente, para prevenir una singularidad de muñeca. sing.arm
Tipo de dato: singdata/bool
La orientación hasta la cual se permite que la herramienta se desvíe levemente, para prevenir una singularidad de brazo (no implementada). sing.base
Tipo de dato: singdata/bool
La orientación de la que no debe desviarse la herramienta. conf.jsup
Tipo de dato: confsupdata/bool
La supervisión de la configuración de los ejes está activa durante el movimiento de los ejes. conf.lsup
Tipo de dato: confsupdata/bool
La supervisión de la configuración de los ejes está activa durante el movimiento lineal y circular. conf.ax1
Tipo de dato: confsupdata/num
Desviación máxima permitida en grados para el eje 1 (no se utiliza en esta versión). conf.ax4
Tipo de dato: confsupdata/num
Desviación máxima permitida en grados para el eje 4 (no se utiliza en esta versión). conf.ax6
Tipo de dato: confsupdata/num
Desviación máxima permitida en grados para el eje 6 (no se utiliza en esta versión). pathresol
Tipo de dato: num
El ajuste actual como porcentaje de la resolución de trayectoria configurada. motionsup
Tipo de dato: bool
Conmutar el estado de la función de supervisión de movimientos de RAPID (TRUE = Activada y FALSE = Desactivada). tunevalue
Tipo de dato: num
Ajuste actual de RAPID como porcentaje del valor de ajuste configurado para la función de supervisión de movimientos. acclim
Tipo de dato: bool
Limitación de aceleración de la herramienta a lo largo de la trayectoria. (TRUE = Con limitación y FALSE = Sin limitación). 240
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
motsetdata Tipo de dato accmax
Tipo de dato: num
Limitación de aceleración del TCP en m ⁄ s 2 . Si acclim tiene el valor FALSE, el valor es siempre -1. decellim
Tipo de dato: bool
Limitación de deceleración de la herramienta a lo largo de la trayectoria. (TRUE = Con limitación y FALSE = Sin limitación). decelmax
Tipo de dato: num
Limitación de deceleración del TCP en m ⁄ s 2 . Si decellim tiene el valor FALSE, el valor es siempre -1. cirpathreori
Tipo de dato: num
Reorientación de la herramienta durante trayectorias circulares: 0 = Método estándar con interpolación en la base de coordenadas de la trayectoria 1 = Método modificado con interpolación en la base de coordenadas del objeto 2 = Método modificado con orientación programada de la herramienta en CirPoint worldacclim
Tipo de dato: bool
Limitación de aceleración en el sistema de coordenadas mundo. (TRUE = Con limitación y FALSE = Sin limitación). worldaccmax
Tipo de dato: num
Limitación de aceleración en el sistema de coordenadas mundo en m ⁄ s 2 . Si worldacclim tiene el valor FALSE, el valor es siempre -1.
Limitaciones Sólo y sólo 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 Se ejecutan partes distintas del programa en función del ajuste de velocidad actual. Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
241
motsetdata Tipo de dato
Datos predefinidos C_MOTSET describe los parámetros de movimiento actuales del robot y está siempre disponible desde el programa (datos instalados). Por otro lado, C_MOTSET sólo puede modificarse mediante un conjunto de instrucciones, no mediante asignación. Los valores predeterminados siguientes para los parámetros de movimiento se establecen: - En los arranques en frío - Cuando se carga un nuevo programa - Cuando se inicia la ejecución del programa desde el principio PERS motsetdata C_MOTSET := [ [ 100, 500 ], [ 100, 100 ], [ FALSE, FALSE, TRUE ], [ TRUE, TRUE, 30, 45, 90], 100 , TRUE, 100, FALSE, -1, FALSE, -1, 0, FALSE, -1];
242
-> veldata -> accdata -> singdata -> confsupdata -> resolución de la trayectoria -> motionsup -> tunevalue -> acclim -> accmax -> decellim -> decelmax -> cirpathreori -> worldacclim -> worldaccmax
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
motsetdata Tipo de dato
Estructura < oride of num > < max of num > < acc of num > < ramp of num > < wrist of bool > < arm of bool > < base of bool > < jsup of bool > < ax1 of num > < ax4 of num > < ax6 of num >
-> Afectado por la instrucción VelSet -> Afectado por la instrucción AccSet -> Afectado por la instrucción SingArea
-> Afectado por las instrucciones ConfJ y ConfL
-> Afectado por la instrucción PathResol -> Afectado por la instrucción MotionSup -> Afectado por la instrucción MotionSup -> Afectado por la instrucción PathAccLim -> Afectado por la instrucción PathAccLim -> Afectado por la instrucción PathAccLim -> Afectado por la instrucción PathAccLim -> Afectado por la instrucción CirPathMode -> Afectado por la instrucción WorldAccLim -> Afectado por la instrucción WorldAccLim
Información relacionada Descrito en: Instrucciones para el establecimiento de parámetros de movimiento
Resumen sobre RAPID Parámetros de movimiento
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
243
motsetdata Tipo de dato
244
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
num Tipo de dato
num - Valores numéricos (registros) Num se utiliza con valores numéricos, como por ejemplo, contadores.
Descripción El valor del tipo de dato num puede ser: - Un entero, por ejemplo -5 - Un número con decimales, por ejemplo 3,45 También 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 números con decimales son sólo números 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 números con decimales, el resultado también será un número con decimales, es decir, no un entero exacto. Por ejemplo
a := 10; b := 5; IF a/b=2 THEN ...
Dado que el resultado de a/b no es un entero, esta condición no tiene por qué cumplirse.
Ejemplo VAR num reg1; . reg1 := 3; Se asigna a reg1 el valor 3. a := 10 DIV 3; b := 10 MOD 3; División entera en la que se asigna a a un entero (=3) y a b el resto (=1).
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
245
num Tipo de dato
Datos predefinidos La constante pi (π) ya está definida en el módulo de sistema BASE. CONST num pi := 3.1415926; Las constantes EOF_BIN y EOF_NUM ya están definidas en el sistema. CONST num EOF_BIN := -1; CONST num EOF_NUM := 9.998E36;
Información relacionada Descrito en:
246
Expresiones numéricas
Características básicas - Expresiones
Operaciones con valores numéricos
Características básicas - Expresiones
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
o_jointtarget Tipo de dato
o_jointtarget - Datos originales de posiciones de ejes o_jointtarget (objetivo original de ejes) se utiliza en combinación con la función Absolute Limit Modpos. Cuando se utiliza esta función para modificar una posición, la posición original se almacena como datos del tipo o_jointtarget.
Descripción Si la función Absolute Limit Modpos se activa y se modifica una posición con nombre en una instrucción de movimiento mediante la función Modpos, se guarda la posición 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 después 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 cuestión están dentro de los límites respecto del punto programado original. La convención de asignación 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 posición de los ejes externos.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
247
o_jointtarget Tipo de dato
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 >
Información relacionada Descrito en:
248
Datos de posición
Tipos de datos - Jointtarget
Configuración de Limit Modpos
Guía del usuario Parámetros del sistema
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
o_robtarget Tipo de dato
o_robtarget - Datos de posición originales o_robtarget (objetivo original del robot) se utiliza en combinación con la función Absolute Limit Modpo. Cuando se utiliza esta función para modificar una posición, la posición original se almacena como datos del tipo o_robtarget.
Descripción Si la función Absolute Limit Modpos se activa y se modifica una posición con nombre en una instrucción de movimiento mediante la función Modpos, se guarda la posición programada original. Ejemplo de programa antes de Modpos: 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; El mismo programa después de ModPos. En él, el punto p50 se corrige a 502 en la dirección x: 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; El punto original programado queda guardado en o_p50 (con el tipo de dato o_robtarget) y el punto modificado se guarda en p50 (con el tipo de dato robtarget). Al guardar el punto programado original, el robot puede comprobar que los valores Modpos posteriores obtenidos para el punto en cuestión están dentro de los límites respecto del punto programado original. La convención de asignación 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.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
249
o_robtarget Tipo de dato
Componentes trans
(traslación)
Tipo de dato: pos
La posición (x, y, z) del punto central de la herramienta, expresada en mm. rot
(rotación)
Tipo de dato: orient
La orientación de la herramienta, expresada en forma de un cuaternio (q1, q2, q3 y q4). robconf
(configuración del robot)
Tipo de dato: confdata
La configuración de ejes del robot (cf1, cf4, cf6 y cfx). extax
(ejes externos)
Tipo de dato: extjoint
La posición de los ejes externos.
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 >
250
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
o_robtarget Tipo de dato
Información relacionada Descrito en: Datos de posición
Tipos de datos - Robtarget
Configuración de Limit Modpos
Guía del usuario Parámetros del sistema
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
251
o_robtarget Tipo de dato
252
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
opnum Tipo de dato
opnum - Operador de comparación opnum se utiliza para representar un operador de comparación en argumentos entregados a las funciones o instrucciones de RAPID.
Descripción La constante opnum se ha diseñado para definir el tipo de comparación al comprobar valores en las instrucciones genéricas.
Ejemplo TriggCheckIO checkgrip, 100, airok, EQ, 1, intno1;
Datos predefinidos Se han predefinido las constantes simbólicas siguientes para el tipo de dato opnum. Puede usarlas para definir el tipo de comparación utilizado, por ejemplo en la instrucción TriggCheckIO. Valor
Constante simbólica
Comentario
1
LT
Menor que
2
LTEQ
Menor que o igual a
3
EQ
Igual a
4
NOTEQ
Distinto de
5
GTEQ
Mayor que o igual a
6
GT
Mayor que
Características opnum es un tipo de dato de alias de num y por tanto hereda sus características.
Información relacionada Descrito en: Tipos de datos en general, tipos de datos de alias
Características básicas - Tipos de datos
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
253
opnum Tipo de dato
254
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
orient Tipo de dato
orient - Orientación Orient se utiliza para orientaciones (por ejemplo la orientación de una herramienta) y rotaciones (por ejemplo la rotación de un sistema de coordenadas).
Descripción La orientación se describe en forma de un cuaternio compuesto por cuatro elementos: q1, q2, q3 y q4. Para obtener más información acerca de cómo calcular estos elementos, consulte la información siguiente.
Componentes q1
Tipo de dato: num Cuaternio 1.
q2
Tipo de dato: num Cuaternio 2.
q3
Tipo de dato: num Cuaternio 3.
q4
Tipo de dato: num Cuaternio 4.
Ejemplo VAR orient orient1; . orient1 := [1, 0, 0, 0]; Se asigna a la orientación orient1 el valor q1=1, q2-q4=0. Esto equivale a ninguna rotación.
Limitaciones La orientación debe estar normalizada, es decir, la suma de los cuadrados debe ser igual a 1: q 12 + q 22 + q 32 + q 42 = 1
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
255
orient Tipo de dato
¿Qué es un cuaternio? La orientación de un sistema de coordenadas (por ejemplo el de una herramienta) puede describirse mediante una matriz de rotación que describe la dirección de los ejes del sistema de coordenadas respecto de un sistema de referencia (consulte la Figura 14). z
z x
x
Sistema de coordenadas de referencia
y
Sistema de coordenadas girado
y
Figura 14 La rotación 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: x = (x1, x2, x3) y = (y1, y2, y3) z = (z1, z2, z3) Esto significa que el componente x del vector x del sistema de coordenadas de referencia será x1, el componente y será x2, etc. Estos tres vectores pueden reunirse en una matriz, una matriz de rotación, en la que cada uno de los vectores compone una de las columnas:
x1 y1 x2 y2
z1 z2
x3 y3 z3 Un cuaternio es sólo una forma más concisa de referirse a esta matriz de rotación. Los cuaternios se calculan partiendo de los elementos de la matriz de rotación:
256
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
orient Tipo de dato
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 dirección 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). ¿Cómo se define la orientación de la herramienta en los datos de posición (robtarget)?. La orientación de la herramienta en una posición programada suele estar relacionada con el sistema de coordenadas del objeto de trabajo utilizado. En este ejemplo no se utiliza ningún objeto de trabajo y el sistema de coordenadas de la base es igual al sistema de coordenadas mundo. Por tanto, la orientación está relacionada con el sistema de coordenadas de la base.
Z´ X´ Z
X Figura 15 La dirección de una herramienta acorde con el ejemplo 1.
En este caso, los ejes estarán relacionados de la forma siguiente: - x’ = -z = (0, 0, -1) - y’ = y = (0, 1, 0) - z’ = x = (1, 0, 0) Esto corresponde a la matriz de rotación siguiente:
0 0 1 0 1 0 –1 0 0
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
257
orient Tipo de dato La matriz de rotación proporciona el cuaternio correspondiente:
0+1+0+1 2 q1 = ----------------------------------- = ------- = 0,707 2 2 0–1–0+1 q2 = ---------------------------------- = 0 2 1–0–0+1 2 q3 = ---------------------------------- = ------- = 0,707 2 2
sign q3 = sign (1+1) = +
0–0–1+1 q4 = ---------------------------------- = 0 2
Ejemplo 2 La dirección de la herramienta gira 30o alrededor de los ejes X’ y Z’ respecto del sistema de coordenadas de la muñeca (consulte la Figura 15). ¿Cómo se define la orientación de la herramienta en los datos de la herramienta?. Z X
Z´ X´
Figura 16 La dirección de una herramienta acorde con el ejemplo 2.
En este caso, los ejes estarán relacionados de la forma siguiente: - x’ = (cos30o, 0, -sin30o) - x’ = (0, 1, 0) - x’ = (sin30o, 0, cos30o) Esto corresponde a la matriz de rotación siguiente:
258
cos 30 ° 0 sin 30 ° 0 1 0 – sin 30 ° 0 cos 30 °
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
orient Tipo de dato La matriz de rotación proporciona el cuaternio correspondiente:
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 2
sign q3 = sign (sin30o+sin30o) = +
cos 30° – cos 30° – 1 + 1 q4 = ---------------------------------------------------------------- = 0 2
Estructura
Información relacionada Descrito en: Operaciones con orientaciones
Características básicas - Expresiones
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
259
orient Tipo de dato
260
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
pos Tipo de dato
pos - Posiciones (sólo X, Y y Z) Pos se utiliza para posiciones (sólo para X, Y y Z). El tipo de dato robtarget se utiliza con las posiciones del robot, incluida la orientación de la herramienta y la configuración de los ejes.
Descripción Los datos de tipo pos describen las coordenadas de una posición: X, Y y Z.
Componentes x
Tipo de dato: num El valor X de la posición.
y
Tipo de dato: num El valor Y de la posición.
z
Tipo de dato: num El valor Z de la posición.
Ejemplos VAR pos pos1; . pos1 := [500, 0, 940]; Se asigna a la posición pos1 el valor: X=500 mm, Y=0 mm, Z=940 mm. pos1.x := pos1.x + 50; Se traslada la posición de pos1 50 mm en la dirección X.
Estructura
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
261
pos Tipo de dato
Información relacionada Descrito en:
262
Operaciones con posiciones
Características básicas - Expresiones
Posición del robot incluida su orientación
Tipos de datos - robtarget
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
pose Tipo de dato
pose - Transformaciones de coordenadas Pose se utiliza para cambiar de un sistema de coordenadas a otro.
Descripción Los datos de tipo pose describen cómo se desplaza y gira un sistema de coordenadas alrededor de otro sistema de coordenadas. Por ejemplo, estos datos pueden describir cómo está situado y orientado el sistema de coordenadas de la herramienta respecto del sistema de coordenadas de la muñeca.
Componentes trans
(traslación)
Tipo de dato: pos
El desplazamiento de posición (x, y, z) del sistema de coordenadas. rot
(rotación)
Tipo de dato: orient
La rotación del sistema de coordenadas.
Ejemplo VAR pose frame1; . frame1.trans := [50, 0, 40]; frame1.rot := [1, 0, 0, 0]; Se asigna a la transformación de coordenadas frame1 un valor que corresponde a un desplazamiento en su posición, donde X=50 mm, Y=0 mm, Z=40 mm. Sin embargo, no hay ninguna rotación.
Estructura
Información relacionada Descrito en: ¿Qué es un cuaternio?
Tipos de datos - orient
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
263
pose Tipo de dato
264
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
progdisp Tipo de dato
progdisp - Desplazamiento de programa Progdisp se utiliza para almacenar el desplazamiento de programa actual de los ejes del robot y los ejes externos. Normalmente, no es necesario utilizar este tipo de dato ya que sólo puede cambiarse mediante las instrucciones PDispSet, PDispOn, PDispOff, EOffsSet, EOffsOn y EOffsOff. Sólo se utiliza para almacenar temporalmente el valor actual para un uso posterior.
Descripción Los valores actuales del desplazamiento de programa están disponibles a través de la variable de sistema C_PROGDISP. Para obtener más información, 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 traslación y una orientación. La traslación 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 rotación, 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 posición buscada. A continuación, se desactiva temporalmente almacenando el valor en la variable progdisp1 y se reactiva posteriormente mediante las instrucciones PDispSet y EOffsSet. Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
265
progdisp Tipo de dato
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 sólo puede modificarse mediante un conjunto de instrucciones, no mediante asignación.
Estructura < dataobject of progdisp >
< 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 >
Información relacionada Descrito en:
266
Instrucciones para la definición de desplazamientos de programa
Resumen sobre RAPID Parámetros de movimiento
Sistemas de coordenadas
Principios de movimiento y E/S Sistemas de coordenadas
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
robjoint Tipo de dato
robjoint - Posición de eje de los ejes del robot Robjoint se utiliza para definir la posición en grados de los ejes del robot.
Descripción Los datos de tipo robjoint se utilizan para almacenar posiciones de eje en grados para los ejes de robot del 1 al 6. La posición de un eje se define como la rotación en grados del eje (brazo) correspondiente, en sentido positivo o negativo respecto de la posición de calibración del eje.
Componentes rax_1
(eje 1 del robot)
Tipo de dato: num
La posición del eje 1 del robot, en grados, respecto de la posición de calibración. ... rax_6
(eje 6 del robot)
Tipo de dato: num
La posición del eje 6 del robot, en grados, respecto de la posición de calibración.
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 >
Información relacionada Descrito en: Datos de posición de ejes
Tipos de datos - jointtarget
Movimiento a una posición de eje
Instrucciones - MoveAbsJ
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
267
robjoint Tipo de dato
268
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
robtarget Tipo de dato
robtarget - Datos de posición Robtarget (objetivo de robot) se utiliza para definir la posición del robot y de los ejes externos.
Descripción Los datos de posición se utilizan en las instrucciones de posicionamiento para indicar la posición hacia la que deben desplazarse los ejes del robot y los ejes externos. Debido a que el robot puede alcanzar una misma posición con métodos diferentes, también se especifica la configuración de los ejes. De esta forma, se definen los valores de los ejes si por algún motivo resultan ambiguas, por ejemplo en los casos siguientes: - Si el robot se encuentra en una posición avanzada o retrasada - Si el eje 4 está orientado hacia abajo o hacia arriba - Si el eje 6 se encuentra en una revolución negativa o positiva La posición se define partiendo del sistema de coordenadas del objeto de trabajo, incluidos los posibles desplazamientos de programa. Si la posición se programa con un objeto de trabajo distinto del utilizado en la instrucción, el robot no se moverá de la forma esperada. Asegúrese de usar el mismo objeto de trabajo que el utilizado al programar las instrucciones de posicionamiento. Un uso incorrecto puede causar accidentes o daños en el robot o en otros equipos.
Componentes trans
(traslación)
Tipo de dato: pos
La posición (x, y, z) del punto central de la herramienta, expresado en mm. La posición se especifica respecto del sistema de coordenadas del objeto actual, incluido el desplazamiento de programa. Si no se ha especificado ningún objeto de trabajo, se utiliza el sistema de coordenadas mundo. rot
(rotación)
Tipo de dato: orient
La orientación de la herramienta, expresada en forma de un cuaternio (q1, q2, q3 y q4). La orientación se especifica respecto del sistema de coordenadas del objeto actual, incluido el desplazamiento de programa. Si no se ha especificado ningún objeto de trabajo, se utiliza el sistema de coordenadas mundo.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
269
robtarget Tipo de dato robconf
(configuración del robot)
Tipo de dato: confdata
La configuración de ejes del robot (cf1, cf4, cf6 y cfx). Esto se define en forma del cuarto de revolución actual de los ejes 1, 4 y 6. El primer cuarto de revolución positivo, de 0 a 90 o, se define como 0. El componente cfx sólo se utiliza en el modelo de robot IRB5400. Para obtener más información, consulte el tipo de dato confdata. extax
(ejes externos)
Tipo de dato: extjoint
La posición de los ejes externos. La posición se define de la forma siguiente para cada eje independiente (eax_a, eax_b ... eax_f): - Para los ejes de rotación, la posición se define como la rotación en grados de la posición de calibración. - Para los ejes lineales, la posición se define como la distancia en mm existente respecto de la posición de calibración. Los ejes externos eax_a ... son ejes lógicos. La relación existente entre el número lógico del eje y el número físico del eje se define en los parámetros del sistema. El valor 9E9 se utiliza para definir los ejes que no están conectados. Si los ejes definidos en los datos de posición son distintos de los ejes que están conectados realmente en el momento de la ejecución del programa, ocurre lo siguiente: - Si la posición no está definida en los datos de posición (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 posición está definida en los datos de posición, 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 define la posición p15 de la forma siguiente: - La posición del robot: x = 600, y = 500 y z = 225,3 mm en el sistema de coordenadas de objeto. - La orientación de la herramienta en la misma dirección que el sistema de coordenadas del objeto. - La configuración de ejes del robot es la siguiente: ejes 1 y 4 en la posición de 90 a 180o, eje 6 en la posición de 0 a 90o. - La posición de los ejes externos lógicos a y b, expresada en grados o mm (en función del tipo de eje). Los ejes de c a f permanecen sin definir. 270
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
robtarget Tipo de dato VAR robtarget p20; ... p20 := CRobT(); p20 := Offs(p20,10,0,0); Se establece la posición p20 en la misma posición que la posición actual del robot, mediante una llamada a la función CRobT. A continuación, se mueve la posición 10 mm en la dirección x.
Limitaciones Cuando se utiliza la función de edición configurable Absolute Limit Modpos, el número 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 >
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
271
robtarget Tipo de dato
Información relacionada Descrito en:
272
Instrucciones de posicionamiento
Resumen sobre RAPID - Movimiento
Sistemas de coordenadas
Principios de movimiento y E/S Sistemas de coordenadas
Gestión de datos de configuración
Principios de movimiento y E/S Configuración del robot
Configuración de los ejes externos
Guía del usuario Parámetros del sistema
¿Qué es un cuaternio?
Tipos de datos - Orient
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
shapedata Tipo de dato
Advanced functions (Funciones avanzadas)
shapedata - Datos de forma de zonas mundo shapedata se utiliza para describir la geometría de una zona mundo.
Descripción Es posible definir zonas mundo con 4 formas geométricas diferentes. - Un prisma cuyos lados son paralelos al sistema de coordenadas mundo y que se definen mediante una instrucción WZBoxDef - Una esfera, definida mediante una instrucción WZSphDef - Un cilindro paralelo al eje z del sistema de coordenadas mundo y definido mediante una instrucción WZCylDef - Un área de espacio de ejes para los ejes del robot y/o los externos, definidos por la instrucción WZHomeJointDef o WZLimJointDef La geometría de una zona mundo se define mediante una de las instrucciones indicadas anteriormente y la acción de una zona mundo definida mediante la instrucción 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 Una transportador se define como un prisma y se activa la supervisión de esta área. Se define un poste como un cilindro y se activa la supervisión de la zona. Si el robot alcanza una de estas áreas, se detiene el movimiento.
Características shapedata es un tipo de dato sin valor.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
273
shapedata Advanced functions (Funciones avanzadas)
Tipo de dato
Información relacionada Descrito en:
274
Zonas mundo
Principios de movimiento y E/S Zonas mundo
Forma de las zonas mundo
Tipos de datos - shapedata
Definición de zonas mundo en forma de prisma
Instrucciones - WZBoxDef
Definición de zonas mundo esféricas
Instrucciones - WZSphDef
Definición de zonas mundo cilíndricas
Instrucciones - WZCylDef
Definición de una zona mundo para las posiciones iniciales de los ejes
Instrucción - WZHomeJointDef
Definición de una zona mundo para las posiciones límite de los ejes
Instrucción - WZLimJointDef
Activación de la supervisión de límites de las zonas mundo
Instrucciones - WZLimSup
Activación de salidas digitales basadas en zonas mundo
Instrucciones - WZDOSet
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
signalxx Tipo de dato
signalxx - Señales digitales y analógicas Los tipos de datos denominados como signalxx se utilizan con las señales digitales y analógicas de entrada y salida. Los nombres de las señales se definen en los parámetros del sistema y, por tanto, no es necesario definirlos en el programa.
Descripción Tipo de dato
Finalidad
signalai
Señales analógicas de entrada
signalao
Señales analógicas de salida
signaldi
Señales digitales de entrada
signaldo
Señales digitales de salida
signalgi
Grupos de señales digitales de entrada
signalgo
Grupos de señales digitales de salida
Las variables del tipo signalxo sólo contienen una referencia a la señal. El valor se establece mediante una instrucción, por ejemplo DOutput. Las variables del tipo signalxi contienen una referencia a una señal, así como la posibilidad de obtener directamente el valor desde el programa, si se utiliza en un contexto de valor. El valor de una señal de entrada puede leerse directamente desde el programa, como en los ejemplos siguientes: ! Entrada digital IF di1 = 1 THEN ... ! Entrada de grupo digital IF gi1 = 5 THEN ... ! Entrada analógica 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 instrucción o una función que haga referencia a esta señal. Sin embargo, sí es posible utilizarlos como parámetros al declarar una rutina.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
275
signalxx Tipo de dato
Datos predefinidos Las señales definidas en los parámetros del sistema están siempre disponibles desde el programa mediante las variables de señal 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 señal.
Características Signalxo es un tipo de dato sin valor. Por tanto, los datos de este tipo no son compatibles con operaciones basadas en valores. Signalxi es un tipo de datos de semivalor.
Información relacionada Descrito en:
276
Resumen de instrucciones de entrada y salida
Resumen sobre RAPID Señales de entrada y salida
Funcionalidad general de las entradas y salidas
Principios de movimiento y E/S Principios de E/S
Configuración de E/S
Guía del usuario Parámetros del sistema
Características de los tipos de datos sin valor
Características básicas Tipos de datos
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
speeddata Tipo de dato
speeddata - Datos de velocidad Speeddata se utiliza para especificar la velocidad a la que deben moverse los ejes, tanto los del robot como los ejes externos.
Descripción Los datos de velocidad se utilizan para definir las velocidades siguientes: - Velocidad a la que se mueve el punto central de la herramienta - Velocidad de reorientación de la herramienta - Velocidad a la que se mueven los ejes lineales o de rotación. Cuando se combinan varios tipos de movimiento, una de las velocidades suele limitar todos los movimientos. La velocidad de los demás movimientos se reduce de forma que todos los movimientos terminen de ejecutarse al mismo tiempo. La velocidad también está limitada por el rendimiento del robot. Este rendimiento es distinto según el tipo de robot y la trayectoria del movimiento.
Componentes v_tcp
(velocidad del TCP)
Tipo de dato: num
La velocidad del punto central de la herramienta (TCP) en mm/seg. Si se utiliza una herramienta estacionaria o ejes externos coordinados, la velocidad se especifica respecto del objeto de trabajo. v_ori
(velocidad de la orientación)
Tipo de dato: num
La velocidad de reorientación alrededor del TCP, expresada en grados/seg. Si se utiliza una herramienta estacionaria o ejes externos coordinados, la velocidad se especifica respecto del objeto de trabajo. v_leax
(velocidad de los ejes externos lineales)
Tipo de dato: num
La velocidad de los ejes externos lineales, en mm/seg. v_reax
(velocidad de los ejes externos de rotación) Tipo de dato: num
La velocidad de los ejes externos de rotación, en grados/seg.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
277
speeddata Tipo de dato
Ejemplo VAR speeddata vmedium := [ 1000, 30, 200, 15 ]; Se definen los datos de velocidad vmedium con las velocidades siguientes: - 1.000 mm/seg para el TCP. - 30 grados/seg para la reorientación de la herramienta. - 200 mm/seg para los ejes externos lineales. - 15 grados/seg para los ejes externos de rotación. vmedium.v_tcp := 900; Se cambia la velocidad del TCP a 900 mm/seg.
278
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
speeddata Tipo de dato
Datos predefinidos Existen varios datos de velocidad ya definidos en el módulo de sistema BASE. Nombre Velocidad del TCP Orientación Eje ext. lineal Eje ext. rotación 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 máxima para el tipo de robot utilizado y los valores normales prácticos para el TCP. La función 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. Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
279
speeddata Tipo de dato
Estructura < dataobject of speeddata > < v_tcp of num > < v_ori of num > < v_leax of num > < v_reax of num >
Información relacionada Descrito en:
280
Instrucciones de posicionamiento
Resumen sobre RAPID Movimiento
Movimiento y velocidad en general
Principios de movimiento y E/S Posicionamiento durante la ejecución del programa
Definición de la velocidad máxima
Instrucciones - VelSet
Velocidad máxima del TCP para el robot actual
Función - MaxRobSpeed
Configuración de los ejes externos
Guía del usuario Parámetros del sistema
Rendimiento de los movimientos
Especificaciones del producto
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
stoppointdata Tipo de dato
stoppointdata - Datos de punto de paro Stoppointdata se utiliza para especificar cómo debe terminar una posición, es decir, a qué distancia de la posición programada deben encontrarse los ejes antes de iniciar un movimiento hasta la posición siguiente.
Descripción Una posición puede terminar en forma de un punto de paso o un punto de paro. El punto de paso significa que la posición programada no llega a alcanzarse nunca. La instrucción especifica una zona para el movimiento, definiendo una trayectoria de esquina. En lugar de dirigirse hacia la posición programada, la dirección del movimiento toma la forma de una trayectoria de esquina antes de alcanzar la posición. Consulte Tipos de datos - zonedata. Un punto de paro significa que los ejes del robot y los ejes externos deben alcanzar la posición especificada antes de que continúen 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 posición. También es posible especificar criterios de temporización. Para el punto de parada fine, consulte también el tipo de dato zonedata. Es posible definir tres tipos de puntos de paro mediante stoppointdata. - El tipo de punto de paro en posición se define como un porcentaje de los criterios de convergencia (posición y velocidad) para el punto de paro fine predefinido. El tipo “en posición” también utiliza un tiempo mínimo y un tiempo máximo. El robot espera el cumplimiento de los criterios de posición y velocidad, durante al menos el tiempo mínimo y como mucho el tiempo máximo. - 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 también determinan cómo deben sincronizarse los movimientos con la ejecución de RAPID. Si el movimiento se sincroniza, la ejecución de RAPID espera a un evento de tipo “en posición” cuando el robot está en posición. Si el movimiento no está sincronizado, la ejecución de RAPID recibe un evento de “precaptura” casi medio segundo antes de que el robot físico alcance la posición programada. Cuando el programa ejecutado recibe un evento “en posición” o “precaptura”, continúa con la instrucción siguiente. Cuando llega el evento “precaptura”, el robot sigue teniendo un margen de maniobra amplio. Cuando llega el evento “en posición”, el robot está cerca de la posición programada. Observe que con los tipos tiempo de paro y tiempo de seguimiento, la instrucción siguiente empieza a ejecutarse al mismo tiempo que empieza la cuenta atrás del tiempo de parada y del tiempo de seguimiento, respectivamente. Sin embargo, para el tipo en posición, la siguiente instrucción se inicia cuando se cumplen los criterios de convergencia. Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
281
stoppointdata Tipo de dato Si utiliza instrucciones de movimiento con el argumento \Conc, no se realiza ninguna sincronización, de modo que la instrucción de movimiento real estará preparada inmediatamente. Velocidad del robot
Velocidad
En posición Velocidad de referencia
Tiempo Retraso constante
Tiempo mín./máx. Tiempo de paro Tiempo de seguimiento
Figura 17 Terminación de un punto de paro
La figura anterior representa la terminación de los puntos de paro. La velocidad del robot no reduce la velocidad lineal. El servo del robot siempre va por delante del robot físico. Esto se representa como el retraso constante en la figura anterior. El retraso constante es de aproximadamente 0,1 segundos. Los elementos de temporización de stoppointdata utilizan como disparador una velocidad de referencia. La medición de tiempo comienza cuando la velocidad de referencia es cero. Por tanto, el tiempo de los elementos de temporización siempre incluyen el retraso constante. La consecuencia es que no tiene sentido utilizar valores inferiores al retraso constante.
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 posición”. Activa el elemento inpos de stoppointdata. No se utilizan los datos de zona de la instrucción, 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 instrucción, 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 instrucción se utilizan cuando el robot abandona el transportador. Activa el elemento followtime de stoppointdata. 282
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
stoppointdata Tipo de dato 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: Valor
Constante simbólica
Comentario
1
inpos
Número de tipo en posición
2
stoptime
Número de tipo de tiempo de paro
3
fllwtime
Número de tipo de tiempo de seguimiento
progsynch
(sincronización de programa)
Tipo de dato: bool
Sincronización con la ejecución del programa de RAPID. - TRUE -> El movimiento está sincronizado con la ejecución de RAPID. El programa no empieza a ejecutar la instrucción siguiente hasta que se ha alcanzado el punto de paro. - FALSE -> El movimiento no está sincronizado con la ejecución de RAPID. El programa empieza a ejecutar la instrucción siguiente antes de alcanzar el punto de paro. Si utiliza instrucciones de movimiento con el argumento \Conc, no se realiza ninguna sincronización de forma independiente de los datos de progsynch, de modo que la instrucción de movimiento real estará siempre preparada inmediatamente. inpos.position
(condición de posición del TCP)
Tipo de dato: num
La condición de posición (el radio) del TCP en porcentaje de un punto de paro fine normal. inpos.speed
(condición de velocidad del TCP)
Tipo de dato: num
La condición de velocidad del TCP en porcentaje de un punto de paro fine normal. inpos.mintime
(tiempo de espera mínimo)
Tipo de dato: num
El tiempo de espera mínimo, en segundos, antes de alcanzar la posición. Se utiliza para hacer que el robot espere en el punto al menos el tiempo especificado. El valor máximo es de 20,0 segundos. inpos.maxtime
(tiempo de espera máximo)
Tipo de dato: num
El tiempo máximo, en segundos, que se espera a que se cumplan los criterios de convergencia. Se utilizan para garantizar que el robot no se quede parado en el punto si se han establecido condiciones de velocidad y posición demasiado estrictas. El valor máximo es de 20,0 segundos.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
283
stoppointdata Tipo de dato stoptime
(tiempo de paro)
Tipo de dato: num
El tiempo, en segundos, que el TCP permanece parado en la posición antes de empezar el movimiento siguiente. El valor máximo es de 20,0 segundos. followtime
(tiempo de seguimiento)
Tipo de dato: num
El tiempo, en segundos, que el TCP sigue al transportador. signal
Tipo de dato: string
Reservado para un uso futuro. relation
Tipo de dato: opnum
Reservado para un uso futuro. checkvalue
Tipo de dato: num
Reservado para un uso futuro.
Ejemplos 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 características siguientes: - El punto de paro es de tipo “en posición”, inpos. - El punto de paro estará sincronizado con la ejecución del programa de RAPID, TRUE. - El criterio de distancia del punto de paro es del 25% de la distancia definida para el punto de paro fine, 25. - El criterio de velocidad del punto de paro es del 40% de la velocidad definida para el punto de paro fine, 40. - El tiempo mínimo que se espera a la convergencia es 0,1 seg, 0.1. - El tiempo máximo que se espera a la convergencia es 5 seg, 5. El robot se mueve hacia la posición programada hasta que se cumple uno de los criterios de posición o velocidad. my_inpos.inpos.position := 40; MoveL *, v1000, z0 \Inpos:=my_inpos, grip4; Se ajusta el criterio de distancia del punto de paro al 40%.
284
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
stoppointdata Tipo de dato Stoptime VAR stoppointdata my_stoptime := [ stoptime, FALSE, [ 0, 0, 0, 0], 1.45, 0, ““, 0, 0]; MoveL *, v1000, z0\Inpos:=my_stoptime, grip4; Se definen los datos del punto de paro my_stoptime con las características siguientes: - El punto de paro es de tipo de tiempo de espera, stoptime. - El punto de paro no estará sincronizado con la ejecución del programa de RAPID, FALSE. - El tiempo de espera en posición es de 1,45 seg. El robot se mueve hacia la posición programada hasta que llega el evento de precaptura. Se ejecuta la siguiente instrucción de RAPID. Si es una instrucción de movimiento, el robot se detiene durante 1,45 segundos antes de empezar el movimiento siguiente. my_stoptime.stoptime := 6.66; MoveL *, v1000, z0 \Inpos:=my_stoptime, grip4; Se selecciona un tiempo de paro del punto de paro de 6,66 segundos. Si la siguiente instrucción de RAPID es una instrucción de movimiento, el robot se detiene durante 6,66 seg. Followtime VAR stoppointdata my_followtime := [ fllwtime, TRUE, [ 0, 0, 0, 0], 0, 0.5, ““, 0, 0]; MoveL *, v1000, z10 \Inpos:=my_followtime, grip6; Se definen los datos del punto de paro my_followtime con las características siguientes: - El punto de paro es de tipo de tiempo de seguimiento, fllwtime. - El punto de paro estará sincronizado con la ejecución del programa de RAPID, TRUE. - El tiempo de seguimiento del punto de paro es de 0,5 seg, 0.5. El robot sigue al transportador durante 0,5 seg antes de dejarlo, con una zona de 10 mm, z10. my_followtime.followtime := 0.4; Se ajusta el tiempo de seguimiento del punto de paro a 0,4 seg.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
285
stoppointdata Tipo de dato
Datos predefinidos Existen varios datos de punto de paro ya definidos en el módulo de sistema BASE. Puntos de paro en posición Nombre
Progsynch Position Speed
inpos20
TRUE
20%
20%
0 seg
20 seg -
-
inpos50
TRUE
50%
50%
0 seg
20 seg -
-
inpos100
TRUE
100%
100%
0 seg
20 seg -
-
Mintime Maxtime Stoptime Followtime
(inpos100 tiene los mismos criterios de convergencia que el punto de paro fine) Puntos de paro de tiempo de paro Nombre
Progsynch Position Speed
Mintime Maxtime Stoptime Followtime
stoptime0_5 FALSE
-
-
-
-
0,5 seg -
stoptime1_0 FALSE
-
-
-
-
1,0 seg -
stoptime1_5 FALSE
-
-
-
-
1,5 seg -
Puntos de paro de tiempo de seguimiento Nombre
Progsynch Position Speed Mintime Maxtime Stoptime Followtime
fllwtime0_5 TRUE
-
-
-
-
-
0,5 seg
fllwtime1_0 TRUE
-
-
-
-
-
1,0 seg
fllwtime1_5 TRUE
-
-
-
-
-
1,5 seg
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 >
286
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
stoppointdata Tipo de dato
Información relacionada Descrito en: Instrucciones de posicionamiento
Resumen sobre RAPID - Movimiento
Movimiento y trayectorias en general
Principios de movimiento y E/S Posicionamiento durante la ejecución del programa
Configuración de los ejes externos
Guía del usuario Parámetros del sistema
Puntos de paso
Tipos de datos - zonedata
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
287
stoppointdata Tipo de dato
288
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
string Tipo de dato
string - Cadenas de caracteres String se utiliza con cadenas de caracteres.
Descripción Las cadenas de caracteres están compuestas por varios caracteres (un máximo de 80) encerrados entre comillas (“”), Por ejemplo:
“Esto es una cadena de caracteres”.
Si desea incluir comillas dentro de la cadena de caracteres, debe escribirlas dos veces. Por ejemplo:
“Esta cadena contiene ““ unas comillas”.
Si desea incluir una barra invertida dentro de la cadena de caracteres, debe escribirla dos veces. Por ejemplo:
"Esta cadena de caracteres contiene un carácter de barra invertida \\".
Ejemplo VAR string text; . text := “Comienzo de soldadura de tubo 1”; TPWrite text; El texto Comienzo de soldadura de tubo 1 se escribe en la unidad de programación.
Limitaciones Una cadena puede tener de 0 a 80 caracteres, incluidas las comillas o las barras invertidas que se utilicen. Las cadenas de caracteres pueden contener cualquiera de los caracteres especificados en la norma ISO 8859-1, además de caracteres de control (caracteres ajenos al estándar ISO 8859-1 y con códigos numéricos de 0 a 255).
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
289
string Tipo de dato
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
::= 0|1|2|3|4|5|6|7|8|9
STR_UPPER
::= 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
::= 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
::=
1) Letra “eth” islandesa 2) Letra Y con acento agudo 3) Letra “thorn” islandesa Las constantes siguientes ya están definidas en el módulo 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 := “”;
Información relacionada Descrito en:
290
Operaciones con cadenas de caracteres
Características básicas - Expresiones
Valores de cadena de caracteres
Características básicas Elementos básicos
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
symnum Tipo de dato
symnum - Número simbólico Symnum se utiliza para representar un entero con una constante simbólica.
Descripción Las constantes de symnum se han diseñado 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 simbólicas siguientes del tipo de dato symnum. Puede usarlas a la hora de comprobar valores de retorno de las funciones OpMode y RunMode Valor
Constante simbólica
Comentario
0
RUN_UNDEF
Modo de ejecución no definido
1
RUN_CONT_CYCLE
Modo de ejecución continuo o en modo ciclo
2
RUN_INSTR_FWD
Modo de ejecución de avance de instrucciones
3
RUN_INSTR_BWD
Modo de ejecución hacia atrás
4
RUN_SIM
Modo de ejecución simulado
Valor
Constante simbólica
Comentario
0
OP_UNDEF
Modo de funcionamiento no definido
1
OP_AUTO
Modo de funcionamiento automático
2
OP_MAN_PROG
Modo de funcionamiento manual a 250 mm/seg como máximo
3
OP_MAN_TEST
Modo de funcionamiento manual a máxima velocidad, 100%
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
291
symnum Tipo de dato
Características Symnum es un tipo de dato de alias de num y por tanto hereda sus características.
Información relacionada Descrito en: Tipos de datos en general, tipos de datos de alias
292
Características básicas - Tipos de datos
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
System Data Tipo de dato
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 máxima actual. La tabla siguiente contiene una lista con todos los datos de sistema. Nombre
Descripción
Tipo de dato
Cambiado por
Más información
C_MOTSET
Parámetros actuales de movimiento, es decir: - Velocidad máxima y ajuste de velocidad - Aceleración máxima - Movimiento cerca de puntos singulares - Monitorización de la configuración de ejes - Resolución de la trayectoria - Supervisión de movimientos con valor de ajuste - Reducción de la aceleración y deceleración del TCP a lo largo de la trayectoria de movimiento - Modificación de la orientación de la herramienta durante la interpolación circular
motsetdata
Instrucciones - VelSet - AccSet - SingArea - ConfL,ConfJ - PathResol - MotionSup - PathAccLim - CirPathReori
Tipos de datos - motsetdata Instrucciones - VelSet Instrucciones - AccSet Instrucciones - SingArea Instrucciones - ConfL, ConfJ Instrucciones - PathResol Instrucciones - MotionSup Instrucciones - PathAccLim Instrucciones CirPathReori
C_PROGDISP
Desplazamiento de programa actual para los ejes del robot y los ejes externos.
progdisp
Instrucciones - PDispSet - PDispOn - PDispOff - EOffsSet - EOffsOn - EOffsOff
Tipos de datos - progdisp Instrucciones - PDispSet Instrucciones - PDispOn Instrucciones - PDispOff Instrucciones - EOffsSet Instrucciones - EOffsOn Instrucciones - EOffsOff
ERRNO
El último error que ha tenido lugar.
errnum
El robot
Tipos de datos - errnum Resumen sobre RAPID Recuperación en caso de error
INTNO
La última interrupción que ha tenido lugar.
intnum
El robot
Tipos de datos - intnum Resumen sobre RAPID Interrupciones
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
293
System Data Tipo de dato
294
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
taskid Tipo de dato
taskid - Identificación de tareas Taskid se utiliza para identificar tareas de programa disponibles en el sistema. Los nombres de las tareas de programa se definen en los parámetros del sistema y, por tanto, no es necesario definirlos en el programa.
Descripción Los datos del tipo taskid sólo 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 parámetros al declarar una rutina.
Datos predefinidos Las tareas de programa definidas en los parámetros del sistema están 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 identificación de la variable será “nombre_tarea”+“ID”. Por ejemplo, para la tarea MAIN la identificación de la tarea es MAINId, para TSK1 es TSK1Id, etc.
Características Taskid es un tipo de dato sin valor. Esto significa que los datos de este tipo no son compatibles con operaciones basadas en valores.
Información relacionada Descrito en: Guardado de módulos de programa
Instrucciones - Save
Configuración de tareas de programa
Guía del usuario Parámetros del sistema
Características de los tipos de datos sin valor Características básicas - Tipos de datos
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
295
taskid Tipo de dato
296
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
testsignal Tipo de dato
testsignal - Señal de test El tipo de dato testsignal se utiliza cuando se realiza un test del sistema de movimiento del robot.
Descripción El sistema de robot cuenta con varias señales de test predefinidas. El tipo de dato testsignal puede usarse para simplificar la programación de la instrucción TestSignDefine.
Ejemplos TestSignDefine 2, speed, Orbit, 2, 0; speed es una constante del tipo de dato testsignal.
Datos predefinidos El sistema tiene predefinidas las señales 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. CONST testsignal speed CONST testsignal torque_ref CONST testsignal resolver_angle CONST testsignal speed_ref CONST testsignal dig_input1 CONST testsignal dig_input2
:= 6; := 9; := 1; := 4; := 102; := 103;
! rad/seg ! Nm ! rad ! rad/seg !0ó1 !0ó1
Características Testsignal es un tipo de dato de alias de num y por tanto hereda sus características.
Información relacionada Descrito en: Definición de una señal de test
Instrucciones - TestSignDefine
Lectura de una señal de test
Funciones - TestSignRead
Puesta a cero de señales de test
Instrucciones - TestSignReset
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
297
testsignal Tipo de dato
298
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
tooldata Tipo de dato
tooldata - Datos de herramientas Tooldata se utiliza para describir las características de una herramienta, por ejemplo, una pistola de soldadura o una pinza. Si la herramienta está fija en el espacio (una herramienta estacionaria), los datos comunes de la herramienta se definen para la herramienta y para la pinza que sostiene el objeto de trabajo.
Descripción Los datos de la herramienta afectan de las formas siguientes a los movimientos del robot: - El punto central de la herramienta (TCP) se refiere a un punto que seguirá la trayectoria especificada y el rendimiento de velocidad deseado. Si se reorienta la herramienta o se utilizan los ejes externos coordinados, sólo este punto seguirá la trayectoria deseada a la velocidad programada. - Si se utiliza una herramienta estacionaria, la velocidad y la trayectoria programadas serán las del objeto de trabajo. - Las posiciones programadas se refieren a la posición del TCP actual y la orientación en relación con el sistema de coordenadas de la herramienta. Esto significa que si por ejemplo, se reemplaza una herramienta porque está dañada, sigue siendo posible utilizar el programa anterior con sólo redefinir el sistema de coordenadas de la herramienta. Los datos de la herramienta también se usan en los movimientos del robot para: - Definir el TCP que no debe moverse cuando se reorienta el robot. - Definir el sistema de coordenadas de la herramienta para facilitar el acercamiento o la rotación de las direcciones de la herramienta. Es importante definir siempre la carga real de la herramienta y, si se usa, también la carga útil del robot. Una definición incorrecta de los datos de carga puede dar lugar a la sobrecarga de la estructura mecánica del robot. Cuando se especifican datos de carga incorrectos para la herramienta, este hecho suele tener las consecuencias siguientes: - Si el valor de la carga especificada es mayor que el valor de la carga real: -> El robot no funcionará a su capacidad máxima -> Peor exactitud de la trayectoria, con riesgo de sobrepasar posiciones - Si el valor de la carga especificada 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 mecánica
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
299
tooldata Tipo de dato
Componentes robhold
(el robot sostiene el objeto)
Tipo de dato: bool
Define si el robot es el que está sosteniendo la herramienta: - TRUE-> El robot sostiene la herramienta. - FALSE -> El robot no sostiene la herramienta, sino que se trata de una herramienta estacionaria. tframe
(base de coordenadas de la herramienta)
Tipo de dato: pose
El sistema de coordenadas de la herramienta, es decir: - La posición del TCP (x, y, z) en mm, expresada en el sistema de coordenadas de la muñeca (consulte la Figura 1). - La orientación del sistema de coordenadas de la herramienta, expresado en el sistema de coordenadas de la muñeca en forma de un cuaternio (q1, q2, q3 y q4) (consulte la Figura 1). Si se utiliza una herramienta estacionaria, la definición se hace respecto del sistema de coordenadas mundo. Si no se especifica la dirección de la herramienta, el sistema de coordenadas de la herramienta y el sistema de coordenadas de la muñeca coincidirán.
Orificio de control
El sistema de coordenadas de la muñeca Y Z El sistema de coordenadas de la herramienta
X
Y’
TCP
X’ Z’
Figura 18 Definición del sistema de coordenadas de la herramienta.
300
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
tooldata Tipo de dato tload
(carga de la herramienta)
Tipo de dato: loaddata
La carga de la herramienta, es decir: - El peso de la herramienta en kilos. - El centro de gravedad de la herramienta (x, y, z) en mm, expresada en el sistema de coordenadas de la muñeca. - La orientación del sistema de coordenadas de la carga de la herramienta, expresado en el sistema de coordenadas de la muñeca. Define los ejes de inercia de la herramienta. La orientación del sistema de coordenadas de la herramienta debe coincidir con la orientación del sistema de coordenadas de la muñeca. Siempre debe tener los valores 1, 0, 0, 0. - Los momentos de inercia de la herramienta respecto de su centro de masa alrededor de los ejes coordinados de la carga de la herramienta, en kgm2. Si todos los componentes de inercia están definidos con el valor 0 kgm2, la herramienta se gestiona como una masa puntual.
El sistema de coordenadas de la muñeca IY Sistema de coordenadas de la carga de Y la herramienta Z Ejes de inercia de la carga de la herramienta IZ
X
IX
Y’ X’
TCP Sistema de coordenadas de la herramienta
Z’
Figura 19 Definiciones de los parámetros de carga de la herramienta
Para obtener más información (por ejemplo el sistema de coordenadas para la herramienta estacionaria o posibles restricciones), consulte el tipo de dato loaddata. Si se utiliza una herramienta estacionaria, es necesario definir la carga de la pinza que sostiene el objeto de trabajo. Recuerde que sólo debe especificar la carga de la herramienta. La carga útil manejada por la pinza se conecta y desconecta mediante la instrucción GripLoad.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
301
tooldata Tipo de dato
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]]; La herramienta de la Figura 18 se describe utilizando los valores siguientes: - El robot sostiene la herramienta. - El TCP está situado en un punto a 223,1 mm en línea recta del eje 6 y a 97,4 mm a lo largo del eje X del sistema de coordenadas de la muñeca. - Las direcciones X y Z de la herramienta se giran 45o en relación con el sistema de coordenadas de la muñeca. - La herramienta pesa 5 kg. - El centro de gravedad está situado en un punto a 75 mm en línea recta del eje 6 y a 23 mm a lo largo del eje X del sistema de coordenadas de la muñeca. - Es posible considerar la carga como una masa puntual, es decir, sin ningún momento de inercia. gripper.tframe.trans.z := 225.2; Se ajusta el TCP de la herramienta, gripper, a 225,2 en la dirección Z.
Limitaciones Los datos de la herramienta deben definirse como variables persistentes (PERS) y no deben definirse desde dentro de una rutina. De esta forma, los valores se guardan al almacenar el programa en un disquete y se recuperan al cargarlo. Los argumentos de datos de herramienta de cualquier instrucción de movimiento deben ser sólo del tipo persistente completo (ni elementos de matriz ni componentes de registro).
Datos predefinidos La herramienta tool0 define el sistema de coordenadas de la muñeca, cuyo origen es el centro de la brida de montaje. Tool0 está siempre disponible desde el programa, pero no puede ser modificada en ningún momento (está almacenada en el módulo de sistema BASE). PERS tooldata tool0 := [ TRUE, [ [0, 0, 0], [1, 0, 0 ,0] ], [0.001, [0, 0, 0.001], [1, 0, 0, 0], 0, 0, 0] ];
302
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
tooldata Tipo de dato
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 >
Información relacionada Descrito en: Instrucciones de posicionamiento
Resumen sobre RAPID - Movimiento
Sistemas de coordenadas
Principios de movimiento y E/S Sistemas de coordenadas
Definición de una carga útil
Instrucciones - Gripload
Definición de carga
Tipos de datos - Datos de carga
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
303
tooldata Tipo de dato
304
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
tpnum Tipo de dato
tpnum - Número de ventana de la unidad de programación tpnum se utiliza para representar la ventana de la unidad de programación con una constante simbólica.
Descripción Las constantes tpnum se han diseñado para su uso con la instrucción TPShow. Consulte el ejemplo siguiente.
Ejemplo TPShow TP_PROGRAM; Después de la ejecución de esta instrucción, si el sistema se encuentra en el modo AUTO, estará activa la ventana de producción; si está en el modo MAN, estará activa la ventana de programa.
Datos predefinidos Se han predefinido las constantes simbólicas siguientes para el tipo de dato tpnum. Puede usarlas con la instrucción TPShow.
Valor
Constante simbólica
Comentario
1
TP_PROGRAM
AUTO: Ventana de producción MAN: Ventana de programa
2
TP_LATEST
Última ventana usada en la unidad de programación
3
TP_SCREENVIEWER
Ventana Visor de ventanas, si la opción está activada
Características tpnum es un tipo de dato de alias de num y por tanto hereda sus características.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
305
tpnum Tipo de dato
Información relacionada Descrito en:
306
Tipos de datos en general, tipos de datos de alias
Características básicas - Tipos de datos
Comunicación a través de la unidad de programación
Resumen sobre RAPID Comunicación
Cambio de ventana en la unidad de programación
Instrucciones - TPShow
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
triggdata Tipo de dato
triggdata - Eventos de posicionamiento - trigg Triggdata se utiliza para almacenar datos acerca de un evento de posicionamiento durante un movimiento del robot. Un evento de posicionamiento puede tener la forma de un parámetro en una señal de salida o puede significar la ejecución de una rutina de interrupción en una posición específica a lo largo de la trayectoria de movimiento del robot.
Descripción 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 instrucción TriggIO o TriggInt y se utilizan desde una instrucción TriggL, TriggC o TriggJ.
Ejemplo VAR triggdata gunoff; TriggIO gunoff, 5 \DOp:=gun, off; TriggL p1, v500, gunoff, fine, gun1; La señal digital de salida gun cambia al valor off cuando el TCP se encuentra en una posición a 5 mm del punto p1.
Características Triggdata es un tipo de dato sin valor.
Información relacionada Descrito en: Definición de disparos
Instrucciones - TriggIO, TriggInt
Utilización de disparos
Instrucciones - TriggL, TriggC, TriggJ
Características de los tipos de datos sin valor Características básicas - Tipos de datos
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
307
triggdata Tipo de dato
308
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
trapdata Tipo de dato
Advanced functions (Funciones avanzadas)
trapdata - Datos de interrupción para la rutina TRAP actual trapdata (datos de TRAP) se utiliza para contener los datos de interrupción que provocan la ejecución de la rutina TRAP actual. Debe utilizarse en las rutinas TRAP generadas por la instrucción IError, antes del uso de la instrucción ReadErrData.
Descripción Los datos del tipo trapdata representan información interna relacionada con la interrupción que provocó la ejecución de la rutina TRAP actual. Su contenido depende del tipo de interrupción.
Ejemplo VAR errdomain err_domain; VAR num err_number; VAR errtype err_type; VAR trapdata err_data; . TRAP trap_err GetTrapData err_data; ReadErrData err_data, err_domain, err_number, err_type; ENDTRAP Cuando se detecta un error con la rutina TRAP trap_err, el dominio, el número y el tipo del error se almacenan en las variables adecuadas sin valor, del tipo trapdata.
Características trapdata es un tipo de dato sin valor.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
309
trapdata Advanced functions (Funciones avanzadas)
Tipo de dato
Información relacionada Descrito en: Resumen de interrupciones
Resumen sobre RAPID Interrupciones
Más información sobre la gestión de interrupciones Características básicas Interrupciones
310
Tipos de datos sin valor
Características básicas Tipos de datos
Petición de una interrupción en caso de error
Instrucciones - IError
Obtención de datos de interrupción para la rutina TRAP actual
Instrucciones - GetTrapData
Obtención de información sobre un error
Instrucciones - ReadErrData
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
tunetype Tipo de dato
tunetype - Tipo de ajuste de servo Tunetype se utiliza para representar un entero con una constante simbólica.
Descripción Las constantes tunetype se han diseñado para su uso como argumento de la instrucción TuneServo. Consulte el ejemplo siguiente.
Ejemplo TuneServo MHA160R1, 1, 110 \Type:= TUNE_KP;
Datos predefinidos Se han definido las constantes simbólicas siguientes para el tipo de dato tunetype. Puede usarlas como argumento de la instrucción TuneServo. Valor
Constante simbólica
Comentario
0
TUNE_DF
Reduce el riesgo de sobrepasar posiciones
1
TUNE_KP
Afecta a la ganancia del control de posición
2
TUNE_KV
Afecta a la ganancia del control de velocidad
3
TUNE_TI
Afecta al tiempo de integración del control de velocidad
4
TUNE_FRIC_LEV
Afecta al nivel de compensación de fricción
5
TUNE_FRIC_RAMP
Afecta a la pendiente de compensación de fricción
6
TUNE_DG
Reduce el riesgo de sobrepasar posiciones
7
TUNE_DH
Reduce las vibraciones con cargas pesadas
8
TUNE_DI
Reduce los errores de trayectoria
9
TUNE_DK
Sólo para uso interno de ABB
10
TUNE_DL
Sólo para uso interno de ABB
Características Tunetype es un tipo de dato de alias de num y por tanto hereda sus características. Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
311
tunetype Tipo de dato
Información relacionada Descrito en:
312
Tipos de datos en general, tipos de datos de alias
Características básicas - Tipos de datos
Uso del tipo de dato tunetype
Instrucciones - TuneServo
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
wobjdata Tipo de dato
wobjdata - Datos del objeto de trabajo Wobjdata se utiliza para describir el objeto de trabajo que el robot está soldando, procesando, moviendo por sí solo, etc.
Descripción Si los objetos de trabajo están definidos en una instrucción de posicionamiento, la posición se basará en las coordenadas del objeto de trabajo. Las ventajas de hacerlo son las siguientes: - Si se introducen manualmente los datos de posición, por ejemplo, mediante la programación fuera de línea, suele ser posible tomar los valores de un plano. - Los programas pueden reutilizarse rápidamente después de cualquier cambio en la instalación del robot. Por ejemplo, si se cambia de posición un útil, sólo es necesario redefinir el sistema de coordenadas del usuario. - También es posible compensar las variaciones en la forma en que el objeto de trabajo está fijado. Sin embargo, para estos fines se requerirá algún 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 estarían relacionadas con el objeto de trabajo en lugar del TCP. Los datos del objeto de trabajo pueden usarse también para los movimientos. - El robot puede desplazarse en las direcciones del objeto de trabajo. - La posición 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 usuario programada)
Tipo de dato: bool
Define si se está utilizando un sistema fijo de coordenadas del usuario: - TRUE -> Sistema fijo de coordenadas del usuario. - FALSE -> Sistema móvil de coordenadas del usuario, es decir, se utilizan ejes externos coordinados. Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
313
wobjdata Tipo de dato ufmec
(unidad mecánica como base de coordenadas)
Data type: string
La unidad mecánica con la que se coordinan los movimientos del robot. Sólo se especifican en el caso de los sistemas móviles de coordenadas del usuario (ufprog es FALSE). Se especifican con el nombre que se define en los parámetros de sistema, por ejemplo “orbit_a”. uframe
(base de coordenadas del usuario)
Tipo de dato: pose
El sistema de coordenadas del usuario, es decir, la posición de la superficie o del útil de trabajo actual (consulte la Figura 20): - La posición del origen del sistema de coordenadas (x, y, z) en mm. - La rotación del sistema de coordenadas, expresada como un cuaternio (q1, q2, q3, q4). Si el robot es el que sostiene la herramienta, el sistema de coordenadas del usuario se define en el sistema de coordenadas mundo (en el sistema de coordenadas de la muñeca si se utiliza una herramienta estacionaria). Si se utilizan ejes externos coordinados (ufprog es FALSE), el sistema de coordenadas del usuario se define en los parámetros de sistema. oframe
(base de coordenadas del objeto)
Tipo de dato: pose
El sistema de coordenadas del objeto, es decir, la posición del objeto de trabajo actual (consulte la Figura 20): - La posición del origen del sistema de coordenadas (x, y, z) en mm. - La rotación del sistema de coordenadas, expresada como un cuaternio (q1, q2, q3, q4). El sistema de coordenadas del objeto se define en el sistema de coordenadas del usuario.
X Z
Coordenadas de la herramienta Y TCP Z Y
Z
X Coordenadas de la base
Y
Coordenadas del usuario Z Y
Z Coordenadas del objeto Y X
X
X Coordenadas mundo Figura 20 Los distintos sistemas de coordenadas del objeto (si el robot es el que sostiene la herramienta).
314
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
wobjdata Tipo de dato
Ejemplo PERS wobjdata wobj2 :=[ FALSE, TRUE, "", [ [300, 600, 200], [1, 0, 0 ,0] ], [ [0, 200, 30], [1, 0, 0 ,0] ] ]; El objeto de trabajo de la Figura 20 se describe utilizando los valores siguientes: - El robot no sostiene el objeto de trabajo. - Se utiliza el sistema fijo de coordenadas del usuario. - El sistema de coordenadas del usuario no se gira y las coordenadas de su origen son x= 300, y = 600 y z = 200 mm en el sistema de coordenadas mundo. - El sistema de coordenadas del objeto no se gira y las coordenadas de su origen son x= 0, y = 200 y z = 30 mm en el sistema de coordenadas del usuario. wobj2.oframe.trans.z := 38.3; - Se ajusta la posición del objeto de trabajo wobj2 a 38,3 mm en la dirección z.
Limitaciones Los datos del objeto de trabajo deben definirse como variables persistentes (PERS) y no deben definirse desde dentro de una rutina. De esta forma, los valores se guardan al almacenar el programa en un disquete y se recuperan al cargarlo. Los argumentos de datos de objeto de trabajo de cualquier instrucción de movimiento deben ser sólo del tipo persistente completo (ni elementos de matriz ni componentes de registro).
Datos predefinidos Los datos de objeto de trabajo wobj0 se definen de forma que el sistema de coordenadas del objeto coincida con el sistema de coordenadas mundo. El robot no sostiene el objeto de trabajo. Wobj0 está siempre disponible desde el programa, pero no puede ser modificada en ningún momento (está almacenada en el módulo de sistema BASE). PERS wobjdata wobj0 := [ FALSE, TRUE, "", [ [0, 0, 0], [1, 0, 0 ,0] ], [ [0, 0, 0], [1, 0, 0 ,0] ] ];
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
315
wobjdata Tipo de dato
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 >
Información relacionada Descrito en:
316
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
Calibración de los ejes externos coordinados
Guía del usuario Parámetros del sistema
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
wzstationary Tipo de dato
Advanced functions (Funciones avanzadas)
wzstationary - Datos de zona mundo estacionaria wzstationary (zona mundo estacionaria) se utilizan para definir una zona mundo estacionaria y sólo pueden usarse en rutinas de evento conectadas al evento POWER ON. Las zonas mundo se supervisan durante los movimientos del robot, tanto durante la ejecución 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 señal digital de salida.
Descripción Las zonas mundo wzstationary se definen y activan mediante una instrucción WZLimSup o WZDOSet. WZLimSup o WZDOSet asignan un valor numérico a variables o variables persistentes con el tipo de dato estacionario. El valor identifica una zona mundo. Siempre hay una zona mundo estacionaria, que sólo se elimina en los arranques en caliente (al apagar y encender de nuevo el interruptor o al cambiar los parámetros del sistema). No es posible desactivar, activar ni eliminar una zona mundo estacionaria a través 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 semiestática.
Ejemplo VAR wzstationary conveyor; ... PROC ... VAR shapedata volume; ... WZBoxDef \Inside, volume, p_corner1, p_corner2; WZLimSup \Stat, conveyor, volume; ENDPROC Un transportador se define como un prisma de ángulos rectos (el volumen que queda debajo de la cinta). Si el robot alcanza este volumen, se detiene el movimiento.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
317
wzstationary Advanced functions (Funciones avanzadas)
Tipo de dato
Limitaciones Los datos wzstationary deben definirse como variables (VAR) o variables persistentes (PERS). Pueden ser globales en la tarea o locales dentro del módulo, pero no locales dentro de una rutina. Los argumentos de tipo wzstationary deben ser sólo datos completos (ni elementos de matriz ni componentes de registro). Los valores de inicialización de los datos del tipo wzstationary no se utilizan en el sistema de control. Cuando sea necesario utilizar una variable persistente en un sistema multitarea, cambie el valor inicial a 0 en las dos tareas. Por ejemplo: PERS wzstationary share_workarea := [0];
Ejemplo Para ver un ejemplo completo, consulte la instrucción WZLimSup.
Características wzstationary es un tipo de dato de alias de wztemporary y hereda sus características.
Información relacionada Descrito en:
318
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
Activación de la supervisión de límites de las zonas mundo
Instrucciones - WZLimSup
Activación de salidas digitales basadas en zonas mundo
Instrucciones - WZDOSet
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
wztemporary Tipo de dato
wztemporary - Datos de zona mundo temporal wztemporary (zona mundo temporal) se utiliza para identificar una zona mundo temporal y puede usarse en cualquier parte del programa RAPID para la tarea MAIN. Las zonas mundo se supervisan durante los movimientos del robot, tanto durante la ejecución 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 señal digital de salida.
Descripción Las zonas mundo wztemporary se definen y activan mediante una instrucción WZLimSup o WZDOSet. WZLimSup o WZDOSet asignan un valor numérico a variables o variables persistentes con el tipo de dato wztemporary. El valor identifica una zona mundo. Una vez definidas y activadas, las zonas mundo temporales pueden desactivarse con WZDisable, activarse de nuevo con WZEnable y eliminarse con WZFree. Todas las zonas mundo temporales de la tarea MAIN se eliminan automáticamente y todos los objetos de datos del tipo wztemporary de la tarea MAIN cambian a 0 en los casos siguientes: - Cuando se carga un nuevo programa en la tarea MAIN - Cuando se inicia la ejecución del programa desde el principio en la tarea MAIN
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.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
319
wztemporary Tipo de dato
Limitaciones Los datos wztemporary deben definirse como variables (VAR) o variables persistentes (PERS). Pueden ser globales en la tarea o locales dentro del módulo, pero no locales dentro de una rutina. Los argumentos de tipo wztemporary deben ser sólo datos completos (ni elementos de matriz ni componentes de registro). Las zonas mundo temporales sólo deben definirse (WZLimSup o WZDOSet) y liberarse (WZFree) desde la tarea MAIN. Las definiciones de zonas mundo temporales en segundo plano afectarían a la ejecución 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 instrucción WZDOSet.
Estructura
Información relacionada Descrito en:
320
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
Activación de la supervisión de límites de las zonas mundo
Instrucciones - WZLimSup
Activación de salidas digitales basadas en zonas mundo
Instrucciones - WZDOSet
Desactivación de zonas mundo
Instrucciones - WZDisable
Activación de zonas mundo
Instrucciones - WZEnable
Eliminación de zonas mundo
Instrucciones - WZFree
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
zonedata Tipo de dato
zonedata - Datos de zonas Zonedata se utiliza para especificar cómo debe terminar una posición, es decir, a qué distancia de la posición programada deben encontrarse los ejes antes de iniciar un movimiento hasta la posición siguiente.
Descripción Una posición 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 posición especificada (deteniéndose) antes de que la ejecución del programa continúe en la instrucción siguiente. También es posible definir puntos de paro distintos del tipo predefinido fine. Los criterios de paro que indican si se considera que el robot ha alcanzado el punto, pueden manipularse mediante stoppointdata. El punto de paso significa que la posición programada no llega a alcanzarse nunca. En su lugar, la dirección del movimiento cambia antes de que se alcance la posición. Es posible definir dos zonas (rangos) diferentes para cada posición: - La zona para la trayectoria del TCP - La zona extendida para la reorientación de la herramienta y para los ejes externos
La zona para la trayectoria del TCP
Posición programada
Comienzo de la reorientación hacia la posición siguiente Inicio de la trayectoria de esquina del TCP La zona extendida Figura 21 Las zonas de un punto de paso.
Las zonas funcionan de la misma forma durante el movimiento de los ejes, pero el tamaño de la zona puede ser algo distinto del programado. El tamaño de la zona no puede ser mayor que la mitad de la distancia existente hasta la posición más cercana (hacia delante o hacia atrás). Si se especifica una zona más grande, el robot la reduce automáticamente.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
321
zonedata Tipo de dato La zona para la trayectoria del TCP Se genera una trayectoria de esquina (parábola) tan pronto como se alcanza el borde de la zona (consulte la Figura 21). La zona de reorientación de la herramienta La reorientación comienza tan pronto como el TCP alcanza la zona extendida. La herramienta se reorienta de forma que la orientación en el momento de salir de la zona sea la misma que habría tenido en la misma posición si se hubieran programado puntos de paro. La reorientación será más suave si se aumenta el tamaño de la zona. Además, existe menos riesgo de tener que reducir la velocidad para realizar la reorientación.
Figura 22 Se programan tres posiciones, la última de ellas con una orientación distinta para la herramienta.
Figura 23 Si todas las posiciones fueran puntos de paro, la ejecución del programa tendría el aspecto siguiente.
Tamaño de la zona Figura 24 Si el punto intermedio fuera un punto de paso, la ejecución del programa tendría el aspecto siguiente.
La zona para los ejes externos Los ejes externos comienzan a moverse hacia la próxima posición tan pronto como el TCP alcanza la zona extendida. De esta forma, un eje lento puede empezar su aceleración antes y funcionar de una forma más uniforme. 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 tamaño relativo más pequeño de la zona, basado en los componentes de la misma (consulte la página siguiente) y en el movimiento programado.
322
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
zonedata Tipo de dato
MoveL con movimientos de 200 mm 90 mm de la herramienta, reorientación de 25o pzone_ori de la herramienta con una zona z60 P1 Los tamaños relativos de la zona son pzone_tcp ________________________ = 60/200 = 30% longitud del movimiento P1 - P2 pzone_ori ________________________ = 90/200 = 45% longitud del movimiento P1 - P2 zone_ori ________________________ ángulo de la reorientación P1 - P2 = 9o/25o = 36%
60 mm pzone_tcp P2
9o zone_ori
Figura 25 Ejemplo de zona reducida para la reorientación de la herramienta al 36% del movimiento previsto para zone_ori.
MoveL con movimientos de 200 mm de la herramienta, reorientación de 60o de la herramienta con una zona z60
90 mm 60 mm pzone_ori pzone_tcp
9o zone_ori P2
P1 Los tamaños relativos de la zona son pzone_tcp ________________________ = 60/200 = 30% longitud del movimiento P1 - P2 zone_ori ________________________ = 9o/60o = 15% ángulo de la reorientación P1 - P2
Figura 26 Ejemplo de zona reducida para la reorientación de la herramienta y la trayectoria del TCP, al 15% del movimiento previsto para zone_ori.
Cuando los ejes externos están activos, afectan a los tamaños relativos de la zona acorde con las fórmulas siguientes:
pzone_eax ________________________ longitud del movimiento P1 - P2 zone_leax ________________________ longitud del movimiento máx. lineal de ejes externos P1 - P2 zone_reax ________________________ ángulo de reorientación máx. de eje externo de rotación P1 - P2
NOTA: Si la zona del TCP se reduce a causa de zone_ori, zone_leax o zone_reax, el planificador de trayectorias activa un modo que puede manejar el caso de que no se produzca ningún movimiento del TCP. Si se ha producido un movimiento del TCP con este modo activado, no se compensa la velocidad para la curvatura de la trayectoria en una zona de esquina. Por ejemplo, esto provoca una reducción de velocidad del 30% en las esquinas de 90 grados. Si esto le supone un problema, aumente el componente de la zona que está causando esta limitación. Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
323
zonedata Tipo de dato
Componentes finep
(punto fino)
Tipo de dato: bool
Define si el movimiento debe terminar como un punto de paro (punto fino) o como punto de paso. - TRUE -> El movimiento termina como un punto de paro. Los demás componentes de los datos de la zona no se utilizan. - FALSE -> El movimiento termina como un punto de paso. pzone_tcp
(zona de trayectoria, TCP)
Tipo de dato: num
El tamaño (el radio) de la zona del TCP en mm. La zona extendida se define como el tamaño relativo más pequeño de la zona, basado en los componentes siguientes y en el movimiento programado. pzone_ori
(zona de trayectoria, orientación)
Tipo de dato: num
El tamaño de la zona (el radio) para la reorientación de la herramienta. El tamaño se define como la distancia en mm del TCP respecto del punto programado. El tamaño debe ser mayor que el valor correspondiente de pzone_tcp. Si se especifica un valor menor, el tamaño aumenta automáticamente para que sea igual que el pzone_tcp. pzone_eax
(zona de trayectoria, ejes externos)
Tipo de dato: num
El tamaño de la zona (el radio) para los ejes externos. El tamaño se define como la distancia en mm del TCP respecto del punto programado. El tamaño debe ser mayor que el valor correspondiente de pzone_tcp. Si se especifica un valor menor, el tamaño aumenta automáticamente para que sea igual que el pzone_tcp. zone_ori
(zona, orientación)
Tipo de dato: num
El tamaño de la zona para la reorientación de la herramienta, en grados. Si el robot está sosteniendo el objeto de trabajo, esto implica un ángulo de rotación para el objeto de trabajo. zone_leax
(zona, ejes externos lineales)
Tipo de dato: num
El tamaño de zona para los ejes externos lineales, en mm. zone_reax
(zona, ejes externos de rotación)
Tipo de dato: num
El tamaño de zona para los ejes externos de rotación, en grados.
324
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
zonedata Tipo de dato
Ejemplos VAR zonedata path := [ FALSE, 25, 40, 40, 10, 35, 5 ]; Se definen los datos de zona path con las características siguientes: - El tamaño de la zona para la trayectoria del TCP es de 25 mm. - El tamaño de la zona para la reorientación de la herramienta es de 40 mm (movimiento del TCP). - El tamaño de la zona para los ejes externos es de 40 mm (movimiento del TCP). Si el TCP está detenido, se produce una gran reorientación o existe un gran movimiento de los ejes externos respecto de la zona, se aplica lo siguiente: - El tamaño de la zona para la reorientación de la herramienta es de 10 grados. - El tamaño de la zona para los ejes externos lineales es de 35 mm. - El tamaño de la zona para los ejes externos de rotación es de 5 grados. path.pzone_tcp := 40; Se ajusta el tamaño de la zona para la trayectoria del TCP a 40 mm.
Datos predefinidos Existen varios datos de zona ya definidos en el módulo de sistema BASE.
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
325
zonedata Tipo de dato Puntos de paro Nombre fine
0 mm
Puntos de paso Movimiento del TCP Reorientación de la herramienta Nombre Trayect. TCP Orient.
Eje ext.
z0
0,3 mm
z1
1 mm
1 mm
1 mm
z5
5 mm
8 mm
z10
10 mm
z15
Orient.
0,3 mm 0,3 mm 0,03 o
Eje lineal Eje rotac. 0,3 mm
0,03 o
0,1 o
1 mm
0,1 o
8 mm
0,8 o
8 mm
0,8 o
15 mm
15 mm
1,5 o
15 mm
1,5 o
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 >
326
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
zonedata Tipo de dato
Información relacionada Descrito en: Instrucciones de posicionamiento
Resumen sobre RAPID - Movimiento
Movimiento y trayectorias en general
Principios de movimiento y E/S Posicionamiento durante la ejecución del programa
Configuración de los ejes externos
Guía del usuario Parámetros del sistema
Otros puntos de paro
Tipos de datos - stoppointdata
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
327
zonedata Tipo de dato
328
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
Índice alfabético A Abs 1 ACos 3 AOutput 5 archivo descargar 63 leer 123, 129, 133, 139 arco coseno 3 arco seno 7 arco tangente 9, 11 ASin 7 ATan 9 ATan2 11 B base de coordenadas 57 base de coordenadas de desplazamiento 53, 57 bool 195 byte 197 C C_MOTSET 293 C_PROGDISP 293 cadena de texto 289 canal serie leer 123, 129, 133, 139 carga útil 229 CDate 27 CJointT 17, 29 ClkRead 31 clock 199 leer 31 confdata 201 Cos 33 CPos 35 CRobT 21, 39 cronómetro 199 CTime 43 CTool 45 cuaternio 256 CWobj 47 D datos de sistema 293 DefDFrame 53 DefFrame 23, 57
desplazamiento dirección de la herramienta 143 desplazamiento de programa eliminar de posición 111 desplazar posición 105 Dim 61 dionum 209 DotProd 65, 101, 191 DOutput 67 E errdomain 211 ERRNO 293 errnum 213, 297 errtype 219 EulerZYX 69 Exp 71 extjoint 221 F fecha 27 fine 281 fino 321 G GetNextSym 79 GetTime 83 GOutput 5, 85 grupo de E/S 5, 85 H hora 43, 83 I interrupción identidad 223 INTNO 293 intnum 223 iodev 193, 225 IsPers 89 IsSysId 91 IsVar 93 L leer
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
329
ángulos actuales de ejes 17, 29 archivo 123, 129, 133, 139 canal serie 123, 129, 133, 139 clock 31 datos de la herramienta actual 45 fecha actual 27 grupo de salidas 5, 85 hora actual 43, 83 objeto de trabajo actual 47 posición actual del robot 21, 39 salida digital 67 loaddata 229 loadsession 235 M manipulación de bits 197 matriz obtener el tamaño 61 MaxRobSpeed 95 MechUnitLoad 295 mecunit 237 MirPos 97 modo de ejecución leer 149 modo de funcionamiento leer 107 motsetdata 239 N num 245 NumToStr 103 O o_jointtarget 247 objeto de trabajo 313 Offs 105 offset 105 OpMode 107 opnum 253 orient 255 OrientZYX 109 ORobT 111 P pos 261 pose 263 PoseInv 113 330
PoseMult 115 posición del robot 249, 269 posición espejo 97 Pow 119 Present 121 punto de parada 281 punto de paro 321 punto de paso 281, 321 R raíz cuadrada 153 ReadBin 123 ReadMotor 127 ReadNum 129 ReadStr 133, 139 RelTool 11, 57, 107, 119, 143, 149 RobOS 145 robtarget 249, 269 Round 147 RunMode 149 S salida digital 67 SetDataSearch 79 shapedata 273 signalai 275 signalao 275 signaldi 275 signaldo 275 signalgi 275 signalgo 275 Sin 151 sistema de coordenadas de objeto 313 sistema de coordenadas del usuario 313 speeddata 277 Sqrt 153 StrFind 155 string 289 StrLen 157 StrMap 159 StrMatch 161 StrMemb 163 StrOrder 165 StrPart 167 StrToByte 169 StrToVal 173 symnum 291
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
Índice alfabético T Tan 175 TestDI 181 TextTabFreeToUse 81 tooldata 299 tpnum 305 trapdata 309 trayectoria de esquina 281, 321 triggdata 307 Trunc 187 tunetype 311 U unidad mecánica 237 UnLoad 63 V valor absoluto 1 valor exponencial 13, 71, 119 valor lógico 195 valor numérico 245 ValToStr 189 velocidad 277 W wobjdata 313 wzstationary 317 wztemporary 319 Z zonedata 281, 321
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
331
332
Manual de referencia de RAPID la parte 2, Funciones y tipos de datos A-Z
3HAC 7778-1, La revisión A -sp
a ABB Automation Technology Products AB Robotics S-721 68 VÄSTERÅS SWEDEN Telephone: +46 (0) 21 344000 Telefax: +46 (0) 21 132592