Arbeitsweisen beim Lesen und Schreiben
Der OPC Router beschafft Werte eines OPC-Servers auf drei Arten: aus seinem eigenen Zwischenspeicher, über eine laufende Anmeldung am Server oder durch direktes Lesen bei jedem Transfer. Die Arbeitsweise bestimmt, wie aktuell ein Wert im Transfer ist und wie viel Last auf Netzwerk und OPC-Server entsteht.
Eingestellt wird sie je Anbindung über die Eigenschaft „OPC Lesemodus“ im Reiter „Erweitert“ der OPC UA-Anbindung oder der klassischen OPC-Anbindung. Die Einstellung wirkt nicht auf alle Objekte der Anbindung – welches Transferobjekt und welcher Trigger ihr folgt, zeigt die Übersicht.
Die drei Arbeitsweisen
OPC Router Cache
Die Datenpunkte sind am OPC-Server angemeldet und werden im Hintergrund aktualisiert. Der Transfer übernimmt den zuletzt empfangenen Wert aus dem Zwischenspeicher des OPC Routers und greift dafür nicht auf den Server zu.
- Geringste Netzlast, kürzeste Transferdauer.
- Der Wert ist höchstens so aktuell wie die letzte Hintergrundaktualisierung. Bei häufig wechselnden Werten wird ein veralteter Wert übertragen.
Asynchron
Die Datenpunkte sind angemeldet, der Server meldet Wertänderungen von sich aus. Leseanfragen blockieren den Transfer nicht, mehrere Leseoperationen werden parallel verarbeitet.
- Aktuellere Werte als beim Zwischenspeicher, ohne dass der Transfer auf jede einzelne Antwort wartet.
- Bei vielen Datenpunkten mit hoher Änderungsrate entsteht dauerhafte Last durch die Änderungsmeldungen.
Synchron
Die Datenpunkte werden bei jedem Transfer direkt am OPC-Server gelesen. Der OPC Router meldet sie ohne laufende Aktualisierung an und liest sie erst, wenn der Transfer sie benötigt.
- Höchste Aktualität.
- Höchste Netz- und Serverlast, längste Transferdauer.
Vorbelegung
| Anbindung | Arbeitsweise |
|---|---|
| neu angelegt | Synchron |
| aus einer Konfiguration ohne diese Einstellung übernommen | OPC Router Cache |
Welches Objekt welcher Arbeitsweise folgt
Transferobjekte
| Transferobjekt | Folgt der Einstellung | Arbeitsweise |
|---|---|---|
| OPC Data Access | ✅ | Liest nach der eingestellten Arbeitsweise. |
| OPC Dynamic Read | ✅ | Liest die zur Laufzeit übergebenen Datenpunkte nach der eingestellten Arbeitsweise. |
| OPC Dynamic Write | – | Schreibt nur. |
| OPC-Strukturen | teilweise | Liest den Strukturknoten bei jedem Transfer direkt. In der Arbeitsweise „OPC Router Cache“ übernimmt es stattdessen einen bereits vorliegenden Triggerwert. |
| OPC-Message | – | Fester Ablauf über den Veränderungszähler. Antwortdatenpunkte werden erst übernommen, wenn derselbe Wert zweimal gelesen wurde. |
| OPC-Methoden | – | Ruft eine OPC UA-Methode auf und liest keine Datenpunkte. |
| Multiple OPC Read | – | Liest immer direkt am Server, auch wenn die Anbindung auf „OPC Router Cache“ oder „Asynchron“ steht. |
| OPC Batch Read | – | Liest immer direkt am Server, auch wenn die Anbindung auf „OPC Router Cache“ oder „Asynchron“ steht. |
| OPC HA Lesen | – | Liest aus dem Historian. Die Art des Zugriffs legt das Transferobjekt selbst fest. |
Trigger
Kein Trigger richtet sich nach der Einstellung „OPC Lesemodus“. Jeder Trigger überwacht seine Datenpunkte auf die für ihn festgelegte Weise.
| Trigger | Folgt der Einstellung | Arbeitsweise |
|---|---|---|
| Bit-Trigger | – | Fragt Trigger- und Antwortdatenpunkt zyklisch ab. Ein Wert wird erst akzeptiert, wenn er zweimal übereinstimmend gelesen wurde. |
| Grenzwert-Trigger | – | Meldet den Datenpunkt asynchron an und prüft den Grenzwert zyklisch. |
| Data-Change-Missing-Trigger | – | Meldet den Datenpunkt asynchron an und überwacht, ob innerhalb der eingestellten Zeit eine Änderung eintrifft. |
| Data-Change-Trigger | – | Meldet den Datenpunkt asynchron an; der Server meldet jede Wertänderung. |
| Multi-Datachange-Trigger | – | Legt für die ermittelte Datenpunktgruppe eigene Abonnements an. |
| Message-Trigger | – | Fragt den Zähldatenpunkt zyklisch ab. Ein Wert wird erst akzeptiert, wenn er zweimal übereinstimmend gelesen wurde. |
| Alarm-/Event-Trigger | – | Abonniert Ereignisse des OPC UA-Servers und liest keine Datenpunkte. |
Trigger und Transferobjekt im Zusammenspiel
Löst ein Trigger einen Flow aus, liegt der Wert des auslösenden Datenpunkts bereits vor. Ob ein Transferobjekt diesen Wert übernimmt, hängt von der Arbeitsweise ab:
- OPC Router Cache: Das Transferobjekt übernimmt den Wert aus dem Triggerereignis, sofern Trigger und Transferobjekt dieselbe Anbindung verwenden und der Trigger den Datenpunkt bereits gelesen hat.
- Asynchron und Synchron: Das Transferobjekt liest den Datenpunkt erneut. Ändert sich der Wert zwischen Auslösung und Transfer, überträgt der Transfer den neueren Wert – nicht den, der den Trigger ausgelöst hat.
Soll ein Transfer genau den Wert übertragen, der ihn ausgelöst hat, ist die Arbeitsweise „OPC Router Cache“ zu wählen oder der Triggerwert direkt als Eingangswert des Flows zu verwenden.
Schreiben
Für das Schreiben gilt die Einstellung „OPC Lesemodus“ nicht. Maßgeblich ist die Eigenschaft „Asynchrones Schreiben aktivieren“ der Anbindung:
| Einstellung | Verhalten |
|---|---|
| deaktiviert | Der Transfer wartet auf die Bestätigung des OPC-Servers. Ein Schreibfehler wirkt auf den Transfer zurück. |
| aktiviert | Der Schreibauftrag wird abgesetzt, ohne auf die Bestätigung zu warten. Der Transfer läuft weiter; die Rückmeldung über Erfolg oder Fehler ist vom Transfer zeitlich entkoppelt. |
Weitere Einstellungen mit Einfluss
| Einstellung | Wirkung |
|---|---|
| „Read Max Age“ (nur OPC UA) | Legt fest, wie alt ein Wert sein darf, den der OPC-Server aus seinem eigenen Zwischenspeicher liefern darf. Die Einstellung wirkt im Server, nicht im OPC Router. Siehe OPC UA Plug-in. |
| „OPC Tags beim Start registrieren“ (nur OPC UA) | Registriert die Datenpunkte bereits beim Start der Anbindung, anstatt erst beim ersten Transfer. Dadurch wird der erste Transfer nicht durch die Registrierung verzögert. Die Plug-in-Instanz kann jedoch etwas mehr Zeit zum Starten benötigen. |
| „Sample Rate“ | Abtastrate der Anmeldung. Sie begrenzt, wie aktuell ein Wert in den Arbeitsweisen „OPC Router Cache“ und „Asynchron“ sein kann. |
| „Erlaubte Qualities“ | Bestimmt, welche Qualitätszustände der OPC Router überhaupt annimmt. Siehe OPC-Qualitäten und Statuscodes. |
Auswahl der Arbeitsweise
| Anforderung | Arbeitsweise |
|---|---|
| Der Transfer muss den aktuellen Wert der Maschine übertragen (Auftragsdaten, Messwerte zum Zeitpunkt des Transfers). | Synchron |
| Der Transfer soll genau den Wert übertragen, der den Trigger ausgelöst hat. | OPC Router Cache |
| Viele Datenpunkte werden zyklisch übertragen und einzelne Sekunden Alter sind unkritisch. | OPC Router Cache |
| Viele Datenpunkte werden gelesen und der Transfer soll nicht auf jede Antwort warten. | Asynchron |
Typische Beobachtungen
| Beobachtung | Ursache |
|---|---|
| Der übertragene Wert ist älter als der Wert an der Maschine. | Arbeitsweise „OPC Router Cache“, oder die Abtastrate der Anmeldung ist zu groß. |
| Der übertragene Wert weicht vom Triggerwert ab. | Arbeitsweise „Asynchron“ oder „Synchron“: Das Transferobjekt liest den Datenpunkt erneut. |
| Die Last auf dem OPC-Server steigt mit jedem Transfer deutlich. | Arbeitsweise „Synchron“, oder ein Transferobjekt, das immer direkt liest (Multiple OPC Read, OPC Batch Read). |
| Die Umstellung auf „Synchron“ ändert nichts. | Das verwendete Transferobjekt folgt der Einstellung nicht – siehe Übersicht. |