Il existe beaucoup d'AP qui ont chacun leur particularité de programmation. Les plus "simples" ont un mode de programmation pas à pas et un déroulement du programme de manière séquentielle (il faut attendre que la condition soit remplie pour que le programme passe à l'instruction suivante. Nous ne traiteront pas de ce genre d'AP. La gamme suivante se programme en codes à l'aide d'un ordinateur ou d'un programmeur. Ceux qui acceptent la programmation par ordinateur ont , en principe, des logiciels qui permettent une programmation facilitée, donc une lecture, une modification, un dépannage simplifié (ladder diagramme - symbolique américaine, diagramme des flux, portes logiques, etc.).
rubriques de dS_de_M ou début de ce document
Quelque soit le logiciel utilisé le mode de fonctionnement de l'AP est le même. A partir d'un schéma représentant une commande le programmeur traduit ce schéma en un programme mis dans des mémoires. Ce programme lisible par un microprocesseur contient différents éléments:
- un pas de programme, (une ligne numérotée)
- une instruction ou code (par exemple: lire l'état d'une entrée, comparer deux valeurs, etc.)
- une référence (par exemple: numéro d'une sortie)
Toute "l'intelligence" de l'automate réside dans son CPU (unité centrale). Elle se compose des éléments suivant:
- un microprocesseur (traitement des informations)
- une horloge interne (fonction de temporisation, synchronisation des opérations)
- unité de calcul (addition binaire, compteur, décompteur)
- plusieurs entrée (réception des données externes)
- plusieurs sortie (émission des données vers l'extérieur, - pour relais, écran, imprimante)
- une mémoire ROM ou EPROM (contient le système d'exploitation)
- une mémoire RAM divisée en zone:
- programme utilisateur (code binaire, assembleur)
- données utile au programme
- données utile au programmeur (programme de base, registres, drapeaux, constantes)
- etc.
- bus de connexion pour des modules déportés (éventuel.)
L'unité centrale n'est pas à même de supporter des intensités de courant telles qu'il y en a au travers des bornes d'entrées et de sorties de l'AP. Elles sont donc protégées des surtensions éventuelles ou de ces courants trop intenses. Pour séparer électriquement le CPU du reste de l'AP, il est souvent utilisé des opto-coupleurs.
Lorsqu'on fait un programme, on peut choisir un langage évolué ( Ladder, Grafcet, Logigramme). Les AP ne comprenant que les langages en liste d'instructions, il faut compiler votre programme (si le logiciel de programmation ne le fait pas automatiquement) avant de la transférer dans l'AP.
On cherche également à documenter ( joindre des commentaires) un maximum le programme pour qu'une autre personne puisse le comprendre et le modifier facilement. On peut également déclarer les entrées, sorties, etc.. par des nom court et/ou des textes plus long - par exemple : sur la sortie O00.01 est raccordé le relais K1 sur lequel commande la ventilation : O00.01 - K1 - ventilation 1.
Toutes ces adjonctions au programme de base ne sont pas prises en charge par l'AP. L'ordinateur va créer pour ces données des fichiers spécifiques qui resteront dans la mémoire d'archivage (disque dur) de votre choix. Sans ces fichiers, un rappel de votre programme de l'AP vers l'ordinateur ne donnera que la liste d'instructions et le reste des données peut être considéré comme perdu.
rubriques de dS_de_M ou début de ce document
Le SUCOS PS 306 de Klöckner Moeller est un automate dérivé du PS3 qui peut faire partie d'un réseau de 9 appareils PS 306. Chaque module comporte 16 entrées et 16 sorties 24V CC numérique, 4 entrées (10 bits) et 1 sortie (12 bits) analogique, 1 connecteur DIN RS 485 pour des unités d'E/S supplémentaires.
Les bornes d'entrées sont notées de Ix.y et celle de sortie de Qx.y - x prend la valeur affectée à l'appareil PS 306, celui de base sera noté "0"; et y prend la valeur de la position de la borne sur l'appareil PS 306 soit une valeur de 0 à 15, par exemple Q 0.0 défini la première sortie sur l'appareil de base.
Pour la programmation du SUCOS PS 306, on utilise soit une console de programmation ou un ordinateur personnel avec le logiciel SUCOSOFT S30-S316-F.
Le SUCOS PS 306 peut se programmer en mnémoniques (Liste d'instructions), en schéma à contact ( Ladder diagramme) ou en blocs de fonction (Logigramme).
rubriques de dS_de_M ou début de ce document
Le SESTEP 290 est un automate à structure modulaire. Selon les besoins, on peut ajouter des rack pouvant contenir plusieurs modules d'entrées/sorties. On peut (en option) l'équiper d'une horloge interne . Le nombre maximum d'entrée/sortie est de 128 - par modules de 8 entrées ou 8 sorties ou de 4 entrées + 4 sorties. Le module d'alimentation doit être alimenté en 24 V continu.
Il se programme en liste d'instructions LI avec un appareil de manipulation (OPI-20) soit à l'aide d'un logiciel (PRS-21 pour PC) en ladder diagramme .
Chaque bloque d'entrée/sortie (modèle de base) est équipé de 8 entrées ou 8 sorties qui peuvent être à relais ( 2 A par sortie ou 4 A par groupe de 4 sorties)- c'est à dire que l'on peut y raccorder directement des objets 230V AC. Il existe aussi des modules pour E/S analogique.
La définition des entrées se fait de X1 à X8 pour le premier module d'entrée puis X9 à X16 pour le second, etc. Pour les sorties, leur définition se fait de Y1 à Y8 pour le premier module de sortie puis de Y9 à Y16 pour le second, etc.
Le SESTEP peut mémoriser l'état d'un bit dans un marqueur défini par la lettre "Cnnn" ( nnn représente le numéro du marqueur par exemple C21). Les mots - valeur d'une temporisation, d'un compteur, etc. - sont contenus dans des registres nommés "Vnnn" .
ADRESSE D'OPERANDES:
Opérande | Zone d'adressage | indications | code | Désignation |
Xnnn | Entrées | X001 à Xmmm (mmm = 128 - nombre de sorties) | X: | Entrée |
Ynnn | Sorties | Y1 à Ymmm (mmm = 128 - nombre d'entrées) | S : | Sortie |
Vnnn | Registres | V001 à V064 V066 à V128 V129 à V144 |
compteur / tempo. mémoire de mots registres spéciaux |
|
Cnnn | Marqueurs | C001 à C232 C233 à C256 |
mémoire bit marqueur spéciaux |
|
compteur de pas |
de S101 à S116 / de S801 à S816 | compte 16 pas du registre V1 à V8 |
||
Exemple de marqueurs spéciaux C
C241 bit de non retenue après une opér. arith. ou de comparaison
C242 bit de retenue après une opér. arith. ou de comparaison
C245 toujours à 0
C246 signal carré T = 0,1 s
C247 signal carré T = 0,4 s
C247 signal carré T = 0,8 s
rubriques de dS_de_M ou début de ce document
Le PMC 20 est un automate programmable pouvant gérer 80 entrées et 80 sorties digitales ainsi que 8 entrées et une sortie analogiques. On peut (en option) l'équiper d'une horloge hebdomadaire.
Il se programme en liste d'instructions LI, en ladder diagramme et schéma logique (étendu avec une bibliothèque personnel) LOGSR et/ou en Grafcet.
Chaque bloque d'entrée/sortie (modèle de base) est équipé de 8 entrées et 8 sorties (2A) et 8 éléments définissables par programmation en entrée ou en sortie (0,5A). La définition des entrées se fait par "I xx.yy" - I pour "Input" , xx nº paire du module (øø pour le premier) et yy pour sa place sur le module. Les sorties sont définies par "O zz.yy" - O pour "Output", zz xx nº impaire du module (ø1 pour le premier) et yy pour sa place sur le module.
Chaque I/O représente un bit. Un ensemble de 4 bits est appelé "digit", celui de 8 bits : un byte (octet) et celui de 16 bits : un Word (mot).
Le PMC 20 peut mémoriser l'état d'un bit dans un drapeau défini par la lettre "M". Les mots sont contenus dans des registres nommés "D" (une valeur analogique se trouve dans "D 15.yy). Pour un fonctionnement en mode séquentiel, le compteur de pas se nomme "S".
ADRESSE D'OPERANDES:
Opérande | Zone d'adressage | indications |
I | Entrées I øø.øø - I øø.15 / I ø2.øø - I ø2.15/... I 1ø.15 | I : Input |
O Sorties | O ø1.øø - O ø1.15 O ø3.øø - O ø3.15 / O ø5.øø - O ø5.ø7 /. O11.ø7 |
O : Output |
D Registre de données | D øø.øø - D øø.63 / D ø1.øø - D ø1.63 ... 15.63 ¥ Reg.D normal : D øø.øø...D 13.63 ¥ Reg.D en communication : D 14.øø...D 14.63 ¥ Reg.D entrées analogique : D 15.øø...D 15.14 ¥ Reg.D sorties analogiques : D 15.16 ¥ Reg.D affichage : D 15 56...D 15.63 |
zone de registre de données avec tâche |
M Drapeaux | M 16.øø - M 16.15 / M 17.øø - M 17.15/..23.15 | ¥ pour des tâches spéciales |
Drapeau spécial M4ø.øø - 4ø.15 | ¥ voir tableau séparé | |
S Compt.de pas | S øø.øø - øø.99 / ø1.øø - ø1.99 / ...23.99 | |
R Registre | R ¥ R øø.øø - øø.15 / ø1.øø - ø1.15 / ...ø3.15 ¥ R ø4.øø - ø4.ø6 | ø5.øø - ø5.ø6 / ... 11.ø6 ø4.. ø6.. ø8.. ø5.. ø7.. ø9.. |
Lire et écrire un mot lire mot écrire mot |
Pour exécuter un programme l'automate procède par cycles. Il lit d'abord toutes les instructions, puis exécute les opérations. Ce cycle dure de 0,5 à 5 ms selon l'importance du programme
Les opérations unibits se font seulement si le registre RR (registre résultat) est à "1". Le premier bit passe dans l'UL puis est stockée dans le RR. S'il est a "1" l'opération logique demandée (AND, OR, etc. ) est faite avec le deuxième bit. En cas d'opération avec des blocs (AB, OB) le résultat intermédiaire est mis dans le MI pour la future opération logique.
.
Si le RR est à "1" l'opération multibits est exécutée. Le principe est globalement le même que pour l'LU:
Dans le cas où l'on veut qu'une opération avec registres se fasse à chaque cycle, il faut mettre le contenu du RR à "1". On peut le faire avec le Drapeau M4ø.øø :
L M 4ø.øø (met le RR à "1")
( le RRM aux. contient les retenues si le résultat est plus grand que ce que peut contenir le RRM).
Exemple de drapeaux Spéciaux M4ø.nn
M4ø.øø RR sur 1 condition toujours vraie
M 4ø.ø1 à 1 au 1er cycle actif qu'au démarrage
M 4ø.ø2 cadence ø,1 s génère un signal carré
M 4ø.ø3 cadence 1,ø s génère un signal carré
M 4ø.ø4 cadence ø,ø1 s génère un signal carré
M 4ø.ø5 bit supérieur ou inférieur de RRM lors de décalage
rubriques de dS_de_M ou début de ce document
Le Système MAS est un système avec modules déportés. C'est à dire que l'on place des unités (appelée CPU - par exemple CPU 715) que l'on place à différents endroits dans l'installation. Ces différents modules sont décentralisés ce qui évite de tirer toutes les lignes de commande à un seul endroit, mais en différents lieux ce qui diminue la longueur des lignes. Pour que l'ensemble de ces modules puissent communiquer entre eux (par exemple : que la sonde raccordée au module du 2ème étage commande la pompe raccordée au module du sous-sol) il faut les lier électriquement avec un « bus ». Le type de bus utilisé est le bus CAN à 3 fils. Selon les besoins, on peut ajouter des module - CPU - pour entrées/sorties analogiques ou numériques, pouvant contenir plusieurs modules d'entrées/sorties.
La programmation se fait à l'aide d'un logiciel - CAP 1131 (software tournant sous Windows95) et une liaison série RS232 (COM1 ou COM2). Les modules se programment soit en liste d'instructions LI soit en ladder diagramme, soit en Grafcet, soit en langage évolué orienté objet le C++.
Un module type CPU 715 est équipé de 8 entrées ou 8 sorties. Certains modules sont construit avec des sorties à relais c'est à dire que l'on peut y raccorder directement des objets 230V AC.
La programmation est très structurée. Chaque entrée, sortie ou constante devra être nommée (par exemple: Ix_ sonde_ext) et définie (par exemple : valeur entière) avant d'être employée. Toutefois on utilisera directement son nom dans le programme sans s'inquiéter de sa position physique (entrée 2 du CPU 714 du rez).
Lors de la programmation on peut créer librement des variables ou des constantes pouvant contenir des valeurs de différents types : entier, hexadécimale, réel, réel double précision, etc..
Une importante bibliothèque de fonctions - temporisation, comptage, etc..- est mise à disposition.
Ce programme utilise la norme CEI 1131 qui devrait se généraliser pour la programmation des automates.
rubriques de dS_de_M ou début de ce document
Cet automate vendu par l'entreprise Siemens est prévu pour de petites applications. Il a dans sa version de base 6 entrées et 4 sorties. On trouve actuellement des Logo qui ont plus d'entrées et de sortie (par exemple 12 entrées, 8 sorties).
Ses possibilités de raccordement sont diverses:
alimentation et contacts 24 V - LOGO 24
alimentation et contacts 24 V sortie à relais - LOGO 24R
alimentation et contacts 230 V - LOGO 230
alimentation et contacts 230 V sortie à relais - LOGO 230R
alimentation et contacts 230 V sortie à relais + horloge - LOGO 230RC.
Avec des sorties à relais chaque contact supporte 2 ampères. L'alimentation des entrées se fait avec la même tension que celle d'alimentation de l'automate.
Le LOGO peut se programmer aussi avec un PC. Toutefois le mode de programmation est le même - on actionne les touches du LOGO dessiné à l'écran ! Le seul réel avantage est de pouvoir visualiser le programme dans son ensemble.
Le LOGO possède un affichage qui permet de visualiser
- en mode RUN
l'état logique des entrées
l'état logique des sorties
l'heure (LOGO 230RC)
- en mode programmation
le bloc en cours de programmation
sa fonction
sa sortie
ses entrées
- autres
menus et sous menus
réglage de l'horloge
rubriques de dS_de_M ou début de ce document
Le système EIB est aussi un système à bus conçu par un ensemble de fabriquants (par exemple: Feller, Hager, Théalit, etc..) ce qui assure - théoriquement - qu'un produit EIB d'une marque est compatible avec les produits EIB d'autres fournisseurs.
Dans le système EIB une partie de l' ''intelligence'' est dans le organes de commande (poussoirs) et dans les organes commandés. En effet chacun des éléments raccordés au bus doit avoir une adresse (un repère électronique qui permet de différencier chaque élément raccordé au bus) distincte à programmer lors de l'installation (ce qui augmente le prix du matériel installé ).
La programmation se fait par PC. Le logiciel doit permettre une visualisation de chaque pièce, de chaque appareil raccordé (poussoir, sonde, lampe, stores, moteurs, etc..) et permettre un contrôle rapide de l'état d'une installation et une surveillance efficace.
rubriques de dS_de_M ou début de ce document
Ce système d'automatisation est commercialisé par l'entreprise Hager.
Ce système est un intermédiaire entre les automates programmables et le système EIB. Son mode de programmation est très simplifié par rapport aux automates traditionnels, ce qui convient particulièrement aux petites installations.
La gamme des produits Tébis couvrent les besoins d'automatisation dans les domaines suivant:
- ventilation
- volets roulants, persiennes, stores
- chauffage et climatisation
- éclairage
Les organes de commandes peuvent être soit des poussoirs contacts usuels ou interrupteurs, soit des sondes de luminosité, température, détecteurs de fenêtre ouverte, etc..
Tébis est un système de bus à deux fils qui relie les différents modules entre eux. Les organes de commande et les objets commandés se raccordent eux à chaque module. Evidemment un organe raccordé à un module peut , via le bus, commander un objet raccordé à un autre module. Pour définir le mode de fonctionnement de ce système, on utilise l'expression « intelligence répartie » ce qui signifie que chaque modules traitent ses entrées / sorties indépendamment des autres modules sans passer par une unité centrale comme pour les automates programmables.
L'architecture du réseau Tébis comprend un ligne principale sur laquelle on peut raccorder 12 lignes secondaires (chacune s'appelant zone). A chaque ligne on peut raccorder 64 appareils. D'autre extension sont possible pour obtenir un réseau de plus de 720 km et 46000 produits raccordés.
Les différentes fonctions sont pour
Il est également possible d'avoir une surveillance des installations du bâtiments par supervision ou télé-supervision.
Il y deux types de mode de raccordement des AP aussi bien pour les entrées que pour les sorties:
- les entrées supportent une tension de commande de 230V ou seulement de la basse tension (24V)
- les sorties acceptent un raccordement à courant fort /230 V ou seulement à la tension de 24V
En cas de possibilité de raccordement des sorties directement sur le réseau, il faut faire attention au courant max. admissible par sortie et par groupe de sortie. Si 2 ampères peuvent traverser chacune des bornes de sortie d'un AP, il est peut probable qu'un groupe de 8 entrées supporte 16 ampères. Les sorties supportant le raccordement direct au réseau est souvent appelé " sortie à relais".
rubriques de dS_de_M ou début de ce document
rubriques de dS_de_M ou début de ce document
rubriques de dS_de_M ou début de ce document
rubriques de dS_de_M ou début de ce document
La programmation en liste d'instructions demande de connaître toutes les instructions de l'automates que vous désirez programmer. Ce mode de programmation permet souvent des exécutions de programme plus rapide.
Le programme n'a pas besoin d'être compilé.
Les instructions sont souvent différentes pour chaque fabriquant. Des tentatives de normalisation sont en cours. La dernière norme est la CEI 1131. Les fabriquants qui l'utilise doivent utiliser les mêmes instructions et la même syntaxe
Liste partielle d'instructions :
( LOGO ne peut pas se programmer en LI)
exemple comparatif de programme :
rubriques de dS_de_M ou début de ce document
Le ladder diagramme est un mode de programmation utilisant une symbolique beaucoup plus lisible que les codes booléen ou listes d'instructions.
La programmation en logigramme est une représentation en portes logiques ( voir chapitre 1.1.2) du programme. Il arrive souvent que l'éditeur logigramme d'un logiciel de programmation soit inclus dans l' éditeur Ladder.
On peut ainsi utiliser les deux types de programmation au sein d'un même programme ce qui permet l'emploi de la bibliothèque d'éléments fonctionnels (petit sous-programmes, par exemple : compteur, temporisation, etc...).
Selon le logiciel de programmation il est souvent indispensable de compiler (traduire en LI) votre programme avant de le transmettre à l'automate programmable.
Note: il existe beaucoup d'autres solutions pour cet exercice. L'entrée CLK compte, dans V001, le nombre de fois que l'entrée passe de 0 à 1. Le RS remet le contenu du V001 à 0 et la sortie Q à 0. La valeur de PV est celle qui sert de référence; lorsque V001 contient 16 alors la sortie Q devient active. CV contient le registre qui mémorise le nombre d'impulsions reçue par CLK.
Pour des commandes plus compliquées les éditeurs ont mis a disposition des programmeurs des bibliothèques d'éléments fonctionnels.
par exemple :
exemple d'un programme mélangeant du code Ladder et EF
L'éditeur GRA permet de programmer graphiquement des commandes séquentielles. Dans le cadre de se cours, nous ne traiterons que les programmes de Sélection.
L'automate peut gérer plusieurs chaîne GRA simultanément. Chaque chaîne commence par un chaîne de pas de début, puis est composée de transitions et de pas avec éventuellement des embranchements alternatifs ou simultanés et finalement se termine par un saut à un pas de la chaîne.
Le programme devant se terminer par l'instruction EP ( End Program) il faut créer une dernière chaîne qui ne contient qu'un seul pas permanent qui contient cette instruction.
Chaque pas ou transition doit être programmé (dans un élément appelé Loupe). Le pas contient ce qu'il faut faire et la transition la condition à remplir avant que le programme exécute le pas suivant.
On peut programmer les LOUPES (les pas et les transitions) soit en LI soit en logigramme soit en Ladder. Une fois le programme terminé, il faut le compilé avant de le transmettre au PMC.
La représentation écran peut être modifiée dans le menu "LAYOUT", ce qui permet d'agrandir l'image et de visualiser des commentaires.
exemple d'un programme :
rubriques de dS_de_M ou début de ce document
La programmation en logigramme est une représentation en portes logiques et éléments fonctionnels tels que compteurs, horloges, relais temporisés, relais pas à pas.
rubriques de dS_de_M ou début de ce document
La programmation peut se faire soit en LI (voir chapitre 2.3.1) soit en ladder diagramme (voir chapitre 2.3.2) soit en logigramme (voir chapitre 2.3.3) soit encore en langage C++ (l'apprentissage du langage de programmation C++ n'entre pas dans le cadre de ce cours). Toutefois on peut ajouter à ce qui a déjà été écrit que la norme CEI 1131 défini une programmation structurée, orientée objet.
Avant de commencer l'écriture d'un programme, il faut créer sa structure, définir les modules raccordés (numéroter les nuds) et comment ils sont raccordés entre eux (bus) et définir les éléments qui y seront traité (entrées/sorties - variables/constantes).
Une tâche Task contient obligatoirement un ou plusieurs programmes POU (programmes pouvant tourner individuellement).
Chaque POU a son entête EADER (déclaration des variables, constantes, I/O utilisées,..)
Chaque POU a un <corps> BODY ( les instructions ).
Chaque BODY a ses I/O , ses variables, ses constantes,..
Tous ces éléments doivent être programmé avant de commencer l'édition du programme
rubriques de dS_de_M ou début de ce document
Pour programmer un système bus EIB, il faut un logiciel ( par exemple : FMTool de Levy) . Ce dernier est fourni par les différentes entreprises qui fournissent du matériel EIB.
Le principe est de programmer une adresse différente pour organe de commande - sonde, poussoir, fin de course, interrupteur, etc... - et aussi une adresse différentes pour tous les actionneurs - stores, commutation, variateurs, afficheurs, manager TV.
La programmation se fait par l'emploi de bloc de fonctions, par exemple :
- logiques (portes, flip-flop)
- analogiques (comparateur)
- mathématique ( addition, multiplication, logarithme)
- réglage ( intégrateurs )
- conversion de donnée
Le logiciel de programmation est un logiciel graphique. Le programme doit être compilé avant d'être chargé dans le EIBus (module de fonction).
Note : des organes de sécurité tels que détecteurs de pluie, de bris de glaces, contacts de portes et fenêtre, détecteur de fumée, de fuite d'un liquide font partie de la gamme EIB et peuvent facilement s'intégrer dans un concept global de surveillance.
Il existe également des passerelles pour l' EIBus et le réseau téléphonique RIS
rubriques de dS_de_M ou début de ce document
La première étape consiste à définir les liaisons . Pour cela il faut placer le commutateur du (des) module (s) concerné (s) sur la position de configuration (0...9). Ensuite il faut actionner successivement sur tous les organes de commandes pour les entrées
Pour la programmation, il faut sélectionner la position prog. avec le commutateur. Puis, pour chaque sortie sélectionner les entrées et ensuite presse sur la touche correspondant à la sortie à programmer.