Évaluateur d’expression
Calculez le résultat d'une expression avec des entiers, des décimales, des variables numériques, des variables de chaîne pour comparer les chaînes, des opérateurs arithmétiques et booléens, ou un ensemble de fonctions.
Propriétés
Propriété | Description |
---|---|
Expression | Expression à calculer. Pour ajouter des variables à l’expression, saisissez des nombres consécutifs ou des chaînes uniques commençant par # entre accolades {} . Par exemple, saisissez {0} et {1} plus loin dans l’expression. Remplissez les champs Lien dynamique correspondant à chaque variable.{#} L'expression peut contenir un nombre illimité de crochets correctement ouverts et fermés {} . Si la syntaxe de l'expression est incorrecte, le convertisseur n'exécute pas le calcul. |
Mode | Direction du lien dynamique :
|
Source
Une ou plusieurs variables identifiées par :
- Espace réservé{index_number}
- Entier progressif égal ou supérieur à zéro. Par exemple,{1}
- Espace réservé{#placeholder_identifier}
- Chaîne avec le préfixe#. Par exemple,{#speed}
CONSEIL:
Utilisez des combinaisons d’espaces réservés dans n’importe quel ordre. Utilisez autant d’espaces réservés que vous voulez dans l’expression.
Litéraux
- Boolean.
- Entiers.
- Décimales séparées par un point.
- Nombres hexadécimaux avec le préfixe0x.
- Texte tel qu'une chaîne délimitée par des guillemets doubles.CONSEIL: Les guillemets doubles répétés deux fois ("") sont interprétés comme une séquence d'échappement.
- Date et heure. Par exemple,2017-06-28T15:26:06.0790910.
Opérateurs
Catégorie | Opérateur | Associativité | Commentaire |
---|---|---|---|
Unaire | Moins unaire : - NOT binaire : ~ Opérateur de conversion : (type) | De droite à gauche | L’opérateur de conversion (type) ne s’applique qu’aux types de données numériques et Boolean. |
Multiplicatif | * ,/ , % | De gauche à droite | |
Additif | + , - | De gauche à droite | |
Décaler | << , >> | De gauche à droite | Les opérateurs de décalage et relationnels s’appliquent aux types de données suivants :
|
Relationnel | < , <= , > , >= | De gauche à droite | |
Égalité | == , != | De gauche à droite | Les opérateurs Égalité s’appliquent aux types de données suivants :
|
AND XOR, OR binaires | & , ^ , | | De gauche à droite | |
AND logique | && | De gauche à droite | |
OR logique | || | De gauche à droite |
Types de données
Conventions sur les types de données dans l’évaluateur d’expression :
- Les entiers littéraux sont Int32.
- Les littéraux décimaux sont Double.
- Les valeurs numériques sont considérées comme Int32.
- Les littéraux Vrai et Faux sont interprétés comme Boolean.
- L'opérateur / renvoie toujours une valeur Double.
- L'opérateur % génère une exception en cas de division par modulo zéro.
- L'opérateur % accepte les opérandes Float et Double.
- Toutes les fonctions renvoient une valeur Double à l'exception du signe, qui renvoie une valeur Int32.
Le
type
des opérateurs de conversion unaire peut être l’un des types de données suivants :- bool, Boolean
- sbyte, SByte
- short, Int16
- int, Int32
- long, Int64
- byte, Byte
- ushort, UInt16
- uint, UInt32
- ulong, UInt64
- float, Float
- double, Double
Opérateurs appliqués à des types de données spécifiques :
Opérateur | Operand1 | Operand2 | Description |
---|---|---|---|
Plus | DateTime | Nombre intégral | Operand2 est interprété en millisecondes. |
Plus | Nombre intégral | DateTime | Operand1 est interprété en millisecondes. |
Plus | DateTime | TimeZone (Struct) | Operand2 est interprété en minutes (TimeZone.Offset). |
Plus | TimeZone (Struct) | DateTime | Operand1 est interprété en minutes (TimeZone.Offset). |
Plus | TimeZone | Nombre intégral | Operand1 est interprété en minutes (TimeZone.Offset).Operand2 est interprété en minutes. |
Plus | Nombre intégral | TimeZone | Operand1 est interprété en minutes.Operand2 est interprété en minutes (TimeZone.Offset). |
Moins | DateTime | Nombre intégral | Operand2 est interprété en millisecondes. |
Moins | DateTime | TimeZone (Struct) | Operand2 est interprété en minutes (TimeZone.Offset). |
Moins | TimeZone | Nombre intégral | Operand1 est interprété en minutes (TimeZone.Offset).Operand2 est interprété en minutes. |
Fonctions
Fonctions à utiliser dans l’évaluateur d’expression :
Fonction | Syntaxe | Description | Afficher le type de données |
---|---|---|---|
max | max( value1 , value2 , value3 , ...) | Affiche la valeur la plus élevée. | Double |
min | min( value1 , value2 , value3 , ...) | Affiche la valeur la plus basse. | Double |
avg | avg( value1 , value2 , value3 , ...) | Affiche la moyenne des valeurs données. | Double |
abs | abs( value ) | Affiche la valeur absolue du nombre donné. | Double |
trunc | trunc( value ) | Affiche la partie entière d'un nombre décimal. | Double |
ceil | ceil( value ) | Affiche la valeur approximative par excès. | Double |
floor | floor( value ) | Affiche la valeur approximative par défaut. | Double |
round | round( value ) | Affiche l’approximation à l’entier le plus proche. | Double |
sqrt | sqrt( value ) | Affiche la racine carrée du nombre donné. | Double |
sign | sign( value ) | Vérifie si le nombre à virgule flottante donné est négatif. Affiche 0 si vrai ou 1 si faux. | Int32 |
like | like( string_value , pattern ) | S’applique uniquement aux types de données String, QualifiedName et LocalizedText. Affiche vrai si le paramètre string_value correspond à la valeur pattern .Le modèle accepte le caractère générique % au début ou à la fin.Exemples :
| Boolean |
isempty | isempty( variable ) | Vérifie si un NodeID, String, LocalizedText ou DataTime donné est vide. | Boolean |
if | if( condition , value_if_true , value_if_false ) | Vérifie si le condition est vrai et renvoie value_if_true ou value_if_false La syntaxe doit répondre aux exigences suivantes :
| Type de données value_if_true |
left_of | left_of(string, pattern) | Renvoie la sous-chaîne située à gauche de la première occurrence du motif d’expression régulière.
IMPORTANT:
N’utilisez pas de caractères génériques dans les motifs.
| Chaîne |
right_of | right_of(string, pattern) | Renvoie la sous-chaîne située à droite de la première occurrence du motif d’expression régulière.
IMPORTANT:
N’utilisez pas de caractères génériques dans les motifs.
| Chaîne |
Sortie
Valeur résultante de l'expression.
Exemples
Renvoie la valeur absolue d’une variable

Si la valeur de la variable est supérieure à 40, rend un objet graphique visible

Si la valeur de la variable est supérieure à 50, change la couleur d’arrière-plan d’un objet graphique en bleu

Si la valeur de la variable est comprise entre 30 et 40, l’objet LED vert clignote lorsqu’il est actif

Si la couleur du cadre de la zone de texte est rouge, active le bouton

Si le texte de l’étiquette est égal à « AVERTISSEMENT », change la couleur du texte de l’étiquette en rouge

expression
expression evaluator
Fournir une réponse