IRC5
RagnachResumen3 de Febrero de 2024
2.286 Palabras (10 Páginas)131 Visitas
FORMACION IRC5
02 TIPOS DE DATOS, INSTRUCCIONES DE
MOVIMIENTO
Tipos de datos
- Todos los tipos de datos en lenguaje Rapid se declaran de la misma manera y su declaración conlleva tres posibilidades.
 
- Constante. Se puede modificar solo en manual y entrando en el tipo de dato. El valor no varia con un reinicio o por llevar el puntero de programa al inicio.
 
- Persistente. Se puede modificar tanto en manual como en automático. El valor no varia con un reinicio o por llevar el puntero de programa al inicio.
 
- Variable. Se puede modificar tanto en manual como en automático. El valor varia con un reinicio o con llevar el puntero a la “main”, tomando el valor de su creación.
 
PERS wobjdata Mesa_Coge_Rueda:=[FALSE,TRUE,"",[[0,0,0],[1,0,0,0]],[[752.757,-1338.07,450.961],[0.931989,-0.00225056,-0.00427556,-0.362455]]];
PERS wobjdata Mesa_Cartones:=[FALSE,TRUE,"",[[0,0,0],[1,0,0,0]],[[-1177.11,-951.238,-21.8466],[8.68187E-05,0.93166,-0.36333,0.00016368]]];
PERS wobjdata Mesa_Palets:=[FALSE,TRUE,"",[[0,0,0],[1,0,0,0]],[[-1574.69,730.567,-145.311],[0.00251081,0.374401,0.927263,-0.000765177]]];
Tipos de datos
- En la siguiente tabla se muestran los diferentes tipos de datos más usados, todos los tipos de datos se pueden encontrar en el manual de referencia RAPID.
 
[pic 1][pic 2][pic 3]
Instrucción  | Denominación  | 
bool  | Valores lógicos, TRUE/FALSE verdadero o falso  | 
Clock  | Medida de tiempo  | 
jointtarget  | Datos de posición de los ejes  | 
loaddata  | Datos de carga  | 
num  | Registros numéricos  | 
robtarget  | Datos de posición  | 
speedata  | Datos de velocidad  | 
zonedata  | Datos de zona  | 
string  | Cadena de caracteres  | 
tooldata  | Datos de herramienta  | 
wobjdata  | Datos dl objeto de trabajo  | 
pos  | Datos de posición (solo X,Y y Z)  | 
errnum  | Datos de error  | 
exjoint  | Posición de los ejes externos  | 
[pic 4][pic 5][pic 6]
Tipos de datos “Bool”
- Tipo de dato “bool”. Bool se usa para los valores lógicos true/false (verdadero/false). No es posible otro valor.
 
[pic 7]
flag1 := TRUE; Se asigna al flag el valor TRUE (verdadero).
[pic 8]
Ejemplo 2
VAR bool highvalue;
VAR num reg1
highvalue := reg1 > 100;
highvalue recibe el valor TRUE si reg1 es mayor que 100; de lo contrario, se asigna FALSE.
Ejemplo 3
IF highvalue Set do1;
La señal do1 se activa si highvalue es TRUE.
Ejemplo 4
highvalue := reg1 > 100;
mediumvalue := reg1 > 20 AND NOT highvalue;
mediumvalue recibe el valor TRUE si reg1 está entre 20 y 100.
[pic 9]
Tipos de datos “Clock”
- Tipo de dato “Clock”. Clock se usa la medición del tiempo.. Una variable “clock” funciona como un cronómetro que se usa para temporizaciones.
 
- Los datos de tipo clock almacenan una medición de tiempo en segundos y tienen una exactitud de 0,001 segundos
 
[pic 10]
VAR clock myclock;
ClkReset myclock;
Se declara y pone a cero el reloj myclock,. Antes de usar ClkReset, ClkStart,
ClkStop y ClkRead, es necesario declarar una variable de tipo clock en el programa.
Tipos de datos “Num”
- Num. se utiliza con valores numéricos, como por ejemplo, contadores.
 
El valor del tipo de dato “num” puede ser:
[pic 11]
- 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*10^3 = 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 necesariamente
Tipos de datos “JoinTarget”
- JoinTarget. jointarget 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.
 
[pic 12]
CONST jointtarget calib_pos := [ [ 0, 0, 0, 0, 0, 0], [ 0, 9E9, 9E9, 9E9, 9E9, 9E9] ];
MoveAbsJ cali_pos, v1000, z200, tool0;
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.
...