-Programmation orientée objet pour les automates et la logique de schéma à contacts

Aug 24, 2026 Laisser un message

Dans le domaine de l'automatisation industrielle, la logique à relais reste l'un des langages de programmation les plus couramment utilisés ; cependant, pour les objets de contrôle plus complexes, la programmation orientée objet-est certainement une approche très efficace. Parlons d'abord de la programmation orientée objet- :


La programmation orientée objet-est un paradigme de programmation avancé dans les langages informatiques-de haut niveau. Cette philosophie de conception peut également être appliquée aux programmes API dans les systèmes de contrôle industriels. Bien que nous ne puissions pas implémenter bon nombre des excellentes fonctionnalités de la programmation orientée objet-telles que "l'héritage"-et que le langage PLC ne possède peut-être même pas les caractéristiques d'un langage de programmation orienté objet-, les concepts de base de la programmation orientée objet-sont des classes et des instances de classe (c'est-à-dire des objets). Il nous suffit d'utiliser ces concepts. En programmation informatique, nous devons abstraire et généraliser certaines entités afin de définir des classes. Dans les systèmes de contrôle industriels, cependant, les objets de contrôle tels que les moteurs et les vannes sont des catégories de contrôle clairement définies ; nous pouvons définir des classes pour eux directement sans avoir besoin d'abstraction. Les sections suivantes utiliseront le langage de programmation Step7 de Siemens et le langage de programmation Unity de Schneider pour expliquer la programmation orientée objet-pour les automates.


I. Modalités de mise en œuvre


La programmation orientée objet-dans Step7 est implémentée à l'aide de blocs fonctionnels (FB). Lorsqu'on aborde ce sujet, on pense souvent à la programmation modulaire proposée par Siemens. En effet, il s'agit du même concept, mais des termes tels que « modularisation », « blocs de données d'arrière-plan » et « arrière-plans multiples » introduits par Siemens ne permettent pas toujours aux utilisateurs de comprendre et d'appliquer clairement cette excellente philosophie de conception.


Cependant, si vous l'abordez du point de vue de la programmation orientée objet-, vous pouvez mieux comprendre ce modèle de conception. Un "bloc FB" est considéré comme une "classe" ; il peut être considéré comme un regroupement de code pour des objets de contrôle similaires. Par exemple, pour le variateur de fréquence -MM440, vous pouvez écrire un bloc FB nommé "MtrMM440". En programmation orientée objet-, cela s'appelle une "classe". Lorsque vous avez besoin de programmer le contrôle d'un moteur spécifique, vous pouvez lui attribuer un bloc de base de données en arrière-plan-dans une programmation orientée objet-, c'est ce qu'on appelle l'implémentation de la classe (c'est-à-dire la création d'une instance de la classe : un objet). Lorsque vous devez contrôler plusieurs moteurs, vous pouvez attribuer différents DB d'arrière-plan à ce bloc FB, ce qui équivaut à créer plusieurs instances de la classe.


Step7 propose un autre type de bloc de programme : le bloc FC. La programmation utilisant principalement des blocs FC est appelée programmation structurée dans les systèmes Siemens, qui peut être analogue à la programmation procédurale en programmation informatique-c'est-à-dire une programmation purement fonctionnelle-basée.


La programmation avec le logiciel Unity de Schneider permet une meilleure compréhension de la programmation orientée objet-. Ses définitions DFB incluent des paramètres d'entrée/sortie, des variables privées/publiques et une implémentation de code-qui sont précisément les éléments de base d'une "classe" dans la programmation orientée objet-informatique. Créer une instance d'une classe (un objet) est aussi simple que de créer une variable « booléenne » normale ; il vous suffit de définir une variable de cette "classe" dans "Blocs Fonctions".


Step7 et Unity prennent en charge les approches de programmation procédurales et orientées objet- ; la distinction entre ces deux approches est similaire à la différence entre la programmation en C et C++ dans les langages informatiques de haut-niveau.


