Avaliador de expressões

Calcule o resultado de uma expressão com números inteiros, decimais, variáveis numéricas, variáveis de string para comparações de strings, operadores aritméticos e Boolianos ou um conjunto de funções.

Propriedades

Propriedade
Descrição
Expressão
A expressão a ser calculada.
A expressão pode conter um número ilimitado de parênteses abertos e fechados corretamente. Se a expressão não seguir a sintaxe correta, o conversor não realizará o cálculo.
Modo
A direção do vínculo dinâmico:
  • Leia do nó de origem para o pai.
  • Grave do nó pai para o nó de origem.
  • Leia do nó de origem para o pai e grave do pai para o nó de origem.

Origem

Uma ou mais variáveis identificadas por:
Espaço reservado
{
index_number
}
Inteiro progressivo igual ou maior que zero. Por exemplo
{1}
Espaço reservado
{#
placeholder_identifier
}
String prefixada com
#
. Por exemplo
{#speed}
DICA: Use qualquer combinação de espaços reservados em qualquer ordem. Use qualquer número de espaços reservados na expressão.

Literais

  • Boolianos.
  • Inteiros.
  • Decimais onde o separador decimal deve ser um ponto.
  • Números hexadecimais com o prefixo
    0x
    .
  • Texto como uma string delimitada por aspas duplas.
    DICA: Aspas duplas repetidas duas vezes (
    ""
    ) são interpretadas como uma sequência de escape.
  • Data e hora. Por exemplo,
    2017-06-28T15:26:06.0790910
    .

Operadores

Categoria
Operador
Associatividade
Comentários
Unário
Unário negativo:
-
NOT bit a bit:
~
Operador de conversão:
(type)
Direita para a esquerda
O operador de conversão
(type)
se aplica a todos os tipos de dados numéricos e somente Booliano.
Multiplicativo
*
,
/
,
%
Esquerda para a direita
Aditivo
+
,
-
Esquerda para a direita
Deslocamento
<<
,
>>
Esquerda para a direita
Os operadores Deslocamento e Relacional se aplicam a estes tipos de dados:
  • Numeric
  • DateTime
  • Duration
Relacional
<
,
<=
,
>
,
>=
Esquerda para a direita
Igualdade
==
,
!=
Esquerda para a direita
Os operadores Igualdade se aplicam a estes tipos de dados:
  • Numeric
  • DateTime
  • Duration
  • String
  • LocalizedText
AND, XOR, OR bit a bit
&
,
^
,
|
Esquerda para a direita
AND lógico
&&
Esquerda para a direita
OR lógico
||
Esquerda para a direita

Tipos de dados

Convenções de tipo de dados no avaliador de expressões:
  • Inteiros literais são Int32.
  • Literais decimais são Double.
  • Valores numéricos são considerados Int32.
  • Literais verdadeiros e falsos são interpretados como Boolean.
  • O operador / sempre retorna um valor Double.
  • O operador % gera uma exceção quando há divisão por módulo zero.
  • O operador % aceita operandos Float e Double.
  • Todas as funções retornam um valor Double exceto pelo sinal, o que retorna um valor Int32.
O
type
de operadores de conversão unários pode ser destes tipos de dados:
  • bool, Boolean
  • sbyte, SByte
  • short, Int16
  • int, Int32
  • long, Int64
  • byte, Byte
  • ushort, UInt16
  • uint, UInt32
  • ulong, UInt64
  • float, Float
  • double, Double
Operadores aplicados a tipos de dados específicos:
Operador
Operando1
Operando2
Descrição
Mais
DateTime
Número integral
Operand2
é interpretado como milissegundos.
Mais
Número integral
DateTime
Operand1
é interpretado como milissegundos.
Mais
DateTime
TimeZone (Estrutura)
Operand2
é interpretado como minutos (TimeZone.Offset).
Mais
TimeZone (Estrutura)
DateTime
Operand1
é interpretado como minutos (TimeZone.Offset).
Mais
TimeZone
Número integral
Operand1
é interpretado como minutos (TimeZone.Offset).
Operand2
é interpretado como minutos.
Mais
Número integral
TimeZone
Operand1
é interpretado como minutos.
Operand2
é interpretado como minutos (TimeZone.Offset).
Menos
DateTime
Número integral
Operand2
é interpretado como milissegundos.
Menos
DateTime
TimeZone (Estrutura)
Operand2
é interpretado como minutos (TimeZone.Offset).
Menos
TimeZone
Número integral
Operand1
é interpretado como minutos (TimeZone.Offset).
Operand2
é interpretado como minutos.

Funções

Funções para uso no avaliador de expressões:
Função
Sintaxe
Descrição
Tipo de dados de retorno
max
max(
value1
,
value2
,
value3
, ...)
Retorna o valor mais ato.
Double
min
min(
value1
,
value2
,
value3
, ...)
Retorna o valor mais baixo.
Double
avg
avg(
value1
,
value2
,
value3
, ...)
Retorna a média dos valores determinados.
Double
abs
abs(
value
)
Retorna o valor absoluto do número determinado.
Double
trunc
trunc(
value
)
Retorna a parte inteira de um número decimal.
Double
ceil
ceil(
value
)
Retorna o valor aproximado para mais.
Double
floor
floor(
value
)
Retorna o valor aproximado para menos.
Double
round
round(
value
)
Retorna a aproximação ao inteiro mais próximo.
Double
sqrt
sqrt(
value
)
Retorna a raiz quadrada do número determinado.
Double
sign
sign(
value
)
Verifica se o número de ponto flutuante determinado é negativo. Retorna
0
se verdadeiro ou
1
se falso.
Int32
like
like(
string_value
,
pattern
)
Aplica-se apenas aos tipos de dados String, QualifiedName e LocalizedText
.
Retorna
verdadeiro
se o parâmetro
string_value
corresponder ao
pattern
.
O
padrão
aceita o curinga
%
no início ou no final.
Exemplos:
  • like("motor23", "motor%")
    avalia
    verdadeiro
  • like("machine_2", "motor%")
    avalia
    falso
Boolean
isempty
isempty(
variable
)
Verifica se um determinado NodeID, String, LocalizedText ou DataTime está vazio.
Boolean
if
if(
condition
,
value_if_true
,
value_if_false
)
Verifica se
condition
e retorna
value_if_true
ou
value_if_false
A sintaxe deve atender a estes requisitos:
  • Para
    value_if_true
    e
    value_if_false
    , use parâmetros do mesmo tipo de dados.
  • Para valores Boolianos, use
    true
    ou
    false
    em letra minúscula.
  • Para cores, vincule a valores de cores ou use a sintaxe
    0x
    AA
    RR
    GG
    BB
    , em que:
    • 0x
      é a notação hexadecimal
    • AA
      é o canal alfa (transparência)
    • RR
      é o canal vermelho
    • GG
      é o canal verde
    • BB
      é o canal azul
Tipo de dados do
value_if_true
left_of
left_of(string, pattern)
Retorna a substring à esquerda da primeira ocorrência do padrão de expressão regular.
IMPORTANTE: Não use curingas em padrões.
String
right_of
right_of(string, pattern)
Retorna a substring à direita da primeira ocorrência do padrão de expressão regular.
IMPORTANTE: Não use curingas em padrões.
String
like(string_value, pattern)
Aplica-se apenas aos tipos de dados
String
,
QualifiedName
e
LocalizedText
.
Retorna verdadeiro se o parâmetro
string_value
corresponder ao
padrão
especificado.
O
padrão
aceita o curinga
%
no início ou no final.
Exemplos
  • like("motor23", "motor%")
    avalia
    verdadeiro
  • like("machine_2", "motor%")
    avalia
    falso

Output

O valor resultante da expressão.

Exemplos

Retornar o valor absoluto de uma variável
Se o valor da variável for maior que 40, alterne a visibilidade de um objeto gráfico
Se o valor da variável for maior que 50, altere a cor de fundo de um objeto gráfico para azul
Se o valor da variável estiver entre 30 e 40, pisque o objeto de LED verde quando ativo
Se a cor da borda da caixa de texto for vermelha, habilite o botão
Se o texto do rótulo for igual a "AVISO", altere a cor do texto do rótulo para vermelho
Dê sua opinião
Tem dúvidas ou comentários sobre esta documentação? Por favor, envie seu comentário aqui.