XML - Database
Die Variablenwerte werden in einer XML-Datei gespeichert. Aufbau der Datenbank, Tabellen und Spalten werden in einer XSD-Datei definiert. Mit den Bausteinen FB_DBCreate und FB_DBTableCreate können die XML-Datei und die XSD-Datei erzeugt werden. Weiter Informationen zum Arbeiten mit XML-Dateien mit dem TwinCAT Database Server siehe hier.
<?xml version="1.0" encoding="UTF-8" ?>
<TestDB_XML xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="TestDB_XML.xsd">
<myTable_Double>
<row ID="1" Timestamp="2012-03-08T12:45:08" Name="TestValue1" Value="222.222" />
<row ID="2" Timestamp="2012-03-08T12:45:14" Name="TestValue1" Value="222.222" />
<row ID="3" Timestamp="2012-03-08T12:45:18" Name="TestValue1" Value="222.222" />
<row ID="4" Timestamp="2012-03-08T12:45:22" Name="TestValue1" Value="222.222" />
<row ID="5" Timestamp="2012-03-08T12:45:23" Name="TestValue1" Value="222.222" />
</myTable_Double>
</TestDB_XML>
In folgender Tabellenstruktur werden die Variablenwerte gespeichert
Spaltenname | Datentyp | Null zulässig | Eigenschaft |
---|---|---|---|
ID | xsd:long | nein |
|
Timestamp | xsd:dateTime | nein |
|
Name | xsd:string | nein | 80 |
ValueType="Double" | |||
Value | xsd:double | nein |
|
ValueType="Bytes" | |||
Value | xsd:hexBinary | nein | längenwert |
In der Spalte „ID“ wird eine AutoID erzeugt. Das heißt der Wert in dieser Spalte wird immer um 1 erhöht.
In die Spalte „Timestamp“ wird der Speicherzeitpunkt des Datensatzes gespeichert.
In der Spalte „Name“ steht der Name der Variable.
In der Spalte „Value“ wird der Wert der Variable gespeichert.
E_DBColumnTypes | XML | PLC Control |
---|---|---|
eDBColumn_BigInt | xsd:long | T_LARGE_INTEGER (TcUtilities.lib) |
eDBColumn_Integer | xsd:int | DINT |
eDBColumn_SmallInt | xsd:short | INT |
eDBColumn_TinyInt | xsd:byte | BYTE |
eDBColumn_Bit | xsd:boolean | BOOL |
eDBColumn_Money | xsd:double | LREAL |
eDBColumn_Float | xsd:double | LREAL |
eDBColumn_Real | xsd:double | LREAL |
eDBColumn_DateTime | xsd:dateTime | DT |
eDBColumn_NText | xsd:string | STRING |
eDBColumn_NChar | xsd:string | STRING |
eDBColumn_Image | xsd:hexBinary | ARRAY OF BYTE |
eDBColumn_NVarChar | xsd:string | STRING |
eDBColumn_Binary | xsd:hexBinary | ARRAY OF BYTE |
eDBColumn_VarBinary | xsd:hexBinary | ARRAY OF BYTE |
Wichtig !
Bei Embedded Systemen die Datenbank nicht auf der Compact Flash Karte speichern.
Entweder die Datenbank im RAM benutzen, also nicht im Ordner "Hard Disk" speichern, oder in einem Netzwerkordner ablegen. Zu viele Schreibzyklen auf der Compact Flash Karte können die Lebensdauer der Compact Flash Karte minimieren.