Sie sind auf Seite 1von 6

Bibliotheksbeschreibung:

CoDeSys V 3.x
SysDirAsync.library

Dokument Version 1.0


libdoc_d.dot / V1.0

3S - Smart Software Solutions GmbH Seite 1 von 6


SysDirAsync_V3x_D.doc
Bibliothek SysDirAsync.library

INHALT

1 BERBLICK 3

2 ALLGEMEIN 4

NDERUNGSHISTORIE 6
libdoc_d.dot / V1.0

3S - Smart Software Solutions GmbH Seite 2 von 6


SysDirAsync_V3x_D.doc
Bibliothek SysDirAsync.library

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.

Das Zielsystem muss die Funktionalitt untersttzen!

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

3S - Smart Software Solutions GmbH Seite 3 von 6


SysDirAsync_V3x_D.doc
Bibliothek SysDirAsync.library

2 Allgemein

Da die Async-Funktionalitt fr die Dateizugriffe auf Basis der SysDir.library-Bausteine ber


Wrapper-Methoden und gemeinsam verwendete Strukturen (DUTs) erreicht wird, erwarten
alle Async-Methoden letztendlich immer folgende Eingabeparameter:
Input-Variable Datentyp Beschreibung

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.

Die Methoden vom Typ SysDirAsyncFB:

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.

3S - Smart Software Solutions GmbH Seite 4 von 6


SysDirAsync_V3x_D.doc
Bibliothek SysDirAsync.library

Der Rckgabewert jeder SysDir.library-Funktion wird in einer seinem Typ entsprechend


benannten Komponente der zur Funktion gehrenden Struktur bereitgestellt:
Typ des Rckgabeparameters der Name der Struktur-Komponente
SysDir.library-Funktion

BYTE t<Funktion der SysDir.library>.pbyOut

UDINT t<Funktion der SysDir.library>.pulOut

WORD t<Funktion der SysDir.library>.pusOut

STRING t<Funktion der SysDir.library>.pszOut

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:

ASYNCSTATE_READY: Auftrag erfolgreich abgeschlossen

ASYNCSTATE_ERROR: Auftrag mit Fehler abgeschlossen

ASYNCSTATE_TIMEOUT: Timeout fr den Auftrag abgelaufen, bevor Auftrag


abgeschlossen werden konnte.

Im Parameter ResultAsync wird der Fehlercode der Methode SysDirOpenAsync


zurckgegeben. Dieser Fehlerwert gibt nur darber Auskunft, ob der asynchrone Job
angelegt werden konnte. In der Variable hJob befindet sich das Handle des asynchronen
Jobs. Mit den Zugriffsfunktionen der Bibliothek CmpAsyncMgr.library und diesem Handle
libdoc_d.dot / V1.0

kann man weitere Informationen zu diesem Job auslesen.

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.

3S - Smart Software Solutions GmbH Seite 5 von 6


SysDirAsync_V3x_D.doc
Bibliothek SysDirAsync.library

nderungshistorie
Version Beschreibung Datum

0.1 Erstellung 09.08.2007


0.2 Ergnzung 23.10.2007
0.3 Ergnzung und Review 07.02.2008
1.0 Release 11.02.2008
libdoc_d.dot / V1.0

3S - Smart Software Solutions GmbH Seite 6 von 6


SysDirAsync_V3x_D.doc