Anwendungsbeispiel für Variablenadapter

Der Zugriff auf Variablenwerte aus Applikationen erfolgt über den vollständigen Alias von Prozessvariablen. Dieser Bezeichner beinhaltet den Kanalnamen, den Alias der Prozessvariablen, sowie ggf. die Auflösung von Feld- und/oder Strukturelementen.

Variablenadapter entkoppeln diese Anbindung durch die Einführung eines weiteren Alias. Zusätzlich beinhalten Variablenadapter eine konfigurierbare Umschaltung. Jedem Alias können zur Entwicklungszeit mehrere in den Kommunikationskanälen definierte Prozessvariablendefinitionen zugeordnet werden. Über einen Konfigurationseintrag wird zur Initialisierungsphase des Projektes festgelegt, welche Variablen tatsächlich über den Alias angesprochen wird.

Problemstellung

Variablenadapter werden als Lösung von folgenden Problemen verwendet:

  • Zur Zeit der Erstellung des Projektes ist nicht klar, welche Anbindungskonstellation gewählt werden muss (Anschluss aller Steuerungen über einen Kommunikationskanal/über mehrere Kommunikationskanäle). In der Praxis kann es sein, dass sich die Anbindung über nur einen Treiber als wenig performant erweist. Alle Anbindungen in der Applikation beinhalten aber den Kanalbezeichner. Eine spätere Umstellung von einem auf mehrere Kommunikationskanäle erweist sich als äußerst arbeitsintensiv, da beispielsweise die Variablenanbindungen in den Steuerelementen auch angepasst werden müssen.
  • Es ist abzusehen, dass die Visualisierung unterschiedliche Steuerungen verwenden muss. Die Variablenbenennung ist aber auf keine Weise kompatibel zu halten: Ein typischer Fall hierfür ist die Anbindung über einen OPC-Server für die eine Steuerung und die Verwendung eines VisiWin(.NET) Treibers für die alternative Steuerung. Aufgrund des optimierten Austauschs über Strukturen sind bei VisiWin Treibern die Variablennamen in der Applikation nicht mehr kompatibel, da das Strukturelement durch spitze Klammern eingefasst mit in den Bezeichner der angebundenen Variable einfließt.

Beide Probleme konnten bislang dazu führen, dass dieselbe Visualisierung für unterschiedliche Steuerungen auch mithilfe von mehreren Projekten parallel gepflegt werden musste.

Beispiel

Das Beispiel zeigt, wie eine Applikation zu erstellen ist, wenn alternativ zu einer S7-Anbindung (über einen VisiWin Treiber) eine Allen-Bradley-Steuerung (über einen OPC-Server) an die Applikation angeschlossen werden soll. Die Anbindung über den Treiber ist dabei zusätzlich durch Strukturen optimiert.

Die Beispieldefinition zeigt eine Prozessvariable in der S7-Syntax:

Die zugehörige Strukturdefinition (der Datentyp der Prozessvariablen, der den blockweisen Datenaustausch über den Treiber ermöglicht) hat folgenden Aufbau:

Die Anbindung eines Steuerelementes (Eigenschaft VariableName) auf den Wert Temperature einer S7-Steuerung hat dann den Namen Ch1.DB3<.Temperature>.

Die Allen-Bradley-Steuerung erwartet eine andere Syntax. Hier sind Strukturen unbekannt. Prozessvariablen werden direkt in der Prozessvariablentabelle über symbolische Namen angesprochen:

Die Anbindung eines Steuerelementes auf den Wert Temperature der Allen-Bradley-Steuerung hat dann den Variablennamen Ch1.Temperature. Die in der Applikation zu verwendenden Eigenschaftswerte von VariableName sind für die beiden Steuerungen also nicht kompatibel. Auch die ItemID hat einen anderen Inhalt. Der Versuch, den Alias der Allen-Bradley-Prozessvariablen auf DB3<.Temperature> zu ändern, wird spätestens beim Start des Projektes durch einen Fehler quittiert. Das Laufzeitsystem scheitert an der Strukturauflösung (durch spitze Klammern gekennzeichnet). Hier steht der Projekteur also vor dem Problem, das Projekt zu duplizieren und alle kommenden Änderungen in zwei Projekten nachzupflegen.

Variablenadapter definieren

Beide Kanäle können innerhalb eines Projekts angelegt werden. Die Anpassung erfolgt mithilfe eines Variablenadapters.

