▼
Scroll to page 2
of
58
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