Dateiformat der Backup-Datei

1. Datei-Header vom Typ ST_SercosFileHeader

2. n * Daten
a) Parameter-Header vom Type ST_ParamHeader
b) Parameter-Daten als Bytes

Beispiel für n Parameter

1 * ST_SercosFileHeader (268
Bytes)

-----------------------------------------------------
nVersion    (    4 Bytes)
nListType       (    4 Bytes)
cbCommentLen    (    4 Bytes)
sComment    (  256 Bytes)

n * (ST_SercosParamHeader + Data)
-----------------------------------------------------
nIDN        (     2 Bytes)

cbSize     
(     2 Bytes)
nAttrib      
  (     4 Bytes)
arrData     (cbSize Bytes),
kann für jeden Parameter verschieden groß sein, je nach Typ oder
Listenlänge

Beispiel für n = 3 Parameter

ST_SercosFileHeader                         
(268 Bytes)
----------------------------------------------------------------------------

nVersion    (    4 Bytes), i.e. = 01 00 00 00        
(= 1)
nListType       (    4 Bytes), i.e. = 00 00 00 00        
(= 0) 
cbCommentLen    (    4 Bytes), i.e. = 00 00 00 00        
(= 0)
sComment    (  256 Bytes), i.e. = 00 00 00 00 00 00 00 ... 00
(256 * 00)

1st parameter ST_SercosParamHeader + Data            
(10 Bytes)
----------------------------------------------------------------------------

nIDN        (    2 Bytes), i.e. = nnnn

cbSize     
(    2 Bytes), i.e. = 02
00               (= 2)
nAttrib      
  (    4 Bytes), i.e. = xx xx xx xx
arrData     (2 Bytes), i.e. = 12 34

2nd parameter
ST_SercosParamHeader + Data             (16
Bytes)
----------------------------------------------------------------------------

nIDN        (    2 Bytes), i.e. = nnnn

cbSize     
(    2 Bytes), i.e. = 08
00               (= 8)
nAttrib      
  (    4 Bytes), i.e. = xx xx xx xx
arrData     (    8 Bytes),
i.e. = 12 34 56 78 9a bc de
f0

3rd parameter
ST_SercosParamHeader + Data             (12
Bytes)
----------------------------------------------------------------------------

nIDN        (    2 Bytes), i.e. = nnnn

cbSize     
(    2 Bytes), i.e. = 04
00               (= 4)
nAttrib      
  (    4 Bytes), i.e. = xx xx xx xx
arrData     (    4 Bytes),
i.e. = 12 34 56 78

TYPE ST_SercosFileHeader (268 Bytes)

Der Datei-Header der Sercos-Backup-Datei basiert auf der Struktur ST_SercosFileHeader.

TYPE ST_SercosFileHeader :
STRUCT
    nVersion        : UDINT;        (*   4 Bytes *)
    nListType           : UDINT;        (*   4 Bytes *)
    cbCommentLen    : UDINT;        (*   4 Bytes *)
    sComment        : T_MaxString;  (* 256 Bytes *)
END_STRUCT
END_TYPE

nVersion: beinhaltet die Dateiversion, momentan 1

nListType: beinhaltet die IDN-Parameterliste, die für das Backup benutzt wurde. Der Standard-Wert ist 192 (Liste aller Backup-Parameter), bei benutzerdefinerter Backupliste steht hier 0. Alternativ kann die Liste aller Sercos-Parameter (IDN 17) verwendet werden. Das Restore erfordert allerdings die Liste aus Parameter 192 oder über die benutzerdefinierte Liste (0) erfolgen.

cbCommentLen: Länge des Kommentars der Backup-Datei


sComment: Kommentar der Backup-Datei. Der String wird mit allen 256 Zeichen geschrieben.


TYPE ST_SercosParamHeader (8 Bytes)

Im Anschluß an den Datei-Header folgt in der Backup-Datei je Parameter ein Parameter Header vom Typ ST_SercosParamHeader.

TYPE ST_SercosParamHeader :
STRUCT
    nIDN        : UINT;     (* 2 Bytes *)
    cbSize      : UINT;     (* 2 Bytes *)
    nAttrib     : DWORD;        (* 4 Bytes *)
END_STRUCT
END_TYPE

nIDN: Sercos-Parameter-Nummer

cbSize: Länge der Daten in Bytes, die diesem Header folgen. Kann für jeden Parameter verschieden sein, ja nach Parameter Typ oder Listenlänge.

nAttrib: Attribut des Sercos-Parameters (siehe ST_SercosParamData), wird zur Bestimmung von Länge und Datentyp benötigt.

Parameter Daten (cbSize Bytes)

Auf jeden Sercos-Parameter-Header in der Backup-Datei folgen unmittelbar die Daten. Die Anzahl der Daten-Bytes ist im Parameter-Header in cbSize gespeichert.

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS-Bibliotheken

TwinCAT v2.8.0

PC (i386)

TcIoFunctions.Lib

( Standard.Lib; TcBase.Lib; TcSystem.Lib; TcUtilities.Lib werden automatisch eingebunden )