Schneider Electric Langage textuel structuré, BFU Mode d'emploi

Ajouter à Mes manuels
58 Des pages
Schneider Electric Langage textuel structuré, BFU Mode d'emploi | Fixfr
Glossaire des pictogrammes utilisés
à
Panneau AUTOROUTE
Repère les résumés de chapitres, de paragraphes, …
!
Panneau ATTENTION
x
Panneau INDICATEUR "Exemple"
i
Panneau INTERDICTION
ß
Panneau STOP
m
TEM10000F
Indique les procédures présentant un risque (en cours d'installation, de manipulation ou de modification, …)
Repère les exemples pratiques (techniques de saisie, …)
Repère les démarches ou actions STRICTEMENT INTERDITES
Signale les remarques importantes, le lecteur doit lire attentivement le texte avant
de continuer
MAIN
Signale les remarques d'ordre général, les notas, …
n
TEM10000F
n
1
Langage Textuel Structuré
Sommaire
Pages
TEM10000F
1. Introduction
1.1. Contexte
1.2. Les Boîtes Fonctionnelles Utilisateur BFU
3
3
3
2. Structure d'un programme en LTS
9
3. La déclaration des variables locales
3.1. Variables locales
3.2. Echanges avec l'extérieur de la BFU
11
11
14
4. Le corps du programme
4.1. Généralités
4.2. Les constantes
4.3. Les affectations
4.4. L'indexation
4.5. Les opérateurs et fonctions mathématiques et logiques
4.6. Les fonctions de décalage
4.7. Les fonctions de copie/conversion
4.8. L'instruction de condition IF
4.9. L'instruction d'itération FOR (traitement itératif)
4.10.L'instruction de répétition WHILE
4.11.L'instruction d'arrêt d'exécution de la BFU : RETURN
4.12.L'instruction de sortie de boucle WHILE ou FOR : EXIT
15
15
16
17
19
20
24
28
30
33
37
38
39
5. Création d'une BFU
5.1. Particularités de l'éditeur BFU
5.2. Accès à l'éditeur BFU
5.3. Saisie dans l'écran "Editeur BFU LTS"
5.3.1. Principe de saisie
5.3.2. Equivalences clavier
5.4. Description des différents menus
5.4.1. Menu BFU
5.4.2. Menu Edition
5.4.3. Menu Services
5.4.4. Menu Accès - Fonction "Interface"
5.4.5. Menu Accès - Fonction "Fiches descriptives"
5.4.6. Menu Accès - Fonction "Description paramètres"
5.4.7. Menu Accès - Fonction "Mot de passe"
5.4.8. Menu Fichier
5.4.9. Menus Tables de VD et Commandes
41
41
42
44
44
45
46
47
47
48
50
53
53
53
54
55
6. Mise au point unitaire des BFU
57
7. Exemple
59
n
2
Langage Textuel Structuré
TEM10000F
n
3
Langage Textuel Structuré
1. Introduction
1.1. Contexte
Une application ORPHEE est structurée par un ensemble d'entités (voir documentation ORPHEE TEM 10000F, § A - Présentation générale).
Les entités qui contiennent des expressions combinatoires sont les suivantes :
%CCn, %CFn, %TTn, %TGn, %TRn, %TDn, %REn, %ESn, %EIn et %EPn.
Une expression combinatoire est composée d'équations logiques avec éventuellement des Boîtes Fonctionnelles Constructeur (BFC) et/ou Utilisateur (BFU).
Les Boîtes Fonctionnelles Utilisateurs (BFU) peuvent être programmées :
- en Combinatoire (schéma relais)
ou
- en Langage Textuel Structuré (LTS) : réalisation de calculs complexes (algorithmes,
…)
Ce document présente de manière générale le Langage Textuel Structuré et plus
précisément son application dans les BFU.
!
CONSEIL :
Avant de lire ce document, il est recommandé de consulter dans la documentation
ORPHEE - TEM10000F les chapitres suivants :
- A - Présentation générale (Tome I)
- B - Description détaillée - § 2. Les éléments du langage (Tome I)
- F - Les Boîtes Fonctionnelles Utilisateur BFU (Tome II)
1.2. Les Boîtes Fonctionnelles Utilisateur (BFU)
Les boîtes fonctionnelles utilisateur (BFU) offrent à l'utilisateur d'ORPHEE la possibilité de créer ses propres boîtes fonctionnelles répondant aux spécificités de ses
applications.
Elles seront utilisées dès qu'une séquence de programme se trouve répétée à
plusieurs reprises dans une application, pour figer une programmation standard
(exemple : algorithme de commande d'un moteur incluant la prise en compte des
sécurités locales), pour réaliser des calculs complexes (cas des BFU en LTS).
Regroupées dans une bibliothèque, elles peuvent facilement être transmises à
l'ensemble des programmeurs (sous-traitants), et être utilisées dans toutes les
applications.
L'utilisation de BFU dans une application permet :
- de simplifier la conception et la saisie du programme,
- d'accroître la lisibilité du programme,
- de faciliter sa mise au point (toutes les variables manipulées par la BFU sont
TEM10000F
n
4
Langage Textuel Structuré
identifiées sur son interface),
- de diminuer le volume de code généré (le code correspondant à la BFU n'étant
chargé qu'une fois, quel que soit le nombre d'appels à la BFU dans le programme).
La description de l'algorithme interne d'une BFU s'effectue en schéma à relais, ou
en LTS .
L'utilisation d'une BFU dans une entité relais s'effectue ensuite de façon similaire à
l'utilisation d'une BFC.
Les éléments essentiels constitutifs d'une BFU sont les suivants :
1 - l'algorithme interne, décrit en schéma à relais ou en LTS dans le corps de la
BFU,
2 - la représentation graphique à l'écran, lors de son utilisation dans une expression
combinatoire, décrite dans son interface (dessin de la BFU à l'écran avec
positionnement des paramètres d'interface),
3 - les fiches descriptives associées permettant de décrire la fonction de la BFU, son
algorithme, ses particularités d'utilisation, …
4 - la signature, permettant d'identifier une version de la BFU,
5 - le mot de passe permettant de protéger le savoir-faire contenu dans la BFU et
évite les modifications "incontrôlées".
Schéma descriptif d'une BFU
BFU
EN1
Représentation
graphique
S1
ETAT
COMP
IF COND THEN
MES := 12
Algorithme de la BFU
écrit en schéma à relais
!
TEM10000F
* POJ0
Corps de la BFU
écrit en LTS
Une BFU est écrite soit en LTS soit en schéma à relais.
n
5
Langage Textuel Structuré
Les variables de la BFU
Les variables d'une BFU se répartissent en deux grandes familles :
• Les variables locales sont celles qui sont calculées et exploitées à l'intérieur
même de la BFU mais qui n'ont aucun lien avec l'extérieur de la BFU (variable
intermédiaire de renvoi d'une instruction à l'autre, résultat d'un calcul intermédiaire,
…).
Les variables locales doivent être de nature simple : bit, mot, mot double, réel (pas
de tables ou de chaînes).
Il s'agit de variables de travail, allouées dynamiquement à chaque exécution de la
BFU.
- Elles ne consomment pas de ressources dans la mémoire de données réservée
à l'utilisateur.
- Elles doivent être positionnées (calculées) à chaque exécution de la BFU,
préalablement à leur utilisation. Elles ne peuvent en aucun cas mémoriser l'état
d'une donnée d'une exécution à l'autre de la BFU.
• Les paramètres d'interface, au contraire, réalisent les liens avec l'extérieur de la
BFU, soit pour acquérir des données d'entrée de la BFU, soit pour fournir les
résultats à l'extérieur.
Les paramètres d'interface peuvent être de nature simple (bit, mot, mot double,
réel) ou de nature composée (table, chaîne de caractères).
Capacités maximum :
Le corps d'une BFU peut contenir jusqu'à :
- 25 paramètres d'interfaces répartis en :
5 d'entrée,
5 de sortie,
5 internes,
10 cachés.
- 100 variables locales.
TEM10000F
n
6
Langage Textuel Structuré
Exemple d'une BFU
Calcul de moyenne (MOYE) sur les N premiers éléments d'une table TABL de mots
de 16 bits réalisé par une BFU ; le calcul est exécuté si VAL = 1 (pour la simplicité
de l'exemple les cas de paramètres incorrect ne sont pas pris en compte et les
variables sont considérées initialisées à 0).
MOYENNE
VAL, TABL, N, MOYE
sont les paramètres
d'interface
VAL
TABL
MOYE
N
Algorithme de la BFU en LTS
VAR
(*Déclaration des variables locales à la BFU*)
TOTAL et INDEX
sont des variables
locales
TOTAL:REAL;
INDEX:INT;
(*TOTAL contiendra la somme de l'élément n et n+1*)
(*INDEX contiendra l'index des éléments à additionner*)
END_VAR
(*Programme*)
(*Si le traitement est validé, VAL=1, faire calcul de la
moyenne*)
IF ?VAL THEN
TOTAL:=0.0;
(*faire la somme des éléments n et n+1 de la table TABL à l'aide
index*)
Les paramètres d'interface d'un
de la BFU (VAL, TABL, N,
MOYE) sont identifiés par
? et sont écrits sur 4
caractères maximum.
FOR INDEX:=0 TO (?N–1) DO
TOTAL:=TOTAL + ?TABL(INDEX);
END_FOR;
(*calcul de la moyenne*)
?MOYE:=TOTAL / ?N;
END_IF;
TEM10000F
n
7
Langage Textuel Structuré
L'exemple précédent permet de distinguer deux types de paramètres d'interface :
- Les paramètres d'entrée qui représentent des données à fournir à la BFU par le
programme d'application (positionnés à gauche sur le dessin de l'interface de la
BFU). Ces paramètres ne peuvent pas être modifiés dans le corps de la BFU.
Ils sont au nombre de 5 maximum.
- Les paramètres de sortie qui représentent les données élaborées par la BFU à
destination du programme d'application (positionnés à droite sur le dessin de
l'interface de la BFU). Ces paramètres doivent obligatoirement être positionnés
dans le corps de la BFU.
Ils sont au nombre de 5 maximum.
m
Nota : Les paramètres de sortie de nature simple peuvent être obligatoires ou
facultatifs.
A ces deux premiers types de paramètres d'interface, il faut ajouter :
- les paramètres internes
- les paramètres cachés.
Ces deux types de paramètres peuvent jouer le rôle de paramètres d'entrée, de
sortie ou les deux à la fois.
Les paramètres internes sont visibles sur l'interface de la BFU, y compris en exploitation. Ils sont au nombre de cinq maximum.
Les paramètres cachés, en revanche, ne sont pas visibles directement :
- en programmation, ils sont accessibles par l'intermédiaire d'une boîte de dialogue,
- en exploitation :
. la même boîte de dialogue permet de visualiser leurs noms,
. leurs valeurs sont visualisables ou modifiables, comme toute donnée de la
mémoire utilisateur, par l'intermédiaire d'une table de visualisation.
Ils sont au nombre de 10 maximum.
Nom de la BFU
IN1
OUT1
INT1
IN2
Présentation d'une BFU
vue de l'éditeur relais :
OUT2
INT2
IN3
Interface de la BFU
et boîte de saisie
des paramètres cachés
OUT3
INT3
OUT4
IN4
INT4
IN5
OUT5
INT5
Paramètres internes de la BFU EXEMPLE
CAC1
CAC2
CAC3
CAC4
CAC5
CAC6
CAC7
CAC8
CAC9
CA10
ANNULER
TEM10000F
OK
n
8
Langage Textuel Structuré
En pratique, il est nécessaire, lors de la création du corps de la BFU, de spécifier à
l'éditeur le type des variables utilisées (variables locales ou paramètres d'interface).
Ceci est fait en faisant précéder systématiquement l'appellation des paramètres
d'interface du caractère "?" (appellations limitées à quatre caractères alphanumériques, le premier étant alphabétique).
Les variables locales sont identifiées par un nom à huit caractères alphanumériques, le premier étant alphabétique.
m
Remarque :
Le corps de la BFU ne comporte aucun nom de variable constructeur.
C'est lors de l'utilisation de la BFU dans une entité combinatoire que seront définies
les correspondances entre les paramètres d'interface et les variables ou appellations (cf § ci-après).
La procédure est alors rigoureusement identique à celle utilisée pour une BFC :
positionner la BFU dans l'expression combinatoire, puis renseigner les paramètres.
!
Si une BFU est utilisée dans le programme d'application : seul le corps (en
algorithme) est modifiable, il n'est pas possible de rajouter ou modifier un
paramètre d'interface.
Pour modifier les paramètres d'interface, il faut soit enlever la BFU du programme, soit dupliquer la BFU sous un autre nom.
ß
Pour plus
d'informations,
reportez-vous
au chapitre F.
Mise au point unitaire BFU
ORPHEE (≥ 5.1) offre la possibilité de mettre au point le programme des BFU.
Pour cela différentes fonctions sont offertes :
• Visualisation dynamique des variables locales
et des paramètres d'interface de la BFU.
• Possibilité de pose de points d'arrêt :
- soit sur ligne dans le cas des BFU LTS,
- soit sur expression combinatoire %EC dans le cas
des BFU combinatoire,
avec possibilité de relance du programme jusqu'à
un nouveau point d'arrêt.
• Possibilité d'exécuter la BFU en pas à pas :
- ligne par ligne dans le cas des BFU LTS,
- %EC par %EC dans le cas des BFU combinatoire.
TEM10000F
n
9
Langage Textuel Structuré
2. Structure d'un programme en LTS
Rappel :
Dans ce document nous appellerons programme LTS le contenu du corps d'une
BFU.
BFU
Corps de la BFU
écrit en LTS
Un programme en LTS comprend 2 parties :
Identificateur de
début de la partie
déclaration
VAR
Partie déclaration
des variables
locales
de la BFU
déclaration 1 : type de la variable ;
déclaration 2 : type de la variable ;
Le ; indique la fin
d'une déclaration
END_VAR
Partie instructions
instruction 1 ;
instruction 2 ;
Identificateur de
fin de la partie
déclaration
Le ; indique la fin
d'une instruction
Commentaires du programme
Des lignes de commentaires peuvent être insérées dans le programme de la
manière suivante :
(*commentaires*)
!
TEM10000F
Tout caractère du programme peut être écrit en majuscule ou minuscule.
Une ligne comporte 255 caractères maximum.
n
10
Langage Textuel Structuré
Exemple :
Calcul de moyenne (MOYE) sur les N premiers éléments d'une table de mots de 16
bits (TABL) réalisé par une BFU ; le calcul est exécuté si VAL = 1.
Nota : Pour la simplicité de l'exemple les cas de paramètres incorrects ne sont pas
pris en compte.
MOYENNE
VAL
TABL
MOYE
N
VAR
(*Déclaration des variables locales à la BFU*)
TOTAL:REAL;
INDEX:INT;
(*TOTAL contiendra la somme de l'élément n et n+1*)
(*INDEX contiendra l'index des éléments à additionner*)
END_VAR
(*Programme*)
(*Si le traitement est validé, VAL=1, faire calcul de la
moyenne*)
IF ?VAL THEN
TOTAL:=0.0;
(*faire la somme des éléments n et n+1 de la table TABL à
l'aide d'un index*)
Les paramètres d'interface
FOR INDEX:=0 TO (?N–1) DO
de la BFU (VAL, TABL, N,
TOTAL:=TOTAL + ?TABL(INDEX);
MOYE) sont identifiés par
END_FOR;
? et sont écrits sur 4
(*calcul de la moyenne*)
caractères maximum.
?MOYE:=TOTAL / ?N;
END_IF;
ß
TEM10000F
Contrôle syntaxique :
L'éditeur propose un contrôle syntaxique du programme à l'aide du sous-menu
"Vérifier" (Menu "Edition") et positionne le curseur à l'endroit à partir duquel une
erreur a été commise.
n
11
Langage Textuel Structuré
3. La déclaration des variables locales
3.1. Variables locales
Les variables locales sont des variables de travail qui :
-
appartiennent à une BFU et une seule,
sont exploitées uniquement par le programme de cette BFU,
n'utilisent pas la mémoire de données (%MW, %MX, …),
ne fournissent pas un résultat directement exploitable à l'extérieur de la BFU,
ne sont pas rémanentes (leurs valeurs ne sont pas sauvegardées entre 2 appels à
la BFU.
Les variables locales sont déclarées en début de la BFU.
Le début des déclaration des variables locales est signalé par VAR la fin par
END_VAR.
La déclaration d'une variable s'effectue selon le modèle suivant :
Identificateur de
début de la partie
déclaration
VAR
Nom de la variable : type de la variable ;
Nom de la variable : type de la variable ;
Le ; indique la fin
d'une déclaration
8 caractères alphanumériques
maximum (tiret bas autorisé),
le nom de doit pas commencer
par un chiffre
END_VAR
Identificateur de
fin de la partie
déclaration
m
Nota :
S'il n'y a pas de variable locale dans le programme ne pas déclarer VAR et
END_VAR.
Si plusieurs variables sont de même type, elles peuvent être regroupées en les
séparant par une virgule :
Nom var1,Nom var2 : Type de variable ;
ß
Les identificateurs de type autorisés par le LTS dans les BFU sont :
BOOL
INT
DINT
REAL
TEM10000F
pour type booléen (ou bit)
pour type entier (ou mot simple de 16 bits)
pour type entier double (ou mot double de 32 bits)
pour type réel (ou flottant de 32 bits)
n
12
Langage Textuel Structuré
Des commentaires peuvent être saisis dans la partie déclaration.
x
Exemple :
EDITEUR BFU LTS - A : MODIFICATION
BFU
Edition
Services
Accès
Fichier
(* déclaration des variables locales *)
VAR
(* déclaration des variables de type booléen *)
bit1,bit2,bit3:bool;
(* déclaration de variables mots entier de 16 bits *)
mot1,mot2:int;
(* déclaration de mots entier de 32 bits *)
motmd1:dint;
(* déclaration de mots réel 32 bits *)
flot1,flot2,flot3:réal;
azerty:bool;
END_VAR
Initialisation des variables locales
L'initialisation des variables locales est réalisée dans le corps (partie programme)
par affectation. Attention, s'il n'y a pas d'affectation la variable locale a une
valeur quelconque.
Exemple :
MOT1:= 1253 ;
(:= Symbole de l'affectation)
Pour plus d'informations reportez-vous au § 4.3.
TEM10000F
n
13
Langage Textuel Structuré
Liste alphanumérique des appellations interdites ou réservées
pour le LTS
Ces appellations ne doivent pas être utilisées pour les variables locales.
Appellations interdites
A0
A1
A2
A3
A4
A5
A6
A7
ADDR
ADDRBIT
ADDRBYTE
ADDRLONG
ADDRNULL
ADDRPROC
ADDRRECORD
ADDRWORD
ARRAY
BEGIN
CHAR
CONST
D0
D1
D2
D3
D4
D5
D6
TEM10000F
D7
END
EXTERNAL
GE
GLOBAL
GM
GOTO
INTERNAL
LABEL
LONGINT
LOOP
MACRO
MODULE
NIL
NULL
OF
OPTION
PROCEDURE
SP
SR
TD
TF
TM
TR
TW
XE
Appellations
réservées
AND
BIT
BYTE
DIV
DOWNTO
ELSE
ELSIF
EXIT
FALSE
IF
INTEGER
FOR
MOD
OR
REAL
RETURN
THEN
TO
TRUE
VAR
WHILE
XOR
Tout nom de
fonction
(SIN, ROL_INT,…)
n
14
Langage Textuel Structuré
3.2. Echanges avec l'extérieur de la BFU
Pour communiquer avec l'extérieur, les BFU utilisent des paramètres d'interface
déclarés dans la partie instruction et identifiés par ?XXXX (X caractère alphanumérique, 4 caractères maximum).
x
MOYENNE
VAL
TABL
MOYE
N
Les paramètres d'interface
de la BFU (VAL, TABL, N,
MOYE) sont identifiés par
? et sont écrits sur 4
caractères maximum.
IF (?VAL) THEN
(* faire la somme des éléments et n+1 de la table TABL à l'aide d'un index *)
…
…
Pour plus d'informations se reporter au § 5. Utilisation de la BFU.
TEM10000F
n
15
Langage Textuel Structuré
4. Les différentes instructions
4.1. Généralités
Les instructions peuvent être de différents types :
-
mathématiques,
logiques,
test,
affectation,
boucle,
…
Ces types d'instruction peuvent être combinés. (exemple : A:= (B + C) ❋ D;).
Chaque instruction se termine par un ;
Un commentaire peut être saisi après chaque ligne.
x
(* Programme *)
(* Si le traitement est validé, VAL=1, faire le calcul de
moyenne *)
IF ?VAL THEN
TOTAL:=0.0;
(* Faire la somme des éléments et n+1 de la table TABL
à l'aide d'un index *)
FOR INDEX:=0 TO (?N–1) DO
TOTAL:=TOTAL + ?TABL (INDEX);
END_FOR;
(* Calcul de la moyenne *)
?MOYE:=TOTAL / ?N;
END_IF;
ß
m
TEM10000F
Tout caractère du programme peut être écrit en majuscule ou minuscule.
Remarques :
L'éditeur propose un contrôle syntaxique du programme à l'aide du sous-menu
"Vérifier" (Menu "Edition") et positionne le curseur à l'endroit à partir duquel une
erreur a été commise.
n
16
Langage Textuel Structuré
4.2. Les constantes
Il est possible d'utiliser dans le programme des constantes des types suivants :
-
Bit : BOOL
Entier : INT
Entier double : DINT
Réel : REAL
Caractère : CHAR
• Les constantes booléennes (de type bit) sont représentées par les mots clés
TRUE (état 1) et FALSE (état 0).
• Les constantes numériques (INT, DINT, REAL) peuvent être codées :
- en décimal, exemple : – 2•34 ou – 234•E–2
- en hexadécimal, exemple 16#FFAFFFAA
Les constantes littérales sont limitées à la représentation d'un seul caractère et
doivent être reproduites entre cotes ' ' :
- soit, directement sous la forme du caractère imprimable (tous les caractères
alphanumériques sont autorisés : 'caractère',
- soit, sous forme ASCII codée hexadécimal, c'est à dire $ suivi de deux caractères
(0 à 9, A à F ou a à f) représentant tout caractère ASCII imprimable ou non
('$OD').
La notation '$00' représente le caractère NULL.
x
TEM10000F
BIT1:=TRUE;
IF (BIT1=FALSE) THEN
.
.
.
MOT1:= – 12•35;
MOT2:= 16#FFAABACD;
?CAR(1):= 'A';
?CAR(2):= '$OD';
…
…
n
17
Langage Textuel Structuré
4.3. Les affectations
L'opération affectation est notée
:=
(Exemple Borne reçoit la valeur 12 : BORNE:=12;).
Règles d'utilisation de l'affectation
L'opération d'affectation permet de remplacer la valeur courante de l'opérande de
gauche par le résultat de l'évaluation de l'opérande de droite.
Elle respecte le modèle suivant :
Opérande de gauche := Opérande de droite;
RESULTAT
CONTENU A AFFECTER
L'opérande de gauche est une des
variables de type :
- soit un paramètre d'interface de type
sortie sous forme d'élément simple
(pas de table ou de chaîne de caractères),
- soit une variable locale (mais ce ne peut
pas être une constante).
L'opérande de droite est :
- soit une constante,
- soit une variable (comme opérande de
gauche),
- soit une expression à évaluer, l'expression
étant définie comme une combinaison
d'opérandes et d'opérateurs.
L'opérande de droite doit fournir ou représenter un résultat de type compatible avec
celui de l'opérande de gauche.
Règle de l'affectation
Sens de l'affectation
BOOL := BOOL ;
INT := INT ;
DINT := DINT ;
⇔ équivalent BFC COPY
REAL := REAL ;
CHAR := CHAR ;
DINT := INT ;
REAL := INT ;
REAL := DINT ;
m
TEM10000F
équivalent conversion
%MD ← %MW
⇔
%FD ← %MW
et
%FD ← %MD
Remarque :
L'affectation directe d'un caractère est autorisée sous les formes suivantes :
- directement sous sa forme ASCII imprimable, par exemple ?c(i) := 'a' ;
- sous forme ASCII codée hexadécimal, $ suivi de deux chiffres représentant le
caractère, par exemple ?c(i) := '$OD'
n
18
Langage Textuel Structuré
m
Remarque :
Une variable de type bit ou mot (variable locale ou d'interface) peut-être
complémentée lors de l'affectation par l'instruction NOT (voir § 4.3.).
Syntaxe : NOT
x
variable bit ou mot.
(* déclaration des variables locales *)
VAR
bit1,bit2,bit3,bit4:bool;
mot1,mot2,mot3,mot4,mot5:int;
md1,md2,md3,md4:dint;
reel1,reel2:real;
END_VAR;
(* exemple d'affectation *)
bit1:=bit2;
bit3:=true; (* mise à 1 de bit3 *)
bit4:=?en1;
mot1:=125; (* initialisation de mot1 à la valeur 125 *)
md1:=mot2 + mot3; (* md1 reçoit le contenu de mot2+mot3 *)
mot4:=NOT mot5; (* mot4 reçoit le complément de mot5*)
md1:=md2;
?val3:=?val2 + md3;
md4:=?val1 + ?val2;
?char(1):='a';
TEM10000F
n
19
Langage Textuel Structuré
4.4. L'indexation
L'indexation permet d'utiliser des paramètres d'interface de type table ou chaîne de
caractères dans le corps de la BFU.
Syntaxe :
x
Appellation (Index)
(* test index *)
VAR
ind:int;
END_VAR;
(* essai index sur table de mots, t1 et t2 ont les mêmes valeurs
*)
(* n + 1 = nombre de mots de la table *)
IF (?ind1 < ?n) THEN
?t3(?ind1):=?t1(?ind1) – ?t2(?ind1);
END_IF;
ind:=0;
WHILE ((ind < ?n)) DO
?t3(ind):=?t1(ind) – ?t2(ind);
?ch3(ind):=?ch1(ind);
IF((?t3(ind) <> 0) OR (?ch3(ind) <> ?ch1(ind)))THEN
?ok:=TRUE;
END_IF;
ind:=ind + 1;
END_WHILE;
TEM10000F
n
20
Langage Textuel Structuré
4.5. Les opérateurs et fonctions mathématiques et logiques
Les opérateurs et les fonctions utilisables sont les suivants :
OPERATEURS MATHEMATIQUES ET LOGIQUES
+
–
❋
DIV
/
>
<
>=
<=
=
<>
NOT
—
AND
OR
XOR
addition
soustraction
multiplication
division entière, MOD reste de la division
division réelle
comparaison supérieur
comparaison inférieur
comparaison supérieur égal
comparaison inférieur égal
égalité
différent
complément (remplacement des 0 par des 1 et inversement,
bit de signe compris
négation
et logique
ou logique
ou exclusif
FONCTIONS MATHEMATIQUES
SQRT
EXP
LN
SIN
COS
TAN
ASIN
ACOS
ATAN
racine carrée
exponentielle
logarithme népérien
sinus
cosinus
tangente
arc sinus
arc cosinus
arc tangente
Une combinaison des opérateurs peut être réalisée avec des parenthèses, un
espace est nécessaire entre l'opérateur et la variable.
x
(* opérateurs mathématiques et logiques *)
VAR
bit1,bit2,bit3,bit4:bool;
mot1,mot2,mot3,mot4:int;
RESUL1,RESUL2:REAL;
END_VAR;
Bit1:= (bit2 or bit2) AND bit3;
mot1:= ((mot2 + mot3) ❋ (mot3 – ?val1));
RESUL1:= SQRT(mot1);
RESUL2:= SIN(mot2);
TEM10000F
n
21
Langage Textuel Structuré
Priorité des opérateurs
Le tableau ci-dessous donne la priorité pour l'évaluation d'une expression du plus
prioritaire au moins prioritaire;
Dans le cas de priorité égale, l'évaluation s'effectue de la gauche ver la droite.
+ prioritaire
– prioritaire
Priorité 1
Parenthèses
Fonctions
(expression)
(mathématiques,
décalage §4.6,
copie/conversion §4.7)
Priorité 2
Négation
Complément
—
NOT
Priorité 3
Multiplication
Division entière
Division réelle
Modulo (reste de la division entière)
❋
DIV
/
MOD
Priorité 4
Addition
Soustraction
+
–
Priorité 5
Comparaisons
>, <, >=, <=
Priorité 6
Egalité
Inégalité
=
<>
Priorité 7
Opérateur logique ET
AND
Priorité 8
Opérateur logique OU
Opérateur OU exclusif
OR
XOR
Règles d'utilisation des opérateurs (type de variables)
Règle 1 :
S'il y a débordement par rapport aux types des résultats autorisés, le résultat est
tronqué sur la taille de l'opérande résultat.
Règle 2 :
Si le type de l'opérande est différent, chaque opérande est étendu au type le plus
grand avant opération.
TEM10000F
n
22
Langage Textuel Structuré
•
Opérateurs NOT et — (négation)
Opération
Opération
•
•
Type du résultat
Type du résultat
INT + INT
INT
INT + DINT
DINT + INT
DINT + DINT
DINT
DINT
DINT
REAL + INT
REAL + DINT
INT + REAL
DINT + REAL
REAL + REAL
REAL
REAL
REAL
REAL
REAL
Opérateurs MOD (reste division)
Opération
Type du résultat
INT DIV INT
INT
INT MOD INT
INT
INT DIV DINT
DINT DIV INT
DINT DIV DINT
DINT
DINT
DINT
INT MOD DINT
DINT MOD INT
DINT MOD DINT
DINT
DINT
DINT
INT / INT
REAL
INT / DINT
DINT / INT
DINT / DINT
REAL
REAL
REAL
REAL / INT
REAL / DINT
INT / REAL
DINT / REAL
REAL / REAL
REAL
REAL
REAL
REAL
REAL
Opérateurs AND, OR et XOR
Opération
TEM10000F
BIT
INT
DINT
INT
DINT
REAL
Opérateurs DIV et /
Opérateurs +, – et ❋
Opération
Type du résultat
NOT BIT
NOT INT
NOT DINT
– INT
– DINT
– REAL
•
•
Type du résultat
•
Opérateurs =, < >, <, >, >=, < =
Opération
Type du résultat
BOOL AND BOOL
BOOL
BOOL = BOOL
BOOL
INT AND INT
INT
INT = INT
BOOL
DINT AND DINT
DINT
INT = DINT
DINT = INT
DINT = DINT
BOOL
BOOL
BOOL
REAL = INT
REAL = DINT
INT = REAL
DINT = REAL
REAL = REAL
BOOL
BOOL
BOOL
BOOL
BOOL
n
23
Langage Textuel Structuré
•
Fonctions SQRT, EXP, LN, SIN, COS, TAN, ASIN, ACOS et ATAN
Opération
m
Type du résultat
Fonction(INT)
REAL
Fonction(DINT)
REAL
Fonction(REAL)
REAL
Nota :
La valeur à traiter doit être déclarée entre parenthèses.
x
RESUL1:=SQRT(MOT1) ;
RESUL2:=MOT2 + SQRT(MOT1) ;
Puissance réelle :
x PUISSANCE y ⇔ EXP (y ❊ LN x)
!
•
Valeur limite des nombres flottants pour les opérations mathématiques
MIN = – 9•22337177E+18
MAX = + 9•22337177E+18
•
Comportement des opérateurs arithmétiques en cas de valeurs incorrectes
Opérateur
SQRT
Valeurs
Résultat (y)
x > MAX ou x > MIN
y = 3,4 E+38 opération non effectuée, résultat non significatif
x<0
y=√|x|
x > MAX ou x > MIN
y = 3,4E+38 opération non effectuée, résultat non significatif
x<0
y = LN | x |
x=0
y = –3,4E+38 opération non effectuée, résultat non significatif
x > MAX ou x < MIN
y = 3,4E+38 opération non effectuée, résultat non significatif
Exp(x) > MAX
y = 3,4E+38 opération non effectuée, résultat non significatif
SIN COS TAN
ASIN ACOS ATAN
Défaut de paramètre
y = 3,4E+38 opération non effectuée, résultat non significatif
+ – ❊ / REAL
x ou y > MAX
y = 3,4E+38 opération non effectuée, résultat non significatif
x ou y < MIN
y = –3,4E+38 opération non effectuée, résultat non significatif
MAX < résultat < MIN
y = ±3,4E+38 opération non effectuée, résultat non significatif
LN
EXP
+ – INT ou DINT
Si débordement résultat
opération effectuée sur la valeur absolue
opération effectuée sur la valeur absolue
résultat tronqué
❊ INT
DIV INT
DIV INT ou DINT
Division par 0
y=0
❊ DINT
DIV DINT
Si débordement résultat
y = MAX DINT ou MIN DINT
TEM10000F
opération non effectuée, résultat non significatif
n
24
Langage Textuel Structuré
4.6. Les fonctions de décalage
Les fonctions utilisables sont les suivantes :
ROR_INT
ROR_DINT
Décalage circulaire à droite de n bits sur un entier simple (ROR_INT)
ou entier double (ROR_DINT)
n : mot INT ou constante
contenant le nombre de décalages
y : ROR_INT(x,n);
y : mot après décalage
et du même type que x
x : mot avant décalage
de type entier simple INT
n : mot INT ou constante
contenant le nombre de décalages
y : ROR_DINT(x,n);
y : mot après décalage
et du même type que x
x
x : mot avant décalage
de type entier double DINT
Réalisation de 3 décalages dans un mot de 16 bits.
y:=ROR_INT(x,3);
➟
x : mot avant le décalage
1111 0011 0010 1101
➟
y : mot après décalage
TEM10000F
1 011 1110 0110 0101
n
25
Langage Textuel Structuré
ROL_INT
ROL_DINT
Décalage circulaire à gauche de n bits sur un entier simple (ROL_INT) ou
double (ROL_DINT)
n : mot INT ou constante
contenant le nombre de décalages
y : ROL_INT(x,n);
y : mot après décalage
et du même type que x
x : mot avant décalage
de type entier simple INT
n : mot INT ou constante
contenant le nombre de décalages
y : ROL_DINT(x,n);
y : mot après décalage
et du même type que x
x
x : mot avant décalage
de type entier double DINT
Réalisation de 3 décalages dans un mot de 16 bits.
y:=ROL_INT(x,3);
➟
x : mot avant le décalage
0000 1111 0101 0111
y : mot après décalage
0111 1010 1011 1000
➟
TEM10000F
n
26
Langage Textuel Structuré
SHRZ_INT
SHRZ_DINT
Décalage à droite de n bits avec remplissage par des 0, sur un entier simple
(SHRZ_INT) ou double (SHRZ_DINT)
n : mot INT ou constante
contenant le nombre de décalages
y : SHRZ_INT(x,n);
y : mot après décalage
et du même type que x
x : mot avant décalage
de type entier simple INT
n : mot INT ou constante
contenant le nombre de décalages
y : SHRZ_DINT(x,n);
y : mot après décalage
et du même type que x
x
x : mot avant décalage
de type entier double DINT
Réalisation de 3 décalages dans un mot de 16 bits.
y:=SHRZ_INT(x,3);
➟
x : mot avant le décalage
y : mot après décalage
1111 1101 0000 0001
➟
0001 1111 1010 0000
Remplissage des bits
par zéro
TEM10000F
n
27
Langage Textuel Structuré
SHL_INT
SHL_DINT
Décalage à gauche de n bits avec remplissage par des 0, sur un entier simple
(SHL_INT) ou double (SHL_DINT)
n : mot INT ou constante
contenant le nombre de décalages
y : SHL_INT(x,n);
y : mot après décalage
et du même type que x
x : mot avant décalage
de type entier simple INT
n : mot INT ou constante
contenant le nombre de décalages
y : SHL_DINT(x,n);
y : mot après décalage
et du même type que x
Réalisation de 4 décalages dans un mot de 16 bits.
y:=SHL_INT(x,4);
➟
x
x : mot avant décalage
de type entier double DINT
x : mot avant le décalage
0001 1111 0110 1000
y : mot après décalage
1111 0110 1000 0000
➟
Remplissage des bits
par zéro
TEM10000F
n
28
Langage Textuel Structuré
4.7. Les fonctions de copie /conversion
Les fonctions utilisables sont les suivantes :
DINT_TO_INT
Copie du poids faible d'un entier double dans un entier simple
DINT
INT
y:= DINT_TO_INT(x)
y reçoit les bits de poids faible de x
REAL_TO_DINT Copie de la partie entière d'un réel dans un entier double
y:= REAL_TO_DINT(x)
y reçoit la partie entière de x (exemple : si x = 1,7 alors y = 1)
S'il y a débordement y contient la valeur maxi ou mini sur 32 bits.
REAL_TO_INT
Copie du poids faible de la partie entière d'un réel dans un entier simple
y:= REAL_TO_INT(x)
y reçoit les bits du poids faible de la partie entière de x
TEM10000F
n
29
Langage Textuel Structuré
CHAR_TO_INT Copie d'un caractère dans le poids faible d'un entier simple
CHAR
INT
0
y:= CHAR_TO_INT(x)
x correspond à un élément de chaîne de caractères
Exemple : y:=CHAR_TO_INT (?CHAI(1))
n° de l'élément dans la chaîne
(0 à 255)
Nota :
Les bits de poids fort de INT sont mis à 0.
INT_TO_CHAR Copie du poids faible d'un entier simple dans un caractère
INT
CHAR
y:= INT_TO_CHAR(x)
y correspond à un élément de chaîne de caractères
Exemple : ?CHAI(1) := INT_TO_CHAR(x)
TEM10000F
n
30
Langage Textuel Structuré
4.8. L'Instruction de condition IF
Définition : L'instruction réalise une action (suite d'instructions) si une condition est
vraie.
Forme simple :
Syntaxe
Fonctionnement
IF condition THEN
début du IF
action;
vérifiée
END_IF;
CONDITION
non vérifiée
ACTION
fin du IF
La condition peut être multiple.
Action : liste d'instructions.
x
(* IF forme simple *)
VAR
bit1,bit2,bit3:bool;
mot1,mot2,mot3:int;
END_VAR;
(* si (mot1 + mot2) < mot3 ou bit1=1 exécuter (A+B)C=D, *)
(* A,B,C,D paramètres d'interface *)
IF(((mot1+mot2) < mot3) or bit1)THEN
?D:=(?A+?B) ❋ ?C;
?E:=false;
END_IF;
TEM10000F
n
31
Langage Textuel Structuré
Forme à 2 actions
Syntaxe
Fonctionnement
IF condition THEN
début du IF
action1;
vérifiée
CONDITION
non vérifiée
ELSE
action2;
ACTION 1
ACTION 2
END_IF;
fin du IF
x
(* IF forme à 2 actions *)
VAR
bit1,bit2,bit3:bool;
mot1,mot2,mot3:int;
END_VAR;
(* si (mot1 + mot2) < mot3 exécuter (A+B)C=D, sinon mettre E à
1 *)
(* A,B,C,D paramètres d'interface *)
IF ((mot1+mot2) < mot3) THEN
(* action 1*)
?D:=(?A + ?B) ❋ ?C;
ELSE
(* action 2*)
?E:=FALSE;
END_IF;
TEM10000F
n
32
Langage Textuel Structuré
Forme générale
Syntaxe
Fonctionnement
début du IF
IF condition 1 THEN
action1;
vérifiée
CONDITION 1
non vérifiée
ELSIF condition 2 THEN
action2;
ACTION 1
ELSE
vérifiée
CONDITION 2
non vérifiée
action3;
ACTION 2
ACTION 3
END_IF;
fin du IF
x
(* IF forme générale *)
VAR
bit1,bit2,bit3:bool;
mot1,mot2,mot3,mot4:int;
END_VAR;
(* si (mot1 + mot2) < mot3 exécuter (A+B)C=D, sinon : si
mot4=120 mettre E à 1, si mot4 différent de 120 mettre F à 1 *)
(* A, B, C, D paramètres d'interface *)
IF ((mot1+mot2) < mot3) THEN (* condition 1 OK *)
(* action 1*)
?D:=(?A+?B) ❋ ?C;
ELSIF (mot4=120)THEN (* condition 1 non OK et condition 2 OK *)
(* action 2*)
?E:=FALSE;
ELSE (* condition 1 et 2 non OK *)
(* action 3*)
?F:=FALSE;
END_IF;
m
TEM10000F
Remarque : Plusieurs instructions IF peuvent être imbriquées.
n
33
Langage Textuel Structuré
4.9. L'instruction de répétition FOR (traitement itératif)
Forme simple
Syntaxe
INCREMENTATION (pas de 1)
Fonctionnement
FOR indice:=valeur initiale TO valeur finale DO
début du FOR
action;
VALEUR INITIALE
END_FOR;
TRUE (VRAI)
VALEUR INITIALE >
VALEUR FINALE
fin du FOR
FALSE (FAUX)
SUITE
INSTRUCTION
Opération effectuée
automatiquement et donc
non à la charge du
programmeur
VALEUR INITIALE =
VALEUR INITIALE+1
PARCOURS CROISSANT
DECREMENTATION (pas de 1)
Syntaxe
Fonctionnement
FOR indice:=valeur initiale DOWNTO valeur finale DO
début du FOR
action;
VALEUR INITIALE
END_FOR;
VALEUR INITIALE <
VALEUR FINALE
TRUE (VRAI)
fin du FOR
FALSE (FAUX)
SUITE
INSTRUCTION
VALEUR INITIALE =
VALEUR INITIALE–1
Opération effectuée
automatiquement et donc
non à la charge du
programmeur
PARCOURS DECROISSANT
Action : liste d'instructions.
TEM10000F
n
34
Langage Textuel Structuré
x
(* déclaration des variables locales *)
VAR
TOTAL:real;
(* TOTAL contient la somme des éléments n et n+1 *)
INDEX:int;
(* INDEX contient l'index des éléments à sélectionner *)
END_VAR;
(* programme de la BFU *)
(* si le traitement est validé (VAL=1), faire le calcul de la
moyenne *)
IF ?VAL THEN
FOR INDEX:=0 to (?N–1) DO
TOTAL:=TOTAL + ?TABL(INDEX);
(* TABL(INDEX) contient le nouvel élément à additionner *)
END_FOR;
?MOYE:=TOTAL/?N;
END_IF;
TEM10000F
n
35
Langage Textuel Structuré
Forme générale
INCREMENTATION
Syntaxe
Fonctionnement
FOR indice:=valeur initiale TO valeur finale BY
valeur du pas DO
début du FOR
VALEUR INITIALE
action;
END_FOR;
TRUE (VRAI)
VALEUR INITIALE >
VALEUR FINALE
fin du FOR
FALSE (FAUX)
SUITE
INSTRUCTION
Opération effectuée
automatiquement et n'est
donc pas à la charge du
programmeur
VALEUR INITIALE =
VALEUR INITIALE
+ VALEUR DU PAS
DECREMENTATION
Syntaxe
Fonctionnement
FOR indice:=valeur initiale DOWNTO valeur finale BY
valeur du pas DO
action;
début du FOR
VALEUR INITIALE
END_FOR;
VALEUR INITIALE <
VALEUR FINALE
FALSE (FAUX)
TRUE (VRAI)
fin du FOR
SUITE
INSTRUCTION
VALEUR INITIALE =
VALEUR INITIALE
– VALEUR DU PAS
!
TEM10000F
Opération effectuée
automatiquement et n'est
donc pas à la charge du
programmeur
La valeur initiale et la valeur finale peuvent être des constantes, des variables
locales ou des paramètres d'interface.
n
36
Langage Textuel Structuré
x
(* déclaration des variables locales *)
VAR
TOTAL:real;
(* TOTAL contient la somme des éléments n et n+1 *)
INDEX:int;
(* INDEX contient l'index des éléments à sélectionner *)
END_VAR;
(* programme de la BFU *)
(* si le traitement est validé (VAL=1), faire le calcul de la
moyenne *)
IF ?VAL THEN
FOR INDEX:= (?N–1) DOWNTO 0 BY ?PAS DO
TOTAL:=TOTAL + ?TABL(INDEX);
(* TABL(INDEX) contient le nouvel élément à additionner *)
END_FOR;
?MOYE:=TOTAL/?N;
END_IF;
TEM10000F
n
37
Langage Textuel Structuré
4.10. L'instruction de répétition WHILE
Définition : L'instruction réalise une action répétitive (suite d'instruction) tant qu'une
condition est vérifiée.
Syntaxe
Fonctionnement
WHILE condition DO
début du WHILE
action;
vérifiée
CONDITION
non vérifiée
END_WHILE;
ACTION
fin du WHILE
!
x
Le test est effectué avant d'exécuter
l'action
VAR
bit1,bit2:bool;
mot1,mot2:int;
END_VAR
IF ?IX40 THEN
?QD10:=0;
WHILE (?QD10 <> 1000) DO
?QD10:=?QD10+1;
END_WHILE;
ELSE ?QD10:=–1;
END_IF;
TEM10000F
n
38
Langage Textuel Structuré
4.11. L'instruction d'arrêt d'exécution de la BFU : RETURN
Définition : Cette instruction arrête l'exécution du programme de la BFU pour
passage à l'Expression Combinatoire suivante.
RETURN;
Fonctionnement
début d'exécution
de la BFU
RETURN;
PROGRAMME DE LA BFU
Syntaxe
fin d'exécution de la BFU
x
VAR
bit1,bit2:bool;
mot1,mot2:int;
END_VAR
IF(?IX40=TRUE)THEN
?QD10:=0;
WHILE (?QD10 <> 1000) DO
?QD10:=?QD10 +1;
IF (?IX41=TRUE) THEN
RETURN;
END_IF;
END_WHILE;
ELSE ?QD10:= –1;
END_IF;
TEM10000F
n
39
Langage Textuel Structuré
4.12. L'instruction de sortie de boucle WHILE ou FOR : EXIT
Définition : Cette instruction permet de sortir d'une boucle WHILE ou FOR.
Syntaxe
Fonctionnement
EXIT;
début du WHILE
vérifiée
CONDITION
non vérifiée
ACTION
non
vérifiée
CONDITION
DE SORTIE
vérifiée
EXIT;
fin du WHILE
x
VAR
bit1,bit2:bool;
mot1,mot2:int;
END_VAR
IF ?IX40 THEN
?QD10:=0;
WHILE (?QD10 <> 1000) DO
?QD10:=?QD10+1;
IF bit2 THEN
EXIT;
END_IF;
END_WHILE;
ELSE ?QD10:=–1;
END_IF;
TEM10000F
n
40
Langage Textuel Structuré
TEM10000F
n
41
Langage Textuel Structuré
5. Création d'une BFU
5.1. Particularités de l'éditeur BFU
Les particularités de l'éditeur BFU sont listées ci-dessous. Elles sont ensuite détaillées dans les paragraphes suivants.
- Accès par l'icône BFU en bas à droite de l'écran "Atelier de programmation".
- Une BFU est identifiée par son appellation définie par son créateur (pas de nom
constructeur).
- Limitation des appellations des paramètres d'interfaces à quatre caractères
alphanumériques, le premier étant alphabétique (et précédé par "?" dans le corps
de la BFU).
- Définition de la nature des variables. Cette opération consiste à préciser, lorsque
c'est nécessaire, si une variable (variable locale ou paramètre d'interface) d'une
BFU est de nature bit, entier 16 bits, entier 32 bits, réel ou chaîne de caractères et
s'il s'agit d'une variable simple ou d'une table (pour les paramètres d'interface
uniquement).
- Aucun identificateur constructeur n'est admis dans le corps de la BFU (les correspondances entre paramètres de la BFU et variables automate étant faites lors de
l'utilisation de la BFU).
- Une BFU est créée indépendamment du type d'automate et du type d'entité dans
lesquels elle sera utilisée.
- Les noms donnés par l'utilisateur aux variables locales ainsi qu'aux paramètres
d'interface ne sont connus qu'à l'intérieur de la BFU. De ce fait, les mêmes noms
peuvent être réutilisés dans plusieurs BFU et dans l'application sans aucun risque
de confusion.
TEM10000F
n
42
Langage Textuel Structuré
5.2. Accès à l'éditeur BFU
L'accès à l'éditeur BFU s'effectue à partir de l'écran "Atelier de programmation" en
cliquant sur l'icône "BFU" situé à droite de l'écran. Sélectionner dans le menu
"Edition" l'option créer (pour une nouvelle BFU), consulter ou modifier (pour une
BFU existante).
ATELIER DE PROGRAMMATION
Edition
Services
Créer
Modifier
Identité
Consulter
Validation
APPLICATION : BFU (non transférable)
Combinatoire
CF
CREER
CC
Structure/Trait.
GM
XE
Régulation
Déclarations
Créer une BFU
:
Evénements
Appellation : TD
Graphique
EI
EP
ANNULER
Dossier
GE
ES MOYENNE
Configuration
Axes
Textuel
TG
TR
BFU
TT
OK
Historique
Forçage
1 - Saisir l'appellation utilisateur de la BFU : 8 caractères alphanumériques maxi
mum, le premier étant obligatoirement alphabétique.
Cette appellation ne peut être modifiée ultérieurement.
Il n'y a pas de nom constructeur associé à une BFU.
2 - Sélectionner "Textuel" pour écrire le corps de la BFU en Langage Textuel
Structuré.
TEM10000F
n
43
Langage Textuel Structuré
L'éditeur BFU comprend 4 phases essentielles à la construction
d'une BFU
Accès
Interface
Fiches descriptives
Description des paramètres
Saisie/modification
du CORPS : Editeur BFU LTS
Var
variables locales
end_var
L'entrée dans l'écran Editeur
permet directement la saisie
du corps de la BFU.
Algorithme
Saisie/modification de
l'INTERFACE
LISTE DES PARAMETRES
BFU
Saisie/modification des
FICHES DESCRIPTIVES
LISTE DES FICHIERS
Référence
Description
Fonction
Algorithme
Contraintes
Divers
OK
ANNULER
NOM
Description des
PARAMETRES D'INTERFACE
ENT1
SOR1
LIBELLE
NATURE
BIT
BIT
TYPE
ENTREE
SORTIE
La sortie de l'éditeur peut se faire dans n'importe quelle phase.
TEM10000F
n
44
Langage Textuel Structuré
5.3. Saisie dans l'écran "Editeur BFU LTS"
5.3.1. Principe de saisie
L'écran de saisie du corps se comporte comme un éditeur page.
Il n'y a pas d'analyse syntaxique en cours de saisie.
L'éditeur est toujours en mode insertion.
Les fins de lignes doivent être terminées par un RETURN.
Ses limites en capacités sont de 16 000 caractères.
Une ligne ne peut pas dépasser 255 caractères.
Sélection de texte
L'éditeur permet de sélectionner une partie de texte (pour y appliquer une fonction :
voir menu § 5.4.).
Pour sélectionner avec la souris :
- cliquer sur début de la sélection,
- garder la souris "cliquée" et la déplacer jusqu'à la fin de la sélection,
- relâcher le bouton de la souris.
Avec le clavier, déplacer le curseur (voir équivalence clavier § 5.3.2.) avec touche
SHIFT enfoncée.
La désélection se fait automatiquement sur toute nouvelle action : clic souris,
déplacement, saisie caractère.
Insertion de texte
Positionner le curseur sur le point d'insertion et saisir le texte.
Effacement de texte
Caractère par caractère : se positionner avant le caractère à effacer puis appuyer
successivement sur la touche BACKSPACE.
Morceau de texte : sélectionner le texte puis touche DEL.
TEM10000F
n
45
Langage Textuel Structuré
5.3.2. Equivalences clavier
+ *
Touches flèche gauche ou flèche droite :
Permet de déplacer le curseur d'un caractère vers la gauche ou vers la groite.
= /
Touches flèche bas ou flèche haut :
Permet de déplacer le curseur d'une ligne vers le bas ou vers le haut.
⁄
PGDOWN
Touches PAGE UP ou PAGE DOWN :
Permet de déplacer le curseur d'un écran vers le haut ou vers le bas.
Œ
Touche HOME :
Permet de déplacer le curseur en début de ligne.
c Œ
Touches CONTROL et HOME :
Permet de déplacer le curseur en début de texte.
f
Touche END :
Permet de déplacer le curseur en fin de ligne.
c f
Touches CONTROL et END :
Permet de déplacer le curseur en fin de texte.
BACKSPACE
d
d î
Touche BACKSPACE :
Permet d'effacer le caractère précédant le curseur.
Touche DELETE :
Permet d'effacer le texte sélectionné.
Touche SHIFT et INSERT :
Correspond au menu "Coller".
c î
Touche CONTROL et INSERT :
Correspond au menu "Copier".
d d
Touche SHIFT et DELETE :
Correspond au menu "Couper".
c d
a
BACKSPACE
Touche CONTROL et DELETE :
Permet d'effacer le texte de la position courante jusqu'à la fin de ligne.
Touche ALT et BACKSPACE :
Correspond au menu "Annuler".
A noter que la touche t est équivalente à 8 caractères blancs.
TEM10000F
n
46
Langage Textuel Structuré
5.4. Description des différents menus
EDITEUR BFU LTS - EXEMPLE : MODIFICATION
BFU
Edition
Services
Vérifier Ctrl+V Annuler
Rechercher
Accès
Copier
Coller
Imprimer
Effacer
Tout sélectionner Déclarer
Table de VD
Commandes
Ecran principal Importer
Poursuivre la
Interface
recherche
F3 Fiches
Remplacer
descriptives
Couper
Fichier
Exporter
Description
paramètres
Voir Chapitre F. § 6.
pour la mise au point des BFU
(Documentation ORPHEE)
Mot de passe
Pour certains sous-menus, il existe des accélérateurs :
a
BACKSPACE
pour Annuler
d
pour Couper
c î
î
TEM10000F
pour Copier
pour Coller
d
pour Annuler
”
pour Poursuivre la recherche
n
47
Langage Textuel Structuré
5.4.1. Menu BFU
Fonction "Vérifier"
Elle permet de réaliser les contrôles de syntaxe sur le corps de la BFU en cours
d'édition.
5.4.2. Menu Edition
5.4.2.1. Fonction "Annuler"
Elle permet d'annuler la dernière modification apportée au texte (ajout de caractères, effacement, couper, coller, sélection, …).
5.4.2.2. Fonction "Couper"
Elle permet de mémoriser dans le "presse-papier" le texte sélectionné et de supprimer. Le texte ainsi supprimé peut être collé ailleurs.
Nota : Le "presse-papier" utilisé est celui de WINDOWS. Il permettra de garder
l'information sur plusieurs sessions d'édition et éventuellement de communiquer
avec d'autres éditeurs WINDOWS. Chaque mémorisation écrase le contenu
précédent du "presse-papier".
5.4.2.3. Fonction "Copier"
Elle permet de mémoriser dans le "presse-papier" le texte sélectionné sans le
supprimer.
5.4.2.4. Fonction "Coller"
Elle permet d'insérer le contenu du "presse-papier", c'est-à-dire la dernière sélection
"Couper" ou "Copier", à la position indiquée par le curseur.
5.4.2.5. Fonction "Effacer"
Elle permet d'effacer définitivement le texte sélectionné (équivalent clavier DEL).
5.4.2.6. Fonction "Tout sélectionner"
Elle permet de sélectionner la totalité du texte. Cette fonction est utilisée pour
effacer tout le texte ou le mémoriser dans le "presse-papier".
TEM10000F
n
48
Langage Textuel Structuré
5.4.3. Menu Services
5.4.3.1. Fonction "Rechercher"
Elle permet de rechecher une chaîne de caractères à l'intérieur du corps à partir de
la position courante du curseur.
La chaîne trouvée sera sélectionnée (mise en vidéo inverse).
La recherche ne tient pas compte des majuscules et des minuscules, ni des délimiteurs de la chaîne (exemple : recherche de TOT dans le texte : il sera trouvé dans
Total).
RECHERCHER
Chercher :
ANNULER
OK
5.4.3.1. Fonction "Poursuivre la recherche"
Elle permet de rechercher la chaîne précédemment saisie par la fonction "Rechercher" à partir de la position courante du curseur : équivalent touche ” .
Cette fonction possède les mêmes caractéristiques que la fonction "Rechercher".
De plus, elle permet de continuer la recherche dans tout le texte.
5.4.3.2. Fonction "Remplacer"
Elle permet de remplacer une chaîne de caractères par une autre chaîne.
Elle offre deux possibilités :
- un seul remplacement (seule la première chaîne trouvée sera remplacée),
- remplacement dans tout le corps.
REMPLACER
Chercher :
Remplacer par :
ANNULER
REMPLACER
un seul remplacement
à la première chaîne
trouvée
TOUT REMPLACER
remplacement
dans tout le corps
de la BFU
La recherche ne tient pas compte des majuscules et des minuscules, ni des délimiteurs de la chaîne
TEM10000F
n
49
Langage Textuel Structuré
5.4.3.3. Fonction "Imprimer"
Elle permet d'imprimer tout ou partie de la BFU en cours d'édition.
Elle offre la possibilité d'imprimer :
-
l'interface,
la description des paramètres,
les fiches descriptives.
le corps,
toute la BFU,
L'impression du corps est l'impression du texte en ASCII.
5.4.3.4. Fonction "Déclarer"
Elle permet de déclarer ou de modifier les paramètres d'interface à partir du corps.
Pour celà, il faut sélectionner le nom du paramètre (?XXXX) et appeler le sousmenu "Déclarer".
La boîte de dialogue de déclaration des paramètres d'interface s'affiche.
C'est la même boîte de dialogue que celle appelée dans l'écran interface (voir
dessin § 5.4.4. Ecran interface).
Elle permet de donner un type (entrée, sortie), une nature (bit, mot simple, …) et un
libellé au paramètre d'interface.
TEM10000F
n
50
Langage Textuel Structuré
5.4.4. Menu Accès - Fonction "Interface"
Elle permet d'accèder à l'écran de description des paramètres d'interface.
EDITEUR BFU LTS - EXEMPLE : MODIFICATION
Edition
Services
Accès
B.F. CALCUL
MOYENNE
VAL
TABL
INTERFACE
Liste des paramètres
OK
MOYE
VAL
TABL
N
OK
MOYE
Entrée
Entrée
Entrée
Sortie
Sortie
N
m
Nota :
Il n'y aura aucun lien implicite entre le corps et l'écran interface seuls les
paramètres déclarés par le menu "Déclarer" seront récupérés dans l'écran interface
(dans le but de ne pas provoquer de contrôles/d'erreurs lors de ce changement
d'écran).
Cet écran présente :
- dans sa partie gauche, le dessin de la BFU sur lequel vont venir se positionner les
paramètres d'interface au fur et à mesure du renseignement des paramètres,
- dans sa partie droite, la liste des paramètres d'interface déclarés lors de la description du corps.
Pour positionner un paramètre sur le dessin de la BFU, utiliser le menu "Edition"
fonction "Ajouter".
TEM10000F
n
51
Langage Textuel Structuré
Une boîte de dialogue apparaît :
DECLARER
Nom
VAL
Libellé
Nature
bit
table de bits
mot simple
table de mots simples
mot double
table de mots doubles
réel
table de réels
chaîne de caractères
Type
Entrée
Entrée interne
Entrée cachée
Sortie
Sortie interne
Sortie cachée
Facultatif
ANNULER
OK
SUIVANT
Elle permet de préciser :
-
le libellé associé au paramètre (facultatif),
la nature du paramètre,
le type du paramètre : entrée, sortie, interne ou caché,
si le paramètre est obligatoire ou facultatif.
Lorsque cette boîte de dialogue est validée (touche "OK"), le paramètre vient se
positionner au premier emplacement disponible correspondant à son type.
Il faut donc renseigner les paramètres dans l'ordre dans lequel on souhaite les voir
apparaître sur l'interface de la BFU (dans le cas contraire, les options "Permuter" ou
"Déplacer" du menu "Edition" permettent de rétablir l'ordre souhaité).
TEM10000F
n
52
Langage Textuel Structuré
Autres fonctions offertes par cet écran :
TEM10000F
Fonction
Accès
Mode opératoire
Permuter
deux paramètres
Menu Edition
Option permuter
Sélectionner les deux paramètres à
permuter (touche SHIFT appuyée pour
une sélection multiple) puis sélectionner
la fonction.
Déplacer un
paramètre
Menu Edition
Option Déplacer
Sélectionner le paramètre à déplacer et
la position à atteindre (touche SHIFT
appuyée pour sélectionner l'emplacement
à atteindre) puis sélectionner la fonction.
L'emplacement à atteindre doit être un
emplacement libre de même type.
Changer l'ordre des
paramètres (dans
la fenêtre "liste
des paramètres")
Menu Services
Option Ordonner
les paramètres
Sélectionner la fonction
Sélectionner l'ordre désiré dans la liste
Valider par OK.
Imprimer la BFU
Menu Services
Option Imprimer
Sélectionner la fonction.
Sélectionner ce que l'on désire imprimer
dans la liste proposée et valider par OK.
Accéder à un autre
écran
Menu Accès
Option selon
l'écran à
atteindre.
Sélectionner l'option correspondant à
l'écran que l'on souhaite atteindre.
Modification de
paramètre
Menu Edition
Option Modifier
Sélectionner le paramètre.
Sélectionner la fonction.
Suppression de
paramètre
Menu Edition
Option
Supprimer
Sélectionner le paramètre.
Sélectionner la fonction.
n
53
Langage Textuel Structuré
5.4.5. Menu Accès - Fonction "Fiches descriptives"
Elle permet d'accéder à l'écran de description des différentes fiches et de créer un
"mini dossier" relatif à la BFU.
Sélectionner la fonction "Fiches descriptives" du menu "Accès" puis sélectionner
dans la boîte de dialogue qui est proposée le type fiche que l'on souhaite renseigner.
Chacune de ces fiches correspond à un écran de saisie de 16 lignes de 79 caractères. Les appellations de ces fiches ne sont données qu'à titre indicatif. L'utilisateur a
le libre choix du contenu.
5.4.6. Menu Accès - Fonction "Description paramètres"
Elle permet de visualiser un tableau récapitulatif de l'ensemble des paramètres
d'interface, avec pour chacun : son nom, son libellé, sa nature (bit, mot simple, mot
double, réel, chaîne de caractères, variable simple ou table), et son type (entrée,
sortie obligatoire, sortie facultative, interne, caché ou local).
Cet écran permet également de connaître la signature de la BFU.
La signature est calculée par le système à l'issue de chaque sauvegarde d'une BFU
(au moment du retour à l'atelier de programmation).
Cette signature permet de contrôler à tout moment la version de la BFU qui est
utilisée.
La signature est également imprimée dans le dossier de l'application.
5.4.7. Menu Accès - Fonction "Mot de passe"
Il est possible de protéger une BFU par un mot de passe.
Lors d'un accès à une BFU protégée le logiciel ORPHEE demande la saisie du mot
de passe.
BFU protégée par un mot de passe
Saisir le mot de passe
Consulter la BFU en mode protégé
ANNULER
OK
Il est possible, sans connaître le mot de passe, de consulter la BFU en mode protégé.
TEM10000F
n
54
Langage Textuel Structuré
Dans ce cas, aucune modification n'est autorisée et les éléments suivants sont
inaccessibles en visualisation et en impression :
- le corps de la BFU,
- les fiches descriptives.
m
Nota :
Les éléments protégés par le mot de passe ne seront pas imprimés dans le dossier
de l'application ou dans l'impression locale.
5.4.8. Menu Fichier
5.4.8.1. Fonction "Importer"
Elle permet de récupérer dans le corps le contenu d'un fichier texte pour l'ajouter à
la fin du texte déjà saisi.
Le fichier pourra se trouver n'importe où (disque ou lecteur), mais devra nécessairement être un fichier ASCII.
IMPORTER
Importer Nom fichier
❋•LTS
Fichiers dans C:\ORPHEE
EXEMPLE.LTS
[…]
[LIBRARY]
[TEXTUEL]
[-A-]
[-C-]
ANNULER
TEM10000F
OK
n
55
Langage Textuel Structuré
5.4.5.2. Fonction "Exporter"
Elle permet de stocker le corps de la BFU sur disque. Le fichier DOS (de type •LTS)
ainsi obtenu peut être alors modifié par un autre éditeur.
RECHERCHER
Exporter sous Nom fichier : C:\ORPHEE
❋.LTS
ANNULER
OK
Chemin d'accès et nom de stockage du fichier pour utilisation
dans un autre éditeur (exemple : C:\ EDIT\FIC.LTS)
5.4.9. Menus Tables de VD et Commandes
Ils permettent la mise au point de la BFU voir Chapitre F. § 6.
TEM10000F
n
56
Langage Textuel Structuré
TEM10000F
n

Manuels associés