ReceiveByte

ReceiveByte 1:

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.