UAHADataValue
Dieser Funktionsbaustein agiert als Datenobjekt. Eine Instanz repräsentiert einen Wert für die OPC-UA-Historical-Access-Funktionalität. Dem Funktionsbaustein UA_HistoryUpdate wird ein ganzes Feld dieser Werte beim Aufruf übergeben.
Syntax
aDataValues : ARRAY [1..50] OF UAHADataValue(ValueSize:=SIZEOF(LREAL));
Jedes Datenobjekt wird mit der zu erwartenden Größe (in Bytes) des Wertes initialisiert.
Eigenschaften
Name | Typ | Zugriff | Initialwert | Beschreibung |
---|---|---|---|---|
Value | PVOID | Set | - | Gibt die Adresse einer Variablen an, welche den gewünschten Wert beinhaltet. Typischerweise wird diese mithilfe des Operators ADR() zugewiesen. Hiermit wird zugleich intern der Wert selbst zugewiesen und in das Datenobjekt kopiert. |
StatusCode | Get, Set | UAHAUpdateStatusCode.HistorianRaw | Gibt den Statuscode des Wertes an. | |
SourceTimeStamp | ULINT | Get, Set | 0 | Gibt den Zeitstempel der Quelle im UTC-Format an. Dieser kann mit der Funktion F_GetSystemTime (Tc2_System SPS Bibliothek) ermittelt werden. |
ServerTimeStamp | ULINT | Get, Set | 0 | Gibt den Zeitstempel des OPC UA Servers im UTC-Format an. Diese Funktionalität wird aktuell nicht unterstützt. |
Datentypgröße des Wertes Die Größe des verwendeten Datentyps wird bereits bei der Deklaration des Datenobjektes angegeben und damit festgelegt. Bei späterer Zuweisung eines Wertes wird diese Größe zugrunde gelegt. Werte vom Typ STRING werden demnach ebenso mit fest initialisierter Größe abgespeichert und übertragen. Es kann keine Angabe über die aktuelle Textlänge gemacht werden. |
Beispiel
{attribute 'OPC.UA.DA' := '1'}
fMyValue : LREAL; // Variable for HistorcalAccess
aDataValues : ARRAY [1..50] OF UAHADataValue(ValueSize:=SIZEOF(LREAL));
fMyValue := 27.75;
aDataValues[1].Value := ADR(fMyValue);
aDataValues[1].StatusCode := UAHAUpdateStatusCode.HistorianRaw;
aDataValues[1].SourceTimeStamp := F_GetSystemTime();
In diesem Beispiel wird ein Feld von 50 Werten definiert, welche jeweils durch ein Datenobjekt repräsentiert werden. Dem ersten Wert wird der aktuelle Inhalt der Variablen fMyValue (= 27.75) zugewiesen.
Das Feld kann nun mittels weiterer Zuweisungen in späteren SPS-Zyklen gefüllt werden.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken |
---|---|---|
TwinCAT 3.1 >= 4024.1 | Win32, Win64, WinCE-x86 | Tc3_PLCopen_OpcUa >= v3.1.9.0 |