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 (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.
Interface
FUNCTION_BLOCK SerialLineControlADS
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
VAR_IN_OUT
TxBuffer :ComBuffer; (* serial Tx ComBuffer *)
RxBuffer :ComBuffer; (* serial Rx ComBuffer *)
END_VAR
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
Eingangsvariablen
Connect | 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. Details sind in der Beschreibung von ComSerialConfig zu finden. |
NetId | 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 | 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-/Ausgangsvariablen
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. |
Ausgangsvariablen
PortOpened | Dieser Ausgang gibt an, ob der gewählte serielle Port geöffnet und verbunden ist. |
Error | Der Error Ausgangs wird TRUE sobald ein Fehler auftritt. |
ErrorID | Der ErrorID Ausgang gibt im Fehlerfall einen Fehlercode aus. Im Kapitel Fehlercodes finden Sie eine Auflistung möglicher Werte sowie Hinweise zur Fehlerbehebung. |
Busy | Dieser Ausgang ist TRUE solange die interne ADS Kommunikation des Funktionsbausteines aktiv ist. |
TxBufCount | Am Ausgang TxBufCount lässt sich feststellen, ob sich noch Datenbytes im internen SPS Puffer befinden, welche noch nicht versendet wurden. |
RxBufCount | Am Ausgang RxBufCount lässt sich feststellen, ob sich noch empfangene Datenbytes im internen SPS Puffer befinden, welche noch nicht zum RxBuffer übertragen wurden. |
Einzubindende SPS Bibliotheken |
COMlibV2.lib [Version 2.003.008 oder höher] |