Hay dos tipos de variables.
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. |
Estas variables almacenan valores de tipo palabra. | |
Estas variables almacenan cadenas de texto. | |
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. | |
Estas variables almacenan los valores de fecha y hora. |
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 |
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 |
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.
|
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. |
Puede definir el número de bytes o palabras que puede almacenar variable en la propiedad [Número de bytes/palabras].
Reconoce el final de la cadena de texto con un NULL (0x00) o [Número de bytes].
Para una variable o dispositivo seleccionado, si utiliza un texto cuyo código de caracteres no puede ser convertido por el [Código de cadena], el final de la cadena se reconoce por el código de caracteres.
La relación de orden alto/bajo para los datos de palabra depende del [Modo cadena] en el controlador seleccionado.
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 |
La precisión de las variables REAL está limitada a siete dígitos. Si se requiere precisión en los datos (como en las operaciones de comparación), utilice variables enteras.
Ejemplos
Ejemplo 1: Para el valor 1.2345678, el valor resultante es aproximado, ya que se elimina el octavo dígito (después de 1.234567).
Ejemplo 2: El valor 0.1 almacenado en una variable REAL podría dar como resultado 0.1000000014901161.
Cuando use variables REAL externas, asegúrese de que el valor Orden de doble palabra de la Configuración del dispositivo coincida con el del equipo. Si el valor no coincide, los valores de las variables REAL externas no se mostrarán correctamente.
Utilice el punto (.) para el punto decimal del valor de la variable. La coma (,) no es compatible con los puntos decimales.
Aunque se utilice la coma (,) para el punto decimal del valor de la variable en el software de edición de pantallas o en la unidad de visualización, se producen resultados inesperados, como que se muestra un error, se ignora la coma, etc.
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 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 · Modelos distintos a los anteriores |
Cuando utilice estas variables, haga coincidir los tipos de datos en el dispositivo externo con el valor de los datos almacenados.
Si ha introducido un valor que no está en el rango de la dirección del dispositivo externo, el valor introducido se muestra en la pantalla, pero no se establece en la dirección del dispositivo externo.
Cuando asocia las variables con diferentes tipos de datos, a veces el valor de la variable de origen se sobrescribe con un valor de resultado común.
Por ejemplo, convertir una variable Real en una variable Entera: Poner 123.4 en una variable REAL, luego escribir el valor en una variable INT y el resultado es 123. El valor de la variable REAL también se actualiza a 123.
Cuando se introduce un valor entero en la variable DATE_AND_TIME desde un dispositivo externo, el valor almacenado se desplaza según la zona horaria de la unidad de visualización. Por lo tanto, para la entrada de valores enteros, la fecha y la hora mostradas por un visualizador de fecha/hora difieren en función del huso horaria.
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 |
Los siguientes son los tipos de variables del tipo de datos de usuario.
los marcadores de la matriz y los marcadores de la estructura también se cuentan como variables.
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.
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.
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.
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.
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:
Se puede utilizar en el convertidor de [Expresión].
(Ejemplo: Array11[DINT1.value+2], Array21[Int2[Int3[Int1+1]]], Array31[Int1*4-(Int2+Int4/4)])
Se admite un máximo de cinco niveles de anidación para todos los tipos de datos de variables.
(Ejemplo: Array11[Array22[DINT1.value],DINT02.value])
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.
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.
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) |
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)
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.
|
El valor no se almacena.
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.
|
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) |