S500-doc_09-AUTO

49
Fev.-11 Automatismes ST Table des matières 1 DESCRIPTION 2 1.1 Présentation des fenêtres de l’atelier 2 1.2 Cycles de l’automatisme 6 1.3 Syntaxe du langage ST 6 1.4 Fonctionnalités avancées 12 2 CONCEPTION DUN PROGRAMME 15 Tous droits réservés Il est interdit de reproduire tout ou partie de cet ouvrage ou de le transmettre sous quelque forme que ce soit, sans l’accord préalable de SOFREL. Les informations décrites dans ce manuel ont été vérifiées avec soin et sont supposées exactes. Toutefois, SOFREL ne peut être tenu responsable des erreurs ou des imprécisions qui pourraient exister dans ce manuel, ni des dommages directs ou indirects qui en résulteraient même s’il a été avisé de la possibilité de tels dommages. Suite au développement continuel de ses produits, SOFREL se réserve le droit d’apporter des modifications à ce manuel et aux produits qui y sont mentionnés à tout moment, sans avoir à prévenir les personnes concernées. Marques 2.1 Organisation 15 2.2 Analyse du besoin fonctionnel 15 2.3 Édition et déclaration des variables 16 2.4 Construction 17 2.5 Simulation 18 2.6 Chargement du programme 18 2.7 Mise au point sur le poste local (Debugger en ligne) 18 3 OPÉRATEURS 19 3.1 Arithmétique 19 3.2 Opérateurs booléens 19 SOFREL, PCWin, SOFBUS, S500, S50, S50 THERMIX, TELBOX, LINEBOX, CELLBOX, PC500, CS100, S10, S15, sont des marques déposées par la société SOFREL. Microsoft Windows, Microsoft Excel, Microsoft Word sont des marques ou des marques déposées par Microsoft Corporation. Tous les autres noms de produits ou de sociétés mentionnés dans cet ouvrage ne servent qu’à des fins d’identification et peuvent être des marques déposées par leurs propriétaires respectifs. 3.3 Opérateurs de comparaisons 20 4 FONCTIONS 21 4.1 Définition 21 4.2 Utilisation d’une fonction 21 4.3 Fonctions standard ST 21 4.4 Fonctions spécifiques SOFREL 34 Légende S500-doc_09-AUTO - 1 - 5 BLOCS FONCTIONNELS 36 : cliquez 1 fois sur le bouton gauche de la souris : cliquez 1 fois sur le bouton droit de la souris : double-cliquez sur le bouton gauche de la souris 5.1 Définition 36 5.2 Principe d’utilisation 36 5.3 Exemple d’utilisation d’un bloc fonctionnel 37 5.4 Blocs fonctionnels standard ST 39 CG CD DCG

description

Documentation Soffre S500

