Animation de schéma dans SCADA

Lors de la création d'IHM, la tâche consiste souvent à construire une cartographie d'un circuit complexe d'éléments liés. Il peut s'agir de schémas de pipelines ramifiés, d'électricité, etc.

Vous pouvez, bien entendu, vous limiter à afficher les éléments clés (vannes d'arrêt, disjoncteurs), mais plus le circuit est grand, plus il est difficile de composer une image complète et d'assurer les actions correctes de l'opérateur.

image

Cet article décrit la coloration des éléments de tels schémas, décrit la méthode de solution pour Simatic WinCC v7 et son implémentation dans Simargl SCADA. Si vous n'avez pas à travailler avec WinCC, vous pouvez regarder à la fin de l'article - il y a une vidéo curieuse.

Pour une représentation plus visuelle des raisons pour lesquelles tout cela est nécessaire, nous prenons un petit schéma simple.

image

Imaginez maintenant ce qui se passera s'il y a une opération. Combien de temps faut-il pour suivre le cheminement d'un produit dans un système de pipeline? Nous nous armons d'un chronomètre.

Prêt? Aller!
image


Selon mes observations, cela prend 10 à 15 secondes.

Et rappelons maintenant que (soudainement) les opérations peuvent être plusieurs en même temps. Cela complique «légèrement» la tâche. Prêt à vous tester à nouveau?

Aller!
image


Traduire dans une langue décente les mots de mon collègue: «C'est une opportunité! Pendant que vous suivez le deuxième itinéraire, vous oublierez beaucoup le premier. Quel plan merveilleux et pratique! »

Mais le schéma est vraiment simple - il n'a même pas de lectures d'instruments et de signatures diverses (un bonjour spécial aux fans pour dessiner des tuyaux "tridimensionnels"). En pratique, les choses peuvent être pires. J'ai rencontré des régimes beaucoup plus importants (plus de 400 vannes).

Que peut faire un opérateur sur une telle imitation? Dans le meilleur des cas, ouvrez lentement les vannes le long du parcours et espérez qu'il ne s'est pas trompé. Mais que se passe-t-il si la commutation doit être effectuée rapidement et que le coût de l'erreur est élevé?

Le moyen de sortir de cette situation est évident - il est nécessaire de colorer les lignes le long de l'itinéraire, et il est conseillé de le faire avant l'action de contrôle. Curieusement, je n'ai pas vu de solution prête à l'emploi, même avec des packages SCADA coûteux. Une tentative de teinter manuellement pour chaque ligne menace de retarder la configuration presque à l'infini.

Solution pour WinCC v7


J'ai résolu un tel problème basé sur WinCC v7. Malheureusement, aux termes du contrat, je n'ai pas le droit de proposer une solution toute faite, mais je peux décrire une solution possible. Tout à coup, quelqu'un sera utile.

Je noterai tout de suite qu’il s’agira de la famille de produits WinCC version 7, car il est possible d’utiliser VBA. Il faut avertir, tout ce qui est décrit ci-dessous est plus probablement un hack, est utilisé par désespoir et ne convient pas dans tous les cas.

Je poursuivrai la discussion en termes de tuyaux et de vannes, bien que, bien sûr, tout sera le même pour les schémas d'alimentation.

Divisez mentalement le schéma en sections de sorte que de chaque côté il n'y ait qu'une seule entrée / sortie. Ceux. si une sortie est coupée dans le tuyau, trois sections devront être faites: avant la branche, puis la branche elle-même.
Pour créer un diagramme, vous devrez utiliser deux types d'objets graphiques standard:
connecteur (pour dessiner des lignes) et cercle (pour créer des points de contrôle du diagramme). Le connecteur est nécessaire car il vous permet de déterminer quels objets du circuit sont connectés, contrairement à la ligne habituelle. Le cercle standard doit être refait dans CustomObject - cela évitera toute confusion lors du tri des éléments du schéma mnémonique et donnera des noms pratiques aux propriétés.

Une partie des points de contrôle correspondra aux joints des canalisations et une partie - aux robinets-vannes. Pour ce dernier, nous sélectionnons toute propriété inutilisée et affectons une action VBS, où nous créons une constante et lui attribuons une valeur de chaîne avec le nom de la vanne:

image

Ensuite, nous écrivons un script sur VBA qui passera par tous les éléments d'écran et pour chaque connecteur, créer une liste de verrous connectés indirectement, vous permettant finalement de créer du texte VBS pour la propriété BorderColor. Cela peut être obtenu en raison du fait que le connecteur a deux propriétés - TopConnectedObjectName et BottomConnectedObjectName, disponibles dans VBA.

Le résultat de ce script ressemblera à ceci:

image

D1 et D2 - tableaux avec les noms des valves; TubeColor - une fonction qui renvoie la couleur et le style de ligne en fonction de l'état des vannes.

Un point important: lors de l'écriture d'un script VBS dans un élément, vous devez également modifier les déclencheurs.

Dans la fonction TubeColor, il sera nécessaire de définir toutes les règles de coloration en fonction de la situation technologique. Bien sûr, TubeColor doit être rendu dans le script Global.

Ensuite, la lutte commencera pour les performances, l'optimisation de VBS, etc., car WinCC peut difficilement transférer de grands diagrammes mnémoniques. Mais il faut rendre hommage aux collègues de Siemens, la vitesse de VBS a considérablement augmenté, si je ne me trompe pas, par rapport à la version 7.3, ce qui a grandement simplifié la vie des développeurs de projets appliqués.

Description de l'implémentation dans Simargl SCADA


Pour dessiner des schémas animés, Simargl SCADA comprend deux widgets:
SPipeScene - une scène pour dessiner des lignes et définir des règles de coloration;
SPipe - pour spécifier les points nodaux et afficher les modifications de l'état de l'équipement de terrain.

Essentiellement, le processus se résume à simplement placer les points nodaux du circuit, lier les propriétés aux valeurs d'étiquette et placer des widgets au-dessus de la scène qui affichent l'état de l'équipement. Tout cela ressemble à ceci:


Il est curieux que pour créer le circuit réel, il n'était pas du tout nécessaire d'écrire du code.

Vous pouvez obtenir la version de démonstration de Simargl SCADA, la documentation et les sources du projet à partir de la vidéo sur la page Facebook .

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


All Articles