Dans l'explication suivante, les FB de Step7 et les DFB dans Unity seront appelés « classes », tandis que les FB combinés avec des bases de données d'arrière-plan dans Step7 et les instances de DFB dans Unity seront appelés « objets ».


II. -Architecture de programmation orientée objet


La discussion ci-dessus couvre les détails de mise en œuvre, mais la philosophie de programmation repose sur l'architecture du programme. Le simple fait d'utiliser des méthodes orientées objet-dans une partie spécifique du code ne signifie pas que l'ensemble du programme est orienté objet-. Ce type de programmation nécessite une approche basée sur les aspects suivants :


1. Conception de circuits structurés.


Cette section se concentre principalement sur les lignes de production automatisées ; pour les machines-outils autonomes, une structure simplifiée peut être utilisée :


<1>Couche de ligne de production automatisée : Il s’agit du niveau le plus élevé, doté d’un automate principal qui contrôle les différentes zones situées en dessous.


<2>Couche projet : cette couche dispose d'un système de distribution d'énergie indépendant mais pas de PLC ; il se compose uniquement de modules distribués contrôlés par la ligne de production automatisée. Comme son nom l'indique, il possède un haut degré d'indépendance et peut être conçu et fabriqué dans le cadre d'un projet distinct. Lorsque la chaîne de production automatisée est relativement petite, cette couche peut être omise.


<3>Niveau de groupe fonctionnel : en fonction des exigences du processus, les segments d'équipement qui exécutent une fonction de processus spécifique sont regroupés dans un groupe fonctionnel. Ce groupe appartient au niveau Ingénierie ; lorsque le niveau Ingénierie est omis, il appartient au niveau Ligne de production automatisée. La programmation orientée objet-ne nécessite pas nécessairement l'utilisation de la structure ci-dessus, mais une structure électrique-bien conçue est plus propice à la programmation orientée objet-.


2. Toute la logique des objets de contrôle est implémentée dans des « classes »


Pour y parvenir, il est nécessaire d'analyser les informations liées à l'objet de contrôle. Par exemple, pour un moteur, les informations pertinentes suivantes doivent être prises en compte :


Informations d'entrée :


<1>,Informations sur la protection des circuits, telles que le disjoncteur du moteur et le relais thermique.


<2>,Informations de protection fonctionnelle, telles que les interrupteurs de fin de course pour les moteurs de mouvement, les pressostats pour les ventilateurs et les interrupteurs de niveau d'huile pour les pompes à huile.


<3>Conditions de démarrage et d'arrêt : bien que la protection des circuits et la protection fonctionnelle mentionnées ci-dessus puissent entraîner l'arrêt du moteur et qu'une réinitialisation puisse déclencher un redémarrage, les conditions mentionnées ici concernent les conditions de démarrage et d'arrêt pendant le fonctionnement normal-telles que les étapes d'un processus de contrôle séquentiel.


<4>Modes de contrôle : tels que manuel et automatique.


<5>Réinitialisation des défauts : redémarrage du système via des signaux de réinitialisation.


Informations de sortie :


<1>,Sorties de contrôle, telles que le contacteur principal contrôlant le moteur.


<2>, Sorties d'informations sur l'état


<3>,Sorties de défaut


Informations sur le stockage de l'état :


