Existem dois tipos de variáveis.
A seguir está uma lista dos tipos de variáveis básicas.
Tipo de dados |
Descrição |
| BOOL | Esta variável armazena 0 ou 1. |
| SINT, USINT, INT, UINT, DINT, UDINT, LINT, ULINT, BYTE | Estas variáveis armazenam valores integrais. O processamento é mais rápido em comparação com variáveis do tipo ponto flutuante. |
| Estas variáveis armazenam valores do tipo word. | |
| Estas variáveis armazenam segmento de texto. | |
| Estas variáveis armazenam valores de ponto flutuante. Variáveis REAIS podem armazenar valores maiores (como cálculos e constantes) do que variáveis do tipo integer. | |
| Estas variáveis armazenam valores de hora e data. |
Tipo de dados |
Sinalizado |
Comprimento de dados |
Intervalo de dados |
SINT |
Complemento de 2 |
8 bits |
-128...127 |
USINT |
- |
8 bits |
0...255 |
INT |
Complemento de 2 |
16 bits |
-32768...32767 |
UINT |
- |
16 bits |
0...65535 |
DINT |
Complemento de 2 |
32 bits |
-2147483648...2147483647 |
UDINT |
- |
32 bits |
0...4.294.967.295 |
LINT |
Complemento de 2 |
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 dados | Comprimento de dados | Intervalo de dados |
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 dados | Descrição |
STRING |
Armazena até 512 bytes de texto. Ao utilizar uma variável externa, a codificação de strings é definida pela propriedade [Codificação de strings] da variável. Os valores disponíveis da codificação de strings são: UTF8, UTF16, ShiftJIS, Página de código850, GB2312, BIG5, KSC5601, Página de código1251, Página de código874 e Página de código1252.
|
WSTRING |
Armazena até 512 words de texto de byte-duplo. Você pode usar tipo de dados WSTRING somente com variáveis externas. A codificação de strings é fixada como UTF16. Não se pode alterar a configuração [Codificação de strings] nas propriedades das variáveis, e a codificação nas propriedades do equipamento é ignorada. |
Você pode definir o número de bytes ou words que a variável pode armazenar em [Número de bytes/palavras].
Reconhece o final do segmento de texto com um NULL (0x00) ou [Número de bytes].
Para uma variável ou driver selecionado, se você usar um texto cujo código de caracteres não pode ser convertido pela [Codificação de strings], então o fim da string é reconhecido pelo código de caracteres.
A relação de ordem alta/baixa para dados de palavras depende de [Modo String] no driver selecionado.
| Tipo de dados | Comprimento de dados | Intervalo de dados |
| REAL | 32 bits |
+/-3.402823E38 ... +/-1.1754944E-38 |
| LREAL | 64 bits |
+/-4.19E-307 ... +/-1.67E308 |
A precisão das variáveis REAIS é limitada a sete dígitos. Se a precisão dos dados for necessária (como operações de comparação), use variáveis inteiras.
Exemplos
Exemplo 1: Para o valor 1.2345678, o valor resultante é aproximado, pois o oitavo dígito é descartado (após 1.234567).
Exemplo 2: O valor 0.1 armazenado em uma variável REAL poderia resultar em 0.1000000014901161.
Ao utilizar variáveis externas REAL, certifique-se de que a configuração Ordem Double Word na Configuração do dispositivo corresponde à configuração no equipamento. Se as configurações não corresponderem, os valores das variáveis externas REAL não serão exibidos corretamente.
Usar período (.) para o ponto decimal do valor da variável. A vírgula (,) não é suportada para os pontos decimais.
Mesmo que a vírgula (,) seja usada para o ponto decimal do valor da variável no software de edição de tela ou na unidade de display, resultados inesperados, como aquele erro é mostrado, a vírgula é ignorada ou assim por diante.
| Tipo de dados | Descrição | Intervalo de dados |
TIME |
Armazena o tempo decorrido em dias e horas. | - 24 d 20 h 31 m 23 s 648 ms ... 24 d 20 h 31 m 23 s 647 ms Quando um valor negativo é definido para as propriedades [Valor inicial] e [Faixa de entradas] em uma variável TIME, o sinal negativo será exibido para cada unidade de tempo. (Exemplo: -24d -20:-31:-23.-648) |
| DATE | Armazena a data. | Ao usar a Série SP5000 Open Box (Windows 10 IoT Enterprise Model), Série IPC, ou PC/AT 1970/01/01 ... 2106/02/07 Modelos diferentes dos acima 1970/01/01 ... 2038/01/19 |
| TIME_OF_DAY | Armazena a hora. | 00:00:00 ... 23:59:59 |
DATE_AND_TIME |
Combina a DATA e HORA_DO_DIA. | Ao usar a Série SP5000 Open Box (Windows 10 IoT Enterprise Model), Série IPC, ou PC/AT Modelos diferentes dos acima |
Ao usar essas variáveis, combine os tipos de dados no dispositivo externo com o valor dos dados armazenados.
Se você inseriu o valor que não está no faixa do endereço do dispositivo externo, então o valor inserido é exibido na tela, mas não é definido no endereço do dispositivo externo.
Quando você associa variáveis com diferentes tipos de dados, às vezes o valor da variável de origem é substituído com um valor de resultado comum.
Por exemplo, converta uma variável Real para uma variável Integer: Defina 123.4 para uma variável REAL, depois grave o valor para uma variável INT e o resultado será 123. O valor da variável REAL também é atualizado para 123.
Quando um valor inteiro é inserido na variável DATE_AND_TIME de um Dispositivo externo, o valor armazenado é compensado pelo fuso horário da unidade de display. Portanto, para a entrada de valor inteiro, a data e a hora exibida por uma Exibição de data/hora diferem dependendo do fuso horário.
Série SP5000 Open Box (Windows 10 IoT Enterprise Model), Série IPC, ou PC/AT
| Entrada de valor inteiro do 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 diferentes dos acima
| Entrada de valor inteiro do 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 |
A seguir estão os tipos de variáveis do tipo de dados do usuário.
Suportes de matrizes e suportes de estruturas também são contados como variáveis.
Uma matriz é uma coleção de variáveis com o mesmo tipo de dados. Cada variável em uma matriz é chamada de elemento.
Para entender como uma variável de matriz funciona, pense na variável como uma caixa. Como é exibido no diagrama a seguir, o número da variável é uma única caixa contendo apenas um valor.

