SerialLineControl

SerialLineControl 1:

Der Funktionsbaustein SerialLineControl wickelt die Kommunikation zwischen einer seriellen Schnittstelle (KL60xx, EL60xx oder COM-Schnittstelle) und der SPS ab. Der Funktionsbaustein wird zyklisch aufgerufen und stellt empfangene Daten im RxBuffer bereit. Gleichzeitig werden im Sendebuffer TxBuffer bereitgestellte Daten zur Schnittstelle übertragen.

Da die Funktion unabhängig von der Applikation abgewickelt wird, wird sie als Hintergrundkommunikation bezeichnet und kann, insbesondere bei seriellen Busklemmen, auch in einer schnellen Task abgewickelt werden (siehe Kommunikationskonzept und Unterstützte Hardware).

Der Funktionsbaustein ersetzt ab der Version 2.0 der Bibliothek die hardwareabhängigen Funktionsbausteine KL6Control, KL6Control5B und PcComControl.

Interface

VAR_INPUT
    Mode            : ComSerialLineMode_t;
    pComIn          : POINTER TO BYTE
    pComOut         : POINTER TO BYTE
    SizeComIn       : UINT;
END_VAR
VAR_OUTPUT
    Error           : BOOL;
    ErrorID         : ComError_t;
END_VAR
VAR_IN_OUT
    TxBuffer        : ComBuffer;
    RxBuffer        : ComBuffer;
END_VAR

Mode

Der Mode-Eingang legt eindeutig fest, welche serielle Hardware verwendet wird.

pComIn

Universeller Pointer auf die Eingangsvariable der Prozessdaten der seriellen Hardware (Datentypen KL6inData, KL6inData5b, KL6inData22b, EL6inData22b, PcComInData). Der Pointer wird mit der ADR() Funktion zugewiesen.

pComOut

Universeller Pointer auf die Ausgangsvariable der Prozessdaten der seriellen Hardware (Datentypen KL6outData, KL6outData5b, KL6outData22b, EL6outData22b, PcComOutData). Der Pointer wird mit der ADR() Funktion zugewiesen.

SizeComIn

Größe des Eingangs-Prozessabbildes der verwendeten seriellen Hardware. Die Größe wird mit der SIZEOF() Funktion ermittelt und zugewiesen.

Error

Der Error Ausgangs wird TRUE sobald ein Fehler auftritt.

ErrorID

Der ErrorID Ausgang gibt im Fehlerfall einen Fehlercode aus.

TxBuffer

Puffer mit Sendedaten für die verwendete serielle Hardware. Der Sendepuffer wird durch Funktionen wie SendByte, SendData oder SendString gefüllt.

RxBuffer

Puffer in dem die Empfangsdaten abgelegt werden. Der Empfangspuffer wird durch Funktionen wie ReceiveByte, ReceiveData oder ReceiveString ausgelesen.