Vous êtes sur la page 1sur 33

Programmation des API: partie

2
Saber MARAOUI
Plan
- Langage SFC
- Bits de sauvegarde internes
- Temporisateurs
- Compteurs
- Types de données et déclaration des
variables
- Fonctions et fonctions blocs standards
Langage SFC
Langage SFC (Sequentiel Function Chart): présentation

 Le langage SFC (Sequentiel Function Chart) a été défini pour pouvoir diviser un problème
complexe en des unités plus petites et plus manipulable, et aussi pour décrire le flux de
commande entre ces unités.

 La séquence d’exécution de ces unités dépond des conditions statiques définies par le
programme et des conditions dynamiques définies par les E/S. Les unités peuvent elles même
être programmées utilisant les autres langages de programmations des API.

 Le premier langage largement adopté décrivant un processus par un ensemble d’états et de


conditions transitoires est le Grafcet, qui est par la suite largement intégré dans le langage SFC.

 Les processus pouvant être décris par un comportement séquentiels caractérisé par des étapes,
sont particulièrement adaptés pour que leur fonctionnement soit décrit avec ce langage.
Identification des étapes en SFC

 En SFC, une étape peut être identifiée graphiquement par un rectangle et un nom d’étape
(ou double rectangle pour l’étape initiale) ou textuellement via une déclaration :