Pense em uma matriz como uma linha de caixas com um número associado a cada caixa. No diagrama a seguir, a variável número da matriz contém 5 elementos 0-4. Os valores das variáveis são armazenados em cada uma das 5 caixas.

Para especificar cada variável em uma matriz, especifique o nome da variável seguido pelo número do elemento entre colchetes [ ].
(Exemplo) Matriz com 5 elementos

O número do elemento geralmente inicia com 0, mas também pode iniciar com um valor positivo ou negativo.
(Exemplo) Matriz iniciando com o número de elemento -1 com 5 elementos

Uma matriz multidimensional é uma matriz que contém outras matrizes. Por exemplo, uma matriz que contém duas matrizes DINT é uma matriz bidimensional.
Na janela [Explorador de projeto], em [Variáveis] → [Todos os tipos de dados de usuário] → [Matrizes], na coluna [Dimensão], defina a dimensão da matriz e o número de elementos.
Para as etapas de criação de uma matriz, consulte o seguinte.
Etapas para projetar (Variáveis, Matriz, Estrutura)
Para uma matriz unidimensional, especifique apenas os elementos na matriz.
(Exemplo) Para uma matriz unidimensional com número de elementos = 3, digite "3".

Para uma matriz multidimensional, no campo [Dimensão], especifique o número de elementos em cada dimensão, separados por uma vírgula (,).
(Exemplo) Para uma matriz bidimensional onde a primeira dimensão tem 3 elementos (número inicial = 0) e a segunda dimensão tem 4 elementos (número inicial = 0), digite "3,4".

Esta definição de matriz é usada para criar a variável de matriz Var1, mostrada abaixo.

Para definir o número inicial de um elemento para algo diferente de 0, em vez do número de elementos, insira os números dos elementos inicial e final separados por dois pontos (..) e o campo [Número de elementos] calcula o número total de elementos.
(Exemplo) Para definir uma matriz bidimensional onde a primeira dimensão tem 3 elementos iniciando no elemento 0, e a segunda dimensão tem 4 elementos iniciando no elemento 3, digite "3,3..6".

Após a entrada, "3..6" é convertido em 4 elementos, e sua dimensão de matriz inicia no elemento número 3.

