Tipo de datos

Hay dos tipos de variables.

 

Nota:

 

Variables básicas

La siguiente es una lista de los tipos de variables básicas.

Tipo de datos

Descripción

BOOL Esta variable almacena 0 o 1.
SINT, USINT, INT, UINT, DINT, UDINT, LINT, ULINT, BYTE Estas variables almacenan valores integrales. El procesamiento es más rápido en comparación con las variables de tipo punto flotante.

WORD, DWORD, LWORD

Estas variables almacenan valores de tipo palabra.

STRING, WSTRING

Estas variables almacenan cadenas de texto.

REAL, LREAL

Estas variables almacenan valores de punto flotante. Las variables REAL pueden almacenar valores mayores (como cálculos y constantes) que las variables de tipo entero.

TIME, DATE, TIME_OF_DAY, DATE_AND_TIME

Estas variables almacenan los valores de fecha y hora.

SINT, USINT, INT, UINT, DINT, UDINT, LINT, ULINT, BYTE

Tipo de datos

Con signo

Longitud de los datos

Intervalo de datos

SINT

Complemento a 2's

8 bits

-128...127

USINT

-

8 bits

0...255

INT

Complemento a 2's

16 bits

-32768...32767

UINT

-

16 bits

0...65535

DINT

Complemento a 2's

32 bits

-2147483648...2147483647

UDINT

-

32 bits

0...4.294.967.295

LINT

Complemento a 2's

64 bits

-9.223.372.036.854.775.808...9.223.372.036.854.775.807

ULINT

-

64 bits

0...18.446.744.073.709.551.615

BYTE

-

8 bits

0...255

WORD, DWORD, LWORD

Tipo de datos Longitud de los datos Intervalo de datos

WORD

16 bits

0...65.535

DWORD

32 bits

0...4.294.967.295

LWORD

64 bits

0...18.446.744.073.709.551.615

STRING, WSTRING

Tipo de datos Descripción

STRING

Almacena hasta 512 bytes de texto.

Cuando se utiliza una variable externa, la codificación de las cadenas se define mediante la propiedad [Código de cadena] de la variable.

Los valores de codificación de cadenas disponibles son: UTF8, UTF16, ShiftJIS, Code Page850, GB2312, BIG5, KSC5601, CodePage1251, CodePage874, and CodePage1252.

Nota:

  • También puede configurar la codificación de las cadenas en las propiedades del equipo. El ajuste de la propiedad variable tiene prioridad sobre la propiedad del equipo. En la propiedad [Código de cadena] de la variable, seleccione [Tipo de configuración del equipo] para aplicar el ajuste de codificación de cadenas del equipo.
  • La propiedad [Código de cadena] sólo se muestra cuando el controlador admite la codificación de cadenas.

WSTRING

Almacena hasta 512 palabras de texto de doble byte.

Sólo puede utilizar el tipo de datos WSTRING con variables externas.

La codificación de cadenas está fijada como UTF16. No se puede cambiar la configuración [Código de cadena] en las propiedades de la variable, y se ignora la codificación en las propiedades del equipo.

Nota:

REAL, LREAL

Tipo de datos Longitud de los datos Intervalo de datos
REAL

32 bits

+/-3,402823E38 ... +/-1,1754944E-38

LREAL

64 bits

+/-4,19E-307 ... +/-1,67E308

Nota:

TIME, DATE, TIME_OF_DAY, DATE_AND_TIME

Tipo de datos Descripción Intervalo de datos

TIME

Almacena el tiempo transcurrido en días y hora. - 24 d 20 h 31 m 23 s 648 ms ... 24 d 20 h 31 m 23 s 647 ms

Nota: Cuando se establece un valor negativo para las propiedades [Valor inicial] y [Rango de entrada] en una variable de TIEMPO, se mostrará el signo negativo para cada unidad de tiempo. (Ejemplo: -24d -20:-31:-23.-648)

DATE Almacena la fecha.

·        Cuando se utiliza la Serie SP5000 Open Box (Modelo Windows 10 IoT Enterprise), la Serie IPC, o PC/AT

1970/01/01 ... 2106/02/07

·        Modelos distintos a los anteriores

1970/01/01 ... 2038/01/19

TIME_OF_DAY Guarda la hora. 00:00:00 ... 23:59:59

DATE_AND_TIME

Combina DATE y TIME_OF_DAY.

·        Cuando se utiliza la Serie SP5000 Open Box (Modelo Windows 10 IoT Enterprise), la Serie IPC, o PC/AT
1970/01/01 00:00:00 UTC ... 2106/02/07 06:28:15 UTC

·        Modelos distintos a los anteriores
1970/01/01 00:00:00 UTC ... 2038/01/19 03:14:07 UTC

