Sei sulla pagina 1di 22

Módulo 5

Tipos de datos
Índice
1 Generalidades

2 Conversión implícita de tipos

3 Tipos elementales
4 Tipos Estructurados

5 Tipos de parámetros

6 Tipos de datos PLC (UDT)


7 Tipos de datos de Sistema (SDT)
Generalidades
• Los tipos de datos definen las propiedades de las etiquetas y los rangos permitidos.

• Los tipos de datos están permitidos de forma global y localmente en cualquier bloque.

• Existen diferentes tipos de datos:

• Elementales que van desde 1 bit hasta 64 bits

• Estructurados, conteniendo combinaciones de tipos de datos elementales

• Tipos de parámetros para la transmisión de bloques de parámetros a FC o FB

• Tipos de datos de PLC cuya estructura la define el usuario.

• Tipos de datos de sistema con estructura definida por Step 7

• Tipos de datos de hardware definidos por la configuración de hardware


Conversión implícita (I)
• La conversión implícita se da de forma automática cuando una función es
ejecutada siempre y cuando los tipos de las variables sean compatibles.
• La longitud del tipo de datos fuente no puede ser mayor que el tipo de datos
destino. Por ejemplo, en una suma.
• Cuando la conversión de datos es posible, los bits de datos se justifican a la
derecha y los bits sobrantes son rellenados con ceros. Es decir, toman las
posiciones de los bits menos representativos para que el valor esté inalterado.
• La conversión de tipos de datos de menor tamaño a uno más grande se indica
con la etiqueta en gris (en escalera y diagrama de bloques)
• En SCL, la conversión implícita se puede programar.
• #variable1 := BYTE_TO_WORD(#variable2)
Conversión implícita (II)
I : Independiente del IEC Check

DWORD

STRING
UDINT
WORD

USINT

LREAL
BOOL

CHAR
DATE
TIME
UINT

REAL
DINT
BYTE

SINT

TOD

DTL
INT
BOOL D: Con IEC Check Desactivado
BYTE I I D D D ED D D D
WORD I D D ED D D ED: Solo con Escalera y Diagrama
DWORD D ED D D de func. con IEC Check
USINT D D D I I I I I I desactivado
UINT D D I I I I D
UDINT D I D
SINT ED I I I I SCL: Solo en SCL con IEC Check
INT SCL ED I I I desactivado
DINT SCL SCL ED I D
REAL I
LREAL
TIME D D
TOD D D
DATE D D
DTL
CHAR D I
STRING
Tipo de datos elementales (I)
• BOOL: 1bit. TRUE/FALSE
• BYTE (8bits). Desde B#16#00 a B#16#FF
• WORD (16bits). Desde W#16#0000 a W#16#FFFF
• DWORD (32bits). Desde DW#16#0000 0000 a DW#16#FFFF FFFF

%MD100 = DWORD

%MW100 =WORD %MW102 = WORD

7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
%MB100 %MB101 %MB102 %MB103

%M102.1 = BIT %M103.0 = BIT


%MB100 = BYTE
Tipo de datos elementales (II)
• Binary-Coded Decimal (BCD) es un estándar para representar números decimales en el sistema
binario, en donde cada dígito decimal es codificado con una secuencia de 4 bits.

Decimal 0 1 2 3 4 5 6 7 8 9
BCD 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
+/- 10^2 10^1 10^0

• BCD16 : 16 bits -> 3 dígitos + signo (bit 15) -> +/-999

• BCD32: 32 bits -> 7 dígitos + signo (bit 31) -> +/- 9 999 999
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

+/- 10^6 10^5 10^4 10^3 10^2 10^1 10^0


Tipo de datos elementales (III)
• USINT-> 1 byte. Desde 0 a 255

• UINT -> 2 bytes (1 palabra). Desde 0 a 65535

• UDINT-> 4 bytes (2 palabras). 0 a 4294967295

