FB_BinaryWriter

 

FB_BinaryWriter - Allgemeine Informationen

Übersicht

Typ

Funktionsbaustein

Verfügbar ab

V1.0.3.0

Übernommen aus

-

Implementiert

-

Versionen:

Aktuelle Version

Aufgabe

Effizientes Schreiben beliebiger Datenstrukturen in eine Binärdatei.

Beschreibung

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.

Schnittstelle

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

ET_WriteMode

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

GD.ET_Diag

Allgemeingültige, bibliotheksunabhängige Aussage zur Diagnose.

Ein Wert ungleich ET_Diag.Ok entspricht einer Diagnosemeldung.

q_etDiagExt

ET_DiagExt

POU-spezifischer, diagnosebezogener Ausgang.

q_etDiag = ET_Diag.Ok -> Statusmeldung

q_etDiag <> ET_Diag.Ok -> Diagnosemeldung

Diagnosemeldungen

q_etDiag

q_etDiagExt

Enumerationswert

Beschreibung

OK

Executing

128

Version

OK

WaitForExecute

180

Warten auf Ausführung.

FileHandlingInvalid

CanNotOpenFile

112

Die Datei kann nicht geöffnet werden.

FileHandlingInvalid

TooManyFilesOpen

105

Es sind zu viele Dateien geöffnet.

InputParameterInvalid

UnknownMode

111

Mode ist nicht bestimmbar.

UnexpectedProgramBehavior

UnexpectedFeedback

1

Es ist ein unbeabsichtigter Fehler während der Ausführung aufgetreten.

CanNotOpenFile

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.

Executing

Enumerationsname:

Executing

Enumerationswert:

128

Beschreibung:

Version

Die Daten werden geschrieben.

TooManyFilesOpen

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.

UnexpectedFeedback

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.

UnknownMode

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.

WaitForExecute

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.