Senden und Empfangen
Daten senden
Im beiliegenden Beispielprogramm werden Daten über die serielle Schnittstelle im Sekundentakt gesendet und das Programm reagiert sofort auf ein eintreffendes Zeichen.
Mögliche Fehler
Während eines SPS-Zyklus dürfen mehrere Zeichen gesendet werden, solange sie vom Sendepuffer aufgenommen werden können. Bei einem Überlauf des Sendepuffers wird der Busy-Ausgang des Sendebausteins nach dem Aufruf TRUE bleiben. Das letzte Zeichen wurde dann nicht gesendet und der Baustein muß im nächsten SPS-Zyklus mit unveränderten Eingangsdaten erneut aufgerufen werden.
Der Füllstand eines Puffers kann jederzeit ermittelt werden (z. B. TxBuffer.Count bzw. TxBuffer.FreeByte).
PROGRAM MAIN
VAR
ComControl: KL6ControlBC;
Timer: TON;
Receive: ReceiveByte;
Send: SendByte;
Rb: BYTE;
Sb: BYTE;
END_VAR
ComControl( CoMin:=KL6InData,
CoMout:=KL6OutData,
TxBuffer:=TxBuffer,
RxBuffer:=RxBuffer );
Timer(IN:=TRUE,PT:=T#1S );
IF Timer.Q THEN
IF Sb=0 THEN
Sb:=64;
END IF
Sb:=Sb+1;
IF Sb>90 THEN
Sb:=64;
END IF
Send(SendByte:=Sb, TxBuffer:=TxBuffer);
Timer(IN:=FALSE);
END IF