Typ | Funktionsbaustein |
Beschreibung | Liest Daten aus einer Datei, die zuvor mit dem Funktionsbaustein FILE_OPEN geöffnet wurde.Geben Sie das gültige Datei-Handle der Datei, aus der gelesen werden soll, am Eingang Handle an.Erzeugen Sie einen Datenpuffer in ausreichender Größe für die zu lesenden Daten (Ein-/Ausgang Buffer). Der Datenpuffer für die zu lesenden Daten kann auf verschiedene Weise deklariert werden. Der Typ des Datenpuffers ist ein anwenderdefinierter Datentyp, z.B. ein Byte-Array (siehe folgendes Beispiel). Zeichenfolgen können nicht direkt als Datenpuffer verwendet werden. Sollen die gelesenen Daten als Zeichenfolge behandelt werden, müssen diese zunächst als Array gespeichert und dann mit dem Funktionsbaustein BUF_TO_STRING in eine Zeichenfolge umgewandelt werden.
Beispiel: Byte-Array verwendet als Datenpuffer
TYPE FileBuffer : ARRAY [1..100] OF BYTE; END_TYPE Die Größe des Datenpuffers beträgt in diesem Fall 100 Zeichen.
Die Anzahl der zu lesenden Bytes wird am Eingang MaxLength angegeben.Der Funktionsbaustein wird mit einer steigenden Flanke am Eingang Execute aktiviert. Die Ausführung des Funktionsbausteins ist abgeschlossen, wenn der Ausgang Done auf 1 gesetzt wird. Tritt bei der Ausführung ein Fehler auf, wird der Ausgang Error auf 1 gesetzt. Die ErrorID gibt die Nummer der Fehlerursache an.Nach erfolgreicher Ausführung werden die Daten in den Puffer kopiert. Die Anzahl der gelesenen Zeichen wird am Ausgang LengthRead zurückgeliefert. Die Anzahl der gelesenen Zeichen kann kleiner sein als MaxLength. Dies ist dann der Fall, wenn das Dateiende erreicht wurde, bevor die Anzahl der angegebenen Zeichen verarbeitet wurde. |
Hinweise |
- Der Status der Ausgänge Done, LengthRead, Error und ErrorID bleibt solange erhalten, bis am Eingang Execute eine fallende Flanke erkannt wird.
- Funktionsbausteine müssen instanziiert werden. Der FB-Instanzname muss in der 'Variablen'-Tabelle der POE deklariert werden, in welcher der FB verwendet werden soll. Der Instanzname muss innerhalb der POE eindeutig sein.
|
Parameter | Eingänge
Execute
Datentyp: | BOOL |
Beschreibung: | Liest Daten aus der Datei, wenn eine steigende Flanke erkannt wurde. |
Handle
Datentyp: | UINT |
Beschreibung: | Datei-Handle der Datei, aus der Daten gelesen werden sollen. |
MaxLength
Datentyp: | ANY_INT |
Beschreibung: | Anzahl der zu lesenden Zeichen. Der Wert muss größer oder gleich 0 sein. |
Ein-/Ausgang
Buffer
Datentyp: | ANY |
Beschreibung: | Datenpuffer für die zu lesenden Daten. |
Ausgänge
Done
Datentyp: | BOOL |
Beschreibung: |
0 | Der Funktionsbaustein wurde nicht ausgeführt. |
1 | Der Funktionsbaustein wurde ausgeführt. |
|
LengthRead
Datentyp: | UDINT |
Beschreibung: | Anzahl der gelesenen Zeichen. |
Error
Datentyp: | BOOL |
Beschreibung: |
0 | Beim Lesen ist kein Fehler aufgetreten. |
1 | Beim Lesen ist ein Fehler aufgetreten. |
|
ErrorID
Datentyp: | UINT |
Beschreibung: | Fehlernummer des beim Lesen der Datei aufgetretenen Fehlers:
0 | Keine Fehlerinformationen vorhanden. |
1 | Ungültiges Datei-Handle. |
10 | Es wurde versucht, nach dem Dateiende zu lesen. |
12 | Die Anzahl der zu lesenden Zeichen ist größer als der Datenpuffer. |
14 | Ungültige Länge. Der Wert muss >= 0 sein. |
22 | Es konnten keine Daten gelesen werden. |
|
|