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

Write 1: 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".

Write 2: 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.