ReceiveString
Interface
VAR_INPUT
Prefix : STRING;
Suffix : STRING;
Timeout : TIME;
Reset :BOOL;
END_VAR
VAR_OUTPUT
StringReceived: BOOL;
busy : BOOL;
Error: ComError_t;
RxTimeout : BOOL;
END_VAR
VAR_IN_OUT
ReceivedString : STRING;
RXbuffer : ComBuffer;
END_VAR
Beschreibung
ReceiveString empfängt eine Zeichenkette von der mit der Eingangsvariablen RxBuffer korrespondierenden Schnittstelle und speichert sie in der Ausgangsvariablen ReceivedString. Anfang und Ende der Zeichenkette werden über verschiedene miteinander kombinierbare Mechanismen erkannt:
- Präfix
Wird in der Eingangsvariablen Prefix ein String übergeben, so müssen die ersten Zeichen der empfangenen Daten mit diesem Präfix übereinstimmen. Andere Zeichen werden verworfen. Wird kein Präfix übergeben (Leerstring), so beginnt der Empfangsstring mit dem ersten empfangenen Zeichen. - Suffix
Wird in der Eingangsvariablen Suffix ein String übergeben, so werden die Eingangsdaten solange gelesen, bis das Ende des Empfangsstrings mit dem Suffix übereinstimmt. Erreichen die empfangenen Daten dabei die Maximallänge des Empfangsstrings, so wird ein Fehler COMERROR_STRINGOVERRUN generiert. Wenn ein Leerstring als Suffix übergeben wird, so muss alternativ ein Timeout definiert werden, da anderenfalls das Ende der Zeichenkette nicht erkannt werden kann. - Timeout
Wird ein Timeout an den Baustein übergeben, so werden solange Zeichen empfangen, bis nach einem Zeichen eine entsprechend große Zeitlücke folgt. Der Empfangsstring besteht aus den bis dahin empfangenen Zeichen. Suffix und Timeout dürfen kombiniert werden. Wird ein Suffix übergeben, so darf der Timeout 0 sein.
Sobald der Ausgang StringReceived TRUE wird, stehen in der Variablen ReceivedString die empfangenen Daten bereit.
Reset
Durch Setzen des Eingangs Reset wird der Baustein aus dem Empfangszustand in den Grundzustand zurückgesetzt. Das Zurücksetzen ist nur in Ausnahmefällen notwendig, wenn zum Beispiel der erwartete String nicht empfangen werden konnte und der Baustein Busy bleibt.
Anmerkung
Der String ReceivedString hat eine Standardlänge von 80 Zeichen. Für manche Anwendungen kann diese Länge zu kurz sein. In diesem Fall kann der Baustein ReceiveString255 verwendet werden. Der einzige Unterschied ist eine Stringlänge von 255 Zeichen für den ReceivedString.