FB_FileTell
Der Funktionsbaustein FB_FileTell ermittelt die aktuelle Position des Dateizeigers. Die Position gibt den relativen Offset zum Dateianfang an.
Beachten Sie, dass bei Dateien, die in dem Modus „Anhängen am Ende der Datei“ geöffnet wurden, die aktuelle Position durch die letzte I/O-Operation bestimmt wird und 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 bisher keine I/O-Operation durchgeführt wurde und die Datei im Modus zum Anhängen geöffnet wurde, dann steht der Dateizeiger am Dateianfang.
Dieser Funktionsbaustein ist nur bedingt für ein Logging in Echtzeit geeignet. |
Eingänge
VAR_INPUT
sNetId : T_AmsNetId;
hFile : UINT;
bExecute : BOOL;
tTimeout : TIME := DEFAULT_ADS_TIMEOUT;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
sNetId | T_AmsNetId | String, der die AMS-Netzwerkkennung des Zielgerätes enthält, an das der ADS-Befehl gerichtet wird (Typ: T_AmsNetId). |
hFile | UINT | Datei-Handle, welches beim Aufruf des Funktionsbausteins FB_FileOpen erzeugt wurde. |
bExecute | BOOL | Durch eine steigende Flanke an diesem Eingang wird der Funktionsbaustein aktiviert. |
tTimeout | TIME | Gibt die Timeout-Zeit an, die bei der Ausführung des ADS-Kommandos nicht überschritten werden darf. |
Ausgänge
VAR_OUTPUT
bBusy : BOOL;
bError : BOOL;
nErrId : UDINT;
nSeekPos : DINT;(* On error, nSEEKPOS returns -1 *)
END_VAR
Name | Typ | Beschreibung |
---|---|---|
bBusy | BOOL | Bei der Aktivierung des Funktionsbausteins wird dieser Ausgang auf TRUE gesetzt und bleibt gesetzt, bis eine Rückmeldung erfolgt. Solange bBusy = TRUE ist, kann kein neuer Befehl ausgeführt werden. |
bError | BOOL | Wenn bei der Ausführung des Befehls ein Fehler auftritt, wird dieser Ausgang gesetzt, nachdem der bBusy-Ausgang zurückgesetzt wurde. |
nErrId | UDINT | Liefert bei einem gesetzten bError-Ausgang den ADS-Fehlercode oder den befehlsspezifischen Fehlercode. |
nSeekPos | DINT | Liefert die aktuelle Position des Dateizeigers. |
Befehlsspezifischer Fehlercode | Mögliche Ursache |
---|---|
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
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliotheken (Kategoriegruppe) |
---|---|---|
TwinCAT v3.1.0 | PC oder CX (x86, x64, ARM) | Tc2_System (System) |