Nota:

La Serie SP5000 Open Box (Windows 10 IoT Enterprise Model), la Serie IPC, o PC/AT

Entrada de valor entero desde dispositivo externo UTC+0
(Intervalo: 1970/01/01 00:00:00 ... 2106/02/07 06:28:15)
UTC+9
(Intervalo: 1970/01/01 09:00:00 ... 2106/02/07 15:28:15)
0 1970/01/01 00:00:00 2106/02/07 06:28:16
1 1970/01/01 00:00:01 2106/02/07 06:28:17
: : :
32399 1970/01/01 08:59:59 2106/02/07 15:28:15
32400 1970/01/01 09:00:00 1970/01/01 09:00:00
: : :
4294967295 2106/02/07 06:28:15 2106/02/07 06:28:15


Modelos distintos a los anteriores

Entrada de valor entero desde dispositivo externo UTC+0
(Intervalo: 1970/01/01 00:00:00 ... 2038/01/19 03:14:07)
UTC+9
(Intervalo: 1970/01/01 09:00:00 ... 2038/01/19 12:14:07)
0 1970/01/01 00:00:00 2038/01/19 03:14:08
1 1970/01/01 00:00:01 2038/01/19 03:14:09
: : :
32399 1970/01/01 08:59:59 2038/01/19 12:14:07
32400 1970/01/01 09:00:00 1970/01/01 09:00:00
: : :
2147483647 2038/01/19 03:14:07 2038/01/19 03:14:07

Variables de los tipos de datos de usuario

Los siguientes son los tipos de variables del tipo de datos de usuario.

 

Nota: los marcadores de la matriz y los marcadores de la estructura también se cuentan como variables.

 

Variables de matriz

Una matriz es un conjunto de variables con el mismo tipo de datos. Cada variable en una matriz es llamada elemento.

Para entender cómo funciona una variable de matriz, imagínese que la variable es una caja. Tal como se muestra en el diagrama siguiente, la variable Número es un sólo cuadro que contiene un valor.

Considere cada matriz una fila de cuadros con un número asociado a cada cuadro. En el siguiente diagrama, la variable de matriz Número contiene 5 elementos 0-4. Los valores de las variables se almacenan en cada una de las 5 casillas.

Para especificar cada variable en una matriz, especifique el nombre de la variable seguido del número de elemento entre corchetes [ ].

(Ejemplo) Matriz con 5 elementos

El número de elemento suele empezar por 0, pero también puede empezar por un valor positivo o negativo.

Ejemplo: Matriz que comienza con el número de elemento -1 con 5 elementos

 

 

Una matriz multidimensional es una matriz que contiene otras matrices. Por ejemplo, una matriz que contiene dos matrices DINT es una matriz bidimensional.

 

Número de elementos en cada dimensión y configuración de dimensiones

En la ventana [Explorador de proyectos], desde [Variables] → [Todos los tipos de datos del usuario] → [Matrices], en la columna [Dimensión], configure tanto la dimensión de la matriz como el número de elementos.

Para los pasos en el diseño de una matriz, consulte lo siguiente.

Pasos para diseñar (Variables, Matriz, Estructura)

Para una matriz unidimensional, especifique solamente los elementos en la matriz.

(Ejemplo) Para una matriz unidimensional con número de elementos = 3, introduzca "3".

 

 

Para una matriz multidimensional, en el campo [Dimensión], especifique el número de elementos en cada dimensión, separados por una coma (,).

Ejemplo: Para una matriz bidimensional donde la primera dimensión tiene 3 elementos (número de inicio = 0) y la segunda dimensión tiene 4 elementos (número de inicio = 0), ingrese '3,4'.

 

 

Esta definición de matriz se utiliza para crear la variable de matriz Var1, como se muestra a continuación.

 

 

Nota: Para establecer el número de inicio de un elemento en un valor distinto de 0, en lugar del número de elementos, introduzca el número de inicio y el número del último elemento separados por dos puntos (..), y el campo [Número de elementos] calculará el número total de elementos.

 

(Ejemplo) Para configurar una matriz bidimensional donde la primera dimensión tiene 3 elementos comenzando desde el elemento 0, y la segunda dimensión tiene 4 elementos comenzando desde el elemento 3, ingrese "3,3..6".

 

Después de la entrada, "3..6" se convierte en 4 elementos, y su dimensión de matriz comienza a partir del elemento número 3.

 

 

Esta matriz crea la variable de matriz Var1, que se muestra a continuación.

 

 

Direccionamiento indirecto de matrices

El direccionamiento indirecto es la forma más rápida de acceder a un valor de variable de un rango de valores consecutivos en una matriz, ya que se minimiza el consumo de memoria y el valor se actualiza en cuestión de milisegundos.

