chapitre 5: fonctions spéciales...en ton tempo 1 in q pt et ok t#2s fbd input output ton tempo 1 in...
TRANSCRIPT
1
Chapitre 5: Fonctions Spéciales
Pierre DuysinxUniversité de Liège
Extension des fonctionnalités
Aperçu des principales fonctions spéciales que l’on peut trouver sur les automates
Logique séquentielleBase de temps
Opérations sur motsContrôle du cycleManipulation des donnéesRégulation PIDCommande 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
2
Extension de la logique de base
Mettre à la disposition du programmeur des fonctions couramment utilisées dans les automatismes
Bi stablesSR forcé dominant / RS réinitialisé dominant / SEMA sémaphore
TemporisateursImpulsion TP / temporisation à l’enclenchement TON / temporisation au déclenchement TOF / RTC horloge temps réel (date et heure)
CompteursCompteur 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 Nom Explicat ion
Bistables Détecteur de front Compteurs Tempor isa teurs
SR RS SEMA R-TRIG F-TRIG CTU CTD CTUD TP TON TOF RTC
Forcé dominant Réinit ia lisé dominant Sémaphore Front montant Front descendant Compteur Décompteur Compteur /Décompteur Impulsion Tempor isa t ion à l'enclenchement Tempor isa t ion au déclenchement Horloge temps réel (donne la da te et l'heure du jour )
3
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éclenchementSur les automates modernes la temporisation est effectuée par une horloge interne à 100 ms, parfois à 10 ms
TEMPOT
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.PTLD 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 OUTPUT
TON
Tempo 1
IN Q
PT ET t#2s
Programmation d'un bloc fonctionnel de temporisation
dans les différents langages normalisés
4
Comptage
Les fonctions de comptage et de décomptage sont des fonctions couramment utiliséesIl 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)
COMPTEURP
E S
E
S
t
t
t
NP
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 SP
E SN
5
Fonctions d’organisation du cycle
BRANCHEMENTS ET REPETITIONSFonctions qui permettent d’intervenir sur le déroulement du cycle de l’automateFonctions de branchement
Permettent de sauter conditionnement ou inconditionnellement unesérie d’instructionsSaut avant / saut arrière / saut absolu / saut relatif (nombre d’instructions)
Boucles de répétitionPermettent 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
6
Fonctions d’organisation du cycle
SOUS ROUTINESA 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émoireStructurer les programmes
Décomposer les problèmes complexes en sous ensembles plus simples, correspondant par ex. à des entités technologiquesStructure modulaire et hiérarchiqueFaciliter la maintenance et la lisibilité
Fonctions d’organisation du cycle
INTERRUPTIONSL’automate ne scrute le monde extérieur que de manière cycliquePour 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.
7
Opérations sur mots
On quitte le domaine de la logique pure pour aborder le traitement utilisé dans les ordinateursOpé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 motsLittéral structuré R3 := R1 + R2
Bloc fonctionnel R1
R2
R3+
Langage à contacts
R1R2
R3+
Exemple de programmation des fonctions extra logiques
8
Opérations sur mots
Exemple de programmation de la fonction sinus
LD
B A
EN
SIN
FBD
B ASIN
IL LD B SIN ST A
ST A : = SIN (B)
Opérations sur mots
Type Nom Symbole éventuel
Explicat ion
Logique su r bit Arithmét ique Numér ique Comparaison Conversion de type Déca lage Sélect ion Cha îne de ca ractères
AND OR XOR NOT ADD MUL SUB DIV MOD EXPT MOVE ABS SQRT LN LOG EXP SIN COS ASIN ACOS ATAN GT GE EQ LE LT NE *_TO_** SHL SHR ROR ROL SEL MAX MIN LIMIT MUX LEN LEFT RIGHT MID CONCAT INSERT DELETE REPLACE FIND
&
>=1 =2k+1
+ * - /
** :=
> >= =
<= <
<>
logar ithme na turel logar ithme en base 10 conversion du type * vers le type ** déca lage à gauche déca lage à droit e rota t ion à droit e rota t ion à gauche sélect ion bina ire sélect ion de maximum sélect ion de minimum limiteur mult iplexeur longueur d'une cha îne ca ractères le plus à gauche ca ractères le plus à droit e ca ractères in termédia ires
9
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
POINTERPTR1
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éesGestion d’une porte de communication sériePrend un certain temps ⇒comporte un signal de retour indiquant que le message a été traité.
Done Flag WRITE
TXT ADDR. TXT LENGTH
10
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 industrielleSignal 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 m Régulateur
PID PROCESSUS
Commande Mesure Consigne
e = s – m
⎟⎟⎠
⎞⎜⎜⎝
⎛++= ∫ dt
deTedtT1eKc d
i
11
Régulateur PID
Algorithme PID
Approximation discrète pour les contrôleurs digitaux
Mise en œuvre = choix de K, Ti, Td
⎟⎟⎠
⎞⎜⎜⎝
⎛++= ∫ dt
deTedtT1eKc d
i
( )⎥⎥⎦
⎤
⎢⎢⎣
⎡−++= −
=∑ 1nn
dn
0jj
inn ee
TTe
TTeKc
Régulateur PID
Programmation en langage automate possible, mais fastidieuseFonctions annexes (passage manuel / auto, contrôle terme intégral, régulateurs en cascade, contrôle de l’erreur…) difficiles à programmer
Mise en œuvre informatiqueProgrammation du régulateur en langage informatiqueCharge exagérée du processeurSolution multiprocesseur
Carte PIDProgrammation à l’aide de la consoleChoix d’options prévues par le constructeur
12
Régulateur PID
Structure de principe du régulateur PID(Source SIEMENS)
Régulateur PID
Structure détaillée du régulateur PID(Source SIEMENS)
13
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 à standardiserPosition mesurée par un codeur incrémental (train d’impulsions rapides): une carte de comptageContrô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
14
Commande d’axe
ProgrammationInstructions de déplacement
Jusqu’à une position d’arrêt ou sans arrêtPositions fixées, avec apprentissage, communiquées en temps réels
Organisation des mouvementsAppel à des sous routinesSauts conditionnels ou inconditionnelsAttente d’évènement
Gestion des paramètresCalcul, affectation de valeurs de position
Programmation d'une commande d'axea. Déplacements
b. Organisation des mouvements
Commande d’axe
Terminaux d’exploitation adjoints aux commandes d’axeObjet
Sélection des modes de marcheMode de mise au point
Modification des paramètresApprentissage des positions, prise de l’origineTest des programmes
Fonctionnement automatiqueVisualisation des paramètres et du programme
Observation des déplacements : position et vitesse
Commande d'axe. Exemple de terminal d'exploitation