OPC DA

Ein Client für klassische OPC-Data-Access-Server über COM/DCOM, der in einem 32-Bit-Hilfsprozess läuft, mit Adressierung über die Item-ID und einem Suchlauf nach den Servern eines Rechners.

Als Markdown ansehen

Der Treiber OPC DA ist ein Client für klassische OPC-Data-Access-Server (Versionen 1.0, 2.05a und 3.0), die COM-Server, über die ältere SPS-Gateways, SCADA-Systeme und Simulatoren ihre Daten noch heute veröffentlichen. Ein Server wird über den Rechner benannt, auf dem er läuft, und über seine ProgID, zum Beispiel Matrikon.OPC.Simulation.1, jedes Tag über die Item-ID des Servers. Fügen Sie den Treiber und seine Geräte auf der Seite Connector hinzu.

Gerät

Feld Bedeutung Standard
Hostadresse Name oder Adresse des Rechners, auf dem der OPC-DA-Server läuft. Leer bedeutet dieser Rechner, auf dem die meisten klassischen Server laufen. leer: dieser Rechner
Server / Schlüssel Die ProgID des Servers, so wie der Hersteller sie in Windows registriert, zum Beispiel Matrikon.OPC.Simulation.1. OPC.Server.1
Abfrageintervall (ms) Wie oft die Station die Tags des Geräts liest, sofern ein Tag kein eigenes Intervall festlegt. 1000

Die Adresse des Geräts wird aus beiden zusammengesetzt, zum Beispiel opc.da://localhost/Matrikon.OPC.Simulation.1. Einen Port gibt es nicht: COM findet den Server über die Registrierung von Windows selbst.

Adressierung der Tags

Ein Tag wird über seine Item-ID adressiert, als Freitext eingegeben und genau so an den Server gesendet, wie sie geschrieben ist, zum Beispiel Random.Real8 oder Channel1.Device1.Tag1. Die Item-IDs gehören dem Server; seine Dokumentation oder ein Suchlauf führt sie auf. Die Station nimmt jedes Item beim ersten Lesen durch ein Tag in eine Gruppe des Geräts auf und liest es vom Gerät, nicht aus dem Zwischenspeicher des Servers.

Datentypen

Die Auswahl Datentyp bietet die Typen an, die ein OPC-DA-Item führt: Boolean, SByte, Byte, Int16, UInt16, Int32, UInt32, Int64, UInt64, Float, Double, String und DateTime. Jedes Lesen wird in den Typ des Tags umgewandelt, wählen Sie also den Typ, den der Server für das Item angibt, denselben, den ein Suchlauf vorschlägt: Ein 64-Bit-Gleitkomma-Item verliert als Float gelesen an Genauigkeit und behält sie als Double. Ein Wert, den der Typ des Tags nicht fassen kann, etwa ein Text, der keine Zahl ist, oder ein Array, lässt das Tag ohne Wert. Ein Datum trägt in OPC DA keine Zeitzone, und die Station liest und schreibt es als UTC.

Jeder Wert, mit dem der Server antwortet, trägt seine Qualität. Ein Wert guter Qualität (Good) erreicht das Tag. Einer unsicherer (Uncertain) oder schlechter Qualität (Bad) lässt das Tag ohne Wert, und die Journalzeile des fehlgeschlagenen Lesens nennt die Qualität mit den Worten der OPC-DA-Spezifikation, zum Beispiel Bad: not connected (0x0008) oder Uncertain: last usable value (0x0044). Ein Item, dessen Lesen fehlschlägt, lässt sein Tag ohne Wert, und die übrigen Tags des Geräts lesen weiter.

Gerätesuche

Geräte suchen führt die OPC-DA-Server auf, die auf einem Rechner registriert sind: Geben Sie dessen Namen oder Adresse als Ziel des Suchlaufs ein, oder lassen Sie es für diesen Rechner leer. Jeder Server wird als Gerät angeboten, und sein Adressraum wird durchlaufen: Jedes Item, das er führt, wird als Tag mit Nur lesen angeboten, mit dem Typ, den der Server dafür angibt: eine 64-Bit-Gleitkommazahl als Double, eine vorzeichenlose 16-Bit-Ganzzahl als UInt16 und so weiter für jeden Typ oben, ein Währungswert als Double. Ein Item, das keinen Typ angibt, wird als String angeboten, der jeden Wert liest; ein Item eines Typs, den kein Tag liest, etwa ein Array, wird nicht angeboten, und der Suchlauf zählt es zu dem, was er ausgelassen hat. Wie Kandidaten ausgewählt und hinzugefügt werden, steht unter Gerätesuche.

Der Suchlauf fragt den OPC-Server-Enumerator (OpcEnum) nach den Servern, über die auf diesem Rechner registrierten Proxy- und Stub-Bibliotheken von OPC DA. Solange einer dieser Teile fehlt, führt der Suchlauf nichts auf und sagt stattdessen, was fehlt, mit den Schritten unter Die OPC Core Components installieren.

