Die sechs Leben der Prozessvariablen

Die OPC-Spezifikation beschreibt das Item-Objekt als Repräsentation eines Prozesswertes im OPC-Server: Über das Item-Objekt kann dieser Wert gelesen oder geschrieben werden, optionale Parameter ermöglichen z. B. Grenzwertüberwachungen. Über Zusatzinformationen können Übertragungsfehler und Datenaustauschzeitpunkt ermittelt werden. In VisiWin wird diese Spezifikation voll unterstützt, durch den Systemaufbau werden jedoch folgende zusätzliche Erweiterungen möglich:

  • Betrieb von VisiWin Treibern im Rahmen der Prozessvariablendefinitionen
  • Paralleler Betrieb von mehreren Kommunikationskomponenten (VisiWin(.NET) Treiber und OPC-Server), die aus der Sicht der Applikation nur einen einzigen Datenpool darstellen
  • Optimierungsverfahren für den block-orientierten Datenzugriff über Datentyperweiterungen
  • Optimierungsverfahren für mehrere Clients (Ausschluss von Mehrfachanfragen)
  • Umrechnung von Prozessvariablenwerten in Abhängigkeit von der aktuellen Sprache eines Clients oder von dem Wert einer Steuervariablen

Diese Möglichkeiten erfordern eine Erweiterung der Prozessvariablendefinition in VisiWin. Im Folgenden werden die wichtigsten Eigenschaften zum Zugriff auf eine Prozessvariable in den Komponenten der Prozessanbindung beschrieben.

In der SPS

In der SPS repräsentiert eine Prozessvariable einen Prozesswert, der über das Schnittstellenprotokoll ausgetauscht werden kann. Um Werte aus der SPS lesen oder schreiben zu können, muss die Startadresse und die Bytelänge bekannt sein.

Die Startadresse kann bei einer SPS, die eine symbolische Adressierung unterstützt, ein Bezeichner sein, der eine Aussage über die Verwendung des Prozesswertes trifft. Die SPS ermittelt anhand einer Bezeichnertabelle die entsprechende Zelle im Speicher. Wird keine symbolische Adressierung unterstützt, so kann die SPS über die direkte Angabe einer spezifischen Adresskennung auf die angesprochene Speicherzelle zugreifen.

Die Länge bestimmt die Anzahl von Bytes, die für die vollständige Übertragung des Wertes aus dem SPS-Speicher nötig sind.

In der Kommunikationskomponente

Kommunikationskomponenten sind die Bindeglieder zwischen dem Variablenserver und der SPS-Schnittstelle. Die Aufgabe der Kommunikationskomponente besteht darin, die Datenanforderungen des Variablenservers zu bedienen. SPS-seitig müssen die Prozesswerte über die für die SPS verständliche Adress-/ Längendefinition angesprochen werden. Auf der Seite des Variablenservers zeigen OPC-Server und VisiWin(.NET) Treiber grundsätzlich verschiedene Verhalten:

VisiWin Treiber erwarten vom Variablenserver genau die SPS-verständlichen Informationen „Startadresse“ und „Länge“ zum Zugriff auf einen Prozesswert. Der Variablenserver muss also die in einer Prozessvariablendefinition enthaltenen Informationen passend aufbereiten.

In OPC-Servern ist ein Prozesswert über die sogenannte ItemID anzusprechen. Die ItemID bezeichnet das Objekt, das den Prozesswert repräsentiert, im OPC-Server eindeutig. Sie kann entweder die Angabe der Startadresse (symbolisch oder nicht) oder ein neuer und damit verständlicherer Bezeichner für den Prozesswert sein. Die Länge des auszutauschenden Prozesswertes wird über den Datentyp geregelt. OPC-Server können die Angabe eines Datentyps verarbeiten. Um das Objekt jedoch instanziieren zu können, müssen diese Informationen vor dem eigentlichen Datenaustausch bekannt sein. Die Informationen über Items werden dem OPC-Server entweder in Form einer Definitionsliste während der Initialisierung (eigene Definitionsdatei/OPC-Server-Projektdatei) oder zur Laufzeit (CallR-Server) zur Verfügung gestellt.

Items werden zur Laufzeit Gruppen zugeordnet, die dazu dienen, den Datenaustausch zu steuern. So kann z. B. über die Deaktivierung einer Gruppe der Zugriff auf alle darin enthaltenen Items gestoppt werden.

Sowohl VisiWin(.NET) Treiber als auch OPC-Server erschaffen ein Speicherabbild der SPS. Sie haben eigene Zykluszeiten, in denen die angeforderten Prozessvariablen aus der SPS ausgelesen werden. Diese Zykluszeit hat jedoch nichts mit der Rückgabe an den Variablenserver zu tun. Während VisiWin Treiber im Zyklus des Variablenservers ausgelesen werden, haben OPC-Server die Fähigkeit, asynchron mit einer einstellbaren Abtastzeit für jede Gruppe die angeforderten Daten zurückzumelden.