• SINT ->1 byte. Desde -128 a +127 (el cero se considera positivo)

• INT -> 2 bytes. Desde -32768 hasta 32767 (el cero se considera positivo)

• DINT -> 4 bytes. Desde -2147483648 hasta +2147483647

• El signo siempre está en el bit más alto (7, 15 o 31)


Tipo de datos elementales (IV)
• REAL -> 4 bytes.

• -3.402823e+38 a -1.175495e-38
• ±0,0
• +1.175495e-38 a +3.402823e+38
Tipo de datos elementales (V)
• LREAL -> 8 bytes.
• de -1.7976931348623158e+308 a -2.2250738585072014e-308
• ±0,0
• de +2.2250738585072014e-308 a +1.7976931348623158e+308
Tipo de datos elementales (VI)
• CHAR -> 1 byte.
Un operando del tipo de datos CHAR tiene una longitud de 8 bits y ocupa un BYTE
en la memoria. El tipo de datos CHAR almacena un solo carácter en formato ASCII.

DATE ->de D#1990-01-01 (16#0000) a D#2168-12-31 (16#FF62)


El tipo de datos DATE guarda una fecha como número entero sin signo. La
representación contiene el año, el mes y el día.
El contenido de un operando del tipo de datos DATE corresponde al número de
días desde 01/01/1990, expresado en formato hexadecimal (16#0000).
Tipo de datos elementales (VII)
• TIME ->4 bytes. Desde T#-24d20h31m23s648ms hasta T#+24d20h31m23s647ms

El contenido de un operando del tipo TIME se interpreta como milisegundos. La


representación contiene especificaciones de días (d), horas (h), minutos (m),
segundos (s) y milisegundos (ms).

• TIME_OF_DAY->4 bytes. Desde TOD#00:00:00.000 a TOD#23:59:59.999

El tipo de datos TOD (TIME_OF_DAY) ocupa una palabra doble y guarda el número
de milisegundos desde el inicio del día (0:00 h) como número entero sin signo.
Tipo de datos estructurados (I)
• STRING -> (Número de caracteres) + 2 bytes

• Un operando del tipo de datos STRING guarda varios caracteres en una cadena
que puede estar formada por un máximo de 254 caracteres. En las cadenas de
caracteres se admiten todos los caracteres del código ASCII. Los caracteres se
introducen entre comillas sencillas.
Tipo de datos estructurados (II)
• DTL -> 12 bytes.
• Mín.: DTL#1970-01-01-00:00:00.0
• Máx.: DTL#2262-04-11-23:47:16.854775807

Un operando del tipo de datos DTL tiene una longitud de 12 bytes y guarda datos
de fecha y hora en una estructura predefinida.

Una vez declarada la variable como DTL se puede recuperar cualquier parte, por
ejemplo el año. Si la variable se llamara “Variable1”, sería #Variable1.YEAR
Tipo de datos estructurados (III)
Byte Componente Tipo de datos Rango de valores
0
Año UINT de 1970 a 2262
1
2 Mes USINT de 1 a 12
3 Día USINT 1 hasta 31
de 1 (domingo) a 7
(sábado)
4 Día de la semana USINT El día de la semana no se
tiene en cuenta al
introducir los valores.
5 Hora USINT 0 hasta 23
6 Minuto USINT 0 hasta 59
7 Segundo USINT 0 hasta 59
8
9
Nanosegundo UDINT de 0 a 999999999
10
11
Tipo de datos estructurados (IV)
ARRAY -> Estructura: [-32768..32767] of <tipo de datos>

Tipos de datos: Secuencias de bits, enteros, números en coma flotante, temporizadores, cadenas de caracteres,
estructuras

El tipo de datos Array representa una estructura de datos compuesta por un número fijo de componentes del
mismo tipo de datos. Se admiten todos los tipos de datos, a excepción de Array.

Una variable del tipo de datos Array comienza siempre en un límite de WORD (en un byte par).

Para direccionar los componentes de campo se utilizan índices. Los límites de los índices se definen entre
corchetes en la declaración del campo después de la palabra clave Array. El límite inferior debe ser menor o
igual que el límite superior. Un campo puede contener hasta seis dimensiones, cuyos límites se especifican
separados entre sí por comas.

Ejemplos:
Array[1..20] of REAL
Array[1..2, 3..4] of CHAR
Tipo de datos estructurados (V)
• STRUCT-> El tipo de datos STRUCT representa una estructura de datos compuesta por un número fijo de
componentes de diferentes tipos de datos.

Los componentes de los tipos de datos STRUCT o ARRAY también pueden anidarse en una estructura. La
profundidad de anidamiento se limita a ocho niveles. Con ayuda de estructuras es posible agrupar datos en
función del control del proceso y transmitir parámetros como una unidad de datos.

Pueden crearse hasta 65534 estructuras. Cada una puede contener hasta 252 componentes.

Un componente del tipo de datos STRUCT comienza siempre en un límite de WORD (en un byte par)
Tipo de parámetros (I)
• TEMPORIZADORES IEC
Función de tiempo Tipo de dato Tipo de dato IEC
Generador de pulsos TIME TP_TIME
Retraso a conexión TIME TON_TIME
Retraso a desconexión TIME TOF_TIME
Retraso a conexión con memoria TIME TONR_TIME

• CONTADORES IEC

Tipo de contador Tipo de dato Tipo de dato IEC

Contador hacia arriba SINT, INT, DINT CTU_SINT , CTU_INT , CTU_DINT

Contador hacia abajo SINT, INT, DINT CTD_SINT , CTD_INT , CTD_DINT

Contador arriba/abajo SINT, INT, DINT CTUD_SINT , CTUD_INT , CTUD_DINT


Tipo de parámetros (II)
• VARIANT

• Contiene un puntero a una etiqueta o área de datos.

• VOID

• El parámetro VOID se usa para la definición de funciones las cuales no devuelven ningún valor.
Tipos de datos PLC (UDT)
• Los tipos de datos PLC (UDT) son estructuras de datos definidas por el usuario que pueden utilizarse varias
veces en el programa. La estructura puede estar formada por varios elementos de diferentes tipos de datos.
Los tipos de datos de los diferentes elementos se definen al declarar un tipo de datos PLC.

• Se pueden usar en los DB como tipo

• Se pueden usar como tipo de datos en el área de memoria estática de los FB.
Tipos de datos de Sistema (I)
• IEC_TIMER (instancia o multi-instancia) • IEC_COUNTER (instancia o multi-instancia)

• IEC_SCOUNTER (SDT 69 , tipo SINT)


• TP: Impulso
• IEC_COUNTER (SDT 30, tipo INT)
• TON: Retardo a la conexión
• IEC_DCOUNTER (SDT 70, tipo DINT)
• TOF: Retardo a la desconexión
• IEC_USCOUNTER (SDT 73, tipo UINT)
• TONR: Retardo a la conexión con
• IEC_UCOUNTER (SDT 72, tipo UINT)
memoria
• IEC_UDCOUNTER (SDT 74, tipo UDINT)
Tipos de datos de Sistema (II)
• TCON_PARAM

• Para parametrizar las conexiones en TCP, UDP e ISO on TCP, para algunas CPUs de la S7-1200 se utiliza un
DB de descripción de la conexión con una estructura conforme a TCON_Param. La estructura de datos
fija de TCON_Param contiene los parámetros necesarios para establecer la conexión

• TADDR_PARAM

• Contiene la estructura de datos de equipos remotos cuando se usa el protocolo UDP.

• ERRORSTRUCT

• Estructura predefinida usada por las funciones de evaluación de errores GetError y GetErrorID

• TIMETRANSFORMATIONRULE

• Estructura para fijar la hora local con SET_TIMEZONE (horario de verano)

Potrebbero piacerti anche