<page> <title>Automate programmable industriel</title> <id>177874</id> <revision> <id>31828342</id> <timestamp>2008-07-23T18:41:08Z</timestamp> <contributor> <username>Zedh</username> <id>132668</id> </contributor> <comment>Révocation du vandalisme de [[Special:Contributions/81.80.169.48|81.80.169.48]] et retour à la version de [[Special:Contributions/TXiKiBoT|TXiKiBoT]]</comment> <text xml:space="preserve">{{Voir homonymes|API}} {{ébauche|science}} [[Image:Automate siemens codeur analyseur de trame.JPG|thumbnail|300|Deux automates programmables Industriels & leurs périphériques, montés en volant, pour test et analyse]] Un '''automate programmable industriel''' (API) est un dispositif [[électronique]] [[programmation|programmable]] destiné à la [[Commande (automatisme)|commande]] de [[Procédure d'entreprise|processus]] [[industrie]]ls par un traitement séquentiel. Il envoie des ordres vers les ''préactionneurs'' (partie opérative ou ''[[PO]]'' côté actionneur) à partir de [[donnée]]s d’entrées ([[capteur]]s) (partie commande ou ''[[PC]]'' côté capteur), de [[consigne]]s et d’un [[programme informatique]]. ==Présentation== [[Image:PLC Control Panel.png|thumbnail|350|automate dans une armoire électrique]] On nomme '''Automate Programmable Industriel''', '''API''' (en anglais '''Programmable Logic Controller, [[Automate Programmable Industriel|PLC]]''') un dispositif similaire à un [[ordinateur]], utilisé pour [[wikt:automatiser|automatiser]] des processus comme la commande des [[machine]]s sur une [[ligne de montage]] dans une usine. Là où les systèmes automatisés plus anciens emploieraient des centaines ou des milliers de [[Relais électromécanique|relais]] et de [[came (mécanique)|came]]s, un simple automate suffit. On nomme [[automaticien]]s les [[programmeur]]s de ces Automates Programmables Industriels. L'API est structuré autour d'une unité de calcul ou [[processeur]] (en anglais [[Central Processing Unit]], [[CPU]]), d'une alimentation (depuis des tensions AC ou DC) et, de modules suivant les besoins de l'application, tel que: * Des cartes d'entrées - sorties (en anglais Input - Output, I/O) numériques ([[Tout ou rien]]) ou [[analogique]]s **Cartes d'entrées pour brancher des [[capteur]]s, [[bouton poussoir|boutons poussoirs]], ... **Cartes de sorties pour brancher des [[actionneur]]s, [[Lampe électrique|voyant]]s, [[vanne]]s, ... * Des modules de communication [[Modbus]], [[Modbus Plus]], [[Profibus]], [[InterBus]], [[DeviceNet]], [[LonWorks]], [[Ethernet]], [[FIPIO]], [[FIPWAY]], [[RS232]], [[RS-485]], [[AS-i]], [[CANopen]], pour dialoguer avec d'autres automates, des entrées/sorties déportées, des supervisions ou autres interfaces homme-machine ([[IHM]], en anglais Human Machine Interface, [[Interface Homme-machine|HMI]])), ... * Des modules dédiés métiers, tels que de comptage rapide, de pesage... * Des modules d'[[interface]] pour la commande de mouvement, dits modules Motion, tels que démarreurs progressifs, [[Variateur de vitesse (électricité)|variateurs de vitesse]], commande d'axes. * Des modules de dialogue (homme-machine) tel que le [[pupitre]] (tactile ou avec clavier) dialoguant avec l'automate par réseau industriel propriétaire ou non et affichant des messages ou une représentation du procédé. D'autres, plus anciens, étaient constitués d'une simple [[Mémoire ROM|mémoire]] dont l'adresse d'entrée était constituée d'une concaténation de données d'entrée (senseurs, horloge) et de l'état précédent. Beaucoup moins onéreux, ils se prêtaient en revanche mal à une augmentation rapide du nombre d'états. Ils sont restés très utilisés pour des automatisations simples du style [[block-system]] ou ''feux de signalisation'' aux carrefours. Les programmes des API sont traités selon un cycle précis : acquisition de toutes les entrées (recopie dans une mémoire image) - traitement des données (calculs) - mise à jour des sorties. Le temps d'un cycle d'API varie selon la taille du programme, la complexité des calculs et de la puissance de l'API. Le temps de cycle est généralement de l'ordre d'une vingtaine de millisecondes et, est protégé par un [[chien de garde (informatique)|chien de garde]]. Les API se caractérisent par rapport aux ordinateurs par leur fiabilité et leur facilité de maintenance (bien que les ordinateurs industriels atteignent également un très bon degré de fiabilité). Les modules peuvent être changés très facilement et le redémarrage des API est très rapide. L'absence d'interface Homme-machine (IHM, HMI en anglais) pour visualiser l'action et le fonctionnement du programme sur la partie opérative font que les automates sont très souvent relié par une communication à un pupitre opérateur, une interface graphique (écran d'affichage ou écran tactile) ou un PC. Dans ce dernier cas, on parle de supervision (dans certains cas, le PC peut d'ailleurs être utilisé seul en regroupant les fonctions de l'API et de la supervision, grâce à l'utilisation d'un [[softplc]]). ===Exemples=== Un automate doté d'un programme simple peut maintenir un niveau de liquide dans un réservoir entre deux niveaux (un mini et un maxi), en ouvrant et fermant une [[vanne]]. Un arrangement légèrement plus complexe pourrait impliquer une [[balance (instrument)|balance]] sous le réservoir (comme entrée) et un contrôleur d'écoulement (comme résultat) permettant à l'eau de couler à un taux commandé. Un automatisme [[industriel]] typique pourrait commander plusieurs réservoirs dans un processus tel que le [[traitement des eaux usées]]. Chaque réservoir pourrait être observé pour une variété de conditions telles que : être ni trop plein ou ni trop vide, d'avoir le [[potentiel hydrogène|''p''H]] dans une certaine fourchette. ==Différents [[langages de programmation]]== Il existe différents langages de programmation définis par la [[CEI 61131-3]] : * [[Instruction List|IL]] ([[Instruction List]]), le langage List est très proche du [[langage assembleur]] on travaille au plus près du [[processeur]] en utilisant l'[[unité arithmétique et logique]] ses [[Registre (informatique)|registre]]s et ses [[Accumulateur (informatique)|accumulateur]]s * ST (Structured Text), Ce langage structuré ressemble au [[langage C]] utilisé pour les [[ordinateur]]s * [[Langage Ladder|LD]] ([[Langage Ladder|Ladder Diagram]]), le [[langage Ladder]] (échelle en anglais) ressemble aux [[Schéma électrique|schéma]]s électriques, permet de transformer rapidement un ancien programme fait de [[relais électromécanique]]s, cette façon de programmer permet une approche visuelle du problème (Le plus fréquent en industrie). On parle également de [[langage à contacts]] ou de [[schéma à contacts]] pour désigner le [[langage Ladder]]. * [[FBD]] ([[Function Block Diagram]]), le [[FBD]] se présente sous forme [[diagramme]] : suite de blocs, reliables entre eux, réalisant des opérations simples, voire très sophistiquées. Dans la programmation d’un automate, il est possible de choisir de programmer en [[Sequential function chart|SFC]], de façon très proche du [[grafcet]]. Derrière chaque action est associé un programme écrit en IL, ST, LD ou FBD. ==Ancien== Il est enfin possible de réaliser de petits automates au moyen d'une simple [[Mémoire ROM|mémoire morte]] ([[Mémoire ROM|ROM]]), ''sans'' [[microprocesseur]]. (Ces automates numériques sont des réseaux logiques câblés et non des automates programmables.) ===Entrées tout ou rien=== # Si l'on dispose de capteurs ne fournissant que des informations de type 1 ou 0 (« porte fermée » (ou ouverte) ou « évènement attendu », par exemple), la juxtaposition des bits correspondants peut être envoyée à la ROM comme une adresse. # La valeur de la donnée lue à cette adresse contiendra un 1 pour chaque effecteur à basculer ON (1) ou OFF (0) : relais, moteurs, électrovannes, signaux, etc. # Lorsque l'action de l'effecteur aura eu pour effet de changer l'un des signaux, le signal d'entrée pointera vers une adresse différente qui pourra par exemple entraîner l'arrêt de cet effecteur, ou le démarrage d'un autre, etc. * Détails dans [[Algèbre de Boole (logique)|algèbre de Boole]] === Entrées analogiques === On peut, si elles comportent peu de bits, les traiter par un ''convertisseur analogique-numérique''. Dans la pratique, il est rare qu'on ait besoin des bits de poids faible, et la seule chose qui sera prise en compte en entrée est la mise à 1 ou non d'un (ou plusieurs, par sécurité) bit(s) de poids fort. === Usage === Ces automates électroniques présentent des intérêts : * Les éléments qui les composent sont particulièrement robustes (absence de mécanique tournante pour le refroidissement et le stockage des données, matériaux renforcés) leur permettant de fonctionner dans des environnements particulièrement hostiles (poussière environnante, perturbations électromagnétiques, vibrations des supports, variations de température,...) * Ils possèdent des circuits électroniques optimisés pour s'interfacer avec les entrées et les sorties physiques du système, les envois et réceptions de signaux se font très rapidement avec l'environnement. Avec de plus une exécution séquentielle cyclique sans modification de mémoire, ils permettent d'assurer un temps d'exécution maximal, respectant un déterminisme temporel et logique, garantissant un temps réel effectif (le système réagit forcément dans le délai fixé). En contrepartie, ils sont beaucoup plus chers que des solutions [[informatique]]s classiques mais restent à l'heure actuelle les seules plateformes d'exécution considérées comme fiables en milieu industriel (avec les ordinateurs industriels). De plus ils nécessitent la maîtrise de langages spécifiques conformes à la norme ''[[CEI 61131-3]]'' qui reprennent dans leur forme la logique d'exécution interne de l'automate. Le prix est souvent dépendant de la mémoire dont on veut disposer pour réaliser un programme. On fabrique en général le contenu des ROM avec des programmes spécialisés dès que ce nombre d'états dépasse la dizaine. Une ROM de 2^N mots de N bits peut gérer 2^N états correspondants à p entrées et q sorties, avec p+q=N. Si certains de ces états ne peuvent être rencontrés dans la pratique, on peut simplifier le système d'autant avec un peu de circuiterie à bon marché (mécanisme de ''[[chip select]]''). Ils conviennent parfaitement pour des systèmes de sécurité ferroviaire, des machineries d'ascenseur, des commandes de chaînes de production ou tout autre type d'activité exigeant du réflexe plutôt que de la réflexion. Pour la gestion des feux de circulation d'un carrefour, ce sont des automates particuliers et totalement différents, qui sont utilisés et dédiés à cette tâche . Il s'agit de [[Contrôleur de carrefour à feux|contrôleurs de carrefours]], qui doivent respecter des normes de sécurités particulières au domaine. ==Différentes marques et modèles== * Allen Bradley - [[Rockwell Automation]] : Modèles ControlLogix, CompactLogix, FlexLogix, DriveLogix, GuardPLC, Micrologix, PLC5, SLC500 * SMC - [[filiale de Renault Automation]] : Modèles SMC 500, SMC50, SMC600 * [[Asea Brown Boveri|ABB]] : Modèles AC500 et AC31 * [[Advantech]] : Modèles ADAM-5000, ADAM-8000 * [[Beck IPC]] GmbH * [[Beckhoff]] : Gamme BC et BX, PLC virtuels (real time) sur PC industriels. * [[BoschRexroth]] * [[B&R]] : gammes X20 (automates conventionnels ou base PC, contrôleurs de bus, E/S décentralisées) et X67 (idem en version IP67), gamme X20 Safe (automates et E/S de sécurité) * [http://www.sourceforge.net/projects/classicladder ClassicLadder] : Automate logiciel pour de l'éducation disponible en tant que logiciel libre. * [[Crouzet (marque)]] : Modèle Millenium II+ et Millenium III (programmation par icons) * [[CoDeSys]] : outil de programmation IEC 61131 * [[Eckelmann]] * [[Elau]] (marque de [[Schneider Electric]]) : PacDrive MAx-4 * [[Endress+Hauser]] : Logiciels: ControlCare Application Designer, FieldCare... Modèles: SFC162, SFC174... * [[Festo]] * [[Foxboro]] * [[GE Fanuc]] : Modèles PACSystems RX3i et RX7i, 90-70, 90-30, VersaMax * [[Hima]] : Modèles A1, H41, H51 * [[Honeywell]] FSC * [[ISaGRAF]] : Logiciels IEC 61131 and IEC 61499 * [[Johnson Controls]] * [[Keba]] * [[Matsushita]] : Modèles FP-Serie FP0/FP-Sigma/FP-M/FP1/FP2/FP10SH * [[Mayr Systeme]] * [[Mitsubishi automation]] : Modèles MELSEC F1, F2, FX1N, FX2N, AxN, AxS, QnA, QnAS, System Q * [[Moeller]] : Modèles PS4, PS416, X-System * [[Omron]] : Modèles CPM1A, CPM2A, CPM2C, CQM1, C200H, CJ1, CS1, CP1L * [http://www.optimalog.com Optimalog] : Logiciels d'automatisme sur PC IEC 61131-3 ([http://www.optimalog.com/optimaplc_presentation.html Optima PLC], [http://www.optimalog.com/optimaview_presentation.html Optima View], [http://www.optimalog.com/optimatracks_presentation.html Optima Tracks], [http://www.optimalog.com/optimalarm_presentation.html Optim'Alarm]) * [[Panasonic]] : Modèles FP serie * [[Phoenix Contact]] : Modèles RFC450/430 ETH, ILC 350 ETH, ILC 200-Serie, S-MAX * [[Pro-Face]] : Automates tactiles Modèles: AGP 3000 FN; LT 3000 * [[Samson]] : Modèles TROVIS 5171 * [[Siemens AG|Siemens]] : Modèles SIMATIC S5 & S7 * [[Schneider Electric]] : April * [[SAIA-Burgess]] : Modèles PCDx * [[Sigmatek]] * [[Straton (marque)]] * [[Télémécanique]] [[Modicon]] (marques de [[Schneider Electric]]): Modèles Twido, M340, TSX Micro, Premium, Quantum, Atrium, Momentum, zelio. <!--Les gammes PB April, Telemecanique Serie1000, Serie7, Nano, Modicon 984 ne sont plus commercialisées à ce jour.--> <!--TSX37 = Reference commerciale TSX Micro ; TSX57 = Ref commerciale Premium--> * [[Vipa]] Automates :100V, 200V, 300S, 500S - Afficheurs : TOUCH PANEL, OP03, TD03 * [[Multiprog]] : Logiciels * [[WAGO]] : Automates série 750 ==Voir aussi== *[[Automaticien]] *[[Automatisme (organe)]] *[[Automatique]] *[[Grafcet]] *[[PLCopen]] *[[PROFINET]] *[[SERCOS III]] *[[Ethernet Powerlink]] *réseaux de terrain répandus **[[Fipio]] et [[Factory_Instrumentation_Protocol | Fip]] **[[Profibus]] **[[ModBus]] **[[ModBus Plus]] **[[CANopen]] **[[InterBus]] **[[DeviceNet]] **[[AS-i]] **[[LonWorks]] **[[Sercos]] {{Portail électricité et électronique}} [[Catégorie:Automatisme]] [[Catégorie:Composant électronique]] [[Catégorie:Système embarqué]] [[cs:Programovatelný logický automat]] [[da:Programmable logic controller]] [[de:Speicherprogrammierbare Steuerung]] [[en:Programmable logic controller]] [[es:Controlador lógico programable]] [[et:Programmeeritav loogikakontroller]] [[fi:Ohjelmoitava logiikka]] [[he:בקר לוגי ×ž×™×ª×›× ×ª]] [[id:Kontrol logika terprogram]] [[it:Programmable logic controller]] [[ja:プãƒã‚°ãƒ©ãƒžãƒ–ルãƒã‚¸ãƒƒã‚¯ã‚³ãƒ³ãƒˆãƒãƒ¼ãƒ©]] [[mk:PLC управувач]] [[nl:Programmable Logic Controller]] [[nn:PLS]] [[no:Programmerbar logisk styring]] [[pl:Sterownik PLC]] [[pt:Controlador lógico programável]] [[ru:Программируемый логичеÑкий контроллер]] [[sv:Programmerbart styrsystem]] [[tr:PLC]] [[vi:PLC]] [[zh:å¯ç¼–ç¨‹åºæŽ§åˆ¶å™¨]]</text> </revision> </page>