ARIES PLC110[M02]-MS4, HMI, OPC et SCADA, ou la quantité de thé à la camomille dont une personne a besoin. Partie 1

Bonjour, chers lecteurs de cet article. J'écris ceci sous forme de critique.

Un petit avertissementJe tiens à vous prévenir que si vous avez tout de suite compris de quoi nous parlons dans le titre, je vous conseille de changer le premier point (en fait, le noyau du PLC) par quelque chose d'une catégorie de prix un peu plus élevée.
Aucune économie d’argent ne vaut autant de nerfs, subjectivement.

Pour ceux qui n'ont pas peur d'un peu de cheveux gris et de l'amplitude d'un tic nerveux, je décrirai plus tard en détail comment ce miracle technologique a été créé. Cet article propose une brève analyse du projet avec un certain nombre de critiques.

Origine. Formulation du problème

En fait, je travaille dans un bureau d'études et nous testons des équipements d'automatisation pour les intégrer dans nos usines clé en main. Récemment, des équipements OWEN sont arrivés à l'entrepôt et il a été décidé d'en assembler un banc d'essai :

  • PLC110[M02]-MS4 (environnement d'exécution MasterSCADA 4D)
  • Panneau opérateur SP307
  • Module d'entrée de signal analogique universel МВ110-224.2А
  • Module d'entrée de signal de jauge de contrainte MV110-4TD
  • Module de mesure électrique MV110-220.3M

Structure du système a été choisi en différenciant les réseaux selon leur finalité :

  1. Modbus RTU basé sur RS-485 - communication entre l'automate et les appareils esclaves (modules, convertisseurs de fréquence, capteurs intelligents, panneau HMI SP307), maître du réseau automate.
  2. Modbus TCP basé sur Ethernet - Communication des différents automates entre eux et avec le serveur OPC
  3. Le serveur PC du système OPC et SCADA est simultanément une passerelle entre deux réseaux différents (Corporate LAN de l'entreprise et réseau de contrôleurs Modbus TCP (deux adaptateurs réseau avec routage des données utilisant les outils Windows standards).
  4. Le réseau local de l'entreprise dispose d'un accès Internet via un serveur proxy

La structure générale du système est présentée dans l'image ci-dessous :

ARIES PLC110[M02]-MS4, HMI, OPC et SCADA, ou la quantité de thé à la camomille dont une personne a besoin. Partie 1

Fonctionnalité intégrée

  • Collecte et redirection des données de l'automate vers le serveur OPC
  • Contrôle et surveillance locaux via le panneau IHM
  • Contrôle et surveillance depuis SCADA via le serveur OPC
  • Contrôle depuis n'importe quel PC du LAN de l'entreprise et via Internet à l'aide d'un client SCADA
  • Connexion de moniteurs OPC mobiles via LAN et Internet
  • Bien entendu, l'archivage et la génération de rapports

Il semble que rien n’ait été oublié. Il y a une description générale du système, et maintenant, en fait, sur le sujet (je décrirai les méthodes d'élimination dans des articles avec la mise en œuvre de chaque nœud) :

Difficultés rencontrées

1. Documentation automate

Un test bêta du PLC déclaré sur le noyau MasterSCADA 4D a été indiqué par le constructeur en 2012. Malgré une durée de vie aussi impressionnante du concept, tout ce que le développeur possède en 2019 est un manuel de programmation de 28 (!?) pages, sur lequel il y a un peu moins qu'aucune information utile, et les captures d'écran du manuel proviennent de MasterSCADA 3D, ce qui est assez drôle compte tenu du fait que l'interface a changé.

Un fil de discussion de 20 sujets est également activement soutenu par trois adhérents et un directeur commercial.

2. Architecture des modules automates

Il s’agit d’un sujet de discussion distinct. En bref : l'automate communique avec les modules en tant que dispositifs esclaves Modbus RTU, qui doivent d'abord être configurés séparément par l'utilitaire en connectant chacun à un PC via un convertisseur RS-485.

Les gars intelligents, bien sûr, savent probablement comment faire cela sans convertisseur via un API, en connectant séquentiellement les modules au réseau et en écrivant les registres nécessaires, mais cela demande de l'expérience et beaucoup de douleur.

Pour un développeur qui voit une telle architecture pour la première fois, ce n’est pas du tout convivial.
De plus, tous les modules analogiques aiment tomber en panne pour des raisons inconnues, emportant avec eux tout le réseau RS-485 de Terra Incognita, mais je veux aussi en parler séparément, toute une épopée, bien sûr. Le problème, d'ailleurs, date de 10 ans, le constructeur s'en moque "Il faut admettre que les modèles n'ont pas fonctionné pour nous", cependant, c'est la seule interface pour communiquer avec les modules, et les gens écrivent très sérieusement leurs implémentations Modbus RTU depuis longtemps.

Pendant ce temps, le thé à la camomille commençait à manquer... Le soleil se couchait

3. IDE MasterSCADA

Nous ne parlerons pas d’outils graphiques, je ne les ai pas testés de manière approfondie, mais je dirai tout de suite que je n’ai pas aimé.

Nous parlons de la mise en œuvre des échanges de données et des langages standards CEI :

Les entrées et sorties physiques du contrôleur ne sont pas des variables globales et ne sont accessibles depuis aucune partie du programme en écrivant un alias, par exemple « DI1 ». Vous devez le faire glisser dans chaque programme à l'aide de poignées, une variable locale y est formée, qui hérite ou transfère la valeur. Ceux. l'essence même de l'automate, à mon sens, est un peu perdue : l'appareil doit simplifier la programmation de la logique de fonctionnement des voies physiques au niveau "Si l'entrée DI1 est déclenchée, activez la sortie DO1"et ça ressemble à ça "Entrée DI1 - Variable LI1 - Variable LO1 - Sortie DO1", aussi, en raison de l'ignorance de ce principe de l'IDE, vous pouvez recevoir un délicieux avertissement "La conversion booléenne-booléenne est impossible" (très probablement, l'un d'eux est un pointeur, mais j'imagine que dans les éditeurs des créateurs, c'est plus harmonieux) .

Les bibliothèques des langages ST, FBD, SFC sont assez volumineuses et il existe un choix pour faciliter la programmation, cependant, ces composants ne sont pas des fonctions, mais des classes dans lesquelles les méthodes sont embarquées, et deuxièmement, la plupart n'ont pas d'aide pour décrire la fonctionnalité et les types de données. La persistance m'a conduit aux bibliothèques du noyau CodeSys, d'où toutes ces fonctions ont été extraites, leur aide m'a aidé.

4. Échange avec le panneau SP307

Un événement assez intéressant pour ceux qui n'ont nulle part où passer quelques jours.

Les tests GUI standard (HMI ou SCADA) pour moi consistent à faire 6 tests :

  1. Lecture d'un signal discret
  2. Enregistrer un signal discret
  3. Lire une valeur entière
  4. Écrire une valeur entière
  5. Lire une valeur réelle
  6. Écrire une vraie valeur

En conséquence, je dessine 6 composants primitifs sur l'écran et vérifie chacun d'eux dans l'ordre
L'échange est absolument le même qu'avec les modules, mais à partir d'un port PLC RS-232/485 séparé, et semble-t-il plus stable. Puisqu'il s'agit d'un esclave IHM, je lui ai écrit par changement, et l'ai lu en 500 ms polling, pour ne pas rater les actions de l'opérateur.

Les 4 premiers points ont été parfaitement réalisés, mais les points 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 mêmes, bien que tous les paramètres de sortie (Float, registre dimension 1, etc.) soient corrects. Ce serait mentir de dire que le précédent n’est pas décrit dans la documentation, cependant essayez de trouver lequel et où, c’est drôle de l’extérieur.

Après une recherche hystérique de tous les paramètres concernant les données elles-mêmes et leur envoi, Nous écrivons au support technique, la réponse est en moyenne de 5 à 6 jours calendaires, nous travaillons selon le script standard du support technique « Vérifiez que le courant est allumé - vérifiez la version du logiciel - veuillez attendre encore une semaine - Allons le découvrir nous-mêmes ».

À propos, cela a été décidé en installant une tique dans un endroit absolument inadéquat avec une signature absolument inadéquate.

Fonctionnalité d'écran L'entrée de signal analogique au format « Slider » n'est pas incluse, ne peut être saisi dans le champ de texte qu'à l'aide de chiffres. C'est tout simplement incroyable, soit nous écrivons nous-mêmes les boutons « ± » et le script, soit nous saisissons un numéro à partir du clavier et oublions le contrôle logiciel d'un lecteur.

Je ne vais pas surcharger l'article, je décrirai donc les problèmes avec le niveau supérieur dans la partie 2.

En résumé, Je tiens à souligner que j'avais suffisamment de liberté et beaucoup de temps pour résoudre ces problèmes qui, à première vue, semblent drôles, mais qui causent beaucoup de douleur à la victime. Dans des conditions de temps limitées, il est essentiel de faire face à de tels problèmes.

PS : Toutes les thèses présentées ici sont subjectives, et ne sont qu'une tentative d'avertir les non préparés, et de ne pas discriminer les constructeurs, je vous demande de prendre cet article dans cette perspective.

La deuxième partie est déjà là : Cliquez sur

Source: habr.com

Ajouter un commentaire