Lesen, schreiben, aufrufen
Die drei Verben, die den größten Teil der Arbeit machen, und der DataValue, um den sie alle kreisen. Dieser Kurs behandelt Attribute, Variant-Typisierung, das Lesen des zurückgegebenen StatusCodes statt ihn zu ignorieren, Schreiben ohne Typkonflikt und das Aufrufen von Methoden.
| Lektionen | 9 |
|---|---|
| Time | etwa 66 Minuten |
| Voraussetzungen | A2 |
| Kosten | Kostenlos: geschriebene Lektionen offen, Video und Labs brauchen ein kostenloses Konto |
Was Sie danach können
- Sie können jedes Attribut jedes Knotens lesen, nicht nur seinen Value.
- Sie können erklären, was ein DataValue außer der Zahl noch trägt.
- Sie können einen Wert schreiben, ohne einen Typ- oder AccessLevel-Fehler auszulösen.
- Sie können eine Servermethode aufrufen und ihre Ausgabeargumente verarbeiten.
Lehrplan
-
1
Mehr als das Value-Attribut lesen8 min
DataType, ValueRank, AccessLevel, EURange, EngineeringUnits. Die Attribute, die Ihnen sagen, wie Sie den Wert behandeln müssen, den Sie gleich lesen.
Asset Ein vollständiger Attribut-Dump einer analogen Variablen von einem realen Server
-
2
Ein DataValue zerlegen8 min
Value, StatusCode, SourceTimestamp, ServerTimestamp. Vier Felder, von denen drei regelmäßig von Client-Code weggeworfen werden, der danach seine eigenen Daten nicht erklären kann.
Asset Rohe DataValue-Ausgabe mit allen vier Feldern, darunter eines mit einem Status ungleich Good
-
3
Den StatusCode lesen, statt ihn zu ignorieren7 min
Good, Uncertain und Bad sind ein Vertrag. Was mit UncertainLastUsableValue zu tun ist, bevor es stillschweigend einen Mittelwert vergiftet.
Asset Ein Read, der UncertainLastUsableValue liefert, und der falsche Mittelwert, der entsteht, wenn man ihn ignoriert
-
4
Wählen, welchem Zeitstempel Sie trauen7 min
SourceTimestamp gegenüber ServerTimestamp, TimestampsToReturn, und was zu tun ist, wenn eine SPS nur einen von beiden füllt.
Asset Dieselbe Subscription mit beiden aufgezeichneten Zeitstempeln, die die Drift zwischen ihnen zeigt
-
5
Einen Wert ohne Typkonflikt schreiben7 min
Int16 ist nicht Int32, ein Skalar ist kein einelementiges Array, und ValueRank zählt. Warum die meisten ersten Schreibversuche scheitern und wie der zweite gelingt.
Asset Vier fehlgeschlagene Schreibvorgänge mit dem jeweils erzeugten StatusCode, dann die korrigierten Aufrufe
-
6
AccessLevel beachten, bevor Sie schreiben6 min
Nur-Lese-Knoten, Nur-Schreib-Knoten und Server, die einen Write annehmen und verwerfen, was der umati Sample Server bewusst tut.
Asset Ein Schreibvorgang zum umati-Server, der Good liefert und nichts ändert, mit dem Rücklesen als Beleg
-
7
Arrays und Array-Bereiche lesen und schreiben7 min
IndexRange, partielle Array-Schreibvorgänge und der Off-by-one-Fehler, der einen Indexbereich wie einen Serverfehler aussehen lässt.
Asset Ein Array-Read mit drei verschiedenen IndexRange-Ausdrücken und deren Ergebnissen
-
8
Eine Methode aufrufen8 min
Eingangs- und Ausgangsargumente, das Executable-Attribut und wie sich ein Methodenfehler von einem Aufruffehler unterscheidet.
Asset Ein Methodenaufruf gegen den Milo-Demoserver mit ausgegebenen Ein- und Ausgabeargumenten
-
9
Sammeloperationen, ohne an eine Grenze zu stoßen8 min
Lese- und Schreibvorgänge nehmen Arrays entgegen. Serverseitige Grenzen für Operationen je Aufruf, und warum eine große Anfrage tausend kleine schlägt, genau bis zu dem Punkt, an dem sie es nicht mehr tut.
Asset Ein gebündelter Read von 500 Knoten gegenüber 500 Einzel-Reads, mit beiden Zeiten und dem Limit des Servers
Lab
Kostenloses Konto erforderlich
Starten Sie mit einem Befehl einen lokalen Server, schreiben Sie einen Wert darauf, lesen Sie ihn zurück und provozieren Sie dann absichtlich einen Typkonflikt und einen Nicht-schreibbar-Fehler, damit Sie beide wiedererkennen.
Lab freischalten →Zuletzt geprüft am 7. September 2026 gegen OPC UA 1.05.07. OPC UA Connect ist ein unabhängiges Bildungsangebot und steht in keiner Verbindung zur OPC Foundation.