Step Identifiant
Identifiant
(* Corps de l’étape pour décrire les actions *
End_step

Initiale Initial_step identifiant ;


(*Corps de l’étape *)
End_step
Identification des réceptivités en SFC
 Une réceptivité associée à une transition peut
On peut aussi utiliser des connecteurs pour
être écrite en l’un des langages ST, LD ou FBD,
lier une réceptivité à une transition.
mais pas en IL dans la version graphique du SFC
Dans ce cas le IL et ST ne sont pas autorisés

Langage LD Langage ST Langage FBD


Identification des réceptivités en SFC (2)
 Une troisième méthode consiste à utiliser le nom de la réceptivité associé à la transition, écrite
indépendamment du diagramme SFC, les langages textuels peuvent être utilisés dans ce cas.
 L’avantage est de pouvoir utiliser le nom de la réceptivité pour différentes transitions auxquelles sont
associées la même condition logique.

Appel de la transition :
Description des actions
 Une action est utilisée pour décrire les instructions à exécuter en association avec une
étape active.
 Ces instructions peuvent être une action booléenne ou une séquence d’instructions
programmées en LD, IL, FBD, ST ou un sous-programme en SFC.
 Un bloc action est constitué d’une action avec une condition d’exécution (appelée
qualificateur d’action) et un indicateur booléen variable (optionnel).
 Un bloc d’action peut être définit en version graphique ou textuelle

Qualificateur d’action Nom d’action Indicateur booléen variable

Instruction en LD, IL, ST ou SFC


Exemples
Bits de sauvegarde internes
Bits de sauvegarde internes
 Comme pour les E/S, l’automate nécessite de sauvegarder des signaux internes de données
(bon fonctionnement du système, mise en attente, défaillance détectée, … ). L’automate permet
d’allouer des bits internes pour ces signaux.

 Du point de vue programmation, ils peuvent être considères de la même manière qu’un relais
externe de sortie ou d’entrée.
 Ces bits ont des appellations qui varient d’un constructeur à un autre, (relais auxiliaires pour
Mitsubishi, drapeaux (flags) pour Siemens, bit de sauvegarde pour Allen Bradley…,)

 De même la notation varie;

 Mitsubishi utilise Mnnn, avec nnn est un nombre dans une zone prédéfinie de M100 à M377 (octal),

 Siemens utilise la notation FByte.bit (e.g. F27.06),

 le PLC-5 de Allen Bradley, le bit de sauvegarde (bit storage) est noté B3/n où n est le numéro du signal
(e.g. B3/100). Dans cette notation B est pour Bit storage, 3 vient du fait que le PLC-5 maintient les
données en fichiers (fichier 3 pour ces bits, fichier 4 pour les timers (T4), fichier 5 pour les compteurs
(C5), …).
Pour utiliser un relais interne, il doit être active par une ligne d’un programme et sa sortie doit ensuite servir
a actionner les contacts d’un interrupteur sur une ou plusieurs autres lignes du programme. Les relais
internes peuvent être programmes avec autant d’ensembles de contacts que nécessaire.

Exemple d’utilisation d’un relais interne


La notation de (a) Mitsubishi et de (b) Siemens en LD et IL
Exemple d’utilisation de plusieurs relais internes pour activer une
sortie
Utilisation d’un relais interne pour
réinitialiser un circuit de verrouillage

Activation de plusieurs sorties par relais interne


Temporisateurs
Présentation des temporisateurs

 Pour nombre de tâches de commandes, il esc nécessaire de contrôler le temps.


 Par exemple, un moteur ou une pompe peuvent avoir besoin de fonctionner pendant une
durée précise ou d’être mis en marche après un certain temps. C’est pourquoi les API
disposent de temporisateurs intègres.
 Les temporisateurs comptent les secondes ou les fractions de seconde en utilisant I
’horloge interne du CPU
 Trois types de temporisations sont disponibles généralement: TON (décompte T…0), TOF
(comptage 0…T) et à impulsion TP

*** est soit TP, TON ou


TOF
Temporisation à impulsion TP
 La fonction bloc standard TP fonctionne comme générateur d’impulsions, qui fournit une
impulsion de largeur fixe (TP) à la sortie Q lorsqu’un front montant est détecté sur l’entrée
IN. Le temps qui s’est passé peut-être lu sur ET (Elapsed Time). A noter que l’impulsion ne
peut pas réinitialiser avant sa fin (voir intervalle entre t2 et t2+PT).
Temporisation TON (ON delay Timer), temporisation à l’enclanchement
 Le timer TON fournit la valeur de l’entrée IN à la sortie Q avec un délai lors qu’un front
montant est détecté sur IN. Si IN est 0 un pour une durée plus courte que PT , le TIMER
n’est pas démarré.
Exemples d’applications

Séquencement de sorties

Séquencement de moteurs
Temporisation cyclique marche-arrêt
Temporisation TOF, temporisation à déclanchement
 Son fonctionnement est le contraire de celui de TON
 Dans certain API la temporisation TON et TOF sont intéfrées

Version Siemens
Version Allen-Bradley
Exemple d’application
Compteurs
Principe des compteurs
 Un compteur est initialise a une valeur de présélection et, lorsque ce nombre
d’impulsions d’entrée a été reçu, il actionne ses contacts. Les contacts normale- ment
ouverts sont fermes, les contacts normalement fermes sont ouverts.
 II existe deux types de compteurs : les compteurs dégressifs et les compteurs progressifs.
Un compteur dégressifs ou compteur décrémental, décompte a partir de la valeur
présélectionnée jusqu’ à zéro
 On peut aussi avoir un compteur incrémental/décrémental à la fois
(а) Programme pour un API de Mitsubishi, (b) de Siemens et (c) de Toshiba.

Programme de comptage de base


Compteur d’Allen-Bradely incrémental Compteur d’Allen-Bradely décrémental
Types de données et déclaration de
variables
Types de données élémentaires
 Les types de données élémentaires spécifiés par la norme 61131-3, sont donnés par le tableau

Booléenne/string Entiers signés Entiers non signés Réels (FP) Temps, durée et
date
BOOL INT UINT REAL TIME
BYTE SINT USINT LREAL DATE

WORD DINT UDINT TIME_OF_DAY


DWORD LINT ULINT DATE_AND_TIME
LWORD STRING

Pour les variable de type temps et date:


Type dtae Description Initiale
DATE Date (seulement) D#0001-01-01
TOD Temps durant la journée Tod#00 :00 :00
DT Temps et date Dt#0001-01-01-00 :00 :00
Time Durée t#0s
Déclaration de variables Attribues de types de variables :
 Les variables sont déclarées avec le type de donnée et La norme CEI 61131-3 définie des attribues (ou
des propriétés. Ces propriétés peuvent être définies qualificateurs) avec lesquelles des propriétés
dans la déclaration utilisant : supplémentaires peuvent être ajoutées aux variables :
- Les propriétés du type de données spécifiques. - RETAIN : variable retenu (peut être récupérer après
- Informations (optionnelles) sur les valeurs initiales coupure de courant grâce à la batterie).
- Informations (optionnelles) sur les valeurs limites - NON_RETAIN : non récupérable.
- Type de variable du bloc de déclaration dans lequel la - CONSTANT : variable constante, ne peut pas être
variable a été déclarée (avec qualificateur/attribue) modifiée
- R_EDGE : à front montant
- F_EDGE : à front descendant
- READY_ONLY : protéger en écriture
READ_WRITE : peut-être accédée pour l’écriture et la
lecture
Fonctions et fonctions blocs standards
Fonctions standards

Fonctions numériques
Fonctions de conversion de types

Fonction MOD
***: ADD ou Mul (+, *) ***: SUB ou Div (-, /)

Fonctions arithmétiques
Fonctions de sélection

Fonction limite
*** : MAX ou MIN

Multiplexeur
Sélection d’une entrée
Fonction pour variable de type Temps et Date

***: ADD ou SUB

Conversion de temps

***: Mult ou div

Vous aimerez peut-être aussi