Transcript of S500-doc_09-AUTO

  • Fev.-11 Automatismes ST Table des matires

    1 DESCRIPTION 21.1 Prsentation des fentres de latelier 21.2 Cycles de lautomatisme 61.3 Syntaxe du langage ST 61.4 Fonctionnalits avances 12

    2 CONCEPTION DUN PROGRAMME 15 Tous droits rservs Il est interdit de reproduire tout ou partie de cet ouvrage ou de le transmettre sous quelque forme que ce soit, sans laccord pralable de SOFREL. Les informations dcrites dans ce manuel ont t vrifies avec soin et sont supposes exactes. Toutefois, SOFREL ne peut tre tenu responsable des erreurs ou des imprcisions qui pourraient exister dans ce manuel, ni des dommages directs ou indirects qui en rsulteraient mme sil a t avis de la possibilit de tels dommages. Suite au dveloppement continuel de ses produits, SOFREL se rserve le droit dapporter des modifications ce manuel et aux produits qui y sont mentionns tout moment, sans avoir prvenir les personnes concernes.

    Marques

    2.1 Organisation 152.2 Analyse du besoin fonctionnel 152.3 dition et dclaration des variables 162.4 Construction 172.5 Simulation 182.6 Chargement du programme 182.7 Mise au point sur le poste local (Debugger en

    ligne) 18

    3 OPRATEURS 193.1 Arithmtique 193.2 Oprateurs boolens 19 SOFREL, PCWin, SOFBUS, S500, S50, S50 THERMIX, TELBOX,

    LINEBOX, CELLBOX, PC500, CS100, S10, S15, sont des marques dposes par la socit SOFREL. Microsoft Windows, Microsoft Excel, Microsoft Word sont des marques ou des marques dposes par Microsoft Corporation. Tous les autres noms de produits ou de socits mentionns dans cet ouvrage ne servent qu des fins didentification et peuvent tre des marques dposes par leurs propritaires respectifs.

    3.3 Oprateurs de comparaisons 20

    4 FONCTIONS 214.1 Dfinition 214.2 Utilisation dune fonction 214.3 Fonctions standard ST 214.4 Fonctions spcifiques SOFREL 34

    Lgende

    S500-doc_09-AUTO - 1 -

    5 BLOCS FONCTIONNELS 36

    : cliquez 1 fois sur le bouton gauche de la souris

    : cliquez 1 fois sur le bouton droit de la souris

    : double-cliquez sur le bouton gauche de la souris

    5.1 Dfinition 365.2 Principe dutilisation 365.3 Exemple dutilisation dun bloc fonctionnel 375.4 Blocs fonctionnels standard ST 39

    CG CDDCG

  • Automatismes ST

    1 Description

    Lapplication Automatismes ST S500 permet dautomatiser des tches propres chacun des sites surveills. Pour cela, les programmes interagissent sur les informations de tlgestion de S500.

    2 Les programmes sont dcrits en langage ST conformment la norme IEC1131-3.

    1.1 Prsentation des fentres de latelier

    Aprs avoir dmarr SOFTOOLS, modifiez la configuration du poste local S500, CG sur le dossier Automatismes et DCG sur le dossier

    Automatismes ST pour activer latelier dautomatisme.

    1.1.1 Fentre principale La fentre principale permet de naviguer dans les diffrentes fentres de lautomatisme (liste des programmes, dition, variables, construction, simulation, ...).

    S500-doc_09-AUTO - 2 -

    1 Maintien de la fentre principale toujours en avant-plan. 2 Accs la fentre Liste des programmes pour ldition dun programme. 3 Accs la fentre Liste des variables . 4 Navigation dans les diffrentes fentres lies lautomatisme. 5 Construction des programmes. 6 Affichage du journal pour visualiser les messages du suivi (messages systme et suivi applicatif). 7 Passage en mode Simulation pour contrler lexcution du programme sur le PC. 8 Passage en mode Mise au point (Debugger) pour contrler lexcution du programme sur le poste local. 9 Affichage de la fentre Espion pour visualiser les variables lors de lexcution.

    1

    3 2 5 7

    9

    4

    6 8

  • Automatismes ST

    1.1.2 Liste des programmes Cette fentre regroupe les programmes de lautomatisme.

    Un programme est une suite dinstructions destin rsoudre un problme fonctionnel. Il est donc vivement conseiller dutiliser un programme par problme fonctionnel ; cela permet de simplifier lapproche (par exemple : un programme pour automatiser la permutation de pompes, et un autre programme pour grer lidentification des personnes qui ont accs la station de pompage).

    1.1.3 dition du programme Cest dans cette fentre que lutilisateur crit son programme (suite dinstructions).

    & Exemple : Remplissage dune cuve selon 2 seuils (information Bornier DI )

    Lditeur est dot dune coloration syntaxique, c'est--dire que les composantes du langage prennent une couleur spcifique :

    z les mots cl en bleu ,

    z les valeurs numriques en gris ,

    z les commentaires sont en vert

    z et tout le reste est en noir .

    S500-doc_09-AUTO - 3 -

    data1 : Seuil Niveau haut

    data2 : Seuil Niveau bas

    data3 : Commande pompage

    Cuve n 1

    1 0

    0 1

  • Automatismes ST

    1.1.4 Liste des variables

    CG sur le + pour dvelopper chaque liste.

    Les variables sont :

    z soit des informations du poste local S500. 2 Les informations S500 correspondant des variables dautomatisme prdfinies

    nommes (xxxx correspondant au numro de linformation 1 1000).

    z soit des variables internes lautomatisme.

    1.1.5 Construction Laction Construire (ou compiler) sert convertir les programmes ST dans un langage comprhensible par S500. Elle gnre un code qui sera ensuite charg en mme temps que la configuration dans le S500.

    S500-doc_09-AUTO - 4 -

  • Automatismes ST

    1.1.6 Simulation de lexcution dun programme Un programme peut tre simul avant dtre transfr dans S500.

    La fentre variable permet de visualiser ltat des variables en temps rel. Il est galement possible de modifier la valeur dune variable en cours de simulation ; pour ce faire, il suffit de double cliquer sur la variable, et la fentre suivante apparat :

    ou

    1.1.7 Fentre Espion Elle permet de visualiser en simulation ltat de variables regroupes dans une mme fentre.

    2 Pour visualiser les variables du programme, il suffit deffectuer un glisser-dplacer de la variable, de la fentre Liste des variables vers la fentre Espion .

    S500-doc_09-AUTO - 5 -

  • Automatismes ST

    1.2 Cycles de lautomatisme

    DEBUT CYCLE

    Acquisition des Entres / Sorties de lautomatisme

    (Informations S500)

    Programme 1

    Temps de cycle = 200 ms (excution des automatismes toutes les 200 millisecondes).

    Programme 2

    :

    :

    Programme n

    Les entres-sorties de lautomatisme S500 correspondent des variables pr-dfinies nommes (xxxx allant de 1 1000).

    Restitution des sorties de lautomatisme

    (sortie/consigne et information dautomatisme S500)

    FIN CYCLE

    1.3 Syntaxe du langage ST La cration dun programme dautomatisme ncessite de connatre la syntaxe du langage ST.

    Un programme ST est une suite dinstructions. Les instructions dun programme sont excutes dans lordre dapparition. Des structures de contrle permettent de modifier dynamiquement lordre dexcution de ces instructions en fonction de conditions.

    DBUT PROGRAMME

    Instruction 1

    Instruction 2

    : :

    S500-doc_09-AUTO - 6 -

    FIN PROGRAMME

    :

    :

    Instruction n

  • S500-doc_09-AUTO - 7 -

    Automatismes ST

    1.3.1 Instructions Une instruction se termine obligatoirement par un point-virgule : ; Les instructions sont construites partir de variables, de constantes, de fonctions et doprateurs.

    En rgle gnrale, il ny a pas de distinction entre les lettres minuscules et majuscules.

    1.3.1.1 Affectation

    Laffectation dune valeur une variable se fait laide de loprateur := .

    Variable := Expression ;

    & Exemple : data3 := data1 + data2 ; La variable et lexpression doivent avoir le mme type : logique/boolen, numrique/rel, entier (Cf 1.3.4 pour la dfinition des types de variables). Si ncessaire, il est possible dutiliser des fonctions de conversion de type (cf 4.3.3).

    1.3.1.2 Parenthses

    Il est vivement conseill dutiliser les parenthses pour simplifier la lecture dune expression complexe.

    Sans parenthse, lordre dvaluation par dfaut pour les oprateurs du langage ST est le suivant :

    1 Ngation NOT

    2 Multiplication, Division * /

    3 Addition, Soustraction + -

    4 Comparaisons < > = =

    5 ET boolen AND

    6 OU boolen OR

    7 OU exclusif XOR

    & Exemple : data4 := (data1 + data2) data3 ;

    1.3.1.3 Commentaires

    Des commentaires de longueur variable peuvent tre insrs nimporte o dans un programme ST.

    Un commentaire dbute par les caractres ( et se termine par ) . Toute ligne commenant par // est considre comme une ligne de commentaires.

    Dans lditeur, les commentaires sont affichs en vert.

    & Exemples : (* Exemple de commentaire sur plusieurs lignes*) // Autre exemple de commentaires saisis sur une seule ligne.

  • Automatismes ST

    1.3.1.4 Appel de fonction

    Les fonctions permettent de raliser des traitements simples. Chaque fonction retourne une valeur de sortie unique qui dpend uniquement des valeurs de ses paramtres dentre.

    Les constantes ou les variables utilises lors de lappel de la fonction doivent tre du type autoris par la fonction (cf. 1.3.4 pour la dfinition des types de variables et, si ncessaire, le 4.3.3 pour lutilisation des fonctions de conversion).

    Il existe des fonctions dfinies dans la norme IEC1131-3 et dautres, dveloppes par SOFREL, spcifiques au mtier de la Tlgestion. Les fonctions disponibles sont dcrites dans le 4 de ce chapitre.

    & Exemple : data3 := SIN (data1);

    1.3.1.5 Appel de bloc fonctionnel

    Les blocs fonctionnels permettent de raliser des traitements ncessitant la mmorisation dinformations. Un bloc fonctionnel peut possder plusieurs paramtres dentre et plusieurs paramtres de sortie.

    Les constantes ou les variables utilises lors de lappel dun bloc fonctionnel doivent tre du type autoris par le bloc fonctionnel (cf. 1.3.4 pour la dfinition des types de variables et, si ncessaire, le 4.2 pour lutilisation des fonctions de conversion).

    Il existe des blocs fonctionnels standard dfinis dans la norme IEC1131-3 et dautres, dvelopps par SOFREL, spcifiques au mtier de la Tlgestion. Les diffrents blocs fonctionnels standard sont dcrits dans le 5 de ce chapitre.

    1.3.2 Structures de contrle dun programme

    Instruction de test 9 Premire forme : IF (c ) THEN ondition boolenne

    liste d'instructions ; END_IF ;

    9 Deuxime forme : IF (condition boolenne) THEN liste d'instructions 1 ;

    ELSE liste d'instructions 2 ;

    END_IF ;

    9 Troisime forme : IF (c ) THEN ondition boolenne 1liste d'instructions 1 ;

    ELSIF (condition boolenne 2) THE N

    d'instructions 2 ; liste...

    ELSIF (condition boolenne k) THEN

    liste d'instructions k ; ELSE

    liste d'instructions k+1 ; END_IF ;

    S500-doc_09-AUTO - 8 -

  • Automatismes ST

    Instruction de slection : ECAS (expression entire) OF constante1, constante2, ... :

    liste d'instructions 1 ; constantea, constanteb, ... :

    liste d'instructions 2 ; ... Constantex, constantey, ... :

    liste d'instructions k ; ELSE

    liste d'instructions k+1 ; END_CASE ;

    Exemple : (* contrle les nombres premiers dans une liste de 0 6*) CASE iNumber OF ELSE Alarm := TRUE; AlarmText := 'I don't know after 6 !'; END_CASE;

    0 : Alarm := TRUE; AlarmText := '0 gives no result'; 1, 3, 5 : bPrime := TRUE; 4, 6 : bPrime := FALSE;

    Itrations (excution dune boucle) 9 Boucle :

    On commence par valuer la condition. Si elle est vraie, on effectue la liste dinstructions. Puis on recommence. Lorsque la condition devient fausse, on sort de la boucle.

    9 Boucle :

    On commence par effectuer la liste dinstructions. Puis on value la condition. Si elle est vraie, on sort de la boucle, sinon on recommence.

    WH nne) DO ILE (condition boolections ; liste d'instru

    END_WHILE ;

    REPEAT liste d'instructions ;

    UNTIL (condition boolenne) END_REPEAT ;

    FO MIN TO MAX BY PAS DO R variable entire := tructions ; liste d'ins

    END_FOR ;

    9 Boucle :

    2 La liste dinstructions sexcute : de la variable MIN la variable MAX . A chaqueexcution de la liste dinstructions, la variable sincrmente du P

    AS ; MIN, MAX

    et PAS sont des expressions entires (constantes, variables, ).

    S500-doc_09-AUTO - 9 -

  • Automatismes ST

    1.3.3 Variables

    1.3.3.1 Dfinition des variables

    Les variables sont : z soit des informations du poste local S500 :

    z Entres logiques,

    z Entres numriques

    z Sorties logiques : toutes les sorties logiques et les variables logiques de type Automatismes ,

    z Sorties numriques : toutes les sorties numriques, les entres numriques de type Compteurs et les variables numriques de type Automatismes .

    Les informations S500 correspondent des variables dautomatisme prdfinies nommes (xxxx correspondant au numro dinformation de 1 1000).

    z soit des variables internes lautomatisme,

    1.3.3.2 Liste des variables

    Groupe de variables Contenu Variables globales Variables internes connues de tous les programmes Variables mmorises Variables internes connues de tous les programmes et qui

    conservent leurs valeurs lors dune rinitialisation simple de S500

    Programme nx Variables locales au programme : ces variables sont connues uniquement par le programme dans lequel elles ont t dclares.

    Blocs fonctionnels Variables locales et paramtres dentres-sorties dun bloc fonctionnel

    Entres logiques

    Informations dentres-sorties de S500 Sorties logiques Entres numriques Sorties numriques

    2 Les variables utilises dans les programmes doivent tre dabord dclares dans lditeur de variables sauf celles correspondant aux informations S500 qui sont automatiquement cres lors du lancement de latelier dautomatismes.

    1.3.3.3 Fentre variable

    Exemple : pour crer une variable globale partir de la fentre Liste des variables :

    9 CD sur Variable globale et choisissez Ajouter une variable

    Valeur que prendra la variable chaque dmarrage de lapplication Automatismes ST

    S500-doc_09-AUTO - 10 -

  • S500-doc_09-AUTO - 11 -

    Automatismes ST

    1.3.4 Types de variables ou de constantes 2 Les informations S500 sont de type :

    BOOL pour les informations logiques, REAL les informations numriques.

    its)

    pour

    Taille Type Description (b Remarques

    BOOL Boolen 1 TRUE pour une information/variable active FALSE pour une information/variable inactive

    REAL Rel 32 ).

    ut tre utiliss pour spcifier un exposant :

    Les constantes relles doivent inclure un point comme sparateur dcimal : 3.0 par exemple (ceci afin de les diffrencier des entiersLe caractre E pe3.0E10 par exemple.

    DINT Entier sign 32 -2147483648 +2147483647 Exemple de notation : 125 en dcimal peut scrire :

    z 2#01111101 en binaire. z 16#7D en hexadcimal,

    TIME Dure mps doit tre prfixe par T# .

    valeur maximale de cette variable est 23h59m59s.

    utes et 10 secondes.

    Une constante de teElles sexpriment :

    z par un nombre dheures suivi de h , z

    z un nombre de secondes suivi de s , un nombre de minutes suivi de m ,

    z et un nombre de millisecondes suivi de ms .

    Lordre des units (heures, minutes, secondes, millisecondes) doit trerespect. La Exemples : T#1h4m10s pour 1 heure, 4 minT#15m pour 15 minutes. T#25ms pour 25 millisecondes.

    STRING caractres

    rsenter un imable dans une chane :

    re exprim sous forme de 2 digits hexadcimaux

    Chane de Taille infrieure 255 caractres Ces constantes doivent tre crites entre apostrophes (.....). Les squences suivantes peuvent tre utilises pour repcaractre spcial ou non impr

    z

    z $ une apostrophe $$ un caractre $

    z

    $R un retour chariot $T une tabulation

    z

    z $L un saut de ligne z uivi dun saut de ligne z $P un saut de page z $xx code ASCII de tout caract

    $N un retour chariot s

    Bloc fonctionnel

    Dclaration des blocs fonctionnels utiliss (cf. 5 de ce chapitre)

    lement limites que par la taille

    ste local :

    z 255 programmes dautomatisme.

    2 Les capacits de lautomatisme ne sont relmmoire que peut grer le po

    z 65535 variables,

  • Automatismes ST

    1.4 Fonctionnalits avances

    1.4.1 Gestion des temporisations En langage ST, il est possible de grer simplement des temporisations en dclarant une variable de type TIME.

    Dans un programme :

    z linstruction TSTART (nom de variable) permet de dmarrer la temporisation,

    z une instruction de test (IF, THEN, ELSE, END_IF) permet de vrifier lchance de la temporisation,

    z linstruction TSTOP (nom de variable) permet darrter la temporisation. & Exemple : Automatisation de la marche dune pompe pendant 20 minutes et de

    larrt pendant 10 minutes.

    Information Description Origine Correspondance variable dautomatisme N 1 Commande pompage Bornier DO Sortie logique : data3

    Dclaration dune variable type TIME. Nom de la variable : timer

    TSTART (timer)

    S500-doc_09-AUTO - 12 -

  • S500-doc_09-AUTO - 13 -

    Automatismes ST

    1.4.2 Utilisation des dfinitions globales ou locales

    1.4.2.1 Principe

    Une dfinition est un identificateur unique qui peut tre utilis dans les programmes pour remplacer un autre texte. Les dfinitions sont typiquement utilises pour remplacer une expression constante et faciliter la lecture et la maintenance des programmes.

    Il y a 2 niveaux de dfinitions :

    9 Globales tous les programmes ; elles peuvent tre dites partir du menu Outils de la fentre Liste des programmes .

    9 Locales un programme ; elles peuvent tre dites partir du menu Outils de la fentre dition du programme .

    Chaque dfinition doit tre entre sur une ligne de texte selon la syntaxe suivante :

    Dfinition = Texte remplacer (* commentaire *) & Exemple :

    PI = 3.14 (* constante numrique *) NOMBRE_DE_POMPES = 4 (* nombre de pompes gres *)

    2 Il est possible dutiliser une dfinition dans le contenu dune autre dfinition. La dfinition utilise dans lautre doit tre dclare en premier.

    & Exemple : PI = 3.14 (* constante numrique *) 2PI = (PI * 2.0) (* 2 fois la constante numrique PI *)

    2 Les dfinitions sont aussi trs pratiques pour rendre un programme indpendant rties dataxxxx de lautomatisme S500.

    & E

    COMMANDE_POMPAGE = data5

    1.4.3 Importation / Exportation de programmes et de blocs fonctionnels spcifiques

    s blocs fonctionnels spcifiques, dvelopps par SOFREL et rpondant des besoins particuliers.

    Exemples :

    dun dbit moyen, 9 etc.

    rire ses propres blocs fonctionnels et les exporter pour les mettre disposition dautres utilisateurs.

    des variables dentres-so

    xemple : Volume_cuve = data45 Niveau_bache = data9

    Latelier dautomatismes ST permet dimporter de

    9 Permutations dactionneurs, 9 Calcul

    Un utilisateur peut galement c

  • S500-doc_09-AUTO - 14 -

    Automatismes ST De mme, latelier dautomatismes ST permet dimporter des programmes complets raliss par SOFREL.

    Exemples :

    9 Dtection dintrusion, 9 Commande dclairage via lhorloge astronomique, 9 etc.

    Un utilisateur peut, de la mme faon, exporter les programmes quil a cr pour les mettre disposition dautres utilisateurs.

    2 Diffrence entre un bloc fonctionnel et un programme : z un bloc fonctionnel dispose de paramtres dentres et de sorties, et son

    utilisation ncessite lcriture dun programme ST dans lequel il sera utilis.

    z un programme est directement utilisable sans connaissance particulire du langage ST ; il suffit de modifier les dfinitions locales du programme pour les associer aux informations dentres-sorties du poste local S500.

    1.4.4 Suivi de fonctionnement Lutilisateur peut ajouter, dans les programmes dautomatisme, des appels de fonctions permettant dafficher des messages textes et numriques dans une fentre de journal de fonctionnement des automatismes ST. Ce suivi est accessible par lintermdiaire du Navigateur (en connexion locale ou distante via SOFTOOLS).

    2 Cette fonction permet le suivi visuel du bon droulement du programme. Attention, toutefois, lutilisation excessive de messages dans un programme qui peut augmenter de manire significative son temps de cycle.

    Pour plus dinformations, reportez-vous au 4.4.2 o les fonctions de suivi SFMONMSG et SFMONSUI sont dcrites.

    En mode simulation, les messages de suivi sont affichs dans la fentre Journal .

    1.4.5 Particularits de fonctionnement

    1.4.5.1 Dtection de lexcution dun automatisme en boucle

    Dans le cas o lensemble des programmes dautomatisme ne sexcute pas correctement, le logiciel S500 redmarre automatiquement sans lapplication Automatismes ST .

    Un message signalant ce dysfonctionnement est alors archiv dans le journal de diagnostic et S500 active alors automatiquement les informations internes Dfaut systme et Chien de garde . Dans ce cas, il est ncessaire de modifier la configuration du poste local et de recharger lautomatisme S500 avec SOFTOOLS.

    1.4.5.2 Dure des temps de cycles dpasse

    En cas de dpassement de tous les temps de cycle conscutifs pendant une minute, deux messages Apparition Dfaut systme et Temps de cycle automatisme trop long signalant ce dysfonctionnement sont alors archivs dans le journal de diagnostic et S500 active alors automatiquement linformation Dfaut systme .

    2 La prsence dune carte DO-Wdg permet de scuriser les installations en activant un automatisme dgrad sur dtection dun dfaut (cf. Utilisation des informations).

  • Automatismes ST

    2 Conception dun programme

    2.1 Organisation La conception dun programme dautomatisme ncessite de respecter les tapes suivantes :

    1. Analyse du besoin fonctionnel (algorithme),

    2. dition des programmes et dclaration des variables,

    3. Construction (Compilation),

    4. Simulation sur le PC,

    5. Mise au point (Debugger) au niveau du poste local,

    6. Chargement des programmes dans S550.

    2.2 Analyse du besoin fonctionnel Cette phase consiste laborer sur papier une solution automatise pour rpondre au problme pos.

    & Exemple : Remplissage automatique dun rservoir suivant 2 seuils (Min. et Max. ) sur une mesure de niveau. La pompe est dmarre ds que le niveau descend en dessous de 1 mtre. Elle est arrte ds que le niveau deau atteint 5 mtres.

    Information Description Origine Correspondance variable dautomatisme N 4 Niveau rservoir 1 Bornier AI Entres numriques : data4 N 3 Commande pompage Bornier DO Sortie logique : data3

    data3 : Commande pompage

    5 m 1 m

    data4 : Niveau rservoir 1

    Algorithme de remplissage : z SI niveau infrieur 1 mtre, ALORS Marche de la pompe,

    z SI niveau suprieur ou gal 5 mtres, ALORS Arrt de la pompe.

    S500-doc_09-AUTO - 15 -

  • Automatismes ST 2.3 dition et dclaration des variables

    2.3.1 Dclaration des variables Dans lexemple prcdent, seules les variables data4 et data3 sont ncessaires. Ces variables correspondant directement des informations de S500, elles sont automatiquement dclares.

    2.3.2 dition du programme

    A partir de la fentre Liste des programmes , CG sur le menu Fichier - Nouveau ou Fichier Ouvrir pour diter le programme souhait.

    2.3.3 Protection du programme

    Il est possible de protger un programme en CD sur son nom et en modifiant ses Proprits :

    9 Cochez la case Protection pour viter quun autre utilisateur ne puisse modifier le programme. La saisie dun mot de passe de 1 6 caractres sera alors systmatiquement demande chaque modification du programme

    9 Lorsque la case Validation nest pas coche, le programme dautomatisme ne peut tre excut.

    9 CD sur la cl pour ter la protection du programme.

    S500-doc_09-AUTO - 16 -

  • Automatismes ST

    CG sur ce bouton pour vrifier la syntaxe du programme

    dition du programme

    2 Il est possible de redimensionner cet espace pour afficher le rsultat de la vrification de la syntaxe.

    Rsultat

    2 Pour faciliter la saisie des noms de variables, il est possible de procder un

    Glisser Dplacer de la variable choisie, de la fentre variables vers la fentre dition du programme .

    2.4 Construction Lors de la construction, les erreurs de syntaxe sont automatiquement dtectes.

    DCG sur lerreur positionne automatiquement le curseur sur lerreur dans la fentre ddition du programme.

    2 Une erreur pouvant en entraner une autre, il est conseill de corriger les erreurs une une, partir de la premire.

    2 Il est galement recommand de vrifier la syntaxe du programme au fur et mesure de son dition.

    S500-doc_09-AUTO - 17 -

  • Automatismes ST

    2.5 Simulation La simulation permet de tester le programme directement dans latelier. Il est possible partir de la fentre variables ou espion de modifier nimporte quelle variable de manire vrifier le comportement du programme.

    Pour simuler le fonctionnement dun programme, il existe un mode cycle cycle qui permet dexcuter le ou les programmes une seule fois, et de dtecter plus facilement les ventuelles erreurs.

    Simulez le programme soit en mode classique, soit en mode cycle cycle (arrt toutes les 200 millisecondes).

    Simulez la variation dun niveau pour dtection automatique des seuils.

    S500-doc_09-AUTO - 18 -

    & Exemple de fentre ESPION :

    Effectuez un Glisser-Dplacer pour mettre jour la fentre Espion . Espionnez que la

    commande pompage sactive automatiquement sur variation du Niveau.

    2.6 Chargement du programme Lorsque le programme a t mis au point en simulation, il suffit de le charger dans le S500 en effectuant une criture de configuration.

    2.7 Mise au point sur le poste local (Debugger en ligne) Pour une vrification finale, loutil Debugger peut tre utilis en connexion locale ou distante avec le poste local, simplement en cliquant sur le bouton de la fentre principale (cf. 1.1.1. ).

    Il permet ainsi de contrler lexcution des programmes ST en grant directement les entres-sorties du poste local avec tous les traitements qui y sont effectus (temporisations, seuils, ).

  • S500-doc_09-AUTO - 19 -

    Automatismes ST

    3 Oprateurs

    3.1 Arithmtique

    3.1.1 + Addition de variables & Ex. : data5 := (data51 + data52) + data53;

    3.1.2 Soustraction de variables & Ex. : data10 := data101 data102;

    3.1.3 Multiplication de variables & Ex. : data10 := data101 * data102;

    3.1.4 / Division de variables & Ex. : data10 := data101 / data102;

    3.1.5 lvation la puissance dune variable & Ex. : data100:= data10**2.0;

    3.2 Oprateurs boolens

    3.2.1 AND ET boolen entre variables boolennes & Ex. : data10 := data101 AND data102;

    3.2.2 OR OU boolen entre variables boolennes & Ex. : data5 := data51 OR data52;

    3.2.3 XOR OU exclusif boolen entre variables boolennes & Ex. : data10 := data101 XOR data102;

    3.2.4 NOT NON boolen : inversion dune variable boolenne & Ex. : data22 := NOT data101;

  • S500-doc_09-AUTO - 20 -

    Automatismes ST

    3.3 Oprateurs de comparaisons Ces oprateurs permettent de comparer des variables ou des constantes entre elles. Le rsultat de cette comparaison est une valeur boolenne :

    9 TRUE si la comparaison est vraie, 9 FALSE si la comparaison est fausse.

    3.3.1 < Infrieur : teste si une valeur est plus petite quune autre (valeurs relles, valeurs entires, temporisations) & Ex. : data1 := (data2 < 5.0);

    (* data1 is TRUE if data2 < 5 *)

    3.3.2 5.0);

    (* data1 is TRUE if data2 > 5 *)

    3.3.6 >= Suprieur ou gal : teste si une valeur est plus grande ou gale une autre (valeurs relles, valeurs entire, temporisations)

    Ex. : data1 := (data2 >= 5.0);

    (* data1 is TRUE if data2 > 5 *)

  • S500-doc_09-AUTO - 21 -

    Automatismes ST

    4 Fonctions

    4.1 Dfinition Les fonctions permettent de raliser des traitements simples. Chaque fonction retourne une valeur de sortie unique qui dpend uniquement des valeurs courantes de ses paramtres dentre.

    Les constantes ou les variables utilises lors de lappel de la fonction doivent tre du type autoris par la fonction, sinon il est ncessaire dutiliser les fonctions de conversion de type. Il existe des fonctions dfinies dans la norme IEC1131-3 et dautres, dveloppes spcifiquement par SOFREL pour le mtier de la Tlgestion.

    4.2 Utilisation dune fonction

    Syntaxe: := (, , );

    & Ex. : data3 := SIN (data1); 4.3 Fonctions standard ST

    4.3.1 Fonctions mathmatiques

    4.3.1.1 ABS Calcul de la valeur absolue dun rel

    Entre IN REAL Sortie Q REAL valeur absolue

    & Ex. : value := ABS (delta); 4.3.1.2 ACOS Calcul de larc cosinus dun rel

    Entre IN REAL (toute valeur dans lintervalle [-1.0 +1.0])o t S r ie Q REAL arc cosinus de la valeur dentre dans lintervalle [0.0 PI]

    ur une entre invalide

    & Ex. : result := ACOS (data1);

    4.3.1.3 ASIN Calcul de larc sinus dune valeur relle

    = 0.0 po

    Entre IN REAL (toute valeur dans lintervalle [-1.0 +1.0]) Sortie Q

    +PI/2] = 0.0 pour une entre invalide

    & Ex. : result := ASIN (data1); REAL arc sinus de la valeur dentre dans lintervalle

    [-PI/2

  • S500-doc_09-AUTO - 22 -

    Automatismes ST

    4.3.1.4 ATAN Calcul de larc tangente dune valeur relle

    Entre IN REAL Sortie Q REAL arc sinus de la valeur dentre dans lintervalle

    [-PI/2 +PI/2] = 0.0 pour une entre invalide

    & Ex. : result := ATAN (data1);

    4.3.1.5 COS Calcul du cosinus dune valeur relle

    Entre IN REAL (toute valeur ) relle Sortie Q REAL cosinus de la valeur dentre dans lintervalle [-1.0 +1.0]

    & Ex. : result := COS (angle);

    4.3.1.6 EXPT lvation une puissance (exposant entier)

    Entre IN REAL nombre rel lever la puissance EXP DINT puissance (exposant entier)

    Sortie Q REAL IN puissance EXP 1.0 si IN est diffrent de 0.0 et EXP est gal 0.0 0.0 si IN est gal 0.0 et EXP est ngatif

    t EXP sont gaux 0.0

    & Ex. : result := EXPT (value, 3);

    4.3.1.7

    1.0 si IN e

    LOG Calcul logarithmique base 10 dune valeur relle

    Entre IN REAL toute valeur suprieure 0 Sortie Q REAL logarithme (base 10) de la valeur dentre

    & Ex. : result := LOG (data5);

    4.3.1.8 POW lvation une puissance (exposant rel)

    Entre IN REAL nombre analogique rel lever EXP REAL puissance (exposant rel)

    Sortie Q REAL IN puissance EXP 1.0 si IN est diffrent de 0.0 et EXP est gal 0.0

    t gal 0.0 et EXP est ngatif 1.0 si IN et EXP sont gaux 0.0

    & Ex. : result := POW (value, 3.0); 0.0 si IN es

  • S500-doc_09-AUTO - 23 -

    Automatismes ST

    4.3.1.9 RAND Valeur alatoire dans un intervalle donn

    Entre IN DINT dfinit lintervalle de valeurs autorises Sortie Q DINT valeur alatoire dans lintervalle [0 base-1]

    & Ex. : variable := RAND (4); (* slection alatoire dune valeur parmi 4 valeurs prdfinies. La valeur issue de lappel RAND est un nombre entier dans lintervalle [0 3] *)

    4.3.1.10 SIN Calcul du sinus dune valeur relle

    Entre IN REAL toute valeur relle Sortie Q REAL sinus de la valeur dentre dans lintervalle [-1.0 +1.0]

    & Ex. : result := SIN (angle);

    4.3.1.11 SQRT Calcul de la racine carre dune valeur relle

    E t n r e IN REAL toute valeur suprieure ou gale 0 (si IN est infrieur 0, Q = 0)

    Sortie Q REAL racine carre de la valeur dentre & Ex. : result := SQRT (32400.00);

    4.3.1.12 TAN Calcul de la tangente dune valeur relle

    Entre IN REAL diffrent de PI/2 modulo PI Sortie Q REAL tangente de la valeur dentre

    & Ex. : result := TAN (angle);

    4.3.1.13 tie entire TRUNC Tronque une valeur relle pour obtenir sa par

    Entre IN REAL toute valeur relle signe Sortie Q REAL si IN>0, plus grand entier infrieur ou gal IN

    ntier suprieur ou gal IN

    & Ex. : result := TRUNC (+2.67) + TRUNC (-2.0891); si IN

  • S500-doc_09-AUTO - 24 -

    Automatismes ST

    4.3.1.14 I LIM T Limite une valeur entire un intervalle donn La variable conserve sa valeur si elle est entre le minimum et le maximum. La variable est

    nimum (si elle est en

    Entre

    force la valeur maximale (si elle est au dessus), ou force au midessous).

    MIN DINT valeur minimum autorise IN DINT valeur entire contrler MAX DINT valeur maximale autorise

    Sortie Q DINT valeur limite la plage autorise Ex. : new_value := L& IMIT (mini, value, maxi);

    (* limite la valeur lintervalle [mini - maxi] *)

    4.3.1.15 MIN Fonction Minimum : donne la valeur minimum entre deux variables entires

    Entre IN1 DINT toute valeur entire IN2 DINT

    Sortie Q DINT valeur minimale entre les 2 variables dentre

    4.3.1.16 MAX Fonction Maximum : donne la valeur maximale entre deux variables entires

    & Ex. : new_value := MIN (value 1, value 2);

    Entre IN1 DINT toute valeur entire

    Sortie IN2 DINT

    Q DINT valeur maximale entre les 2 variables dentre

    4.3.1.17 MOD Fonction Modulo : calcule le reste de la division dune valeur entire

    & Ex. : new_value := MAX (value 1, value 2);

    Entre IN DINT toute valeur entire Base DINT (Base est le diviseur

    > 0)

    Sortie Q DINT rsultat du modulo (rend -1 si Base infrieur ou gal 0)

    4.3.1.18 ODD Fonction Test dimparit dun entier

    & Ex. : new_value := MOD (value, divisor); (* rest of division *)

    Entre IN DINT toute valeur entire Sortie Q BOOL TRUE si la valeur est impaire FALSE si la valeur est paire

    & Ex. : (* if value = odd *) IF (ODD (value)) THEN value := value + 1; END_IF;

  • S500-doc_09-AUTO - 25 -

    Automatismes ST

    4.3.2 Fonctions de manipulation de caractres

    4.3.2.1 ASCII Code ASCII dun caractre dans une chane

    Entre IN STRING chane de caractres non vide Pos DINT position du caractre slectionn dans [1 long] long tant la longueur de la chane de caractres IN.

    Sortie Code DINT code du caractre slectionn dans lintervalle [0 255] retourne 0 si Pos nest pas dans la chane

    & Ex. : First_character := ASCII (string, 1); 2 (* First_character is code ASCII of the first character of the string *)

    4.3.2.2 laboration dun caractre partir de son code ASCII CHAR

    Entre Code DINT code ASCII dans lintervalle [0 255] Sortie Q STRING chane dun caractre le caractre a le code ASCII

    spcifi dans Code : le code ASCII est pris modulo 256.

    + 48 );

    48 is code ASCII of 0 the result is a string of one character [0 to 9] *)

    4.3.2.3 a

    & Ex. : Result := CHAR ( value 2 (* value is in interval [0 to 9]

    DELETE Suppression dune partie dune chane de car ctres

    Entre IN STRING chane de caractres NbC DINT nombre de caractres supprimer Pos DINT position du premier caractre supprimer

    Sortie Q

    i Pos > longueur de la chane IN chane initiale si NbC

  • S500-doc_09-AUTO - 26 -

    Automatismes ST

    4.3.2.4 FIND Recherche des caractres dans une chane

    Entre IN STRING chane de caractres Pat STRING toute chane non vide

    Sortie Pos DINT = 0 si sous chane Pat non trouve = position du premier caractre de la premire occurrence de la chane Pat (cette fonction diffrencie les majuscules des minuscules)

    & Ex. : complete_string := ABCD + EFGH; (* = ABCDEFGH *) dataposition := FIND (complete_string, CDEF); (*dataposition := 3 *)

    4.3.2.5 INSERT Insertion de caractres dans une chane

    Entre IN STRING chane initiale Str STRING chane de caractres insrer Pos DINT position de linsertion (avant la position donne)

    Sortie Q os est plus grand

    N

    & Ex. UPONT, Frank , 4); (* = Mr Frank DUPONT *)

    4.3.2.6 LEFT Extraction de la partie gauche dune chane

    STRING chane vide si Pos = longueur de la chane IN

    & Ex. : := LEFT (12345678, 4);

    4.3.2.7

    STRING partie gauche de la chane IN chane vide si Nbc

  • S500-doc_09-AUTO - 27 -

    Automatismes ST

    4.3.2.8 MLEN Calcul de la longueur dune chane

    Entre IN STRING chane de caractres Sortie NbC DINT nombre de caractres dans la chane IN

    & Ex. : number_characters := MLEN (complete_string); IF (number_characters >= 3) THEN prefix := LEFT (complete_string, 3); END_IF;

    (* this program extract the 3 characters at the left of the string and put the result in the variable prefix *)

    4.3.2.9 REPLACE Remplacement des caractres dans une chane

    Entre IN STRING chane de caractres STR STRING chane contenant les caractres insrer NbC DINT nombre de caractres dtruire Pos DINT lac

    position du premier caractre remp

    Sortie Q STRING chane modifie : (NbC caractres sont dtruits partir de Pos et la chane STR est insre cette position - rend une chane vide si Pos

  • S500-doc_09-AUTO - 28 -

    Automatismes ST

    4.3.3 Fonctions de conversion

    4.3.3.1 BOO Conversion en variable boolenne

    Entre IN Sortie Q BOOL TRUE pour une valeur entire ou relle non nulle

    FALSE pour une valeur nulle

    & Ex. : result := BOO (10); (* result = TRUE *)

    4.3.3.2 ANA Conversion en valeur entire

    Entre IN Sortie Q

    isecondes r un rel : partie entire

    & Ex. : RUE);

    & Ex. : ; (* result = 198 *)

    4.3.3.3 REAL Conversion en variable relle

    DINT Pour un boolen : 0 pour FALSE / 1 pour TRUE Pour une temporisation : nombre de mill Pou

    result := ANA (T

    (* result = 1 *)

    result := ANA (0198)

    Entre IN Sortie Q

    ur une temporisation : nombre de millisecondes

    & Ex. : e);

    & Ex. : ; (* result = 198.00 *)

    REAL Pour un boolen : 0.0 pour FALSE / 1.0 pour TRUE Pour un entier XXX : ajout de la partie dcimale XXX.00 Po

    result := REAL (tru

    (* result = 1.0 *)

    result := REAL (198)

  • S500-doc_09-AUTO - 29 -

    Automatismes ST

    4.3.3.4 MSG Conversion en variable de type STRING

    Entre IN Sortie Q STRING Pour un boolen : FALSE ou TRUE

    & Ex. : result := MSG (true); (* result = TRUE *)

    & Ex. : result := MSG (125);(* result = 125 *)

    & Ex. : result := MSG (125.851);(* result = 125.85 *)

    4.3.3.5 TMR Conversion en variable de type TIME

    Entre IN Sortie Q TIME nombre de millisecondes (temps reprsent par IN)

    & Ex. : (* result = t#1s256ms *)

    result := TMR (1256.3);

  • Automatismes ST

    4.3.4 Fonctions de registres

    4.3.4.1 AND_MASK Masque ET bit bit entre deux entiers

    Entre IN DINT (format entier) MSK DINT (format entier)

    Sortie Q DINT ET logique bit bit entre IN et MSK & Ex. :result := AND_MASK (16#abc, 16#f0f);

    (* result = 16#a0c *)

    4.3.4.2 NOT_MASK Masque inversion logique bit bit dun entier

    Entre IN DINT (format entier) Sortie Q DINT inversion logique bit bit de IN (sur 32 bits)

    & Ex. : (* result hexa = 16#FFFF_EDCB *)

    4.3.4.3 OR_MASK Masque OU

    result := NOT_MASK (16#1234);

    bit bit entre deux entiers

    Entre IN DINT (format entier) MSK DINT (format entier)

    Sortie Q DINT OU logique bit bit entre IN et MSK & Ex. : SK (value, 1);

    & Ex. :

    4.3.4.4 ROL Rotation gauche des bits dun entier

    is_odd := OR_MA

    (* always odd *)

    result := OR_MASK (16#abc, 16#f0f);

    (*result hexadecimal = 16#fbf *)

    Entre IN DINT (toute valeur entire) 31]) NBR DINT (nombre de rotations de 1 bit dans lintervalle [1

    Sortie Q DINT valeur dcale gauche (sans effet si NBR

  • Automatismes ST

    4.3.4.5 ROR Rotation droite des bits dun entier

    Entre IN DINT (toute valeur entire) NBR DINT (nombre de rotations de 1 bit dans lintervalle [1 31])

    Sortie Q DINT valeur dcale droite (sans effet si NBR

  • S500-doc_09-AUTO - 32 -

    Automatismes ST

    4.3.5 Fonctions de slecteurs

    4.3.5.1 MUX4 Slection dune valeur parmi 4 valeurs entires

    Entre SEL DINT valeur entire de slection dans lintervalle [0 3] IN1 IN4 DINT valeurs entires slectionner

    Sortie Q DINT = IN1 si SEL = 0 = IN2 si SEL = 1 = IN3 si SEL = 2 = IN4 si SEL = 3 = 0 pour toutes les autres valeurs de SEL

    & Ex. : selection := MUX4 (choice, 1, 10, 100, 1000); (* select 1 value among 4 : if choice = 1, select = 10 *)

    4.3.5.2 MUX8 Slection dune valeur parmi 8 valeurs entires

    Entre SEL DINT valeur entire de slection dansIN8

    lintervalle [0 7] ctionner IN1 DINT valeurs entires sle

    Sortie Q

    & Ex. : 5000); (* select 1 value among 8 : if choice = 3, select = 50 *)

    4.3.5.3 SEL Slection dune valeur parmi 2 valeurs entires

    DINT = IN1 si SEL = 0 = IN2 si SEL = 1 = IN8 si SEL = 7 = 0 pour toutes les autres valeurs de SEL

    selection := MUX8 (choice, 1, 5, 10, 50, 100, 500, 1000,

    Entre SEL BOOL indique la valeur choisie IN1, IN2 DINT valeurs slectionner

    Sortie Q DINT = IN1 si SEL = FALSE = IN2 si SEL = TRUE & Ex. : );

    (* select a command for the process *)

    selection := SEL (choice, value1, value2

  • S500-doc_09-AUTO - 33 -

    Automatismes ST

    4.3.6 Fonctions de tableaux

    4.3.6.1 ARCREATE Cration dun tableau dentiers

    Entre ID DINT identificateur du tableau (dans lintervalle [0 15]) SIZE DINT nombre dlments du tableau crer

    Sortie ok DINT compte rendu dexcution : - 1 = si le tableau a t cr avec succs - 2 = identificateur invalide ou tableau dj cr - 3 = taille invalide - 4 = pas assez de mmoire

    & Ex. : status := ARCREATE (ident, 20);

    4.3.6.2 ARREAD Lecture dune valeur dans un tableau

    Entre ID DINT identificateur du tableau (dans lintervalle [0 15]) Pos DINT position de llment dans lintervalle [0 size-1]

    Sortie ok DINT valeur de llment lu (0 si les arguments sont invalides) & Ex. : read_value := ARREAD (ident, index);

    4.3.6.3 ARWRITE criture dune valeur dans un tableau dentiers

    Entre ID DINT identificateur du tableau (dans lintervalle [0 15]) Pos DINT position de llment dans linte

    rvalle [0 size-1]

    IN DINT nouvelle valeur pour llment

    Sortie ok au invalide

    s := ARWRITE (ident, index, value);

    4.3.7 orisation

    4.3.7.1 TSTART Dmarrage de la temporisation

    DINT compte rendu dexcution : - 1 = lcriture a russi - 2 = identificateur de table - 3 = indice (Pos) invalide

    & Ex. : write_statuFonctions de temp

    4.3.7.2 TSTOP Arrt de la temporisation

    2 La gestion des temporisations est dcrite prcdemment au 1.4- Fonctionnalits avances .

  • S500-doc_09-AUTO - 34 -

    Automatismes ST

    4.4 Fonctions spcifiques SOFREL

    4.4.1 Fonctions de temps

    2 Les noms de jour utiliss dans lautomatisme sont toujours en anglais.

    4.4.1.1 DAY_TIME Fourniture des date et heure courantes Entre SEL DINT slection de linformation peut tre entier

    0= date courante 1= heure courante 2=jour de la semaine

    Sortie Q r s

    nom du jour SEL = 2 (ex: Monday)

    & Ex. : Date := DAY_TIME (0) + ; + DAY_TIME (1);

    4.4.1.2 Lecture unitaire dune date sous forme dentier

    STRING date/heure sous forme de chane de ca actre AAAA/MM/JJ si SEL = 0 HH:MM:SS si SEL = 1

    SFTIMDAY

    E t n r e TYPE DINT Valeur de la date ou de lh - 0 : jour du mois ( - 1) - 1 : mois (1-12) - 2 : anne (0-2099) - 3 : heure (0-23) - 4 : minute (0-59) - 5 : seconde (0-59)

    eure lire : 1 3

    imanche)

    - 6 : jour de la semaine (1 : lundi, 7 : d

    Sortie VAL DINT Valeur d

    & Ex. : Day := SFTIMDAY( 0 ) ; Month := SFTIMDAY( 1 ) ; Year := SFTIMDAY( 2 ) ;

    emande sous forme dentier

    Ret := MSG (month)+/+ MSG (year)) ;

    our affecter cette valeur entire une variable numrique dautomatisme, il est type REAL :

    Exemple : data12 := REAL (SFTIMDAY(4)) ;

    SFMONMSG (Today the + MSG (day)+/+

    (* Give the current date for monitoring *)

    2 Pncessaire dutiliser la fonction de conversion de

  • S500-doc_09-AUTO - 35 -

    Automatismes ST

    4.4.2 Fonctions de traces dans le suivi

    4.4.2.1 SFMONMSG Affichage dun message dans le suivi dautomatisme Entre OPTION DINT Option dhorodatage du message :

    - 0 : Pas dhorodatage - 1 : Heure - 2 : Date - 3 : Date + Heure IN STRING Chane afficher dans le suivi dautomatisme

    Sortie Q BOOL Toujours TRUE & Ex. : result := SFMONMSG (0, Status of Input :+ MSG (data1));

    4.4.2.2 SFMONSUI Affichage dun message dans le suivi dautomatisme Grce cette fonction, il est possible dajouter des filtres qui permettront dafficher, dans le menu Diagnostic Suivi des programmes ST du Navigateur, uniquement les messages qui intressent lutilisateur :

    Entre ID PARAM1

    PARAM2

    Tge

    IN STRING Chane afficher dans le suivi dautomatisme

    Sortie

    STRING Chane de filtrage du suivi dautomatisme DINT Entier de filtrage du suivi (si 0 pas de filtrage) DINT Entier de filtrage du suivi (si 0 pas de filtrage) OP ION DINT Option dhorodatage du message : - 0 : Pas dhorodata - 1 : Heure - 2 : Date - 3 : Date + Heure

    Q BOOL Toujours TRUE

    & Ex. : result := SFMONSUI (state, 1,2,3, Status of Input :+ MSG (data1));

  • S500-doc_09-AUTO - 36 -

    Automatismes ST

    5 Blocs fonctionnels

    5.1 Dfinition Un bloc fonctionnel permet de raliser des traitements ncessitant la mmorisation des informations manipules (par exemple, le bloc fonctionnel compteur permet dactiver un comptage jusqu une valeur donne).

    Le langage ST fournit de base un certain nombre de blocs fonctionnels. Lutilisateur peut aussi crer ses propres blocs fonctionnels et des blocs fonctionnels mtier ont t spcifiquement dvelopps par SOFREL.

    Ce chapitre dcrit uniquement les blocs fonctionnels standard du langage ST.

    2 Lutilisation des blocs fonctionnels et des programmes ST SOFREL est documente dans des notes spcifiques disponibles via laide en ligne de SOFTOOLS.

    5.2 Principe dutilisation

    A la diffrence dune fonction ST qui ralise un calcul ne dpendant que de ses paramtres dentre, un bloc fonctionnel ralise un calcul dpendant de ses paramtres dentres et des rsultats prcdents de ses calculs.

    Dautre part, un bloc fonctionnel peut disposer de plusieurs paramtres de sortie.

    & Exemple : le bloc fonctionnel TON qui incrmente une temporisation jusqu une valeur donne. - Paramtres dentre : . un boolen qui, au passage ltat actif va dmarrer la temporisation et la remet zro au passage ltat inactif, . la valeur maximale de la temporisation. - Paramtres de sortie : . un boolen indiquant si la temporisation a atteint sa valeur maximale, . la valeur courante de la temporisation.

    Dans lexemple ci-dessus, le bloc TON mmorise lui-mme ltat du boolen dentre afin den dtecter le front montant ; il conserve en interne la valeur de la temporisation dun appel lautre afin de dtecter son passage la valeur maximale.

    Consquence de cette mmorisation : afin de permettre plusieurs utilisations du mme bloc fonctionnel (par exemple : TON) dans un programme, il est ncessaire didentifier individuellement chaque bloc fonctionnel TON. Cette identification est ralise en dclarant, pour chaque utilisation du bloc fonctionnel, une variable particulire ayant, pour type , ce bloc fonctionnel.

  • S500-doc_09-AUTO - 37 -

    Automatismes ST

    5.2.1 Mode demploi dun bloc fonctionnel

    5.2.1.1 Dclaration

    A chaque fois que lon a besoin dutiliser un bloc fonctionnel, il faut le dclarer auparavant en tant que variable Nom_variable (le type de la variable doit tre choisi dans la liste des types de blocs fonctionnels).

    5.2.1.2 Appel du bloc

    La syntaxe dappel du bloc fonctionnel est la suivante :

    Nom_variable (param_input1, param_input2, ..., param_inputN);

    (* Rcupration des paramtres de sortie *) := nom_variable.param_output1; := nom_variable.param_output2;

    Les paramtres dentre et les variables daffectation des paramtres de sortie doivent respecter les types dfinis dans la description du bloc fonctionnel.

    5.3 Exemple dutilisation dun bloc fonctionnel

    TON : incrmente une temporisation jusqu une valeur donne

    Paramtres dentre z IN BOOL si front montant, dmarre lincrment dune temporisation

    si front descendant, arrte et remet 0 la temporisation

    z PT TIME temps maximal programm

    Paramtres de sortie z

    z ET TIME temps coul depuis le dmarrage

    Q BOOL TRUE, si le temps maximal programm est coul

    5.3.1 Cas dapplication

    Surveiller les temps de fonctionnement de 2 pompes (P1/P2) : Configurez les informations S500 DI-Borniers n 1 et 2 pour dtecter les mises en marche des

    es n 101, 102 et 103 pour indiquer les dpassements de temps de fonctionnement des pompes :

    et P2 fonctionnent simultanment pendant plus de 5 minutes, activer data103.

    pompes (data12 = Marche P1 et data13 = Marche P2).

    Puis configurez les informations S500 de type Automatismes Variables logiqu

    z Si la pompe P1 est en marche pendant plus de 10 minutes, activer data101.

    z Si la pompe P2 est en marche pendant plus de 15 minutes, activer data102.

    z Si les pompes P1

  • Automatismes ST

    Ensuite, crez un nouveau Programme ST pour utiliser ce bloc fonctionnel.

    z Liste des programmes :

    S500-doc_09-AUTO - 38 -

    z Variables utilises dans le programme :

    z dition du programme :

    2 Pour mettre au point ce programme, il est possible de le simuler en remplaant les minutes par des secondes.

  • S500-doc_09-AUTO - 39 -

    Automatismes ST

    5.4 Blocs fonctionnels standard ST

    5.4.1 Boolen

    5.4.1.1 SR Bistable passage 1 prioritaire

    Paramtres dentre z SET1 BOOL si TRUE, force Q1 TRUE (prioritaire)

    z RESET BOOL si TRUE, force Q1 FALSE

    Paramtres de sortie z Q1 BOOL tat de la bascule

    Set1 Reset Q1(prcdent) Q1 rsultant

    0 0 0 0

    0 0 1 1

    0 1 0 0

    0 1 1 0

    1 0 0 1

    1 0 1 1

    1 1 0 1

    1 1 1 1

    2 Soit var_sr le nom de la variable dclare : & Ex. : tart_cmd), stop_cmd);

    command := var_sr.Q1;

    5.4.1.2 Bistable remise 0 prioritaire

    var_sr((auto_mode AND s

    RS

    Paramtres dentre z SET BOOL si TRUE, force Q1 TRUE z RESET1 BOOL si TRUE, force Q1 FALSE (prioritaire)

    Paramtres de sortie z Q1 BOOL la ba

    Set Reset1 Q1(prcdent) Q1 r ltant

    tat de scule su

    0 0 0 0

    0 0 1 1

    0 1 0 0

    0 1 1 0

    1 0 0 1

    1 0 1 1

    1 1 0 0

    1 1 1 0

    2 Soit var_rs le nom de la variable dclare : & Ex. : var_rs(start_cmd, (stop_cmd OR alarm));

    command := var_rs.Q1;

  • S500-doc_09-AUTO - 40 -

    Automatismes ST

    5.4.1.3 R_TRIG : Dtection du front montant dune variable boolenne

    Paramtres dentre z CLK BOOL toute variable boolenne

    Paramtres de sortie z Q BOOL TRUE quand CLK passe de FALSE TRUE

    FALSE dans tous les autres cas

    2 m de la variable dclare : & Ex. :

    e;

    (* Comptage du nombre dactivations *)

    5.4.1.4 : Dtection le front descendant dune variable boolenne

    Soit var_r_trig le no

    var_r_trig(cmd); nb_edge := ANA(var_r_trig.Q) + nb_edg

    F_TRIG

    Paramtres dentre z CLK BOOL toute variable boolenne

    Paramtres de sortie z Q BOOL TRUE quand CLK passe de TRUE FALSE

    m de la variable dclare :

    & Ex. : e;

    (* Comptage du nombre dactivations *)

    FALSE dans tous les autres cas

    2 Soit var_f_trig le novar_f_trig(cmd); nb_edge := ANA(var_f_trig.Q) + nb_edg

  • S500-doc_09-AUTO - 41 -

    Automatismes ST

    5.4.2 Comptage

    5.4.2.1 CTU : Compteur croissant

    Paramtres dentre z CU BOOL si TRUE = incrmentation du comptage

    z RESET BOOL si TRUE = remise zro prioritaire

    z PV DINT valeur maximale programme

    Paramtres de sortie z Q BOOL TRUE quand CV = PV (overflow))

    z

    2 AttentionCV DINT rsultat courant du comptage

    : Le bloc CTU ne dtecte pas les fronts montants ou descendants de lentre de comptage (CU). Il doit tre associ un bloc fonctionnel R_TRIG

    & Ex. : umber of passages to 1 of the Boolean variable signal reset, 100);

    (* CV sincrmente de 1 chaque appel lorsque lentre CU est TRUE *)

    5.4.2.2 oissant

    ou F_TRIG pour raliser un compteur dimpulsions.

    // Counting of the nvar_rtrig (signal); var_ctu(var_rtrig.Q, var_overflow := var_ctu.Q; result := var_ctu.CV;

    CTD : Dcompte dcr Paramtres dentre

    z CD BOOL entre de comptage (dcompte si CD = TRUE)

    z LOAD BOOL commande de chargement (prioritaire) (CV = PV si LOAD = TRUE)

    valeur initiale programme z PV DINT

    Paramtres de sortie z Q BOOL TRUE quand CV = 0 (underflow)

    z CV DINT rsultat courant du comptage 2 Attention : Le bloc CTD ne dtecte pas les fronts montants ou descendants de

    lentre de comptage (CD). Il doit tre associ un bloc fonctionnel R_TRIG

    & Ex. : owns of the Boolean variable signal oad, 100);

    THEN

    (* CV se dcrmente de 1 chaque appel lorsque lentre CD est TRUE *)

    ou F_TRIG pour raliser un compteur dimpulsions.

    // Countdown of the number of shut-dvar_ftrig (signal); var_ctd (var_ftrig.Q, Var_lunderflow := var_ctd.Q; result := var_ctd.CV; IF ( INIT = TRUE ) INIT := FALSE; END_IF;

  • S500-doc_09-AUTO - 42 -

    Automatismes ST

    5.4.2.3 CTUD : compteur croissant et dcroissant Paramtres dentre

    z CU BOOL si TRUE = incrmentation du comptage z CD BOOL si TRUE = dcrmentation du comptage z RESET BOOL si TRUE, CV est remis zro z LOAD BOOL si TRUE, CV = PV z PV DINT valeur maximale programme

    Paramtres de sortie z

    QD BOOL TRUE quand CV = 0 (underflow)

    QU BOOL TRUE quand CV = PV (overflow)

    z

    CV DINT rsultat courant du comptage z 2 Attention: Le bloc CTUD ne dtecte pas les fronts montants ou descendan

    entres de comptage (CU et CD). Il doit tre associ un bloc fonctits des

    onnel ulsions.

    & Ex. : mber of m3 in input or output

    var_ftrig.Q, var_reset, var_load, 100);

    result := var_ctud.CV;

    R_TRIG ou F_TRIG pour raliser un compteur dimp

    // Counting of the nuvar_rtrig (Signal1); var_ftrig (Signal2); var_ctud (var_rtrig.Q,full := var_ctud.QU; empty := var_ctud.QD;

  • Automatismes ST

    5.4.3 Temporisations

    2 Pour grer des temporisations, il est galement possible dutiliser les instructions TSTART et TSTOP (cf.

    1.4.1).

    5.4.3.1 TON : incrmente une temporisation jusqu une valeur donne (temporisateur enclenchement)

    Paramtres dentre z IN BOOL si front montant, dmarre lincrment dune temporisation

    si front descendant, arrte et remet 0 la temporisation

    z PT TIME temps maximum programm

    Paramtres de sortie z Q BOOL si TRUE, le temps programm est coul

    E temps coul depuis le dmarrage & Chronogramme :

    z ET TIM

    ion jusqu une valeur donne 5.4.3.2 TOF : incrmente une temporisat (temporisateur dclenchement)

    Paramtres dentre z IN BOOL si front descendant, dmarre lincrment dune temporisation

    t 0 la temporisation

    mps maximum programm

    si front montant, arrte et reme

    z PT TIME te

    Paramtres de sortie z Q BOOL si TRUE: le temps programm nest pas encore coul

    temps coul depuis le dmarrage & Chronogramme :

    z ET TIME

    S500-doc_09-AUTO - 43 -

  • Automatismes ST

    5.4.3.3 TP : incrmente une temporisation jusqu une valeur donne (temporisateur impulsion)

    Paramtres dentre z IN BOOL si TRUE (front montant), dmarre et incrmente une tempo

    si FALSE et seulement si le temps est coul, remet zro la temporisation (tout changement sur IN pendant le comptage, est sans effet).

    z PT TIME temps maximum programm

    Paramtres de sortie z

    ET TIME temps coul depuis le dmarrage

    Q BOOL si TRUE : la temporisation est en cours (comptage)

    z

    & Chronogramme :

    S500-doc_09-AUTO - 44 -

  • Automatismes ST

    5.4.4 Rels

    5.4.4.1 AVERAGE : stocke une valeur chaque appel et calcule la moyenne des valeurs Le nombre dchantillons ne peut pas excder 128.

    Si lentre RUN vaut FALSE (rinitialisation), la valeur de sortie est gale la valeur dentre.

    Quand N valeurs ont t stockes, la premire valeur qui a t stocke est remplace par la dernire.

    2 A chaque appel du bloc fonctionnel Average , une nouvelle valeur est archive. La moyenne des valeurs sera correcte uniquement aprs enregistrement dau moins N chantillons (N tant le paramtre dentre).

    Paramtres dentre z

    XIN REAL

    RUN BOOL TRUE = marche / FALSE = rinitialisation

    z

    z N DINT nombre dchantillons

    Paramtres de sortie z XOUT REAL moyenne courante de lentre XIN var_average(auto_mode & store_cm& Ex. : d), sensor_valeur, 100);

    ave_value := var_average.XOUT;

    5.4.4.2 : Hystrsis sur la diffrence de 2 rels HYSTER

    Sur dtection de dpassement du seuil + lcart , la sortie est active. Elle nest dsactive que si la valeur repasse en dessous du seuil lcart .

    Paramtres dentre z XIN1 REAL valeur comparer

    valeur positive de lhystrsis (cart)

    z XIN2 REAL seuil

    z EPS REAL

    Paramtres de sortie z Q BOOL TRUE (voir chronogramme)

    z XOUT REAL moyenne courante de lentre XIN1

    & Chronogramme :

    S500-doc_09-AUTO - 45 -

  • Automatismes ST

    5.4.4.3 LIM_ALRM : alarme de limite avec dhystrsis Mme principe que le bloc HYSTER, mais lhystrsis est appliqu aux limites infrieure et suprieure dune valeur analogique comparer.

    Paramtres dentre z H REAL valeur de la limite haute

    z X REAL valeur comparer

    z L REAL valeur de la limite basse

    z EPS REAL valeur positive de lhystrsis (cart)

    Paramtres de sortie z

    Q BOOL alarme : TRUE si X hors limites

    QH BOOL alarme haute : TRUE si X au dessus de la limite haute H

    z

    z QL BOOL alarme basse : TRUE si X en dessous de la limite basse L

    & Chronogramme :

    S500-doc_09-AUTO - 46 -

  • Automatismes ST

    5.4.4.4 INTEGRAL : intgration dune valeur en fonction du temps (par exemple pour le calcul dun volume en fonction dun dbit moyen)

    Paramtres dentre z RUN BOOL mode : TRUE = intgration / FALSE = maintien z R1 BOOL demande de reset : la dure de maintien du reset

    doit tre gale la priode dchantillonnage (CYCLE) z XIN REAL valeur intgrer (Unit / Milliseconde) z X0 REAL valeur de sortie initiale (en Unit) z CYCLE TIME priode dchantillonnage

    Paramtres de sortie z

    z XOUT REAL valeur intgre (en Unit)

    Q BOOL Not R1 ( la fin de la priode dchantillonnage : CYCLE)

    2 Une priode dchantillonnage (valeur du paramtre CYCLE ) infrieure au temps de cycle de lautomatisme est gale au temps de cycle de lautomatisme (200 ms).

    & Ex. : 0.0, t#1s);

    & Chronogr

    var_integral(TRUE, RESET, flow,volume := var_integral.XOUT;

    amme :

    ffectuer un premier appel de cette fonction avec un RESET (paramtre R1 TRUE).

    CYCLE CYCLE CYCLE CYCLE CYCLE

    de la demande de reset

    2 Lutilisation du bloc fonctionnel INTEGRAL ncessite dede la demande de reset

    Demande de reset

    Prise en compte

    Dpositionnement

    S500-doc_09-AUTO - 47 -

  • S500-doc_09-AUTO - 48 -

    Automatismes ST

    5.4.4.5 DERIVATE : drive par rapport au temps (par exemple pour le calcul dun dbit moyen en fonction dun volume)

    Paramtres dentre z RUN BOOL mode: TRUE = calcul / FALSE = maintien z XIN REAL valeur driver (exprime en Unit)

    z CYCLE TIME priode dchantillonnage

    Paramtres de sortie z XOUT REAL valeur drive (exprime en Unit / Milliseconde)

    & Ex. : var_derivate(TRUE, volume, t#1s); debit := var_derivate.XOUT;

    2 Une priode dchantillonnage (valeur du paramtre CYCLE ) infrieure au temps de cycle de lautomatisme est gale au temps de cycle de lautomatisme (200 ms).

    5.4.4.6 : gre une pile de valeurs entires STACKINT

    Le bloc fonctionnel STACKINT inclut une dtection de front montant pour les entres PUSH et POP (commandes empiler et dpiler ). La taille maximum la pile est de 128 lments.

    Paramtres dentre z PUSH BOOL commande empiler (sur front montant)

    eur empile (au sommet de la pile)

    N DINT taille de la pile dfinie par lapplication

    ajoute la valeur IN au sommet de la pile

    z POP BOOL commande dpiler (sur front montant) supprime la dernire val

    z R1 BOOL vide la pile

    z IN DINT valeur empiler

    z

    Paramtres de sortie z EMPTY BOOL TRUE si la pile est vide

    z OFLO BOOL TRUE si la pile est pleine (overflow)

    z OUT DINT valeur au sommet de la pile

    var_stackint(err_detect, acknoledge, manual_mode, err_codeappli_alarm := auto_mode AND NOTerr_alarm := var_stackint.OFLO;

    & Ex : , max_err); (var_stackint.EMPTY);

    La valeur de OFLO est gre seulement aprs au moins une remise 0 (si R1 a t mis TRUE et remis FALSE au moins une fois).

    last_error := var_stackint.OUT;

    2

  • Automatismes ST

    5.4.5 Signaux

    5.4.5.1 BLINK : gnre un signal clignotant Paramtres dentre

    z RUN BOOL TRUE = clignotant / FALSE = remise FALSE de la sortie

    z CYCLE TIME priode du clignotement Paramtres de sortie

    z

    & Chronogramme : Q BOOL sortie : signal clignotant

    5.4.5.2 SIG_GEN : base de temps Gnre plusieurs signaux : clignotant sur un boolen, comptage sur un entier, et signal sinusodal sur un rel. Quand le comptage atteint sa valeur maximale, il redmarre zro.

    Paramtres dentre z RUN BOOL mode: TRUE = marche / FALSE = remise 0

    T valeur maximale de comptage

    z PERIOD TIME priode dun chantillon

    z MAXIMUM DIN Paramtres de sortie

    z PULSE BOOL invers chaque chantillon z UP DINT compteur incrment chaque chantillon z END BOOL TRUE sur passage zro de UP (fin de comptage)

    ge) & Chronogra

    z SINE REAL sinus (priode = temps de comptamme :

    2 END reste TRUE seulement pendant la priode dun chantillon (PERIOD). S500-doc_09-AUTO - 49 -

    1 Description1.1 Prsentation des fentres de latelier1.1.1 Fentre principale1.1.2 Liste des programmes1.1.3 dition du programme1.1.4 Liste des variables1.1.5 Construction1.1.6 Simulation de lexcution dun programme1.1.7 Fentre Espion

    1.2 Cycles de lautomatisme1.3 Syntaxe du langage ST1.3.1 Instructions 1.3.1.1 Affectation1.3.1.2 Parenthses1.3.1.3 Commentaires1.3.1.4 Appel de fonction1.3.1.5 Appel de bloc fonctionnel

    1.3.2 Structures de contrle dun programme1.3.3 Variables1.3.3.1 Dfinition des variables1.3.3.2 Liste des variables1.3.3.3 Fentre variable

    1.3.4 Types de variables ou de constantes

    1.4 Fonctionnalits avances1.4.1 Gestion des temporisations1.4.2 Utilisation des dfinitions globales ou locales 1.4.2.1 Principe

    1.4.3 Importation / Exportation de programmes et de blocs fonctionnels spcifiques1.4.4 Suivi de fonctionnement1.4.5 Particularits de fonctionnement1.4.5.1 Dtection de lexcution dun automatisme en boucle1.4.5.2 Dure des temps de cycles dpasse

    2 Conception dun programme2.1 Organisation2.2 Analyse du besoin fonctionnel 2.3 dition et dclaration des variables2.3.1 Dclaration des variables2.3.2 dition du programme2.3.3 Protection du programme

    2.4 Construction2.5 Simulation2.6 Chargement du programme2.7 Mise au point sur le poste local (Debugger en ligne)

    3 Oprateurs3.1 Arithmtique3.1.1 Addition de variables3.1.2 Soustraction de variables3.1.3 Multiplication de variables3.1.4 Division de variables3.1.5 lvation la puissance dune variable

    3.2 Oprateurs boolens3.2.1 AND ET boolen entre variables boolennes3.2.2 OR OU boolen entre variables boolennes3.2.3 XOR OU exclusif boolen entre variables boolennes3.2.4 NOT NON boolen: inversion dune variable boolenne

    3.3 Oprateurs de comparaisons3.3.1 = Suprieur ou gal : teste si une valeur est plus grande ou gale une autre

    4 Fonctions4.1 Dfinition4.2 Utilisation dune fonction4.3 Fonctions standard ST4.3.1 Fonctions mathmatiques4.3.1.1 ABS Calcul de la valeur absolue dun rel4.3.1.2 ACOS Calcul de larc cosinus dun rel4.3.1.3 ASIN Calcul de larc sinus dune valeur relle4.3.1.4 ATAN Calcul de larc tangente dune valeur relle4.3.1.5 COS Calcul du cosinus dune valeur relle4.3.1.6 EXPT lvation une puissance (exposant entier)4.3.1.7 LOG Calcul logarithmique base 10 dune valeur relle4.3.1.8 POW lvation une puissance (exposant rel)4.3.1.9 RAND Valeur alatoire dans un intervalle donn4.3.1.10 SIN Calcul du sinus dune valeur relle4.3.1.11 SQRT Calcul de la racine carre dune valeur relle4.3.1.12 TAN Calcul de la tangente dune valeur relle4.3.1.13 TRUNC Tronque une valeur relle pour obtenir sa partie entire4.3.1.14 LIMIT Limite une valeur entire un intervalle donn4.3.1.15 MIN Fonction Minimum: donne la valeur minimum entre deux variables entires4.3.1.16 MAX Fonction Maximum: donne la valeur maximale entre deux variables entires4.3.1.17 MOD Fonction Modulo: calcule le reste de la division dune valeur entire4.3.1.18 ODD Fonction Test dimparit dun entier

    4.3.2 Fonctions de manipulation de caractres4.3.2.1 ASCII Code ASCII dun caractre dans une chane4.3.2.2 CHAR laboration dun caractre partir de son code ASCII4.3.2.3 DELETE Suppression dune partie dune chane de caractres4.3.2.4 FIND Recherche des caractres dans une chane4.3.2.5 INSERT Insertion de caractres dans une chane4.3.2.6 LEFT Extraction de la partie gauche dune chane4.3.2.7 MID Extraction de la partie centrale dune chane4.3.2.8 MLEN Calcul de la longueur dune chane4.3.2.9 REPLACE Remplacement des caractres dans une chane4.3.2.10 RIGHT Extraction de la partie droite dune chane

    4.3.3 Fonctions de conversion4.3.3.1 BOO Conversion en variable boolenne4.3.3.2 ANA Conversion en valeur entire4.3.3.3 REAL Conversion en variable relle4.3.3.4 MSG Conversion en variable de type STRING4.3.3.5 TMR Conversion en variable de type TIME

    4.3.4 Fonctions de registres4.3.4.1 AND_MASK Masque ET bit bit entre deux entiers4.3.4.2 NOT_MASK Masque inversion logique bit bit dun entier4.3.4.3 OR_MASK Masque OU bit bit entre deux entiers 4.3.4.4 ROL Rotation gauche des bits dun entier4.3.4.5 ROR Rotation droite des bits dun entier4.3.4.6 SHL Dcalage gauche des bits dun entier4.3.4.7 SHR Dcalage droite des bits dun entier4.3.4.8 XOR_MASK Masque OU exclusif bit bit entre deux entiers

    4.3.5 Fonctions de slecteurs4.3.5.1 MUX4 Slection dune valeur parmi 4 valeurs entires4.3.5.2 MUX8 Slection dune valeur parmi 8 valeurs entires4.3.5.3 SEL Slection dune valeur parmi 2 valeurs entires

    4.3.6 Fonctions de tableaux4.3.6.1 ARCREATE Cration dun tableau dentiers4.3.6.2 ARREAD Lecture dune valeur dans un tableau4.3.6.3 ARWRITE criture dune valeur dans un tableau dentiers

    4.3.7 Fonctions de temporisation4.3.7.1 TSTART Dmarrage de la temporisation4.3.7.2 TSTOP Arrt de la temporisation

    4.4 Fonctions spcifiques SOFREL4.4.1 Fonctions de temps4.4.1.1 DAY_TIME Fourniture des date et heure courantes4.4.1.2 SFTIMDAY Lecture unitaire dune date sous forme dentier

    4.4.2 Fonctions de traces dans le suivi4.4.2.1 SFMONMSG Affichage dun message dans le suivi dautomatisme4.4.2.2 SFMONSUI Affichage dun message dans le suivi dautomatisme

    5 Blocs fonctionnels5.1 Dfinition5.2 Principe dutilisation5.2.1 Mode demploi dun bloc fonctionnel5.2.1.1 Dclaration5.2.1.2 Appel du bloc

    5.3 Exemple dutilisation dun bloc fonctionnel5.3.1 Cas dapplication

    5.4 Blocs fonctionnels standard ST5.4.1 Boolen5.4.1.1 SR Bistable passage 1 prioritaire5.4.1.2 RS Bistable remise 0 prioritaire5.4.1.3 R_TRIG: Dtection du front montant dune variable boolenne5.4.1.4 F_TRIG: Dtection le front descendant dune variable boolenne

    5.4.2 Comptage5.4.2.1 CTU: Compteur croissant5.4.2.2 CTD: Dcompte dcroissant5.4.2.3 CTUD: compteur croissant et dcroissant

    5.4.3 Temporisations5.4.3.1 TON: incrmente une temporisation jusqu une valeur donne (temporisateur enclenchement)5.4.3.2 TOF: incrmente une temporisation jusqu une valeur donne (temporisateur dclenchement)5.4.3.3 TP: incrmente une temporisation jusqu une valeur donne (temporisateur impulsion)

    5.4.4 Rels5.4.4.1 AVERAGE: stocke une valeur chaque appel et calcule la moyenne des valeurs5.4.4.2 HYSTER: Hystrsis sur la diffrence de 2 rels5.4.4.3 LIM_ALRM: alarme de limite avec dhystrsis5.4.4.4 INTEGRAL: intgration dune valeur en fonction du temps (par exemple pour le calcul dun volume en fonction dun dbit moyen)5.4.4.5 DERIVATE: drive par rapport au temps(par exemple pour le calcul dun dbit moyen en fonction dun volume)5.4.4.6 STACKINT: gre une pile de valeurs entires

    5.4.5 Signaux5.4.5.1 BLINK: gnre un signal clignotant5.4.5.2 SIG_GEN: base de temps