Read
Diese Methode liest eine vorgegebene Anzahl an Datensätzen aus einer Datenbanktabelle mit der von Beckhoff vorgegebenen Standardtabellenstruktur. Die Standardtabellenstruktur wird unter anderem beim AutoLog-Modus und beim FB_DBWriteEvt-Baustein verwendet.
Syntax
METHOD Read : BOOL
VAR_INPUT
hDBID: UDINT;
sTableName: T_MaxString;
sDBSymbolName: T_MaxString;
eOrderBy: E_OrderColumn := E_OrderColumn.eColumnID;
eOrderType: E_OrderType := E_OrderType.eOrder_ASC;
nStartIndex: UDINT;
nRecordCount: UDINT;
pData: POINTER TO ST_StandardRecord;
cbData: UDINT;
END_VAR
Eingänge
Name | Typ | Beschreibung |
---|---|---|
hDBID | UDINT | Gibt die ID der zu verwendenden Datenbank an. |
sTableName | T_MaxString | Name der Tabelle, aus der gelesen werden soll. |
sDBSymbolName | T_MaxString | Symbolname, der in der Standardtabellenstruktur ausgelesen werden soll. |
eOrderBy | E_OrderColumn.eColumnID | Sortierspalte (ID, Timestamp, Name oder Value) |
eOrderType | E_OrderType.eOrder_ASC | Sortierrichtung (ASC oder DESC) |
nStartIndex | UDINT | Gibt den Index des ersten zu lesenden Datensatzes an. |
nRecordCount | UDINT | Gibt die Anzahl der zu lesenden Datensätzen an. |
pData | POINTER TO ST_StandardRecord | Adresse des Strukturarrays, in das die Datensätze geschrieben werden sollen. |
cbData | UDINT | Gibt die Größe des Strukturarrays in Byte an. |
Rückgabewert
Name | Typ | Beschreibung |
---|---|---|
Read | BOOL | Zeigt den Status der Methode. Liefert TRUE, sobald die Methodenausführung beendet ist, also auch im Fehlerfall. |
Beispiel
VAR
fbPLCDBRead : FB_PLCDBReadEvt (sNetID := '', tTimeout := T#5S);
ReadStruct : ST_StandardRecord;
tcMessage : I_TcMessage;
END_VAR
IF fbPLCDBRead.Read(
hDBID:= 1,
sTableName:= 'MyTable_WithLReal',
sDBSymbolName:= 'MyValue',
eOrderBy:= E_OrderColumn.ID,
eOrderType:= E_OrderType.DESC,
nStartIndex:= 0,
nRecordCount:= 1,
pData:= ADR(ReadStruct),
cbData:= SIZEOF(ReadStruct))
THEN
IF fbPLCDBRead.bError THEN
tcMessage := fbPLCDBRead.ipTcResult;
nState := 255;
ELSE
nState := 0;
END_IF
END_IF
Ergebnis in der SPS: