Evaluador de expresiones

Calcule el resultado de una expresión con enteros, decimales, variables numéricas, variables de cadena para comparaciones de cadenas, operadores aritméticos y booleanos o un conjunto de funciones.

Propiedades

Propiedad
Descripción
Expresión
La expresión que se va a calcular.
Para agregar variables a la expresión, introduzca números consecutivos o cadenas únicas que empiecen por
#
entre llaves
{}
. Por ejemplo, introduzca
{0}
y, a continuación, introduzca
{1}
más adelante en la expresión. Rellene los campos
Vínculo dinámico de
{#}
correspondientes a cada variable.
La expresión puede contener un número ilimitado de llaves
{}
abiertas y cerradas correctamente. Si la expresión no tiene una sintaxis correcta, el convertidor no realizará el cálculo.
Modo
La dirección del vínculo dinámico:
  • Se lee del nodo de origen al primario.
  • Se escribe de un elemento primario en el nodo de origen.
  • Se lee del nodo de origen al primario y se escribe del primario en el nodo de origen.

Origen

Una o más variables identificadas por:
Marcador de posición de
{
index_number
}
Entero progresivo igual o mayor que cero. Por ejemplo,
{1}
.
Marcador de posición de
{#
placeholder_identifier
}
Cadena con prefijo
#
. Por ejemplo,
{#speed}
.
CONSEJO: Utilice cualquier combinación de marcadores de posición en cualquier orden. Utilice cualquier número de marcadores de posición que desee en la expresión.

Literales

  • Booleanos.
  • Enteros.
  • Decimales donde el separador decimal debe ser un punto.
  • Números hexadecimales con el prefijo
    0x
    .
  • Texto como una cadena delimitada por comillas dobles.
    CONSEJO: Las comillas dobles repetidas (
    ""
    ) se interpretan como una secuencia de escape.
  • La fecha y la hora. Por ejemplo,
    2017-06-28T15:26:06.0790910
    .

Operadores

Categoría
Operador
Asociatividad
Comentarios
Unarios
Unarios de negación:
-
NOT bit a bit:
~
Operador de trasmisión:
(type)
De derecha a izquierda
El operador de trasmisión
(type)
se aplica a todos los tipos de datos numéricos y solo a tipos de datos booleanos.
Multiplicativo
*
,
/
,
%
De izquierda a derecha
Aditivo
+
,
-
De izquierda a derecha
Mayús
<<
,
>>
De izquierda a derecha
Los operadores de desplazamiento y relacionales se aplican a los siguientes tipos de datos:
  • Numeric
  • DateTime
  • Duration
Relacionales
<
,
<=
,
>
,
>=
De izquierda a derecha
Igualdad
==
,
!=
De izquierda a derecha
Los operadores de igualdad se aplican a estos tipos de datos:
  • Numeric
  • DateTime
  • Duration
  • String
  • LocalizedText
AND, XOR, OR bit a bit
&
,
^
,
|
De izquierda a derecha
AND lógico
&&
De izquierda a derecha
OR lógico
||
De izquierda a derecha

Tipos de datos

Convenciones de tipos de datos en el evaluador de expresiones:
  • Los enteros literales son Int32.
  • Los literales decimales son Double.
  • Los valores numéricos se consideran Int32.
  • Los literales Verdadero y Falso se interpretan como Boolean.
  • El operador / devuelve siempre un valor Double.
  • El operador % genera una excepción cuando hay división por módulo cero.
  • El operador % acepta operandos Float y Double.
  • Todas las funciones devuelven un valor Double excepto para el signo, que devuelve un valor Int32.
El
type
de operadores de conversión unaria puede ser uno de estos tipos de datos:
  • bool, Boolean
  • byte, SByte
  • short, Int16
  • int, Int32
  • long, Int64
  • byte, Byte
  • ushort, UInt16
  • uint, UInt32
  • ulong, UInt64
  • float, Float
  • double, Double
Operadores aplicados a tipos de datos específicos:
Operador
Operand1
Operand2
Descripción
Más
DateTime
Número integral
Operand2
se interpreta como milisegundos.
Más
Número integral
DateTime
Operand1
se interpreta como milisegundos.
Más
DateTime
TimeZone (Struct)
Operand2
se interpreta como minutos (TimeZone.Offset).
Más
TimeZone (Struct)
DateTime
Operand1
se interpreta como minutos (TimeZone.Offset).
Más
TimeZone
Número integral
Operand1
se interpreta como minutos (TimeZone.Offset).
Operand2
se interpreta como minutos.
Más
Número integral
TimeZone
Operand1
se interpreta como minutos.
Operand2
se interpreta como minutos (TimeZone.Offset).
Menos
DateTime
Número integral
Operand2
se interpreta como milisegundos.
Menos
DateTime
TimeZone (Struct)
Operand2
se interpreta como minutos (TimeZone.Offset).
Menos
TimeZone
Número integral
Operand1
se interpreta como minutos (TimeZone.Offset).
Operand2
se interpreta como minutos.

Funciones

Funciones que se pueden utilizar en el evaluador de expresiones:
Función
Sintaxis
Descripción
Devolver el tipo de datos
max
max(
value1
,
value2
,
value3
, ...)
Devuelve el valor más grande.
Double
min
min(
value1
,
value2
,
value3
, ...)
Devuelve el valor más bajo.
Double
avg
avg(
value1
,
value2
,
value3
, ...)
Devuelve la media de los valores dados.
Double
abs
abs(
value
)
Devuelve el valor absoluto del número dado.
Double
trunc
trunc(
value
)
Devuelve la parte entera de un número decimal.
Double
ceil
ceil(
value
)
Devuelve el valor aproximado por exceso.
Double
floor
floor(
value
)
Devuelve el valor aproximado por defecto.
Double
round
round(
value
)
Devuelve la aproximación al entero más cercano.
Double
sqrt
sqrt(
value
)
Devuelve la raíz cuadrada del número dado.
Double
sign
sign(
value
)
Comprueba si el número de punto flotante dado es negativo. Devuelve
0
si es verdadero, o
1
si es falso.
Int32
like
like(
string_value
,
pattern
)
Solo se aplica a los tipos de datos String, QualifiedName y LocalizedText
.
Devuelve
verdadero
si el parámetro
string_value
coincide con el
pattern
.
El
patrón
acepta el comodín
%
al principio o al final.
Ejemplos:
  • like("motor23", "motor%")
    evalúa
    verdadero
  • like("machine_2", "motor%")
    evalúa
    falso
Boolean
isempty
isempty(
variable
)
Comprueba si un determinado NodeID, String, LocalizedText o DataTime está vacío.
Boolean
if
if(
condition
,
value_if_true
,
value_if_false
)
Comprueba si la
condition
es verdadera y devuelve
value_if_true
o
value_if_false
La sintaxis debe cumplir estos requisitos:
  • Para
    value_if_true
    y
    value_if_false
    , se utilizan parámetros del mismo tipo de datos.
  • Para valores booleanos, utilice
    true
    o
    false
    en minúsculas.
  • En el caso de los colores, vincule a los valores de color o utilice la sintaxis
    0x
    AA
    RR
    GG
    BB
    , donde:
    • 0x
      es la notación hexadecimal
    • AA
      es el canal alfa (transparencia)
    • RR
      es el canal rojo
    • GG
      es el canal verde
    • BB
      es el canal azul
Tipo de datos
value_if_true
left_of
left_of(string, pattern)
Devuelve la subcadena situada a la izquierda de la primera aparición del patrón de expresión regular.
IMPORTANTE: No utilice comodines en los patrones.
Cadena
right_of
right_of(string, pattern)
Devuelve la subcadena situada a la derecha de la primera aparición del patrón de expresión regular.
IMPORTANTE: No utilice comodines en los patrones.
Cadena

Salida

El valor resultante de la expresión.

Ejemplos

Devolver el valor absoluto de una variable
Si el valor de la variable es superior a 40, alterne la visibilidad de un objeto gráfico
Si el valor de la variable es superior a 50, cambie el color de fondo de un objeto gráfico a azul
Si el valor de la variable está entre 30 y 40, el objeto LED verde parpadea cuando esté activo
Si el color del borde del cuadro de texto es rojo, habilite el botón
Si el texto de la etiqueta es igual a "ADVERTENCIA", cambie el color del texto de la etiqueta a rojo
Entregue su opinión
¿Tiene dudas o comentarios acerca de esta documentación? Por favor deje su opinión aquí.
Normal