SerialLineControlADS
Der Funktionsbaustein SerialLineControlADS
wickelt die Kommunikation zwischen einer virtuellen seriellen Schnittstelle und der SPS ab. Der Funktionsbaustein wird zyklisch aufgerufen und stellt empfangene Daten im RxBuffer
bereit. Gleichzeitig werden im Sendepuffer TxBuffer
bereitgestellte Daten zur Schnittstelle übertragen.
Da die Funktion unabhängig von der Applikation abgewickelt wird, wird sie als Hintergrundkommunikation bezeichnet und kann, ebenso wie der Funktionsbaustein SerialLineControl
, auch in einer schnellen Task abgewickelt werden. Im Normalfall kann der Baustein jedoch in der Standard-Task aufgerufen und so auf eine separate zweite schnellere Task verzichtet werden. (siehe Kommunikationskonzept und Unterstützte Hardware).
Sobald der Funktionsbaustein zyklisch aufgerufen und der Eingang Connect
gesetzt wird, wird automatisch der parametrierte serielle COM Port geöffnet.
Dadurch ist dieser COM Port für andere Applikationen geblockt. Möchten Sie den COM Port zwischenzeitlich freigeben, um von einer anderen Applikation aus darauf zuzugreifen, so können Sie den Eingang Connect zurücksetzen. Dadurch wird der bisherige Port geschlossen. Wird in der Eingangsstruktur SerialCfg ein anderer COM Port oder eine andere Parametrierung angewählt, wird automatisch der vorherige Port geschlossen und daraufhin der neue Port geöffnet.
Eingänge
VAR_INPUT
Connect : BOOL; (* connect to serial port [TRUE=connect, FALSE=disconnect] *)
SerialCfg : ComSerialConfig;
NetId : T_AmsNetId := ''; (* host NetId *)
Timeout : TIME := DEFAULT_ADS_TIMEOUT; (* Timeout for ADS calls *)
END_VAR
Name | Typ | Beschreibung |
---|---|---|
Connect | BOOL | Um eine Verbindung zu einem seriellen Port zu initialisieren, muss Connect TRUE am Funktionsbaustein anliegen. Liegt Connect FALSE an, so wird ein geöffneter Port wieder geschlossen. |
SerialCfg | Diese Eingangsstruktur definiert welcher COM Port mit welchen Parametern verwendet und geöffnet werden soll. | |
NetId | T_AmsNetId | Um die Anfrage auf dem lokalen Gerät durchzuführen, bedarf es keiner Angabe dieser Eingangsvariablen. Alternativ kann ein leerer String angegeben werden. Um die Anfrage an ein anderes TwinCAT Zielgerät zu richten kann hier die entsprechende AMS Net Id angegeben werden. |
Timeout | TIME | Gibt eine maximale Zeitdauer für die Ausführung des Funktionsbausteines an. Der Defaultwert ist 5 Sekunden. (Es sollte ein Wert von mindestens 1000ms angegeben werden.) |
Ein-/Ausgänge
VAR_IN_OUT
TxBuffer : ComBuffer;
RxBuffer : ComBuffer;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
TxBuffer | Puffer mit Sendedaten für die verwendete serielle Schnittstelle. 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. |
Ausgänge
VAR_OUTPUT
PortOpened : BOOL; (* Indicates if selected serial port is opened *)
Error : BOOL; (* 'TRUE' if an error occurred *)
ErrorID : UDINT; (* Displays the error code; 0 = no error *)
Busy : BOOL; (* 'TRUE' if internal ADS communication is busy *)
TxBufCount : UDINT; (* number of bytes in internal Tx buffer *)
RxBufCount : UDINT; (* number of bytes in internal Rx buffer *)
END_VAR
Name | Typ | Beschreibung |
---|---|---|
PortOpened | BOOL | Dieser Ausgang gibt an, ob der gewählte serielle Port geöffnet und verbunden ist. |
Error | BOOL | Der Error Ausgang wird TRUE, sobald ein Fehler auftritt. |
ErrorID | UDINT | Der ErrorID Ausgang gibt im Fehlerfall einen Fehlercode aus. Im Kapitel Fehlercodes finden Sie eine Auflistung möglicher Werte sowie Hinweise zur Fehlerbehebung. |
Busy | BOOL | Dieser Ausgang ist TRUE, so lange die interne ADS Kommunikation des Funktionsbausteines aktiv ist. |
TxBufCount | UDINT | Am Ausgang TxBufCount lässt sich feststellen, ob sich noch Datenbytes im internen SPS Puffer befinden, welche noch nicht versendet wurden. |
RxBufCount | UDINT | Am Ausgang RxBufCount lässt sich feststellen, ob sich noch empfangene Datenbytes im internen SPS Puffer befinden, welche noch nicht zum RxBuffer übertragen wurden. |
Voraussetzungen
Entwicklungsumgebung |
Zielplattform |
Einzubindende SPS-Bibliotheken |
---|---|---|
TwinCAT v3.1.4016 |
PC oder CX (x86, x64) |
Tc2_SerialCom |