Schreiben

Tags, deren Zugriff Lesen und schreiben oder Nur schreiben ist, lassen sich schreiben, und zwar auf dasselbe Item, das der Lesevorgang verwendet. Der Wert wird in dem Typ gesendet, in dem der Server das Item führt (im Typ des Tags selbst, wenn der Server ihn nicht nennt), aus dem Wert des Tags umgewandelt, ohne den Umweg über Text, sodass eine Station in jeder Sprache dieselbe Zahl sendet. Eine Ganzzahl außerhalb des Bereichs des Item-Typs wird abgelehnt, bevor etwas gesendet wird, und nie auf den nächsten Wert gekürzt, den der Typ fassen kann. Ein Schreibvorgang, den der Server ablehnt, kommt abgelehnt zurück, mit dem Grund, wenn die Station ihn benennen kann (ein Item, das kein Schreiben annimmt, ein Wert, den das Item nicht annimmt, ein Item, das der Server nicht kennt, verweigerter Zugriff), und sonst mit dem Fehlercode des Servers, zum Beispiel OPC DA 0x80004005; das Journal hält den Code des Servers in jedem Fall fest. OPC DA kennt keine Befehle: Ein Gerät dieses Treibers bietet keine an.

Der 32-Bit-Hilfsprozess

OPC-DA-Server werden über einen 32-Bit-COM-Client erreicht, den die 64-Bit-Station nicht laden kann. Der Treiber läuft deshalb in einem eigenen Hilfsprozess, Lab.Desktop.DriverBridge.exe, den die Station startet, sobald ein OPC-DA-Gerät oder ein Suchlauf ihn zum ersten Mal braucht oder die Station die OPC Core Components prüft, und beendet, wenn der Connector stoppt. An der Bedienung des Treibers ändert sich nichts: Seine Geräte und Tags werden gelesen, geschrieben, durchsucht und im Journal festgehalten wie bei jedem anderen.

Hält der Hilfsprozess an, zeigen seine Geräte den Fehler "Der 32-Bit-Hilfsprozess des OPC DA-Treibers hat angehalten. Die Station startet ihn erneut, und das Gerät verbindet sich über ihn neu.", die Seite Ereignisse enthält seinen Exitcode, und ihre Tags verlieren ihre Werte. Die Station startet den Hilfsprozess erneut, nach einer Pause, die wächst, solange er immer wieder anhält, und die Geräte verbinden sich von selbst über ihn neu. Ein Schreibvorgang, der unterwegs war, als der Hilfsprozess anhielt, kommt als fehlgeschlagen zurück und sagt, dass nicht bekannt ist, ob der Wert das Gerät erreicht hat. Kein anderer Treiber und kein anderer Teil der Station hält mit ihm an.

Bevor Sie beginnen

  • Die Station installiert keine OPC-Komponente. Der OPC-Server-Enumerator (OpcEnum) und die Proxy- und Stub-Bibliotheken von OPC DA kommen mit dem OPC-DA-Server oder mit den OPC Core Components. Die Station prüft selbst, ob sie registriert sind, und sagt, solange einer dieser Teile fehlt, wie sie installiert werden: siehe Die OPC Core Components installieren.
  • Ein Server auf einem anderen Rechner wird über DCOM erreicht, das beide Rechner für das Windows-Konto erlauben müssen, unter dem die Station läuft: DCOM-Berechtigungen, Firewall-Regeln und dasselbe Konto oder eine vertrauenswürdige Domäne. Diese Einrichtung wird in Windows vorgenommen, nie in der Station: siehe Einen entfernten Server vorbereiten.
  • Der Treiber läuft nur unter Windows.

Die OPC Core Components installieren

Die Station prüft selbst, im 32-Bit-Hilfsprozess, ob auf diesem Rechner der OPC-Server-Enumerator (OpcEnum) und die Proxy- und Stub-Bibliotheken von OPC DA für 32-Bit-Programme registriert sind: wenn die Seite des Treibers, die Seite eines seiner Geräte oder der Agent zum ersten Mal fragt, und erneut alle 30 Sekunden, solange einer dieser Teile fehlt. Bis der Connector gestartet ist, ist nicht bekannt, ob sie vorhanden sind, und es wird nichts dazu gesagt. Solange einer fehlt:

Wo Was dort steht
Die Seite des Treibers Ein Warnhinweis, "Die OPC Core Components fehlen auf diesem Rechner", mit den Schritten unten. Sein Link öffnet die Seite der OPC Foundation im Browser des Rechners.
Die Seite jedes Geräts Derselbe Hinweis, außer das Gerät ist online.
Ein Suchlauf Er führt nichts auf und sagt, was fehlt: Die Abschlusszeile des Suchlaufs verweist auf den Hinweis, und device_discover des Agenten nennt die Schritte auf Englisch.
Der letzte Fehler eines Geräts, dessen Verbindung scheitert Was fehlt und dieselben Schritte, auf Englisch, wie die eigenen Ursachen des Treibers geschrieben sind.
Der Agent driver_capabilities nennt sie unter prerequisite, mit installed auf false.

