FILEWRITE
Mit diesem Funktionsbaustein können Daten in eine Datei geschrieben werden. Die Datei muss für einen Schreibzugriff zuvor mit dem Modus "FILE_OPENCREATE" oder "FILE_OPENWRITE" geöffnet worden sein und zur weiteren Verarbeitung durch externe Programme wieder geschlossen werden.
VAR_INPUT
VAR_INPUT
NETID : T_AmsNetId; (* ams net id *)
HFILE : UINT; (* file handle *)
BUFADDR : DWORD; (* buffer address for write *)
COUNT : UDINT; (* count of bytes for write *)
WRITE : BOOL; (* write control input *)
TMOUT : TIME;
END_VAR
NETID : Ist ein String, der die AMS-Netzwerkkennung des Zielgerätes enthält, an das der ADS-Befehl gerichtet wird.
HFILE : Wird mit dem, durch FILEOPEN bereits erzeugten, File-Handle belegt.
BUFADDR : Enthält die Adresse des Puffers, der die zu schreibenden Daten enthält. Der Puffer kann eine Einzelvariable, ein Array oder eine Struktur sein, dessen Adresse mit dem ADR - Operator ermittelt werden kann.
COUNT : Enthält die Anzahl der zu schreibenden Bytes.
WRITE : Durch eine steigende Flanke an diesem Eingang wird der ADS-Befehl ausgelöst.
TMOUT : Gibt die Zeit bis zum Abbruch der Funktion an.
VAR_OUTPUT
VAR_OUTPUT
BUSY : BOOL;
ERR : BOOL;
ERRID : UDINT;
COUNT_W : UDINT; (* count of bytes actually written *)
END_VAR
BUSY : Dieser Ausgang bleibt solange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt, längstens aber für die Dauer der, an dem 'Timeout'-Eingang angelegten, Zeit. Während Busy = TRUE wird an den Eingängen kein neuer Befehl angenommen. Bitte beachten Sie, dass nicht die Ausführung des Dienstes, sondern nur dessen Annahme zeitlich überwacht wird.
ERR : Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in 'ErrorId' enthalten. Wenn der Baustein ein Timeout-Fehler hat, so ist 'Error' = TRUE und 'ErrorId' = 1861 (Hexadezimal 0x745). Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.
ERRID : Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Ist der Fehlercode -1 (16#FFFF), so kann der Schreibvorgang nicht durchgeführt werden, weil z.B. die Datei nicht korrekt geöffnet wurde.
COUNT_W : Enthält die Anzahl der aktuell geschriebenen Bytes.
Beispiel für den Aufruf des Bausteins in FBD:

Im Beispiel werden, nach steigender Flanke von "bWriteTrig", 9 Byte des Arrays "byArrTest" an das Ende der Datei mit dem Handle "61450" geschrieben.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken |
---|---|---|
TwinCAT v2.7.0 | PC or CX (x86) | PLCSystem.Lib |
TwinCAT v2.8.0 | PC or CX (x86) | TcSystem.Lib |
TwinCAT v2.10.0 Build >= 1301 | CX (ARM) | TcSystem.Lib |