Bonjour, chers lecteurs de cet article. J'écris cela sous forme de revue.
Un petit avertissement.Je tiens à vous prévenir que si vous avez immédiatement compris de quoi il s'agit dans le titre, je vous conseille de remplacer le premier point (en fait, le noyau PLC) par quelque chose dans une tranche de prix supérieure.
Aucune économie d'argent ne vaut un tel niveau de stress, subjectivement parlant.
Pour ceux que quelques cheveux gris et une légère amplitude du tic nerveux ne dérangent pas, je décrirai plus tard en détails comment ce miracle technologique a été créé. Cet article propose une analyse succincte du projet avec une certaine dose de critique.
Origine. Énoncé du problème.
En fait, je travaille dans un bureau d'études, et nous testons du matériel d'automatisation pour l'intégration dans nos usines clés en main. Récemment, nous avons reçu du matériel de la marque OVEN et nous avons décidé d'assembler un banc d'essai à partir de celui-ci :
- PLC110[M02]-MS4 (environnement d'exécution MasterSCADA 4D).
- Panneau opérateur SP307.
- Module universel d'entrée de signaux analogiques MV110-224.2A.
- Module d'entrée des signaux des capteurs de tension MV110-4TD.
- Module d'électromesure MV110-220.3M.
Structure du système. a été choisie avec une séparation des réseaux par destination :
- Modbus RTU sur la base de RS-485 — communication entre PLC et appareils esclaves (modules, variateurs, capteurs intelligents, panneau HMI SP307), PLC-maître du réseau.
- Modbus TCP sur la base d'Ethernet — Communication entre différents PLC entre eux et avec le serveur OPC.
- PC-serveur OPC et les systèmes SCADA constituent simultanément une passerelle entre deux réseaux différents (LAN d'entreprise et réseau Modbus TCP des contrôleurs (deux adaptateurs réseau avec routage des données par des moyens standards de Windows).
- Le LAN d'entreprise a un accès à Internet via un serveur proxy.
La structure du système est présentée de manière générale dans l'image ci-dessous :
![OVEN PLC110[M02]-MS4, HMI, OPC et SCADA, ou combien une personne a besoin de thé à la camomille. Partie 1](/wp-content/uploads/2019/10/18cb2554a35fbb11111a78572d0f2bf9.png)
Fonctionnalités intégrées.
- Collecte et redirection des données du PLC vers le serveur OPC.
- Gestion et surveillance locales via le panneau HMI.
- Gestion et surveillance depuis SCADA via le serveur OPC.
- Gestion depuis n'importe quel PC dans le LAN de l'entreprise et via Internet avec le client SCADA.
- Connexion des moniteurs OPC mobiles via LAN et Internet.
- Bien sûr, archivage et génération de rapports.
Il semblerait que nous n'ayons rien oublié. Nous avons maintenant une description générale du système, et maintenant, passons au sujet principal (je décrirai les méthodes de résolution dans des articles concernant la mise en œuvre de chaque module) :
Difficultés rencontrées.
1. Documentation pour le PLC.
Les tests bêta du PLC annoncé basé sur le noyau MasterSCADA 4D ont été signalés par le fabricant en 2012. Malgré une telle longévité du concept, tout ce que le développeur a en 2019 est un manuel de programmation de 28 (!) pages, avec à peine d'informations utiles, en plus de captures d'écran du manuel de MasterSCADA 3D, ce qui est plutôt amusant étant donné que l'interface a changé.
Une branche du forum avec 20 sujets est également activement soutenue par trois adeptes et un responsable des ventes.
2. Architecture des modules PLC
C'est un sujet à part entière. En résumé : le PLC communique avec les modules comme s'ils étaient des dispositifs esclaves Modbus RTU, qui doivent être préalablement configurés à l'aide d'un utilitaire en connectant chaque module à l'ordinateur via un convertisseur RS-485.
Les experts, bien sûr, savent probablement le faire sans convertisseur via le PLC, en reliant les modules en série dans le réseau et en écrivant les registres nécessaires, mais cela vient avec l'expérience et beaucoup de douleurs.
Pour un développeur découvrant une telle architecture pour la première fois, ce n'est pas très convivial.
Tous les modules analogiques ont également tendance à tomber en panne pour des raisons inconnues, emportant avec eux tout le réseau RS-485 dans Terra Incognita, mais je souhaite aussi en parler séparément, c'est toute une épopée. À propos, ce problème existe depuis environ 10 ans, le fabricant plaisante à ce sujet. «Il faut reconnaître que les modèles ne nous ont pas réussi», cependant, c'est la seule interface pour communiquer avec les modules, et des gens, très sérieusement, ont longtemps écrit leurs propres réalisations Modbus RTU.
Entre-temps, la camomille se terminait... Le soleil se couchait à l'horizon
3. IDE MasterSCADA
Nous ne parlerons pas des outils graphiques, je ne les ai pas beaucoup testés, mais je dirai tout de suite que cela ne m'a pas plu.
Parlons de la mise en œuvre de l'échange de données et des langages de la norme IEC :
Les entrées et sorties physiques du contrôleur ne sont pas des variables globales et ne peuvent pas être appelées depuis n'importe quelle partie du programme en écrivant un alias, par exemple «DI1». Chaque programme doit être progressivement intégré manuellement, car une variable locale y est formée, qui hérite ou transmet une valeur. C’est-à-dire que l'entité même du PLC, dans ma vision, est un peu perdue : l'appareil devrait simplifier la programmation de la logique de fonctionnement des canaux physiques au niveau «Si l'entrée DI1 a fonctionné - Allumer la sortie DO1», et cela se présente ainsi «Entrée DI1 — Variable LI1 — Variable LO1-Sortie DO1», également par ignorance de ce principe, vous pourriez recevoir ce message d'erreur étonnant «La conversion Booléen-Booléen est impossible» (probablement, l'un d'eux est un pointeur, mais je l'imagine en version des créateurs, c'est ainsi plus harmonieux).
Les bibliothèques des langages ST, FBD, SFC sont assez volumineuses et il y a le choix pour faciliter la programmation, cependant ces composants ne sont pas des fonctions, mais des classes, à l'intérieur desquelles des méthodes sont intégrées, et pour beaucoup d'entre elles, l'aide avec la description des fonctionnalités et des types de données est absente. Mon insistance m'a conduit dans les bibliothèques du noyau CodeSys, d'où toutes ces fonctions ont été tirées, leur aide a été utile.
4. Échange avec le panneau SP307
Un événement assez intéressant pour ceux qui n'ont nulle part où passer quelques jours.
Le test standard du GUI (HMI ou SCADA) pour moi consiste à effectuer 6 essais :
- Lecture d'un signal discret
- Écriture d'un signal discret
- Lecture d'une valeur entière
- Écriture d'une valeur entière
- Lecture d'une valeur réelle
- Écriture d'une valeur réelle
Par conséquent, je dessine à l'écran 6 composants primitifs et je vérifie chacun d'eux dans l'ordre
L'échange est exactement le même qu'avec les modules, mais à partir d'un port PLC RS-232/485, et semble plus stable. Étant donné que HMI esclave, j'écrivais en lui lors des modifications, et je lisais par polling à 500 ms, afin de ne pas manquer les actions de l'opérateur.
Les 4 premiers points ont été réalisés à la perfection, mais les 5 et 6 ont posé problème.
Nous envoyons des données de type Single Float, les affichons à l'écran et constatons que les données ne sont pas les bonnes, même si tous les paramètres d'affichage (Float, dimension 1 registre et autres) sont correctement définis. Il serait faux de dire que le précédent n'est pas décrit dans la documentation, cependant, essayez de trouver où et dans quel contexte, c'est amusant de ce point de vue.
Après un passage frénétique en revue de tous les paramètres liés aux données elles-mêmes et à leur envoi, nous écrivons au support technique, la réponse prend en moyenne 5-6 jours calendaires, nous suivons le script standard du support technique «Vérifiez que l'alimentation est allumée — vérifiez la version du logiciel — merci de patienter encore une semaine — nous allons nous en occuper nous-mêmes».
Pour info, le problème a été résolu par l'activation d'une case à cocher dans un endroit totalement inapproprié avec une étiquette totalement inadaptée.
La fonctionnalité de l'écran ne prévoit pas l'entrée d'un signal analogique au format «Glissière», on ne peut entrer que des chiffres dans le champ de texte. C'est tout simplement incroyable, soit on utilise les boutons «±» et un script par soi-même, soit on saisit le chiffre au clavier, en oubliant la gestion douce d'un certain moteur.
Je ne vais pas trop surcharger l'article, donc je vais décrire les problèmes du niveau supérieur dans la partie 2.
En résumé, je tiens à souligner que j'ai eu suffisamment de liberté et beaucoup de temps pour résoudre ces problèmes, qui, à première vue, semblent ridicules, mais causent beaucoup de douleur au concerné. Dans des conditions de délais serrés, faire face à de tels problèmes est critique.
P.S. : Tous les points évoqués ici sont subjectifs et ne visent qu'à prévenir les non préparés, et non à discriminer les fabricants, je vous prie de considérer cet article sous cet angle.
La deuxième partie est déjà ici :
Source : habr.com