So installieren Sie sie:

  1. Führen Sie das Installationsprogramm Ihres OPC-DA-Servers erneut aus: Es installiert sie meist mit.
  2. Andernfalls öffnen Sie die Seite Core Components der OPC Foundation und laden die OPC Core Components Redistributables herunter. Nur ein registrierter Benutzer darf sie herunterladen: Wenn die Seite meldet, dass Sie keine Berechtigung zum Herunterladen der Datei haben, melden Sie sich mit "Login" an oder legen Sie mit "Create Account" auf derselben Seite ein Konto an.
  3. Nehmen Sie unter 64-Bit-Windows opc-core-components-redistributable-<version>-x86-x64.msi, das auch die 32-Bit-Komponenten enthält, und nur unter 32-Bit-Windows die Datei, die auf -x86.msi endet.
  4. Führen Sie sie als Administrator aus und starten Sie den Rechner neu, wenn das Installationsprogramm es verlangt.

Spätestens 30 Sekunden nach der Installation verschwindet der Hinweis, der Suchlauf führt die OPC-DA-Server auf, und die Geräte dieses Treibers verbinden sich mit ihrer bestehenden Konfiguration, ohne dass Ganter Lab neu gestartet wird.

Einen entfernten Server vorbereiten

Ein Server auf diesem Rechner braucht nichts weiter. Ein Server auf einem anderen Rechner wird über DCOM erreicht, und DCOM lässt von einem anderen Rechner nichts herein, bis beide dafür eingerichtet sind. Die Einrichtung geschieht in Windows auf beiden Rechnern, durch einen Administrator jedes Rechners, nie in der Station:

  1. Verwenden Sie auf beiden Rechnern dasselbe Windows-Konto mit demselben Kennwort (das Konto, unter dem die Station läuft) oder ein Domänenkonto, das beide Rechner kennen.
  2. Starten Sie auf dem Rechner des Servers dcomcnfg und öffnen Sie Component Services > Computers > My Computer > Properties > COM Security. Erlauben Sie diesem Konto unter Access Permissions und Launch and Activation Permissions, sowohl in Edit Limits als auch in Edit Default, jedes Remoterecht. Erlauben Sie in Edit Limits von Access Permissions außerdem Remote Access für ANONYMOUS LOGON, das der OPC-Server-Enumerator (OpcEnum) braucht.
  3. Öffnen Sie dort unter My Computer > DCOM Config die Properties des OPC-Servers und von OpcEnum und passen Sie auf ihrer Registerkarte Security die drei Berechtigungen mit demselben Konto an.
  4. Starten Sie auch auf dem Rechner der Station dcomcnfg und erlauben Sie in Edit Limits von Access Permissions Remote Access für das Konto, unter dem der OPC-Server läuft: Der Server ruft die Station zurück.
  5. Erlauben Sie auf dem Rechner des Servers in der Windows Defender Firewall eingehend den TCP-Port 135 und die Programme des OPC-Servers und von OpcEnum (OpcEnum.exe), und prüfen Sie unter Dienste, dass OpcEnum läuft und automatisch startet.

Edit Default ändert nichts, solange Edit Limits das Recht verweigert: Setzen Sie beide. DCOM antwortet auf Port 135 und führt die Aufrufe dann über einen Port, den Windows wählt: Eine Firewall zwischen den beiden Rechnern, die nur 135 öffnet, sperrt den Server also weiterhin.

Was Windows antwortet Was die Seite des Geräts sagt
Zugriff verweigert (0x80070005) „Host lehnt diese Station über DCOM ab“, mit dem Konto, unter dem die Station läuft, und den Schritten 1 bis 4
Der RPC-Server ist nicht verfügbar (0x800706BA) „Host antwortet nicht auf DCOM“: Der Rechner ist aus oder nicht erreichbar, seine Firewall sperrt DCOM, oder OpcEnum läuft dort nicht, mit Schritt 5

Jeder Hinweis steht an der Stelle des Fehlers des Geräts und verschwindet von selbst, sobald der Server sich verbindet. Das Journal und der Agent lesen dieselben Schritte auf Englisch. Ein Server auf diesem Rechner wird nie so gemeldet.

Wo die Anlage kein DCOM erlaubt, umgeht es ein Wrapper oder Tunnel, der den OPC-DA-Server auf dem Rechner des Servers über OPC UA anbietet, ganz: Die Station liest den Server dann mit dem Treiber OPC UA.