Variables intermédiaires utilisées pour l'implémentation du code, ainsi que variables d'état lisibles par l'IHM. Intégrez toutes les informations ci-dessus dans une seule classe et standardisez autant que possible les paramètres de classe. Cependant, il existe encore quelques différences par rapport aux langages de programmation de haut-niveau. Pour l'étape 7, la norme à suivre est la suivante : la structure du programme est implémentée à l'aide de FC et le contrôle des objets est implémenté à l'aide de FB, comme illustré par le cadre structurel suivant (dont la structure électrique est basée sur l'introduction ci-dessus) : Il s'agit simplement d'une architecture de programme API approximative ; une bonne architecture doit être plus complète et scientifique.


3. Planifiez soigneusement les structures de données


La définition des structures de données est cruciale et vous devez vous efforcer d'unifier ces structures autant que possible sans vous soucier de l'espace de stockage ; La mémoire API moderne est suffisante pour accueillir de grandes quantités de données. Il convient de noter qu'à l'étape 7, vous devez éviter de définir des types définis par l'utilisateur (UDT) en dehors des classes autant que possible ; définissez-les plutôt dans les classes. Bien que cela puisse entraîner des définitions dupliquées de la même structure dans différentes classes, cela renforce l'indépendance des classes.


Dans les sections suivantes, nous comparerons ces deux approches de programmation :


Avantages de la programmation orientée objet-Par rapport à la logique à relais, la programmation orientée objet-offre les avantages suivants :


• Portabilité du code et facilité de réutilisation ;

• Facilité d'utilisation de fonctions mathématiques, de boucles et d'autres constructions ;

• La programmation orientée objet-est enseignée dans pratiquement tous les cours de programmation informatique ;

• Le code peut s'exécuter sur diverses plates-formes matérielles.


Pour maîtriser la programmation orientée objet-, vous devez d'abord comprendre le concept d'objets et comment les utiliser. Une fois qu’un objet ou une classe est écrit, il peut facilement être réutilisé via plusieurs appels. Par exemple, créez un objet pour contrôler un moteur, qui gère toutes les entrées, sorties et défauts. Si nécessaire, plusieurs moteurs peuvent être contrôlés en instanciant cet objet de contrôle unique plusieurs fois. C'est ce qu'on appelle l'instanciation à la demande. Lorsque plusieurs moteurs doivent être contrôlés, cet objet unique peut être utilisé à plusieurs reprises. Il est appelé en cas de besoin et les instances sont créées au fur et à mesure de leur utilisation.


Chaque instance de chaque moteur possède ses propres caractéristiques, telles que l'arrêt du moteur, le fonctionnement du moteur, la vitesse du moteur et la surcharge du moteur. La plupart du travail de programmation est terminé lors de la création initiale de l'objet. Il s’agit d’une façon de penser différente de la logique à relais, et elle est plus puissante car une fois qu’un objet est construit, il est facile à utiliser et à réutiliser. La programmation orientée objet- facilite l'exécution de fonctions mathématiques complexes, de calculs de boucles, de tableaux et de sous-programmes imbriqués. Pratiquement tous les cours de programmation informatique-que ce soit au lycée, à l'université ou dans des didacticiels en ligne-enseignent ce concept. Le code créé est portable et peut s'exécuter sur diverses plates-formes matérielles.


"La logique à relais suit le format des schémas à relais électriques utilisés dans les systèmes de contrôle de relais, et la plupart des gens peuvent rapidement l'apprendre et la maîtriser."


Cependant, par rapport à la logique à relais, la programmation orientée objet-présente les inconvénients suivants :


• Coût plus élevé ;

• Une courbe d'apprentissage plus abrupte ;

• Le dépannage n'est pas particulièrement facile pour le personnel de maintenance ;

• La compilation est généralement requise avant de télécharger le code source sur le processeur.


Par rapport à la logique à relais, la programmation orientée objet-exige souvent plus de mémoire et une plus grande puissance de traitement, ce qui entraîne des coûts plus élevés. L'apprentissage d'un langage de programmation orienté objet-peut prendre plus de temps. Un enseignement en classe est probablement nécessaire, et la maîtrise des concepts de base nécessite beaucoup de temps, de pratique, de tests et d'application. Les programmeurs doivent fréquemment étudier la programmation orientée objet-pour utiliser des traceurs pour suivre le code ou des débogueurs pour déboguer la logique. Avec ce type de programmation de haut niveau-, il peut être difficile de mettre en œuvre des fonctionnalités de surveillance en ligne-en temps réel.


Avant que le code source puisse être téléchargé sur le contrôleur, il doit être compilé. Généralement, le code source n'est pas stocké dans la mémoire du processeur. Cela signifie qu'il faut veiller à sauvegarder le code source, car le code compilé n'est généralement pas modifiable. Avec la programmation orientée objet-, les fichiers de bibliothèque doivent être liés à d'autres ressources utilisées pendant le processus de compilation. Sans une compréhension des liens et des ressources, il sera difficile de faire fonctionner le programme.


Avantages de la logique à relais :


La logique à relais est une méthode de codage simple et-auto-documentée-certains se demandent même si elle peut être considérée comme un langage de programmation. Il suit le format des schémas électriques en échelle utilisés dans les systèmes de contrôle de relais, et la plupart des gens peuvent rapidement l'apprendre et le maîtriser. C'est le seul langage de programmation largement utilisé dans le domaine de l'automatisation des machines depuis des décennies, et il restera l'un des principaux langages de programmation du secteur de l'automatisation dans un avenir prévisible.


Au fil du temps, à mesure que des personnes d'horizons et de domaines divers sont entrées dans l'industrie, divers langages de programmation ont été introduits dans la boîte à outils d'automatisation industrielle. Ceux-ci incluent la programmation de blocs fonctionnels, le texte structuré, la programmation d'état et les diagrammes de fonctions séquentielles. Ces quatre langages de programmation, ainsi que la logique à relais, constituent les langages de programmation standard définis par la norme CEI 61131-3 de la Commission électrotechnique internationale (CEI).


La logique derrière la norme CEI 61131 est que si chaque fournisseur adhère à cette norme, alors-au moins dans une certaine mesure-une personne n'aurait besoin que d'apprendre ces cinq langages de programmation pour basculer facilement entre les plates-formes proposées par différents fournisseurs. Cependant, ce n’est pas le cas.

 

La logique à relais de base (telle que l'utilisation de contacts et de bobines de relais) fonctionne de la même manière ; cependant, lors de la programmation, il faut apprendre la syntaxe et l'expérience utilisateur de chaque fournisseur, ainsi que les spécificités de l'utilisation de la plateforme de programmation. Malgré le manque de standardisation, la logique à relais offre les avantages suivants par rapport à la programmation orientée objet{{1} :


• Il est bien adapté-au contrôle des machines et des processus ;

• Il est plus facile à comprendre car il est intrinsèquement auto-documenté ;

• Il facilite le dépannage du système contrôlé ;

• Il est facile de déboguer ;

• Le code source peut généralement être stocké dans le processeur.


La logique à relais est bien adaptée-au contrôle des machines et des processus, en particulier pour les systèmes d'automatisation dotés d'un grand nombre d'entrées et de sorties (E/S) discrètes. Au fil des années, la logique à relais a également été continuellement améliorée pour gérer les E/S analogiques, la rendant ainsi plus adaptée à de nombreuses applications de contrôle de processus.


Par rapport aux applications de contrôle de machines, les applications de processus comportent souvent une proportion plus élevée d'E/S analogiques.


La logique à relais étant plus facile à utiliser que la programmation orientée objet-, de nombreux techniciens et ingénieurs qualifiés peuvent l'apprendre rapidement. La logique est hautement systématique et organisée, et sa nature auto-documentée-la rend plus facile à comprendre et à maîtriser. Chaque ligne de code doit être évaluée comme vraie avant qu'un appareil puisse être activé. S'il y a cinq moteurs à contrôler, au moins cinq lignes de code sont nécessaires, ce qui simplifie grandement le processus.


"Le code source et les descripteurs de la logique à relais sont généralement stockés dans le contrôleur, ce qui élimine le besoin d'accéder au code source-, ce qui supprime la frustration que les programmeurs rencontrent souvent lorsqu'ils tentent de comprendre les programmes compilés."

 

Pour les ingénieurs électriciens et le personnel de maintenance, la logique à relais est très intuitive. Bien que la logique à relais nécessite une façon de penser différente de celle de la programmation orientée objet-, elle peut être maîtrisée rapidement avec quelques études, et il faut moins de temps pour comprendre le code écrit par d'autres. Il est très clair quand une déclaration logique est vraie et quand elle est fausse. Même ceux qui ont une expérience limitée en programmation peuvent facilement comprendre des concepts tels que l'activation/désactivation de la bobine, les variables de comparaison et les fonctions mathématiques courantes.

81e77660-9f31-11ed-bfe3-dac502259ad0.jpg

 

Il est simple et facile à utiliser, rationalisant le dépannage et le débogage. Lors de la surveillance de la logique, il est facile de comprendre les conditions de fonctionnement actuelles. Aucun diplôme en logiciel ni aucune compétence avancée en programmation n'est requis. Grâce à la logique à relais, le personnel de maintenance et d'ingénierie peut facilement suivre le processus et comprendre ce qui se passe. La logique en échelle peut être considérée comme une table de vérité : si la logique de gauche est vraie, la logique de droite est activée.


Le code source et les descripteurs de la logique à relais sont généralement stockés dans le contrôleur. Cela élimine la frustration que les programmeurs rencontrent souvent lorsqu'ils tentent de comprendre le code compilé sans accès au code source-un problème également courant dans la programmation orientée objet-.


Cependant, par rapport à la programmation orientée objet-, la logique à relais présente également les inconvénients suivants :


• Les programmeurs informatiques et les professionnels de l'informatique ne connaissent pas la logique à relais ;

• Il est difficile d'exécuter des fonctions mathématiques, de traitement de texte et de traitement de données ;

• Cela dépend du temps d'analyse ;

• Son exécution nécessite du matériel spécialisé, tel qu'un automate programmable (PLC).


La logique à relais est un langage symbolique avec lequel les programmeurs informatiques et les professionnels de l'informatique ne sont pas familiers, car ils ne l'apprennent pas à l'école. La gestion des fonctions mathématiques, des chaînes de texte et des données en logique à relais peut s'avérer difficile, principalement parce que la logique en échelle n'a pas été conçue à l'origine pour gérer ces fonctions.


La logique à relais dépend également du temps d'analyse. Les programmes plus volumineux nécessitent plus de temps pour analyser et traiter la logique. Lors de l'exécution de la logique à relais, le système lit les entrées, analyse la logique, met à jour les tables de données et les sorties, effectue la communication, puis répète le cycle. Des fonctionnalités telles que des interruptions et d'autres techniques de programmation peuvent être mises en œuvre pour garantir une exécution plus rapide de certaines logiques.


Bien que les automates logiciels-configurés avec une logique à relais puissent fonctionner sur un PC, le matériel (tel que l'automate) doit généralement être compatible avec le logiciel de programmation, et il est préférable d'acheter les deux auprès du même fournisseur. Cela garantit la compatibilité, mais ce n’est pas particulièrement pratique si vous souhaitez changer de fournisseur.

En plus de comparer les avantages et les inconvénients de la logique à relais et de la programmation orientée objet-, les utilisateurs doivent également évaluer la manière dont ces langages de programmation seront utilisés dans l'environnement dans lequel ils doivent être déployés. Si une usine ou une installation a déjà standardisé la logique à relais, son remplacement par une programmation orientée objet - n'est pas encouragée, même si cette dernière est mieux adaptée à l'application. À mesure que l'utilisation de la programmation orientée objet- continue de croître, elle devrait coexister avec la logique à relais pendant des décennies. Un-professionnel de l'automatisation avant-gardiste serait bien avisé-de maîtriser les deux langages.

Envoyez demande

whatsapp

Téléphone

Messagerie

Enquête