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

Bonjour, chers lecteurs de cet article. J'écris ceci dans un format de revue

Petit avertissement
Je tiens à vous avertir que si vous avez immédiatement compris de quoi parlait le discours dans le titre, je vous conseille de changer le premier élément (en fait, le cœur de l'API) en quelque chose de la catégorie de prix un cran plus haut.
Aucune économie d'argent ne coûte autant de nerfs, subjectivement.

Pour ceux qui n'ont pas peur d'un petit cheveu gris et de l'amplitude d'une tique nerveuse, je décrirai plus tard comment ce miracle technologique a été créé. Dans cet article, une brève analyse du projet avec un certain degré de critique.

Origine. Énoncé du problème


En effet, je travaille dans un bureau d'études, et nous testons des équipements d'automatisation pour intégration dans nos usines clé en main. Récemment, du matériel Aries a été reçu à 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 universel de signaux analogiques MV110-224.2A
  • Module d'entrée de signaux de jauges de contrainte MV110-4TD
  • Module électrique MV110-220.3M

La structure du système a été choisie avec la délimitation des réseaux en fonction de leur finalité:

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

La structure du système en général est illustrée dans l'image ci-dessous:



La fonctionnalité incorporée


  • Collecte et redirection de données de l'API vers le serveur OPC
  • Gestion et surveillance locales via le panneau IHM
  • Gestion et surveillance depuis SCADA via le serveur OPC
  • Gestion depuis n'importe quel PC depuis le LAN de l'entreprise et via Internet à l'aide d'un client SCADA
  • Connexion de moniteurs OPC mobiles via LAN et Internet
  • Bien sûr, l'archivage et la génération de rapports

Il semble qu'ils n'aient rien raté. Il y a une description générale du système, et maintenant, en fait, sur le sujet (je décrirai les solutions dans les articles avec l'implémentation de chaque nœud):

Des difficultés


1. Documentation API

Le test bêta de l'API déclaré sur le cœur MasterSCADA 4D a été désigné par le fabricant en 2012. Malgré une période aussi impressionnante de l'existence du concept, tout ce que le développeur a en 2019 est un guide de programmation en 28 (!?) Pages, sur lequel il y a un peu moins d'informations utiles, et des captures d'écran dans le manuel de MasterSCADA 3D, qui est assez drôle avec étant donné que l'interface a changé.

Également activement soutenu par trois adeptes et un directeur des ventes est un fil de discussion sur 20 sujets.

2. Architecture des modules PLC

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

Les oncles intelligents, bien sûr, savent probablement comment faire cela sans convertisseur via l'automate, connectant séquentiellement les modules au réseau et écrivant les registres nécessaires, mais cela vient avec de l'expérience et une énorme douleur.

Pour un développeur qui a vu une telle architecture pour la première fois, ce n'est pas du tout convivial.
De plus, tous les modules analogiques aiment échouer pour des raisons inconnues, emportant tout le réseau RS-485 dans Terra Incognita, mais je veux aussi en parler séparément, toute une épopée, bien sûr. Soit dit en passant, le problème remonte à environ 10 ans, le fabricant se moque de "Nous devons admettre que les modèles ont échoué" , mais c'est la seule interface pour communiquer avec les modules, et les gens, très sérieusement, écrivent depuis longtemps leurs implémentations Modbus RTU.

Pendant ce temps, le thé à la camomille s'épuisait ... Le soleil se couchait au coucher du soleil

3. IDE MasterSCADA

Nous ne parlerons pas d'outils graphiques, je n'ai pas beaucoup testé, mais je dirai tout de suite que je n'aimais pas ça.

Nous parlons de la mise en œuvre de l'échange de données et des langages de la norme CEI:

Les entrées physiques des broches du contrôleur ne sont pas des variables globales et ne sont pas accessibles à partir de n'importe quelle partie du programme en écrivant un alias, par exemple, "DI1". Dans chaque programme, vous devez le faire glisser avec des poignées, une variable locale y est formée, qui hérite ou transmet la valeur. C'est-à-dire l'essence même de l'automate, selon moi, est un peu perdue: l'appareil devrait simplifier la programmation de la logique des canaux physiques au niveau "Si l'entrée DI1 a fonctionné - Activer la sortie DO1" , et ça ressemble à ceci "Entrée DI1 - Variable LI1 - Variable LO1-Sortie DO1" , aussi en raison de l'ignorance de ce principe IDE, on peut saisir le ravissant avertissement «la transformation booléenne-booléenne est impossible» (très probablement, celle-ci est un pointeur, mais je la présente aux créateurs comme plus harmonieuse).

Les bibliothèques de langages ST, FBD, SFC sont assez volumineuses et il y a un choix pour la commodité de la programmation, cependant, ces composants ne sont pas des fonctions, mais des classes, dans lesquelles les méthodes sont cousues, et deuxièmement, pour la plupart, il n'y a aucune aide avec une description de la fonctionnalité et des types de données. La persévérance m'a conduit aux bibliothèques de base CodeSys, d'où toutes ces fonctions ont été prises, leur aide a aidé.

4. Échangez avec le panneau SP307

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

Le test GUI standard (IHM ou SCADA) consiste pour moi à faire 6 tests:

  1. Lire un signal discret
  2. Enregistrement de signal discret
  3. Lire la valeur entière
  4. Écriture d'une valeur entière
  5. Lecture de la valeur réelle
  6. Enregistrement d'une valeur matérielle

En conséquence, je dessine 6 composants primitifs sur l'écran et chaque vérification afin
L'échange est exactement le même qu'avec les modules, mais à partir d'un port API RS-232/485 séparé, et, semble-t-il, est plus stable. Étant donné que l'IHM est un esclave, je lui ai écrit au sujet du changement et je l'ai lu avec une interrogation de 500 ms afin de ne pas manquer les actions de l'opérateur.

Les 4 premiers points étaient excellents, mais 5 et 6 ont causé des problèmes.

Nous envoyons des données de type Single Float, sur l'écran nous les affichons et nous voyons que les données ne sont pas les mêmes, bien que tous les paramètres de sortie (Float, registre de dimension 1, etc.) soient corrects. Il serait faux de dire que le précédent n'est pas décrit dans la documentation, cependant, essayez de trouver où et où, c'est drôle de côté.

Après une énumération hystérique de tous les paramètres relatifs aux données elles-mêmes et à leur envoi, nous écrivons au support technique, la réponse est en moyenne 5-6 jours calendaires, nous travaillons selon le script de support technique standard "Vérifiez que l'alimentation est allumée - vérifiez la version du logiciel - attendez, veuillez patienter une semaine de plus vous-même . "

Au fait, j'ai décidé d'installer une coche dans un endroit absolument inadéquat avec une signature absolument inadéquate.

La fonctionnalité d'écran n'inclut pas l'entrée d'un signal analogique au format «Runner» , elle ne peut être saisie que dans le champ de texte en chiffres. C'est tout simplement incroyable, soit nous écrivons les boutons "±" et le script nous-mêmes, soit nous saisissons un nombre à partir du clavier, nous oublions le contrôle progressif de n'importe quel lecteur.

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

En résumé, je tiens à noter 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 souffrance à la victime. Dans des conditions de temps limité, ces problèmes sont critiques.

PS: Toutes les thèses présentées ici sont subjectives, et ne sont qu'une tentative pour avertir les non préparés, et pour ne pas discriminer contre les fabricants, veuillez traiter cet article de ce point de vue.

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

Source: https://habr.com/ru/post/fr469407/


All Articles