FB_FileTell

FB_FileTell 1:

Der Funktionsbaustein ermittelt die aktuelle Position des Dateizeigers. Die Position gibt den relativen Offset zum Dateianfang. 

Bitte beachten Sie, dass bei Dateien, die in dem Modi "Anhängen ans Ende der Datei" geöffnet wurden die aktuelle Position durch die letzte I/O-Operation bestimmt wird, nicht dadurch wo der nächste Schreibzugriff stattfinden wird. Wenn z.B. zuletzt gelesen wurde, dann steht der Dateizeiger an der Position, wo der nächste Lesezugriff stattfindet und nicht an der Position wo der nächste Schreibzugriff stattfinden wird (im Modus zum Anhängen wird der Dateizeiger vor der Schreiboperation immer an das Ende bewegt!).

Wenn keine I/O-Operation bis jetzt durchgeführt wurde und die Datei im Modi zum Anhängen geöffnet wurde dann steht der Dateizeiger am Dateianfang.

VAR_INPUT

VAR_INPUT
    sNetId      : T_AmsNetId;
    hFile       : UINT;
    bExecute    : BOOL;
    tTimeout    : TIME;
END_VAR

sNetId    : Ist ein String, der die AMS-Netzwerkkennung des Zielgerätes enthält, an das der ADS-Befehl gerichtet wird.

hFile    : Datei-Handle.

bExecute    : Durch eine steigende Flanke an diesem Eingang wird der Funktionsbaustein aktiviert.

tTimeout    : Gibt die Timeout-Zeit an, die bei der Ausführung des ADS-Kommandos nicht überschritten werden darf.

VAR_OUTPUT

VAR_OUTPUT
    bBusy       : BOOL;
    bError      : BOOL;
    nErrId      : UDINT;
    nSeekPos    : DINT;         (*      On error, nSEEKPOS returns -1 *)
END_VAR

bBusy:    Bei der Aktivierung des Funktionsbausteins wird dieser Ausgang gesetzt und bleibt gesetzt, bis eine Rückmeldung erfolgt.

bError:    Sollte ein ADS-Fehler bei der Übertragung des Kommandos erfolgen, dann wird dieser Ausgang gesetzt, nachdem der bBusy-Ausgang zurückgesetzt wurde.

nErrId:    Liefert bei einem gesetzten bError-Ausgang die ADS-Fehlernummer.

nSeekPos :   Liefert die aktuelle Position des Dateizeigers.

 

Function specific ADS error code

Possible reason

0x703

Invalid or unknown file handle.

0x70E

File was opened with wrong method ( e.g. with 'obsolete' FILEOPEN function block ).

 

Beispiel für den Aufruf des Bausteins in FBD:

PROGRAM Test
VAR
    fbFileTell      : FB_FileTell;
    hFile           : UINT;
    bFileTell       : BOOL;
    bFileTellBusy   : BOOL;
    bFileTellError  : BOOL;
    nFileTellErrorId: UDINT;
    nFileTellSeekPos: DINT;
END_VAR
FB_FileTell 2:

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS Bibliotheken

TwinCAT v2.8.0

PC or CX (x86)

TcSystem.Lib

TwinCAT v2.10.0 Build >= 1301

CX (ARM)

TcSystem.Lib