Esta matriz cria a variável de matriz Var1, mostrada abaixo.

O endereçamento indireto é a maneira mais rápida de acessar um valor de variável em uma faixa de valores consecutivos em uma matriz, para minimizar o consumo de memória e para atualizar o valor em milissegundos.
Para o endereçamento indireto de matrizes, especifique o número de elemento da matriz por meio de um valor de variável ou do valor de propriedade de um objeto para especificar dinamicamente o elemento de uma matriz.
Ao especificar um número de elemento da matriz indiretamente com o valor da propriedade de um objeto, digite “$GraphicalObject” antes do nome do objeto.
Dependendo da função de assistência de entrada, depois de digitar "$" no campo de propriedade de entrada ou de origem, na lista de opções, você pode selecionar "$GraphicalObject" para inserir a string facilmente.
O endereçamento indireto da uma matriz suporta o seguinte:
Você pode utilizar no conversor [Expressão].
(Exemplo: Array11[DINT1.value+2], Array21[Int2[Int3[Int1+1]]], Array31[Int1*4-(Int2+Int4/4)])
É suportado um máximo de 5 níveis de aninhamento para todos os tipos de dados de variáveis.
(Exemplo: Array11[Array22[DINT1.value],DINT02.value])
Uma estrutura é uma variável que contém uma coleção de outras variáveis. Cada variável em uma estrutura é chamada de elemento. Um elemento pode ser de qualquer tipo de dados.
Você pode criar uma estrutura aninhada adicionando outra estrutura ou uma matriz como um elemento.
Pense em uma estrutura como um grupo de caixas com elementos associado a cada caixa.
No diagrama a seguir, a variável de estrutura DADOS contém 3 elementos. Os valores das variáveis são armazenados em cada uma das 3 caixas.

Quando o valor a ser armazenado na variável está fora da faixa (valor mínimo/máximo), o valor é tratado da seguinte maneira.
| Tipo de dados | Descrição |
STRING, WSTRING |
Armazena os caracteres que podem caber. |
| Além do acima mencionado | O valor da parte que excede a faixa de entrada é contado novamente a partir da parte inferior da faixa de entrada e armazenado. Exemplo) Variável de 8 bits não assinada (faixa de valor: 0...255) Exemplo 1: Se você tentar armazenar 256, 0 é armazenado na variável. (Como o limite superior é excedido em 1, o valor limite inferior de 0 é armazenado) Exemplo 2: Se você tentar armazenar 257, 1 é armazenado na variável. (Como o limite superior é excedido em 2, o segundo valor do limite inferior de 1 é armazenado.) |
O valor da parte que excede a faixa de entrada é contado novamente a partir da parte inferior da faixa de entrada e armazenado.
(Exemplo) Variável de 8 bits não assinada (faixa de valor: 0...255)
Exemplo 1: Se você tentar armazenar 256, 0 é armazenado na variável. (Como o limite superior é excedido em 1, o valor limite inferior de 0 é armazenado)
Exemplo 2: Se você tentar armazenar 257, 1 é armazenado na variável. (Como o limite superior é excedido em 2, o segundo valor do limite inferior de 1 é armazenado.)
| Tipo de dados | Descrição |
STRING, WSTRING |
Armazena os caracteres que podem caber. |
| Além do acima mencionado | Os valores a seguir são arredondados para o valor superior ou inferior.
|
O valor não é armazenado.
| Tipo de dados | Descrição |
BOOL, REAL, LREAL |
O valor não é armazenado. |
LINT, ULINT, LWORD |
Os valores a seguir são arredondados para o valor superior ou inferior.
|
STRING, WSTRING |
Armazena os caracteres que podem caber. |
| Além do acima mencionado | O valor da parte que excede a faixa de entrada é contado novamente a partir da parte inferior da faixa de entrada e armazenado. (Exemplo) Variável de 8 bits não assinada (faixa de valor: 0...255) Exemplo 1: Se você tentar armazenar 256, 0 é armazenado na variável. (Como o limite superior é excedido em 1, o valor limite inferior de 0 é armazenado) Exemplo 2: Se você tentar armazenar 257, 1 é armazenado na variável. (Como o limite superior é excedido em 2, o segundo valor do limite inferior de 1 é armazenado.) |