Beruflich Dokumente
Kultur Dokumente
CoDeSys V 3.x
SysDirAsync.library
INHALT
1 BERBLICK 3
2 ALLGEMEIN 4
NDERUNGSHISTORIE 6
libdoc_d.dot / V1.0
1 berblick
Hinweis: Es hngt vom verwendeten Zielsystem ab, welche Systembibliotheken im Steuerungsprogramm verwendet
werden knnen.
Diese Bibliothek untersttzt asynchrone Zugriffe auf Dateiverzeichnisse aus der IEC-
Applikation. Sie enthlt automatisch die Bibliothek SysDir.library fr synchrone Dateizugriffe,
deren Bausteine sie als Basis fr die entsprechende asynchrone Funktionalitt verwendet.
Dazu stellen die Bausteine der SysDir.library ihre Parameter in entsprechenden Strukturen
der SysDirAsync.library zur Verfgung und knnen von deren Methoden und Wrapper-
Methoden verwendet werden.
Die Funktionen:
SysDirCloseAsync
SysDirCreateAsync
SysDirDeleteAsync
SysDirGetCurrentAsync
SysDirOpenAsync
SysDirReadAsync
SysDirRenameAsync
SysDirSetCurrentAsync
Die Strukturen:
tSysDirClose
tSysDirCreate
tSysDirDelete
tSysDirGetCurrent
tSysDirOpen
tSysDirRead
tSysDirRename
tSysDirSetCurrent
libdoc_d.dot / V1.0
2 Allgemein
p<Funktion aus POINTER TO Zeiger auf die Struktur, die die Parameter der
SysDir.library> t<Funktion aus entsprechenden SysDir.library-Funktion enthlt.
SysDir.library>
z.B. Variable pSysDirOpen und Struktur
tSysDirOpen
pudState POINTER TO Zeiger auf den aktuellen Status:
UDINT
ASYNCSTATE_INVALID
: UDINT := 16#FFFFFFFF;
ASYNCSTATE_PENDING
: UDINT := 0;
ASYNCSTATE_ACTIVE
: UDINT := 1;
ASYNCSTATE_READY
: UDINT := 2;
ASYNCSTATE_ERROR
: UDINT := 3;
ASYNCSTATE_TIMEOUT
: UDINT := 4;
pResult POINTER TO Zeiger auf Fehler-Code, siehe Dokument Runtime
UDINT Error Codes.
SysDirOpenAsync
SysDirCreateAsync
SysDirReadAsync
SysDirRenameAsync
SysDirSetCurrentAsync
SysDirGetCurrentAsync
SysDirCloseAsync
SysDirDeleteAsync
Jede Methode fhrt die Operation nicht synchron aus, sondern legt einen so genannten Job
in der Laufzeitsystemkomponente AsyncManager an. Der AsyncManager ruft seinerseits die
Wrapper Methoden auf, die letztendlich die gewnschte Operation ausfhren. In den
Wrapper-Funktionen werden die Aufrufe der in C implementierten Sys-Funktionen
libdoc_d.dot / V1.0
geschachtelt.
Die Strukturen (DUTs, Data Unit Types) mit den Eingabeparametern der entsprechenden
SysDir.library-Funktion sind nach folgender Syntax benannt:
t<Funktion der SysDir.library>. Beispiel: tSysDirOpen.
Bei Start des asynchronen Auftrages ist der Status udStateOpen immer
ASYNCSTATE_INVALID.
Beispiel:
DECLARATION:
udStateOpen: UDINT := ASYNCSTATE_INVALID;
TestFB : SysDirAsyncFB;
SDO : tSysDirOpen;
TestDirInfo: DirInfo;
Result, ResultAsync, HandleOUT, hJob: UDINT;
IMPLEMENTATION:
SDO.szDir := 'D:/CoDeSys';
SDO.szDirEntry := 'Documentation';
SDO.diMaxDirEntry:= 30;
SDO.pDirInfo:= adr(TestDirInfo);
SDO.pResult:= adr(Result);
SDO.pulOut:= adr(HandleOUT);
hJob := TestFB.SysDirOpenAsync(adr(SDO), adr(udStateOpen),
adr(ResultAsync));
Bei Aufruf der SysDirOpen-Methode wird der asynchrone Auftrag gestartet. Der Auftrag ist
beendet, wenn der Status einer der 3 Werte annimmt:
Nachdem der Job bearbeitet wurde und der Status des Jobs ASYNCSTATE_READY oder
ASYNCSTATE_ERROR ist, stehen in der Struktur SDO die Ergebnisse der asynchronen
Operation.
nderungshistorie
Version Beschreibung Datum