Tipo de dados

Existem dois tipos de variáveis.

 

Observação:

 

Variáveis básicas

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.

WORD, DWORD, LWORD

Estas variáveis armazenam valores do tipo word.

STRING, WSTRING

Estas variáveis armazenam segmento de texto.

REAL, LREAL

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.

HORA, DATA, HORA_DO_DIA, DATA_E_HORA

Estas variáveis armazenam valores de hora e data.

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

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

WORD, DWORD, LWORD

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

STRING, WSTRING

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.

Observação:

  • Você também pode configurar a codificação de strings nas propriedades do equipamento. A configuração da propriedade da variável tem prioridade sobre a propriedade do equipamento. Na propriedade [Codificação de strings] da variável, selecione [Tipo de configuração do equipamento] para aplicar a configuração de codificação de strings do equipamento.
  • A propriedade [Codificação de strings] é exibida somente quando o driver suporta a codificação de strings.

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.

Observação:

  • 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.

REAL, LREAL

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

Observação:

  • 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.

HORA, DATA, HORA_DO_DIA, DATA_E_HORA

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

Observação: 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
1970/01/01 00:00:00 UTC ... 2106/02/07 06:28:15 UTC

Modelos diferentes dos acima
1970/01/01 00:00:00 UTC ... 2038/01/19 03:14:07 UTC

Observação:

  • 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

Variáveis de Tipos de Dados do Usuário

A seguir estão os tipos de variáveis do tipo de dados do usuário.

 

Observação: Suportes de matrizes e suportes de estruturas também são contados como variáveis.

 

Variáveis de matriz

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.

 

Número de elementos em cada dimensão e configurações de dimensão

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.

 

 

Observação: 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.

 

 

Endereçar a matriz indiretamente

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.

Observação:

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:

 

Variáveis de estrutura

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.

Operação quando o valor de entrada está fora da faixa de entrada

Quando o valor a ser armazenado na variável está fora da faixa (valor mínimo/máximo), o valor é tratado da seguinte maneira.

 

Observação:

  • Para mais informações sobre as operações Alterar valor, consulte Alterar valor.

 

Quando o valor é excedido no dispositivo externo

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.)

 

Quando o valor é excedido com uma operação Alterar valor [Loop]

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.)

Quando o valor é excedido com uma operação de Alterar valor [Stop]

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.

  • 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
    Difere dependendo da configuração da propriedade.
  • TIME
    2147483647/-2147483648
  • DATA/HORA_DO_DIA, DATA_E_HORA
    4294967295/0

 

Quando o valor é excedido com uma operação Alterar valor [Set], valor especificado indiretamente ou operação do conversor de expressão

O valor não é armazenado.

Quando o valor é excedido com uma receita

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.

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

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.)