Führen Sie folgende Schritte aus, um den Variablenadapter mit den nötigen Kanalinformationen im Projekt zu definieren:

  1. Legen Sie die Variablen der S7-Steuerung unter einem Kommunikationskanal mit dem Namen S7 an.
  2. Legen Sie die Variablen der Allen Bradley-Steuerung unter einem zweiten Kommunikationskanal mit dem Namen AB an.
  3. Legen Sie über das Kontextmenü des Projektexplorerknoten Variablen > Variablenadapter einen neuen Variablenadapter an. Geben Sie über die Eigenschaftenseiten als Name AdaptS7_AB an.
  4. Wechseln Sie auf den Eigenschaftenseiten zur Karteikarte Erweitert und fügen Sie einen neuen Umschaltzustand in die so gezeigte Liste ein. Ändern Sie den Namen des so eingefügten Umschaltzustandes direkt in der Liste zu AB.
  5. Markieren Sie den Umschaltzustand Default in der Liste der Umschaltzustände. Aktivieren Sie anschließend in der Liste der zu deaktivierenden Kanäle den Kanal AB.
  6. Markieren Sie den Umschaltzustand AB in der Liste der Umschaltzustände. Aktivieren Sie anschließend in der Liste der zu deaktivierenden Kanäle den Kanal S7.

Der so erzeugte Adapter definiert eine Umschaltung von Variablen aus zwei unterschiedlichen Steuerungen. In den Eigenschaften wird zusätzlich angeboten, einen oder mehrere Kanäle für jeden Umschaltzustand zu deaktivieren. Die hier gewählten Kommunikationskanäle werden dann vom Laufzeitsystem nicht mehr angesprochen, wenn die entsprechende Konfiguration gewählt wurde.

Variablen in den Variablenadapter einfügen

Führen Sie folgende Schritte aus, um die benötigten Variablen in den Adapter einzufügen und eine Zuordnung der Variablen aus den unterschiedlichen Kanälen festzulegen:

  1. Öffnen Sie den Tabelleneditor des Variablenadapters über einen Doppelklick auf den entsprechenden Projektexplorerknoten. Wählen Sie im Kontextmenü des Tabelleneditors den Eintrag Variablen auswählen.
  2. Wählen Sie im so geöffneten Auswahldialog alle Variablen des Kommunikationskanals S7.

    Die Auswahl wird in die Tabelle des Adapters eingetragen. Gleichzeitig wird über die Funktion auch aus dem Standard-Wert der Alias gebildet.

  3. Legen Sie in der Spalte AB die passenden Variablen aus dem Kommunikationskanal für die Allen-Bradley-Steuerung fest. Dazu steht Ihnen der Variablenauswahldialog (erreichbar über die Auswahlschaltfläche ) in den Feldern der Spalte zur Verfügung.

    Der Alias stellt nun den Bezeichner dar, der in der Applikation als VariableName-Eigenschaft verwendet werden kann. Die Spalten Standard und AB geben die Prozessvariablendefinitionen an, die real verwendet werden.
Tipp: Bei einem bestehenden Projekt, in dem Steuerelemente bereits mit Variablen verbunden sind, empfiehlt es sich, hier die bereits angebundenen Variablen auszuwählen. Die Applikation kann ohne Änderungen in den Steuerelementen über den Variablenadapter um eine zweite Steuerung erweitern werden.

Abschließend ist zu klären, wie der Adapter konfiguriert wird, um zwischen den Zuständen Standard und AB umzuschalten.

Umschaltzustand konfigurieren

Führen Sie folgende Schritte aus, um den aktiven Umschaltzustand zu konfigurieren:

  1. Markieren Sie den Projektexplorerknoten Variablen > Variablenadapter > Konfiguration.
  2. Wählen Sie den auf den Eigenschaftenseiten in der Liste der Adapter den Umschaltzustand.
    • Wählen Sie für den Variablenadapter AdaptS7_AB den Umschaltzustand Default, wenn der Variablenserver auf die S7-Steuerung zugreifen soll.
    • Wählen Sie alternativ Umschaltzustand AB, wenn das Projekt mit der Allen-Bradley-Steuerung kommunizieren soll.

Das Laufzeitsystem behandelt die hier projektierten Informationen in folgenden Schritten:

  • Der aktive Umschaltzustand des Adapters wird gelesen.
  • Anhand der Informationen des aktiven Zustandes werden ggf. einzelne Kommunikationskanäle deaktiviert. Das Laufzeitsystem versucht erst gar nicht, eine Verbindung zu den entsprechenden Kommunikationskomponenten aufzunehmen. Dies verhindert das Auftreten von Fehlermeldungen, wenn die entsprechende Kommunikationskomponente oder der Anschluss an die SPS nicht vorhanden ist.
  • Für eine Variablenwertanforderung aus der Applikation überprüft der Variablenserver zuerst die Alias-Angaben der Variablensätze im Variablenadapter. Ist hier kein entsprechender Alias zu finden, wird die Variable direkt im Kommunikationskanal gesucht. Wird der Alias aber in der Tabelle gefunden, wird über den konfigurierten Umschaltzustand die tatsächlich angeforderte Variablendefinition ermittelt. Anschließend werden nach dem normalen Verfahren die Daten ausgetauscht.
Anmerkung: Die Umschaltung kann zwar vor dem Applikationsstart konfiguriert werden, ist aber nicht mehr zur Laufzeit änderbar, also kein dynamisches Feature. Ggf. sind dem Techniker, der die Visualisierung vor Ort einrichtet, die Schritte zur Konfiguration der angeschlossenen Steuerungen detailliert zu beschreiben.