Introduction

Après avoir inséré un bloc réseau d'équation, double-cliquez sur les points d'interrogation affichés (????? ) pour accéder à l'expression d'affectation ST.

Appuyez sur Entrée pour commencer une analyse et afficher les problèmes détectés dans une info-bulle.

Vous pouvez afficher l'animation des mots mémoire utilisés dans l'expression d'affectation ST dans la fenêtre des variables. Voir la section Fenêtre d'affichage des variables.

Adresses mémoire

Une adresse mémoire entrée dans l'expression d'affectation ST doit commencer par l'un des symboles ci-dessous, qui permet de spécifier le type d'adresse :

  • %M (bit mémoire)

  • %I (entrée TOR)

  • %IW (mot d'entrée)

  • %MW (mot mémoire)

Le type d'adresse doit être suivi d'un numéro d'adresse (pas de zéro de début nécessaires).

Création automatique des variables

Une fois que vous avez appuyé sur Entrée pour confirmer l'expression d'affectation ST, une variable, utilisable dans le réseau d'équation, est créée automatiquement pour chaque adresse entrée.

Exemples

Adresse

Variable

%M1

_000001

%I1

_100001

%IW1

_300001

%MW1

_400001

Le type de variable est déterminé par son suffixe d'adresse.

Suffixe

Type de variable

Pas de suffixe

%Mx, %Ix

EBOOL

%IWx, %MWx

UINT

I

INT

DI

DINT

UD

UDINT

L

REAL

W

WORD

La variable est mappée à la mémoire localisée interne associée.

Par exemple : %IW1DI devient la variable _300001_DI:DINT@%IW1.

Constantes

Les constantes dans les réseaux d'équation possèdent la même syntaxe que dans les autres éditeurs IEC (sans caractère # au début).

Opérateurs

Opérateurs et priorité

Exploitation

Symbole

Priorité

Parenthèses

(expression)

La plus élevée

Evaluation de fonction

Identificateur (liste d'arguments)

-

Négation

-

-

Complément

~

-

Elévation de puissance

**

-

Multiplication

*

-

Division

/

-

Addition

+

-

Soustraction

-

-

Comparaison

< , > , <= , >=

-

Egalité

=

-

Inégalité

<>

-

Booléen ET

&

-

Booléen OU exclusif

^

-

Booléen OU

|

-

Affectation

:=

La plus basse

Les opérateurs **, *, /, +, -, <<, >>, <, >, <=, >=, =, <>, &, ^ et | sont pris en charge et sont mis en œuvre dans la syntaxe ST de Control Expert. Les combinaisons de type de données pour les types d'opérande et le type de résultat ne sont pas toutes prises en charge.

NOTE : Control Expert ne prend en charge qu'une valeur à virgule flottante pour l'opérateur ** (fonctions EXPT).
NOTE : Les opérations logiques de manipulation de bits AND, OR et XOR fonctionnent comme dans la syntaxe ST.

Conditionnel ternaire

Le conditionnel ternaire (C?t:f ), contrairement au langage LL984 propriétaire, n'est pas disponible dans la syntaxe ST de Control Expert.

Le bloc fonction SEL existant fournit cette fonctionnalité et doit être utilisé à la place.

Exemple :

Syntaxe propriétaire :

400010 := 300010 < 300020 ? 300004 : 300005

Syntaxe dans Control Expert :

%MW10 := SEL(%IW10 < %IW20, %IW4, %IW50);

Avec le code ci-dessous, créé automatiquement par l'éditeur :

_400010 := SEL(_300010 < _300020, _300004, _300005);

Décalage de bits

Le décalage de bits (<<, >>), contrairement au langage LL984 propriétaire, n'est pas disponible dans la syntaxe ST de Control Expert.

Les blocs fonction SHL et SHR existants fournissent cette fonctionnalité et doivent être utilisés à la place.

Exemple :

Syntaxe propriétaire :

400010 = 300010U << 3

Syntaxe dans Control Expert :

%MW100W := SHL(%IW10W, 3);

Avec le code ci-dessous, créé automatiquement par l'éditeur :

_400100_W := SHL(_300010_W, 3);

Blocs fonction

En général, vous pouvez utiliser les blocs fonction mis à disposition pour le langage ST.

En particulier, les blocs fonction Control Expert ci-dessous remplacent les blocs fonction propriétaires mentionnés ci-dessous.

Nom de la fonction propriétaire

Nom de la fonction de Control Expert

Type d'argument*

Type de retour*

Signification

ABS

ABS

S,U,L,UL,F

S,U,L,UL,F

Valeur absolue

ARCCOS

ACOS

F

F

Arc cosinus

ARCSIN

ASIN

F

F

Arc sinus

ARCTAN

ATAN

F

F

Arc tangente

COS

COS

F

F

Cosinus

COSD

COSD

F

F

Cosinus des degrés

EXP

EXP

F

F

Fonction exponentielle (puissance e)

(pas forcément un nombre entier)

FIX

REAL_TO

F

L

Conversion d'une valeur à virgule flottante en entier

(nécessite un argument FP)

FLOAT

INT_TO

S, U, L, UL

F

Conversion d'un entier en valeur à virgule flottante

(nécessite un argument d'entier)

LN

LN

F

F

Logarithme népérien (base e)

LOG

LOG

F

F

Logarithme (base 10)

SIN

SIN

F

F

Sinus des radians

SIND

SIND

F

F

Sinus des degrés

SQRT

SQRT

F

F

Racine carrée

TAN

TAN

F

F

Tangente des radians

TAND

TAND

F

F

Tangente des degrés

* : S=INT, U=UINT, L=DINT, UL=UDINT, F=REAL

Exemple d'expression LL984

Syntaxe propriétaire :

40701 = 40702U + COS(40703UL) * #8.00135F + SIN(40704);

Syntaxe dans Control Expert :

%MW701 := REAL_TO_UINT(WORD_TO_REAL(%MW702W) + COS(WORD_AS_REAL(%MW703W, %MW704W)) * 8.00135 + SIN(WORD_TO_REAL(%MW704W)));

Avec le code ci-dessous, créé automatiquement par l'éditeur :

_400701 := REAL_TO_UINT(WORD_TO_REAL(_400702_W) + COS(WORD_AS_REAL(_400703_W, _400704_W)) * 8.00135 + SIN(WORD_TO_REAL(_400704_W)));