On nomme Automate Programmable Industriel (API) un dispositif électronique programmable destiné à la commande de processus industriels par un traitement séquentiel. Il envoie des ordres vers les préactionneurs (Partie Opérative ou PO côté actionneur) à partir de données d’entrées (capteurs)(Partie Commande ou PC côté capteur), de consignes et d’un programme informatique.
On nomme Automate Programmable Industriel, API (en anglais Programmable Logic Controller, PLC) un dispositif similaire à un ordinateur, utilisé pour automatiser des processus comme la commande des machines sur une chaîne de montage dans une usine. Là où les systèmes automatisés plus anciens emploieraient des centaines ou des milliers de relais et de cames, un simple automate suffit. On nomme automaticiens les programmeurs 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:
D'autres, plus anciens, étaient constitués d'une simple 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 a jour des sorties. Le temps d'un cycle d'API varient 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).
Les API se caractérisent par rapport aux ordinateurs par leur fiabilité et leur facilité de maintenance. Les modules peuvent etre 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.
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 électrique. Un arrangement légèrement plus complexe pourrait impliquer une 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é. Une application industrielle typique pourrait commander plusieurs réservoirs dans un processus tel que le traitement d'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 pH dans une certaine fourchette.
Il existe différents langages de programmation définis par la CEI 61131-3 :
Dans la programmation d’un automate, il est possible de choisir de programmer en SFC, de façon très proche du grafcet. Derrière chaque action est associé un programme écrit en IL, ST, LD ou FBD.
Il est enfin possible de réaliser de petits automates au moyen d'une simple mémoire morte (ROM), sans microprocesseur.
(Ces automates numériques sont des réseaux logiques câblés et non des automates programmables.)
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.
Ces automates électroniques présentent trois intérêts :
En contrepartie, la complexité de leur programmation (ainsi que leur coût) monte presque exponentiellement avec leur nombre d'états, et 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 feux de circulation automatique ou tout autre type d'activité exigeant du réflexe plutôt que de la réflexion.