In der Projektdatei

Die Projektdatei enthält alle für das Projekt relevanten Daten. In der Entwicklungsumgebung werden Definitionen in den Editoren projektiert. Steuerelemente, die zur Laufzeit einen Bezug zu einer Definition herstellen sollen, können die in der Projektdatei enthaltenen Definitionen zur Auswahl auflisten. Zur Laufzeit werden die Definitionen von der zuständigen Serverkomponente interpretiert.

Im Variablenserver

Der Variablenserver stellt das Bindeglied zwischen den Kommunikationskomponenten, den Visualisierungsapplikationen und anderen Systemen (Alarmverwaltung, Trends etc.) dar. Während der Initialisierung erstellt er anhand der Definitionen der Projektdatei ein Speicherabbild aller Prozessvariablen, die sogenannte Prozessdatei. Wird ein lesender oder schreibender Zugriff auf einen Prozesswert angefordert, aktiviert der Variablenserver den Zugriff auf die entsprechende Variable in der Kommunikationskomponente. Nach dieser Initialisierung werden die Daten zyklisch oder getriggert ausgetauscht.

Die Anforderung eines Prozesswertes erfolgt über den Prozessvariablenbezeichner aus der Projektdatei und die Angabe der Kommunikationskomponente. Ein Prozesswert kann also insgesamt drei verschiedene Bezeichner haben:

  1. Die Adressangabe in der SPS,
  2. Die ItemID in der Kommunikationskomponente und
  3. Den Bezeichner in der Visualisierung.

Dies ist jedoch nicht sinnvoll. Die Vergabe eines Bezeichners in der Projektdateidefinition sollte nur dann genutzt werden, wenn die SPS keine symbolische Adressierung unterstützt und die Kommunikationskomponente keine Möglichkeit zur Verfügung stellt, den Prozesswert zu benennen. Dies ist z. B. bei VisiWin(.NET) Treibern der Fall.

Die Definitionen in der VisiWin Projektdatei enthalten die Möglichkeit, erweiterte Datentypen (Felder und Strukturen) zu projektieren. Über den Zugriff auf eine Prozessvariable mit Datentyperweiterung ist eine erhebliche Leistungssteigerung des Systems möglich. Prozesswerte können damit blockweise übertragen werden.

Im Variablenclient

Der Variablenclient verwaltet den Datenaustausch einer Visualisierungsapplikation. Geladene Steuerelemente melden sich beim Variablenclient an. Dieser reicht die Anforderung von Prozesswerten zum Variablenserver weiter. Nach der Anmeldung wird der Datenaustausch je nach Bedarf zyklisch oder ereignisgesteuert ausgeführt. Auch der Variablenclient legt ein Prozessabbild an, jedoch nur für die von ihm benötigten Prozesswerte.

Im Steuerelement

Damit ein Steuerelement den Zugriff auf ein Prozesswert in der SPS erhält, sind folgende Informationen nötig:

  • An welche Serverkomponente muss die Anfrage gerichtet werden (Multiserver-Projekt, Netzwerkpfad)?
  • Über welche Kommunikationskomponente kann der Prozesswert erreicht werden (Kommunikationskanal, Netzwerkpfad)?
  • Wie muss die Prozessvariable in der Kommunikationskomponente angesprochen werden (ItemID)?
  • Wie ist der Index des Feldelementes, wenn die Prozessvariable als Feld definiert ist?
  • Wie ist der Name eines Strukturelementes, wenn die Prozessvariable als Struktur definiert wurde?

Zur Entwicklungszeit werden die Definitionen der Projektdatei im Variablenauswahldialog aufgelistet. Ist eine Prozessvariable vom Datentyp einer Struktur oder eines Feldes, so werden unter der Prozessvariablendefinition die Struktur- und Feldelemente aufgelistet. Der Name und die Darstellung auf der Eigenschaftenseite suggerieren die Auswahl einer Prozessvariablen. Tatsächlich aber wird ein eindeutiger Bezeichner für den Prozesswert im System gewählt. Wird ein Eintrag selektiert, so erscheint als Ergebnis ein Bezeichner, der neben der ItemID auch noch den Namen des Kommunikationskanals und unter Umständen auch das gewählte Struktur-/Feldelement enthält. Das Handling in den Steuerelementen verhält sich also vollständig OPC-konform. Die Auflösung des gewählten Bezeichners muss jedoch in den verschiedenen Komponenten der Prozessanbindung vorgenommen werden.