Write
Diese Methode erzeugt einen Datensatz in der von Beckhoff vorgegebenen Standardtabellenstruktur.
Syntax
METHOD Write : BOOL
VAR_INPUT
hDBID: UDINT;
sTableName: T_MaxString;
pValue: POINTER TO BYTE;
cbValue: UDINT;
sDBSymbolName: T_MaxString;
eDBWriteMode: E_WriteMode := E_WriteMode.eADS_TO_DB_Append;
nRingBuffParameter: 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. |
pValue | POINTER TO BYTE | Adresse der Variable, die in die Standardtabellenstruktur geloggt werden soll. |
cbValue | UDINT | Länge der Variable, die geloggt werden soll. |
sDBSymbolName | T_MaxString | Name, der in die Tabelle mit geloggt wird. |
eDBWriteMode | E_WriteMode | Gibt den Schreibmodus an. (Anhängen, updaten, Ringbuffer) |
nRingBuffParameter | UDINT | Zusatzparameter für den Schreibmodus "Ringbuffer". |
Rückgabewert
Name | Typ | Beschreibung |
---|---|---|
Write | BOOL | Zeigt den Status der Methode. Liefert TRUE, sobald die Methodenausführung beendet ist, also auch im Fehlerfall. |
Beispiel
Dieses Beispiel zeigt die Verwendung der Methode FB_PLCDBWriteEvt.Write:
VAR
fbPLCDBWrite : FB_PLCDBWriteEvt(sNetID := '', tTimeout := T#5S);
myValue : LREAL := 43.23;
tcMessage : I_TcMessage;
END_VAR
IF fbPLCDBWrite.Write(
hDBID:= 1,
sTableName:= 'myTable_WithLReal',
pValue:= ADR(myValue),
cbValue:= SIZEOF(myValue),
sDBSymbolName:= 'MyValue',
eDBWriteMode:= E_WriteMode.eADS_TO_DB_RingBuff_Count,
nRingBuffParameter:= 3)
THEN
IF fbPLCDBWrite.bError THEN
tcMessage := fbPLCDBWrite.ipTcResult;
nState := 255;
ELSE
nState := 0;
END_IF
END_IF
Ergebnis in der Datenbank:
ID | Timestamp | Name | Value |
---|---|---|---|
27 | Has been dropped | ||
28 | '2018-01-30 14:04:19' | 'MyValue' | 41.23 |
29 | '2018-01-30 14:04:29' | 'MyValue' | 42.23 |
30 | '2018-01-30 14:04:39' | 'MyValue' | 43.23 |
Durch die Ringbufferoption werden immer nur 3 Einträge dieses Namens in der Datenbank sein. Ältere werden gelöscht.