FB_DBWrite

FB_DBWrite 1:

Mit dem Funktionsbaustein FB_DBWrite können die Werte einzelner Variablen in Datenbanken geschrieben werden.
Die Tabellenstruktur muss die Spalten "Timestamp", "Name", und "Value" besitzen siehe "SQL Compact Datenbank". Um den Funktionsbaustein benutzen zu können, muss die Datenbank, in die geschrieben werden soll und das ADS-Gerät, vom dem die Variable gelesen werden soll, in der XML - Konfigurationsdatei deklariert werden.

VAR_INPUT

VAR_INPUT
    sNetID          : T_AmsNetID;
    hDBID           : UDINT;
    hAdsID          : UDINT;
    sVarName        : T_MaxString;
    nIGroup         : UDINT;
    nIOffset        : UDINT;
    nVarSize        : UDINT;
    sVarType        : T_MaxString;
    sDBVarName      : T_MaxString;
    eDBWriteMode    : E_DBWriteModes;
    tRingBufferTime : TIME;
    nRingBufferCount: UDINT;
    bExecute        : BOOL;
    tTimeout        : TIME;
END_VAR

sNetID                      : Ist ein String, der die AMS-Netzwerkkennung des Zielgerätes enthält, an das der ADS-Befehl gerichtet wird.

hDBID                       : Ist die ID der zu verwendenden Datenbank.

hAdsID                     : Ist die ID des zu verwendenden ADS-Gerätes.

sVarName               : Gibt den Namen der Variable an.

nIGroup                    : IndexGroup der Variable (optional Nur bei BC9000).

nIOffset                    : IndexOffset der Variable (optional Nur bei BC9000).

nVarSize                  : Größe der Variable in Byte (optional Nur bei BC9000)

sVarType                 : Datentyp der Variable (optional Nur bei BC9000)

Mögliche Variablendatentypen:     "BOOL" / "LREAL" / "REAL" / "INT16" / "DINT" / "USINT" / "BYTE" / "UDINT" / "DWORD" / "UINT16" / "WORD" / "SINT"

sDBVarName         : In der Datenbank zu verwendende Variablenname.

eDBWriteMode      : Gibt an ob die Werte in neuen Datensätzen unten angehangen werden, oder ob die vorhandenen Datensätze aktualisiert werden.

tRingBufferTime    : Gibt das maximale Alter von Datensätzen in einer Tabelle an. (nur bei Ringbuffer_WriteMode)

nRingBufferCount : Gibt die maximale Anzahl von Datensätzen in einer Tabelle an. (nur bei Ringbuffer_WriteMode)

bExecute                 : Mit der steigende Flanke wird das Kommando ausgeführt.

tTimeout;                 : Gibt die Zeit bis zum Abbrechen der Funktion an.

VAR_OUTPUT

VAR_OUTPUT
    bBusy       : BOOL;
    bError      : BOOL;
    nErrID      : UDINT;
    sSQLState   : ST_DBSQLError;
END_VAR

bBusy           : Kommando wird gerade per ADS übertragen. Solange bBusy auf TRUE, wird kein neues Kommando angenommen.

bError          : Wird TRUE, sobald ein Fehler eintritt.

nErrID          : Liefert bei einem gesetzten bError-Ausgang den ADS Error Code bzw. TcDatabaseSrv_Error_Codes.

sSQLState : Liefert den SQL - Fehlercode des entsprechenden Datenbanktyps

 

Werte loggen von ADS-Devices (außer BC9000)

Werte loggen von BC9000

FB_DBWrite1(
  sNetID:= ,
  hDBID:= 1,
  hAdsID:= 1,
  sVarName:= 'MAIN.TestVar',
  sDBVarName:= 'DBTestVar',
  eDBWriteMode:= eDBWriteMode_Append,
  bExecute:= TRUE,
  tTimeout:= T#15s,
  bBusy=> busy,
  bError=> err,
  nErrID=> errid,
  sSQLState=> sqlstate
);
FB_DBWrite1( 
  sNetID:= ,
  hDBID:= 1,
  hAdsID:= 1,
  sVarName:= 'MAIN.TestVar',
  nIGroup:= 16448,
  nIOffset:= 0,
  nVarSize:= 16,
  sVarType:= 'REAL',
  sDBVarName:= 'DBTestVar',
  eDBWriteMode:= eDBWriteMode_Append,
  bExecute:= TRUE,
  tTimeout:= T#15s,
  bBusy=> busy,
  bError=> err,
  nErrID=> errid,
  sSQLState=> sqlstate
);

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS Bibliotheken

TwinCAT v2.10.0

PC oder CX (x86)

TcDatabase.Lib

TwinCAT v2.10.0

CX (ARM)