ReceiveByte
Interface
VAR_OUTPUT
ByteReceived: BOOL;
ReceivedByte: BYTE;
Error: ComError_t;
END_VAR
VAR_IN_OUT
RxBuffer : ComBuffer;
END_VAR
Beschreibung
Der Baustein ReceiveByte empfängt ein einzelnes Zeichen von der mit der Eingangsvariablen RxBuffer korrespondierenden Schnittstelle. Ist nach dem Aufruf ByteReceived=TRUE, dann steht in der Ausgangsvariablen ReceivedByte das empfangene Datenbyte zur Verfügung. Anderenfalls wurden keine Daten empfangen.
Hinweis
Sobald der Baustein ReceiveByte in einer langsameren SPS-Task abgearbeitet wird, als die Kommunikation mit der Hardware, ist zu beachten, dass in jedem SPS-Zyklus mehr als ein Zeichen bereitstehen kann. Die empfangenen Zeichen sollten daher in einer Schleife ausgelesen werden:
REPEAT
Receive(RXbuffer:=RXbuffer);
IF Receive.ByteReceived THEN
(* Zeichen auswerten *)
END_IF
UNTIL NOT Receive.ByteReceived
END_REPEAT
Die Anzahl der Schleifendurchläufe ist dabei grundsätzlich auf die Größe des Empfangsdatenpuffers (zur Zeit 300 Byte) begrenzt, so dass eine Endlosschleife nicht zu befürchten ist.