FB_BinaryWriter - Allgemeine Informationen
Typ |
Funktionsbaustein |
Verfügbar ab |
V1.0.3.0 |
Übernommen aus |
- |
Implementiert |
- |
Versionen: |
Aktuelle Version |
Effizientes Schreiben beliebiger Datenstrukturen in eine Binärdatei.
Die Funktion schreibt die in i_diBufferSize angegebene Anzahl von Bytes aus dem Speicher an der Adresse i_dwBufferAdr in eine Datei. An der Position von i_dwBufferAdr muss entsprechend viel Speicher reserviert sein. Wird der Modus ET_WriteMode.Create i_etMode ausgewählt, dann wird die Datei neu erzeugt. Ist bereits eine Datei mit gleichem Namen vorhanden, wird sie überschrieben. Wird der Modus ET_WriteMode.Append ausgewählt, dann werden die neuen Daten an die bereits bestehende Datei angehängt.
Der Schreibvorgang startet bei einer positiven Flanke an i_xExecute und hält bei Erkennung eines Fehlers oder nach erfolgreichem Schreiben aller Daten an. Während des Schreibvorgangs darf kein Parameter (außer i_xExecute) geändert werden. Zudem darf auf den Speicherbereich, auf den i_dwBufferAdr zeigt, nicht schreibend zugegriffen werden.
Eingang |
Datentyp |
Beschreibung |
---|---|---|
i_xExecute |
BOOL |
FALSE -> TRUE: Baustein wird aktiviert. Der Schreibvorgang beginnt. |
i_sFileName |
STRING[80] |
Name der Textdatei, in die die Variablen geschrieben werden sollen. |
i_diBufferSize |
DINT |
Anzahl der Bytes, die geschrieben werden sollen. |
i_dwBufferAdr |
DWORD |
Adresse des Arrays, aus dem die Daten ausgelesen werden. Es muss entsprechend viel Speicher reserviert sein. |
i_etMode |
Wird der Modus ET_WriteMode.Create ausgewählt, dann wird die Datei neu erzeugt. Ist bereits eine Datei mit gleichem Namen vorhanden, wird sie überschrieben. Wird der Modus ET_WriteMode.Append ausgewählt, dann werden die neuen Daten an die bereits bestehende Datei angehängt. |
Ausgang |
Datentyp |
Beschreibung |
---|---|---|
q_xBusy |
BOOL |
TRUE: Die POU ist eingeschaltet und muss weiter ausgeführt werden. FALSE: Die POU ist abgeschaltet. |
q_xDone |
BOOL |
TRUE: Die POU ist betriebsbereit und kann Anwenderbefehle entgegennehmen. FALSE: Die POU ist nicht bereit, Anwenderbefehle entgegenzunehmen. |
q_etDiag |
Allgemeingültige, bibliotheksunabhängige Aussage zur Diagnose. Ein Wert ungleich ET_Diag.Ok entspricht einer Diagnosemeldung. |
|
q_etDiagExt |
POU-spezifischer, diagnosebezogener Ausgang. q_etDiag = ET_Diag.Ok -> Statusmeldung q_etDiag <> ET_Diag.Ok -> Diagnosemeldung |
q_etDiag |
q_etDiagExt |
Enumerationswert |
Beschreibung |
---|---|---|---|
OK |
128 |
Version |
|
OK |
180 |
Warten auf Ausführung. |
|
FileHandlingInvalid |
112 |
Die Datei kann nicht geöffnet werden. |
|
FileHandlingInvalid |
105 |
Es sind zu viele Dateien geöffnet. |
|
InputParameterInvalid |
111 |
Mode ist nicht bestimmbar. |
|
UnexpectedProgramBehavior |
1 |
Es ist ein unbeabsichtigter Fehler während der Ausführung aufgetreten. |
Enumerationsname: |
CanNotOpenFile |
Enumerationswert: |
112 |
Beschreibung: |
Die Datei kann nicht geöffnet werden. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Die Datei i_sFileName konnte nicht geöffnet werden. |
Prüfen Sie, ob die Datei namens i_sFileName auf dem Datenträger gespeichert ist. Überprüfen Sie den Datenträger auf Defekte. |
Enumerationsname: |
Executing |
Enumerationswert: |
128 |
Beschreibung: |
Version |
Die Daten werden geschrieben.
Enumerationsname: |
TooManyFilesOpen |
Enumerationswert: |
105 |
Beschreibung: |
Es sind zu viele Dateien geöffnet. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Es sind zu viele Dateien geöffnet. |
Schließen Sie mit SystemInterface.FC_CloseFile nicht mehr benötigte Dateien. |
Enumerationsname: |
UnexpectedFeedback |
Enumerationswert: |
1 |
Beschreibung: |
Es ist ein unbeabsichtigter Fehler während der Ausführung aufgetreten. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Es ist ein Fehler in der internen Abarbeitung aufgetreten. |
Es ist ein Fehler in der internen Abarbeitung aufgetreten. |
Enumerationsname: |
UnknownMode |
Enumerationswert: |
111 |
Beschreibung: |
Mode ist nicht bestimmbar. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang i_etMode wurde ein ungültiger Wert angelegt. |
Der Eingang i_etMode muss mit einem Element der Enumeration ET_WriteMode belegt werden. |
Enumerationsname: |
WaitForExecute |
Enumerationswert: |
180 |
Beschreibung: |
Warten auf Ausführung. |
Der Funktionsbaustein ist funktionsbereit. Auf eine positive Flanke von i_xExecute hin werden die Daten geschrieben.