Schemaanimation in SCADA

Bei der Erstellung von HMI besteht die Aufgabe häufig darin, eine Abbildung einer komplexen Schaltung verwandter Elemente zu erstellen. Dies können verzweigte Pipelinesysteme, Elektrizität usw. sein.

Sie können sich natürlich auf die Anzeige von Schlüsselelementen (Absperrschieber, Leistungsschalter) beschränken. Je größer der Stromkreis, desto schwieriger ist es, ein vollständiges Bild zu erstellen und die korrekten Aktionen des Bedieners sicherzustellen.

Bild

Dieser Artikel beschreibt das Färben von Elementen solcher Schemata, beschreibt die Lösungsmethode für Simatic WinCC v7 und deren Implementierung in Simargl SCADA. Wenn Sie nicht mit WinCC arbeiten müssen, können Sie direkt am Ende des Artikels nachsehen - es gibt ein merkwürdiges Video.

Für eine visuellere Darstellung, warum all dies notwendig ist, nehmen wir ein kleines einfaches Schema.

Bild

Stellen Sie sich nun vor, was passieren wird, wenn eine Operation vorliegt. Wie lange dauert es, den Weg eines Produkts durch ein Pipelinesystem zu verfolgen? Wir bewaffnen uns mit einer Stoppuhr.

Bereit? Gehen!
image


Nach meinen Beobachtungen dauert es 10 - 15 Sekunden.

Und erinnern Sie sich jetzt daran, dass (plötzlich) mehrere Operationen gleichzeitig ausgeführt werden können. Dies „kompliziert“ die Aufgabe. Bist du bereit, dich erneut zu testen?

Gehen!
image


Die Worte meines Kollegen in eine anständige Sprache übersetzen: „Das ist eine Gelegenheit! Während Sie die zweite Route verfolgen, werden Sie die erste sehr vergessen. Was für ein wunderbares und praktisches Schema! “

Aber das Schema ist wirklich einfach - es gibt nicht einmal Lesungen von Instrumenten und verschiedenen Signaturen (ein besonderes Hallo an die Fans, um "dreidimensionale" Pfeifen zu zeichnen). In der Praxis kann es schlimmer sein. Ich habe deutlich größere Schemata getroffen (mehr als 400 Ventile).

Was kann ein Bediener mit einer solchen Nachahmung tun? Öffnen Sie im besten Fall langsam die Absperrschieber entlang der Strecke und hoffen Sie, dass er sich nicht geirrt hat. Was aber, wenn das Umschalten schnell erfolgen muss und die Kosten des Fehlers hoch sind?

Der Ausweg aus dieser Situation ist offensichtlich - es ist notwendig, die Linien entlang der Route zu färben, und es ist ratsam, dies vor der Kontrollaktion zu tun. Seltsamerweise sah ich selbst bei teuren SCADA-Paketen keine sofort einsatzbereite Lösung. Ein Versuch, jede Zeile manuell zu tönen, droht das Setup fast bis unendlich zu verzögern.

Lösung für WinCC v7


Ich habe ein solches Problem basierend auf WinCC v7 gelöst. Leider habe ich gemäß den Vertragsbedingungen kein Recht, eine fertige Lösung vorzulegen, aber ich kann eine mögliche Lösung beschreiben. Plötzlich wird jemand hilfreich sein.

Ich werde sofort feststellen, dass es sich um die WinCC Version 7-Produktfamilie handelt, da die Möglichkeit besteht, VBA zu verwenden. Es ist zu warnen, alles, was unten beschrieben wird, ist eher ein Hack, wird aus Hoffnungslosigkeit verwendet und ist nicht in allen Fällen geeignet.

Ich werde die Diskussion in Bezug auf Rohre und Ventile fortsetzen, obwohl natürlich bei Stromversorgungssystemen alles gleich sein wird.

Teilen Sie das Schema mental in Abschnitte ein, sodass auf jeder Seite nur eine Eingabe / Ausgabe vorhanden ist. Jene. Wenn ein Auslass in das Rohr geschnitten wird, müssen drei Abschnitte hergestellt werden: vor dem Zweig, dann der Zweig selbst.
Um ein Diagramm zu erstellen, müssen Sie zwei Arten von Standardgrafikobjekten verwenden:
Connector (zum Zeichnen von Linien) und Circle (zum Erstellen von Kontrollpunkten des Diagramms). Der Anschluss ist erforderlich, da Sie damit bestimmen können, welche Objekte in der Schaltung im Gegensatz zur üblichen Leitung verbunden sind. Der Standardkreis sollte in CustomObject überarbeitet werden. Dies vermeidet Verwirrung beim Sortieren von Elementen des Mnemonikschemas und gibt den Eigenschaften bequeme Namen.

Ein Teil der Kontrollpunkte entspricht den Verbindungsstellen der Rohrleitungen und ein Teil den Absperrschieber. Für letztere wählen wir eine nicht verwendete Eigenschaft aus und weisen eine VBS-Aktion zu, wobei wir eine Konstante erstellen und ihr einen Zeichenfolgenwert mit dem Namen des Ventils zuweisen:

Bild

Als Nächstes schreiben wir ein Skript in VBA, das alle Bildschirmelemente durchläuft und für jeden Connector eine Liste indirekt verbundener Latches erstellt, sodass Sie letztendlich VBS-Text für die BorderColor-Eigenschaft erstellen können. Dies kann durch die Tatsache erreicht werden, dass Connector zwei Eigenschaften hat - TopConnectedObjectName und BottomConnectedObjectName, die in VBA verfügbar sind.

Das Ergebnis dieses Skripts sieht ungefähr so ​​aus:

Bild

D1 und D2 - Arrays mit den Namen der Ventile; TubeColor - eine Funktion, die je nach Zustand der Ventile die Farbe und den Linienstil zurückgibt.

Ein wichtiger Punkt: Wenn Sie ein VBS-Skript in ein Element schreiben, müssen Sie auch die Trigger ändern.

In der TubeColor-Funktion müssen je nach technologischer Situation alle Farbregeln festgelegt werden. Natürlich muss TubeColor im globalen Skript gerendert werden.

Dann beginnt der Kampf um Leistung, Optimierung von VBS usw., da WinCC kaum große Mnemonikdiagramme übertragen kann. Aber wir müssen den Kollegen von Siemens Tribut zollen. Die Geschwindigkeit von VBS hat sich, wenn ich mich nicht irre, gegenüber Version 7.3 erheblich erhöht, was das Leben der Entwickler von angewandten Projekten erheblich vereinfacht hat.

Beschreibung der Implementierung in Simargl SCADA


Zum Zeichnen animierter Schemata enthält Simargl SCADA zwei Widgets:
SPipeScene - eine Szene zum Zeichnen von Linien und Festlegen von Farbregeln;
SPipe - um Knotenpunkte anzugeben und Änderungen im Zustand der Feldausrüstung anzuzeigen.

Im Wesentlichen läuft der Prozess darauf hinaus, einfach die Knotenpunkte der Schaltung zu platzieren, Eigenschaften an Tag-Werte zu binden und Widgets über der Szene zu platzieren, die den Status des Geräts anzeigen. Es sieht alles ungefähr so ​​aus:


Es ist merkwürdig, dass zum Erstellen der eigentlichen Schaltung überhaupt kein Code geschrieben werden musste.

Die Demoversion von Simargl SCADA, die Dokumentation und die Projektquellen finden Sie im Video auf der Facebook-Seite .

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


All Articles