Chapitre 5:
Fonctions Spéciales
Pierre Duysinx Université de Liège
Extension des fonctionnalités
Aperçu des principales fonctions spéciales que l’on peut trouver sur les automates
Logique séquentielle
Base de temps
Opérations sur mots
Contrôle du cycle
Manipulation des données
Régulation PID
Commande d’axe
Ces fonctions sont réalisées
soit par voie logicielle via le processeurs,
soit par voie matérielle c’est-à-dire par un module greffé sur le bus
Extension de la logique de base
Mettre à la disposition du programmeur des fonctions couramment utilisées dans les automatismes
Bi stables
SR forcé dominant / RS réinitialisé dominant / SEMA sémaphore
Temporisateurs
Impulsion TP / temporisation à l’enclenchement TON / temporisation au déclenchement TOF / RTC horloge temps réel (date et heure)
Compteurs
Compteur CTU / décompteurs CTD / compteur-décompteur CTUD
Différentiateurs
Détecteurs de front montant R-TRIG ou descendant F-TRIG
Extension de la logique de base
Mettre à la disposition du programmeur des fonctions couramment utilisées dans les automatismes
Type N om E xplica t ion
Bist a bles
Dét ect eu r de fr on t
Com pt eu r s
Tem por isa t eu r s SR RS SE MA
R-TRIG F -TRIG CTU CTD CTU D
TP TON TOF RTC
F or cé dom in a n t Réin it ia lisé dom in a n t Sém a ph or e
F r on t m on t a nt F r on t descen da n t Com pt eu r Décom pt eu r Com pt eu r /Décom pt eu r
Im pu lsion
Tem por isa t ion à l'en clen ch em en t Tem por isa t ion a u déclen ch em en t H or loge t em ps r éel (donn e la da t e et l'h eu r e du jou r )
Temporisation
La fonction temporisation permet de décaler un signal logique par rapport à un autre d’un délai fixé.
Décalage à l’enclenchement ou au déclenchement
Sur les automates modernes la temporisation est effectuée par une horloge interne à 100 ms, parfois à 10 ms
TEMPO T
E S
E
S
T
t
t E
S
T
<
T t
t T
a. Retard à l'enclenchement b. Retard au déclenchement
Temporisation
IL Lancement LD t#2s ST Tempo1.PT LD INPUT ST Tempo1.IN CAL Tempo1 Utilisation LD Tempo1.Q
ST OUTPUT
ST Lancement Tempo1 (IN : = INPUT , PT : = t#2s) Utilisation OUTPUT : = Tempo1.Q LD
INPUT OUTPUT
EN
TON Tempo 1
IN Q PT ET
OK
t#2s
FBD
INPUT TON OUTPUT Tempo 1
IN Q PT ET t#2s
Programmation d'un bloc fonctionnel de temporisation dans les différents langages normalisés
Comptage
Les fonctions de comptage et de décomptage sont des fonctions couramment utilisées
Il existe divers compteurs logiciels, mais ils ne peuvent compter que des impulsions espacées d’une durée
significativement supérieure au temps de cycle de l’automate (10 à 100 ms)
Pour les comptages rapides, on recourt à des cartes spéciales (horloges à plusieurs kHz)
COMPTEU R P
E S
E
S
t
t t N
P Présélection
Compteur avec présélection:
devient vrai lorsque le nombre d’entrées est dépassé.
Différentiateurs
Délivrent des impulsions d’une durée égale à un cycle
d’automate lors du changement d’état d’une variable logique
E
S
t
t
E
S
t
t largeur = 1 cycle
E P S
E N S
Fonctions d’organisation du cycle
BRANCHEMENTS ET REPETITIONS
Fonctions qui permettent d’intervenir sur le déroulement du cycle de l’automate
Fonctions de branchement
Permettent de sauter conditionnement ou inconditionnellement une série d’instructions
Saut avant / saut arrière / saut absolu / saut relatif (nombre d’instructions)
Boucles de répétition
Permettent de répéter un groupe d’instructions un nombre de fois donné
Fonctions d’organisation du cycle
⎯
⎯
⎯ JMR n
⎯
⎯ ⎯
⎯
⎯
⎯
⎯
⎯ DO 5
⎯ END
⎯
⎯ ⎯
⎯
⎯ JSR SR1
⎯
⎯
⎯ ⎯ JSR SR1
⎯
⎯
⎯
⎯
⎯ JMP X
⎯
⎯ ⎯
⎯
⎯ X
⎯
⎯
⎯
⎯ ⎯
⎯
⎯ JMP Y
⎯ Y
n instr. 5 X
⎯
⎯
⎯
⎯ ⎯ RET
⎯
⎯
⎯ RET
SR1
SR2
⎯
⎯ JSR SR1
⎯
⎯
⎯ ⎯ JSR SR1
⎯
⎯
SR1
SR2
SR11
SR12 a. Saut direct b. Saut inverse c. Saut relatif d. Boucle DO
e. Sous-routines (économie mémoire) e. Sous-routines (structuration des programmes)
Instructions pour le contrôle du cycle
Fonctions d’organisation du cycle
SOUS ROUTINES
A pour effet de faire abandonner la séquence d’instructions en cours par le processeur au profit d’une séquence d’instructions (la sous routine) située ailleurs dans la mémoire.
La deuxième séquence se termine par une instruction de retour RETURN qui ramène le processeur à l’endroit où il avait quitté la séquence initiale
Deux avantages
Économiser la place mémoire
Séquence reproduite plusieurs fois mais une seule fois présente en mémoire
Structurer les programmes
Décomposer les problèmes complexes en sous ensembles plus simples, correspondant par ex. à des entités technologiques
Structure modulaire et hiérarchique
Faciliter la maintenance et la lisibilité
Fonctions d’organisation du cycle
INTERRUPTIONS
L’automate ne scrute le monde extérieur que de manière cyclique
Pour les évènements urgents, cela demanderait des temps de cycle très courts et donc des automates surpuissants.
Les procédures d’interruptions sont des solutions beaucoup plus efficaces.
Les sources d’interruptions sont connectées individuellement ou par une fonction OU à des lignes spéciales du bus, les lignes d’interruption.
Le processeur scrute automatiquement les lignes d’interruption après chaque instruction (quelques microsecondes).
Si on détecte une demande d’interruption, on interrompt l’exécution du programme, on réalise les traitement désiré puis on reprend l’exécution du programme interrompu.
Au moment de l’interruption on a accès direct à tous les I/O.
Opérations sur mots
On quitte le domaine de la logique pure pour aborder le traitement utilisé dans les ordinateurs
Opérations sur des mots codant des nombres, des caractères, etc.
Opérations
Arithmétiques: +, -, *, /
Logiques sur des mots: AND, OR, XOR, etc.
De test: >, <, =, etc.
De conversion de code BCD →BIN, BIN →BCD
Opérations sur mots
Littéral structuré R3 := R1 + R2
Bloc fonctionnel
R1 R2
R3 +
Langage à contacts
R1 R2
R3 +
Exemple de programmation des fonctions extra logiques
Opérations sur mots
Exemple de programmation de la fonction sinus
LD
B A
EN
SIN
FBD
B SIN A
IL LD B
SIN ST A
ST A : = SIN (B)
Opérations sur mots
Type Nom Sym bole
éven t u el
E xplica t ion
Logiqu e su r bit
Ar it h m ét iqu e
Nu m ér iqu e
Com pa r a ison
Con ver sion de t ype Déca la ge
Sélect ion
Ch a în e de ca r a ct èr es AND OR XOR NOT ADD MU L SU B DIV MOD E XP T MOVE
ABS SQRT LN LOG E XP SIN COS ASIN ACOS ATAN GT GE E Q LE LT NE
*_TO_**
SH L SH R ROR ROL
SE L MAX MIN LIMIT MU X
LE N LE F T RIGH T MID CON CAT IN SE RT DE LE TE RE P LACE F IND
&
>=1
=2k +1
+
* - /
**
:=
>
>=
=
<=
<
<>
loga r it h m e n a t u r el loga r it h m e en ba se 10
con ver sion du t ype * ver s le t ype **
déca la ge à ga u ch e déca la ge à dr oit e r ot a t ion à dr oit e r ot a t ion à ga u ch e
sélect ion bin a ir e sélect ion de m a xim u m sélect ion de m in im u m lim it eu r m u lt iplexeu r
lon gu eu r d'u n e ch a în e ca r a ct èr es le plu s à ga u ch e ca r a ct èr es le plu s à dr oit e ca r a ct èr es in t er m édia ir es
Gestion des tables de valeur
Des registres de données consécutives peuvent être organisés en table.
On accède aux valeurs par des pointeurs qui réalisent un adressage indexé par rapport au début de la table
IN
CLEAR
OUT
IN REG R200
START R000
POINTER PTR1
END R050
OUT REG R210
Edition de texte
Sortir sur une sortie écran ou imprimante des textes, c.à-d.
une suite de caractères alphanumériques stockés dans une tables de données
Gestion d’une porte de communication série
Prend un certain temps ⇒ comporte un signal de retour indiquant que le message a été traité.
Done Flag WRITE
TXT ADDR.
TXT LENGTH
Pile FIFO
Table gérée de manière particulière: les données introduites vont s’empiler dans le fond de la table. En sortie toujours le dernier élément introduit qui est prélevé en premier.
Le FIFO permet de réaliser un tampon entre processus de production d’information et un processus de consommation non synchrone sans saturer.
Exemple: gestion des alarmes.
IN
CLEAR
OUT
IN REG R200
START R000
FIFO
END R050
OUT REG R210
Data n IN Data n
Data 1 .
. OUT
Data
Régulateur PID
Le régulateur PID ouvre la porte à un grand nombre de contrôles de processus continus et répond à la plupart des cas de régulation industrielle
Signal de commande:
Terme (P) proportionnel à l’erreur
Terme intégral (I) afin d’annuler l’erreur statique
Terme dérivé (D) proportionnel aux variations de l’erreur qui réalise une anticipation
+ -
s e c Régulateur m
PID PROCESSUS
Commande Mesure Consigne
e = s – m
⎟⎟⎠
⎜⎜ ⎞
⎝
⎛ + +
=K e T1
∫
edt T dedtc d
i
Régulateur PID
Algorithme PID
Approximation discrète pour les contrôleurs digitaux
Mise en œuvre = choix de K, T
i, T
d⎟⎟⎠
⎜⎜ ⎞
⎝
⎛ + +
=K e T1
∫
edt T dedtc d
i
( )
⎥⎥
⎦
⎤
⎢⎢
⎣
⎡ + + −
= −
∑
=n d n n1 0j j i n
n e e
T e T T e T K c
Régulateur PID
Programmation en langage automate possible, mais fastidieuse
Fonctions annexes (passage manuel / auto, contrôle terme intégral, régulateurs en cascade, contrôle de l’erreur…) difficiles à programmer
Mise en œuvre informatique
Programmation du régulateur en langage informatique
Charge exagérée du processeur
Solution multiprocesseur
Carte PID
Programmation à l’aide de la console
Choix d’options prévues par le constructeur
Régulateur PID
Structure de principe du régulateur PID (Source SIEMENS)
Régulateur PID
Commande d’axe
Le position d’un mobile le long d’un axe: machine de découpe, d’emballage, lignes de transfert, de manutention…
Commande assez facile à standardiser
Position mesurée par un codeur incrémental (train d’impulsions rapides):
une carte de comptage
Contrôle de l’enchaînement des mouvements usuels
Commande d’axe
Principe de fonctionnement d’une commande d’axe
Asservissement en position (gain en position Kp)
Asservissement en vitesse assurée par un dispositif extérieur, le variateur (gain en vitesse Kv)
Limitations d’accélérations
Jeu d’instructions simple et
complet pour décrire les
trajectoires, les enchaîner et
assurer la coordination avec le
processeur
Commande d’axe
Programmation
Instructions de déplacement
Jusqu’à une position d’arrêt ou sans arrêt
Positions fixées, avec apprentissage, communiquées en temps réels
Organisation des mouvements
Appel à des sous routines
Sauts conditionnels ou inconditionnels
Attente d’évènement
Gestion des paramètres
Calcul, affectation de valeurs de position
Programmation d'une commande d'axe a. Déplacements
b. Organisation des mouvements
Commande d’axe
Terminaux d’exploitation adjoints aux commandes d’axe
Objet
Sélection des modes de marche
Mode de mise au point
Modification des paramètres
Apprentissage des positions, prise de l’origine
Test des programmes
Fonctionnement automatique
Visualisation des paramètres et du programme
Observation des déplacements : position et vitesse
Commande d'axe. Exemple de terminal d'exploitation