ReceiveByte
![ReceiveByte 1:](Images/png/9007199340804107__de__Web.png)
Der Baustein ReceiveByte empfängt ein einzelnes Zeichen von der mit der Eingangsvariablen RxBuffer korrespondierenden Schnittstelle.
Ein-/Ausgänge
VAR_IN_OUT
RXBuffer : ComBuffer;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
RxBuffer | Empfangsdatenpuffer der mit der verwendeten Schnittstelle korrespondiert. |
Ausgänge
VAR_OUTPUT
ByteReceived : BOOL;
ReceivedByte : BYTE;
Error : ComError_t;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
ByteReceived | BOOL | Ist nach dem Aufruf ByteReceived=TRUE, dann steht in der Ausgangsvariablen ReceivedByte das empfangene Datenbyte zur Verfügung. Anderenfalls wurden keine Daten empfangen. |
ReceivedByte | BYTE | Ist nach dem Aufruf ByteReceived=TRUE, dann steht in der Ausgangsvariablen ReceivedByte das empfangene Datenbyte zur Verfügung. Anderenfalls wurden keine Daten empfangen. |
Error | Error gibt im Fehlerfall einen Fehlercode aus. |
Beispiel
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.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliotheken |
---|---|---|
TwinCAT v3.1.4012 | PC oder CX (ARM, x86, x64) | Tc2_SerialCom |