Editeur de contraintesSyntaxe des expressions de contrainte La syntaxe des expressions de contrainte constitue un sous-ensemble de la syntaxe de LN Tools. Vous pouvez créer des expressions de contrainte à l'aide des instructions suivantes. Opérateurs arithmétiques :
Opérateurs logiques :
Opérateurs de relation :
Expressions de domaine A = {a1, a2, a3-a4,..} signifie : (A=a1 ou A=a2 ou A >= a3 et A <= a4, etc.). La syntaxe d'expression de domaine constitue une notation abrégée d'expressions logiques concernant le domaine d'une variable. Priorité dans les expressions Les opérateurs arithmétiques ont une priorité supérieure aux opérations de relation. Les opérations relationnelles possèdent une priorité plus élevée que les opérateurs logiques. La séquence de priorité des opérateurs arithmétiques : * / \ + - La séquence de priorité des opérateurs logiques : not, and, or Les parenthèses arrondies ('()') permettent de modifier la séquence de priorité d'opérateurs arithmétiques et logiques. Exemple 3 + 4 * 5 = 23 (3 + 4) * 5 = 35 Expressions booléennes Les expressions booléennes peuvent avoir la valeur "vrai" ou "faux" (1 ou 0). Elles peuvent s'appliquer dans des contraintes et en particulier dans des expressions conditionnelles. Exemple If not e then' signifie : Si e = faux alors' ou Si e = 0 alors' Constructions if-then-else Des constructions if-then-else élaborées peuvent être employées dans des contraintes.', notamment à des expressions conditionnelles. L'emboîtement d'instructions est autorisé. Exemple If expression1 then expression2 else expression3 endif Une construction if-then-else est toujours ponctuée d'une instruction endif. L'instruction else n'est pas obligatoire. Les instructions if, else et endif commencent toujours sur une nouvelle ligne. Les expressions (conditionnelles) peuvent se présenter sur plusieurs lignes. Une contrainte de validation peut être définie sans instruction if-then-else. Cette contrainte commence alors par "c:. Une contrainte peut être accompagnée de commentaires identifiés pas le signe "|". Lors du processus de configuration, vous pouvez générer des messages à l'aide de la variable message (80 x 25 lignes de texte maximum). Variables de contrainte Vous pouvez utiliser des variables globales et locales dans les expressions de contrainte. Les variables globales sont des caractéristiques produit et des variables de contrainte définies par l'utilisateur qui sont déclarées "globales". Les variables prédéfinies par le configurateur de produits, telles que la saisie, l'affichage, la longueur, la largeur, etc., sont des variables locales. Les variables globales conservent leur valeur pendant tout le processus de configuration, sauf si leurs valeurs ont été modifiées. Une variable de contrainte peut présenter des déclarations de type :
Les variables de contrainte définies par l'utilisateur doivent toujours être déclarées en début de contrainte. Toutes les variables locales sont initialisées avant que la contrainte ne soit exécutée. Les variables alphanumériques sont effacées et les variables numériques deviennent nulles. La saisie et la validation des variables globales sont initialisées avec la valeur "vrai". Utilisation des variables de contrainte Dans les expressions de contrainte, les caractéristiques produit doivent se présenter entre crochets ([......]). Les variables restantes peuvent être directement utilisées dans des expressions. Les variables alphanumériques (tableaux de chaînes) peuvent être indexées en fonction de la notation : (position de départ[;longueur]). Exemple [couleur] = "rouge" validation = vrai Les valeurs des variables peuvent être alphanumériques ou numériques. Les valeurs alphanumériques doivent se présenter entre guillemets ("...."). Le valeurs numériques peuvent être saisies directement. Le signe décimal est un point ("."). Exemple machine(1;2) = "A5" volume = 28.673 Les constantes vrai/faux peuvent être utilisées pour les expressions booléennes. Fonctions arithmétiques
Fonctions goniométriques
Fonctions logarithmiques
Fonctions chaîne
Fonctions de date
Exemple date(1995,06,01) = 728445
| |||