Para el direccionamiento indirecto de matrices, especifique el número de elemento de la matriz a través del valor de una variable o el valor de propiedad de un objeto para especificar dinámicamente el elemento de una matriz.

Nota:

Cuando especifique indirectamente el número de elemento de una matriz con el valor de propiedad de un objeto, introduzca "$GraphicalObject" antes del nombre del objeto.
Dependiendo de la función de ayuda a la entrada, después de escribir "$" en el campo de propiedad de entrada o fuente, en la lista de opciones puede seleccionar "$GraphicalObject" para introducir la cadena fácilmente.

 

El direccionamiento indirecto de una matriz es compatible con los elementos siguientes:

 

Variables de estructura

Una estructura es una variable que almacena una colección de otras variables. Cada variable en una estructura es llamada elemento. Un elemento puede ser de cualquier tipo de datos.

Puede crear una estructura anidada agregando como elemento otra estructura o una matriz.

Considere a una estructura como un grupo de cuadros con un elemento asociado a cada cuadro.

En el siguiente diagrama, la variable de estructura DATA contiene 3 elementos. Los valores de las variables se almacenan en cada una de las 3 casillas.

Operación cuando el valor de entrada está fuera del rango de entrada

Cuando el valor a almacenar en la variable está fuera del rango (valor mínimo/máximo), el valor se trata de la siguiente manera.

 

Nota:

 

Cuando se supera el valor en el dispositivo externo

Tipo de datos Descripción

STRING, WSTRING

Almacena los caracteres que pueden caber.
Aparte de lo anterior

El valor de la parte que excede el rango de entrada se vuelve a contar desde la parte inferior del rango de entrada y se almacena.

Ejemplo) Variable de 8 bits sin signo (rango de valores: 0...255)

Ejemplo 1: si intenta almacenar 256, se almacena 0 en la variable. (Al superar el límite superior en 1, se almacena el valor del límite inferior de 0)

Ejemplo 2: si intenta almacenar 257, se almacena 1 en la variable. (Al superar el límite superior en 2, se almacena el segundo valor del límite inferior de 1)

 

Cuando se supera el valor con una operación de Cambio de valor [Loop]

El valor de la parte que excede el rango de entrada se vuelve a contar desde la parte inferior del rango de entrada y se almacena.

(Ejemplo): Variable de 8 bits sin signo (rango de valores: 0...255)

Ejemplo 1: si intenta almacenar 256, se almacena 0 en la variable. (Al superar el límite superior en 1, se almacena el valor del límite inferior de 0)

Ejemplo 2: si intenta almacenar 257, se almacena 1 en la variable. (Al superar el límite superior en 2, se almacena el segundo valor del límite inferior de 1)

Cuando se supera el valor con una operación de Cambio de valor [Stop]

Tipo de datos Descripción

STRING, WSTRING

Almacena los caracteres que pueden caber.
Aparte de lo anterior

Los siguientes se redondean al valor superior o inferior.

  • BOOL
    1/0
  • SINT
    127/-128
  • USINT, BYTE
    255/0
  • INT
    32767/-32768
  • UINT, WORD
    65535/0
  • DINT
    2147483647/-2147483648
  • UDINT, DWORD
    4294967295/0
  • LINT
    9223372036854775807/-9223372036854775808
  • ULINT, LWORD
    18446744073709551615/0
  • REAL, LREAL
    Difiere según la configuración de la propiedad.
  • TIME
    2147483647/-2147483648
  • DATE/TIME_OF_DAY, DATE_AND_TIME
    4294967295/0

 

Cuando se supera el valor con una operación [Set] de Cambio de valor, un valor especificado de manera indirecta, o una operación de convertidor de expresiones

El valor no se almacena.

Cuando se supera el valor con una receta

Tipo de datos Descripción

BOOL, REAL, LREAL

El valor no se almacena.

LINT, ULINT, LWORD

Los siguientes se redondean al valor superior o inferior.

  • LINT
    9223372036854775807/-9223372036854775808
  • ULINT, LWORD
    18446744073709551615/0

STRING, WSTRING

Almacena los caracteres que pueden caber.
Aparte de lo anterior

El valor de la parte que excede el rango de entrada se vuelve a contar desde la parte inferior del rango de entrada y se almacena.

(Ejemplo): Variable de 8 bits sin signo (rango de valores: 0...255)

Ejemplo 1: si intenta almacenar 256, se almacena 0 en la variable. (Al superar el límite superior en 1, se almacena el valor del límite inferior de 0)

Ejemplo 2: si intenta almacenar 257, se almacena 1 en la variable. (Al superar el límite superior en 2, se almacena el segundo valor del límite inferior de 1)