Kompatible Strukturerweiterungen erlauben
Ermöglicht das Lesen und Schreiben von geänderten (erweiterten) Strukturen trotz Abweichungen im SPS-Projekt und im VisiWin Projekt ohne Fehlermeldungen.
Grundsätzlich müssen die Strukturen im VisiWin Projekt und im SPS-Projekt zu 100% übereinstimmen, damit die Kommunikation fehlerfrei verläuft. Bei jeder Abweichung in den Strukturen gibt VisiWin eine Fehlermeldung aus. Werden die Strukturen im SPS-Projekt verändert, z. B. wenn eine Variable hinzugefügt wird, dann muss diese Struktur auch im VisiWin Projekt entsprechend angepasst werden. Manche Entwicklungsprozesse erfordern jedoch, dass das SPS-Projekt häufiger aktualisiert wird als das Visualisierungsprojekt.
Mit dem Parameter Kompatible Strukturerweiterungen erlauben bietet VisiWin ab Version 2022-1 (für Laufzeitversionen 7.2 ab SP13 und 7.3) die Option, dieses Szenario zu realisieren. Wird der Parameter aktiviert, dann werden bestimmte Abweichungen in den Strukturen von VisiWin toleriert und keine Fehlermeldungen ausgegeben. Diese Abweichungen gelten für VisiWin als „kompatibel“. Welche Abwechungen kompatibel sind und welche nicht, wird weiter unten erläutert.
Damit die Strukturen auf SPS-Seite und Visualisierungsseite im Laufe der Zeit sich nicht zu weit auseinander entwickeln und zu Problemen in der Kommunikation führen, sollte das Visualisierungsprojekt in regelmäßigen Abständen an die Strukturen der SPS angepasst werden. Das bedeutet, dass die Variablen des OPC-UA-Kanals erneut importiert werden sollten.
Die nachfolgenden Aussagen in Bezug auf das Auftreten oder Nichtauftreten von Fehlermeldungen treffen nur dann zu, wenn der Parameter Einzelzugriffe auf Strukturelemente automatisieren deaktiviert ist (Standardeinstellung). Die entsprechenden Fehlermeldungen werden im VWEManager.log protokolliert, parallel dazu wird ein Systemalarm ausgelöst, der in der Applikation in den Alarm-Steuerelementen angezeigt werden kann.
Kompatible Erweiterungen
Wenn der Parameter Kompatible Strukturerweiterungen erlauben im Projekt aktiviert wurde, dann werden bei kompatiblen Erweiterungen keine Fehlermeldungen ausgegeben, das Lesen und Schreiben dieser Strukturen ist möglich und eine Anpassung des VisiWin Projekts ist nicht notwendig.
Folgende Strukturenerweiterungen im SPS-Projekt gelten als kompatibel:
- Weitere Mitglieder am Ende einer Strukturebeneexample:
MitgliedBN und MitgliedN sind im aktualisierten SPS-Projekt neu hinzugekommen. Ist der Parameter Kompatible Strukturerweiterungen erlauben aktiviert, wird keine Fehlermeldung ausgegeben.
Struktur SPS
Struktur VisiWin
Neue Struktur SPS
StrukturA
MitgliedX
UnterstrukturB
MitgliedBX
MitgliedBY
MitgliedY
MitgliedZ
StrukturA
MitgliedX
UnterstrukturB
MitgliedBX
MitgliedBY
MitgliedY
MitgliedZ
StrukturA
MitgliedX
UnterstrukturB
MitgliedBX
MitgliedBY
MitgliedBN
MitgliedY
MitgliedZ
MitgliedN
-
Unterschiedliche Feldlängen/-größen
Beispiel:
MitgliedY hat im VisiWin Projekt eine Feldgröße von 3, im aktualisierten SPS-Projekt eine Feldgröße von 4 (es gibt also eine zusätzliche Variable). Ist der Parameter Kompatible Strukturerweiterungen erlauben aktiviert, wird keine Fehlermeldung ausgegeben. Dies gilt auch, wenn MitgliedY in der neuen SPS-Struktur eine Variable weniger hat, also z. B. eine Feldgröße von 2.
Struktur SPS
Struktur VisiWin
Neue Struktur SPS
StrukturA
-
MitgliedX
-
MitgliedY[3]
-
MitgliedZ
StrukturA
-
MitgliedX
-
MitgliedY[3]
-
MitgliedZ
StrukturA
-
MitgliedX
-
MitgliedY[4]
-
MitgliedZ
-
Nicht kompatible Erweiterungen
Es gibt Erweiterungen, die nicht kompatibel sind und eine Anpassung des VisiWin Projekts notwendig machen.
Nicht kompatible Erweiterungen, die erkannt werden und zu einer Fehlermeldung führen:
-
Neues Mitglied anstelle eines anderen (anderer Name)
Beispiel:
MitgliedZ wird nicht gefunden, ein Fehler wird generiert.
Struktur SPS
Struktur VisiWin
Neue Struktur SPS
StrukturA
-
MitgliedX
-
MitgliedY
-
MitgliedZ
StrukturA
-
MitgliedX
-
MitgliedY
-
MitgliedZ
StrukturA
-
MitgliedX
-
MitgliedY
-
MitgliedN
-
-
Neues Mitglied anstelle eines anderen (verschiedene Datentypen, die nicht ineinander gewandelt werden können)
Beispiel:
INT kann nicht in DATE umgewandelt werden, ein Fehler wird generiert.
Struktur SPS
Struktur VisiWin
Neue Struktur SPS
StrukturA
-
MitgliedX
-
MitgliedY(INT)
-
MitgliedZ
StrukturA
-
MitgliedX
-
MitgliedY(INT)
-
MitgliedZ
StrukturA
-
MitgliedX
-
MitgliedY(DATE)
-
MitgliedZ
-
-
Fehlende Mitglieder im OPC-UA-Server
Beispiel:
In Bsp. 1 fehlt in der SPS das MitgliedBY in UnterstrukturB. In Bsp. 2 fehlt das MitgliedY in der StrukturA. Es wird jeweils ein Fehler generiert.
Struktur SPS
Struktur VisiWin
Neue Struktur SPS (Bsp. 1)
Neue Struktur SPS (Bsp. 2)
StrukturA
-
MitgliedX
-
UnterstrukturB
-
MitgliedBX
-
MitgliedBY
-
-
MitgliedY
-
MitgliedZ
StrukturA
-
MitgliedX
-
UnterstrukturB
-
MitgliedBX
-
MitgliedBY
-
-
MitgliedY
-
MitgliedZ
StrukturA
-
MitgliedX
-
UnterstrukturB
-
MitgliedBX
-
-
MitgliedY
-
MitgliedZ
StrukturA
-
MitgliedX
-
UnterstrukturB
-
MitgliedBX
-
MitgliedBY
-
-
MitgliedZ
-
-
Zusätzliche Mitglieder am Anfang oder innerhalb einer Struktur
Beispiel:
MitgliedM und MitgliedN sind in der SPS-Struktur hinzugekommen. Es wird jeweils ein Fehler generiert.
Struktur SPS
Struktur VisiWin
Neue Struktur SPS
StrukturA
-
MitgliedX
-
MitgliedY
-
MitgliedZ
StrukturA
-
MitgliedX
-
MitgliedY
-
MitgliedZ
StrukturA
-
MitgliedM
-
MitgliedX
-
MitgliedN
-
MitgliedY
-
MitgliedZ
-
-
Fehlen eines Strukturmitglieds in VisiWin. Die Werte könnten falsch zugeordnet werden!
Beispiel:
MitgliedC fehlt in VisiWin. VisiWin fordert die Werte aus Struktur A an, die Zuordnung erfolgt anhand der Reihenfolge der übertragenen Werte. Namen werden nicht überprüft.
Struktur SPS [Beispielwerte]
Struktur VisiWin [Beispielwerte]
StrukturA
-
MitgliedA(REAL) [1.3]
-
MitgliedB(REAL) [2.2]
-
MitgliedC(REAL) [3.7]
-
MitgliedD(REAL) [4.5]
-
MitgliedE(REAL) [9.7]
StrukturA
-
MitgliedA(REAL) [1.3]
-
MitgliedB(REAL) [2.2]
-
MitgliedD(REAL) [3.7]
-
MitgliedE(REAL) [4.5]
-
Es gibt jedoch nicht kompatible Erweiterungen, die nicht erkannt werden, d. h. sie führen nicht zu Fehlermeldungen. Das Lesen und Schreiben dieser Strukturen ist möglich, sie können jedoch dazu führen, dass falsche Daten zugewiesen werden! Auch in diesen Fällen ist eine Anpassung des VisiWin Projekts notwendig.
Nicht kompatible Erweiterungen, die nicht erkannt werden und keine Fehlermeldungen generieren:
-
Mitglieder gleichen Datentyps, die in der Reihenfolge vertauscht sind. Die Werte werden falsch zugeordnet. Das Problem eines vertauschen Wertes ist beim Schreiben von kompletten Strukturen der Fall, nicht aber, wenn einzelne Strukturelemente geschrieben werden.
Beispiel:
In der neuen SPS-Struktur sind MitgliedZ und MitgliedY vertauscht. Die Werte werden anhand ihrer Reihenfolge an VisiWin übertragen und falsch zugeordnet.
Struktur SPS
[Beispielwerte]
Struktur VisiWin [Beispielwerte]
Neue Struktur SPS [Beispielwerte]
Struktur VisiWin [Beispielwerte]
StrukturA
-
MitgliedX(REAL) [1.2]
-
MitgliedY(INT) [42]
-
MitliedZ(INT) [87]
StrukturA
-
MitgliedX(REAL) [1.2]
-
MitgliedY(INT) [42]
-
MitliedZ(INT) [87]
StrukturA
-
MitgliedX(REAL) [1.2]
-
MitgliedZ(INT) [87]
-
MitliedY(INT) [42]
StrukturA
-
MitgliedX(REAL) [1.2]
-
MitgliedY(INT) [87]
-
MitliedZ(INT) [42]
-
Lösung zur Erkennung von erweiterten Strukturen in der SPS
Wird eine am Ende erweiterte Struktur in der SPS als komplette Struktur von VisiWin aus beschrieben (d. h. der Parameter Einzelzugriffe auf Strukturelemente automatisieren ist für diese Struktur deaktiviert), so überschreibt VisiWin die Variablen in der SPS, die nicht in der VisiWin Struktur vorhanden sind, mit 0 bzw. bei Strings mit einem Leerstring. Die SPS kann so programmiert werden, dass sie überprüft, ob das letzte Element zu 0 gesetzt wird, und in einer entsprechenden Fehlermeldung darauf hinweist, dass die Struktur in der Visualisierung nicht komplett ist.
Beispiel:
In der Steuerung enthält die StrukturA ein End-Element (MitgliedEnde). In der neuen SPS-Struktur wird vor dem End-Element ein weiteres Element eingefügt (MitgliedE). Von VisiWin aus wird die Struktur komplett beschrieben. VisiWin erkennt, dass die neue SPS-Struktur länger ist als die in VisiWin definierte und füllt das letzte Element mit dem Wert 0 auf. Die SPS in diesem Beispiel ist so programmiert, dass das End-Mitglied nie Null sein darf. Die SPS erkennt also, dass die Struktur, die aus VisiWin heraus beschrieben wird, nicht mit der eigenen übereinstimmt und reagiert darauf mit einer Fehlermeldung.
|
Struktur SPS |
Neue Struktur SPS |
Struktur VisiWin [Wert geschrieben] |
Struktur SPS [Wert neu] |
|---|---|---|---|
|
StrukturA
|
StrukturA
|
StrukturA
|
StrukturA
|
Parameter für Modul: