Die Bibliothek SysLibFileAsync.
lib
Die Bibliothek [Link]
Diese Bibliothek unterstützt asynchrone Dateizugriffe aus der IEC-Applikation. Wenn das Zielsystem
die Funktionalität beinhaltet, können folgende Funktionsblöcke aus der Bibliothek instanziert werden:
• SysFileOpenAsync Datei öffnen
• SysFileCloseAsync Datei schließen
• SysFileWriteAsync in Datei schreiben
• SysFileReadAsync aus Datei lesen
• SysFileDeleteAsync Datei löschen
• SysFileGetPosAsync aktuellen Offset in Datei ermitteln
• SysFileSetPosAsync Offset in Datei setzen
• SysFileEOFAsync Prüfen, ob Ende der Datei erreicht ist
• SysFileGetSizeAsync Dateigröße ermitteln
• SysFileGetTimeAsync Zeitangaben bzgl. Erstellung, Zugriff, Änderung
• SysFileCopyAsync Datei kopieren
• SysFileRenameAsync Datei umbenennen
• SysFileCloseAllOpenAsync Alle aktuell geöffneten Dateien schließen
Allgemein
Die Funktionsblöcke dieser Bibliothek haben folgende gemeinsamen Merkmale:
- Eingangsparameter bEnable : BOOL
- Ausgangsparameter bDone : BOOL
- Ausgangsparameter bBusy : BOOL
- Ausgangsparameter bError : BOOL
- Ausgangsparameter wErrorId : WORD
Alle diese Funktionsblöcke starten die jeweilige Aktion, z.B. Öffnen einer Datei, bei steigender Flanke
am Eingang bEnable. Dann müssen diese Funktionsblöcke zyklisch aufgerufen werden, bis sie bDone
melden. Anschließend sind dann die Ausgänge bError und wErrorId gültig, sowie sie spezifischen
Ausgangsparameter der einzelnen FBs.
Diese allgemeinen Parameter werden in der folgenden Beschreibung nicht mehr explizit erwähnt.
Die Spalte E/A gibt an, ob es sich bei dem Parameter um eine Ein- oder Ausgangsvariable handelt.
© 3S – Smart Software Solutions GmbH / 09.12.2004/ CoDeSys V2.3 1
Die Bibliothek [Link]
SysFileOpenAsync
Dieser Funktionsblock dient dem Öffnen einer bereits bestehenden oder neu zu generierenden Datei.
Der Ausgang hFile ist eine 'Datei-Nummer', die den anderen Funktionsblöcken als Eingang dient.
Input-Variable Datentyp Beschreibung
stFileName STRING Datei-Name
stMode STRING Modus, in dem die Datei bearbeitet werden soll:
w write (Datei wird überschrieben oder neu angelegt)
r read (Datei wird nur zum Lesen geöffnet; wenn die
Datei nicht existiert, wird ein Fehler zurückgegeben)
rw read and write (Datei wird überschrieben der neu
angelegt)
a append (Datei wird wie mit 'w' geöffnet, aber beim
Schreiben wird am Dateiende angehängt)
SysFileCloseAsync
Dieser Funktionsblock dient dem Schließen einer Datei, die mit SysFileOpenAsync geöffnet wurden.
Input-Variable Datentyp Beschreibung
hFile DWORD Datei-Nummer (aus SysFileOpenAsync)
SysFileWriteAsync
Dieser Funktionsblock dient zum Schreiben von Daten in die Datei, die zuvor mit dem FB
SysFileOpenAsync geöffnet wurde.
Variable E/A Datentyp Beschreibung
hFile E DWORD Datei-Nummer (siehe SysFileOpenAsync)
pBuffer E DWORD Adresse des Buffers (ermittelbar mit dem Hilfe des Operators
ADR) der zu schreibenden Daten
dwSize E DWORD Anzahl der Bytes, die in die Datei geschrieben werden sollen
(ermittelbar mit Hilfe des Operators SIZEOF )
dwWrite A DWORD Anzahl der Bytes die wirklich geschrieben wurden.
Der Parameter pBuffer muss mit dem ADR()-Operator ermittelt werden. Die zu schreibenden Daten
werden binär, d.h. ohne jede Konvertierung in die Datei geschrieben.
SysFileReadAsync
Dieser Funktionsblock dient zum Lesen aus einer Datei.
Variable E/A Datentyp Beschreibung
hFile E DWORD Datei-Nummer (siehe SysFileOpenAsync)
pBuffer E DWORD Adresse des Buffers der zu lesenden Daten (ermittelbar mit
dem Hilfe des Operators ADR)
dwSize E DWORD Anzahl der Bytes, die aus dem Buffer gelesen werden sollen
dwRead A DWORD Anzahl der wirklich gelesenen Bytes.
2 © 3S – Smart Software Solutions GmbH / 09.12.2004/ CoDeSys V2.3
Die Bibliothek [Link]
Der Parameter pBuffer muss mit dem ADR()-Operator ermittelt werden. Die zu schreibenden Daten
werden binär, d.h. ohne jede Konvertierung eingelesen und nach pBuffer kopiert.
SysFileDeleteAsync
Dieser Funktionsblock dient dem Löschen einer Datei.
Input-Variable Datentyp Beschreibung
stFileName STRING Datei-Name
SysFileGetPosAsync
Dieser Funktionsblock gibt die aktuelle Schreib-/Leseposition einer geöffneten Datei an.
Input-Variable Datentyp Beschreibung
hFile DWORD Datei-Nummer (aus SysFileOpenAsync)
SysFileSetPosAsync
Dieser Funktionsblock dient dazu, die aktuelle Schreib-/Leseposition einer geöffneten Datei zu setzen.
Input-Variable Datentyp Beschreibung
hFile DWORD Datei-Nummer (siehe SysFileOpenAsync)
dwPos DWORD Offset innerhalb der Datei, der für Zugriffe gilt
SysFileEOFAsync
Dieser Funktionsblock dient zur Abfrage, ob der Schreib-/Lesezeiger am Ende der Datei steht.
Variable E/A Datentyp Beschreibung
hFile E DWORD Datei-Nummer (siehe SysFileOpenAsync)
bEOF A DWORD Gibt an, ob das Dateiende erreicht wurde.
SysFileGetSizeAsync
Dieser Funktionsblock dient zur Abfrage der Größe einer Datei in Bytes.
Variable E/A Datentyp Beschreibung
stFileName E STRING Datei-Name
dwSize A DWORD Die Größe der Datei in Bytes.
SysFileGetTimeAsync
Dieser Funktionsblock liefert innerhalb einer Struktur die Änderungs- und Erstellungsdaten einer Datei
zurück.
Variable E/A Datentyp Beschreibung
stFileName E STRING Datei-Name
ftFileTime A POINTER TO FILETIME Zeigt auf Struktur FILETIME; der Operator
ADR kann hierbei zu Hilfe genommen werden
© 3S – Smart Software Solutions GmbH / 09.12.2004/ CoDeSys V2.3 3
Die Bibliothek [Link]
Struktur FILETIMEASYNC:
TYPE FILETIMEASYNC
STRUCT
dtCreation:DT; (* Erstelldatum *)
dtLastAccess:DT; (* Datum letzter Zugriff *)
dtLastModification:DT; (* Datum letzte Änderung *)
END_STRUCT
END_TYPE
SysFileCopyAsync
Dieser Funktionsblock dient dazu, den Dateiinhalt in eine Datei mit anderem Namen zu kopieren.
Variable E/A Datentyp Beschreibung
stFileDest E STRING Datei, in die kopiert werden soll
stFileSource E STRING Datei, aus der kopiert werden soll
dwCopied A DWORD Anzahl kopierter Bytes.
SysFileRenameAsync
Dieser Funktionsblock dient dem Umbenennen einer Datei.
Input-Variable Datentyp Beschreibung
stFileOldName STRING Bisheriger Datei-Name
stFileNewName STRING Neuer Datei-Name
SysFileCloseAllOpenAsync
Dieser Funktionsblock schließt alle momentan vom System geöffneten Dateien. Er hat keine
Eingabeparameter, außer bEnable.
4 © 3S – Smart Software Solutions GmbH / 09.12.2004/ CoDeSys V2.3