ComSerialConfig

Diese Eingangsstruktur definiert, welcher COM Port mit welchen Parametern verwendet und geöffnet werden soll.

Wird ein Parameter während dem zyklischen Aufrufen von SerialLineControlADS geändert, so wird automatisch die bestehende COM Port Verbindung geschlossen und der serielle COM-Port mit dem neuen Parameter neu geöffnet. Es ist dabei nicht nötig den Port durch ein Rücksetzen des Einganges Connect explizit zu schließen.

(* contains the configuration parameters of the com port to be opened. *)
TYPE ComSerialConfig :
STRUCT
    ComPort  : UDINT :=1;         (* Serial port number [1..255] *)
    Baudrate : UDINT :=9600;
    Parity   : ComParity_t :=PARITY_NONE;
    DataBits : INT :=8;           (* [4..8] *)
    StopBits : ComStopBits_t :=STOPBITS_ONE;

    DTR      : ComDTRCtrl_t :=DTR_CTRL_HANDSHAKE; (* 'Data Terminal Ready' signal *)
    RTS      : ComRTSCtrl_t :=RTS_CTRL_HANDSHAKE; (* 'Request to Send' signal (= RFR 'Ready for Receiving') *)
    CTS      : BOOL :=FALSE;      (* 'Clear to Send' signal *)
    DSR      : BOOL :=FALSE;      (* 'Dataset Ready' signal *)

    TraceLevel : BYTE     :=0;     (* None=0;Error=1,Warning=2,Info=3,Verbose=4,Noise=5 *)

    Reserved1  : BYTE;
    Reserved2  : BYTE;
    Reserved3  : BYTE;
END_STRUCT
END_TYPE

Name

Beschreibung

ComPort

Windows Betriebssystem:
Es kann ein beliebiger COM Port (COM1, ..., COM255) ausgewählt werden. Welche Nummer ein Treiber (z.B. ein USB-To-Virtual-Com-Port Treiber) vergeben hat, lässt sich im Windows Hardware Geräte Manager nachvollziehen.

TwinCAT/BSD Betriebssystem:
Es lassen sich serielle Ports mit den Gerätenamen ‚ttyU0‘ (bzw. ‚ttyu0‘) bis ‚ttyU255‘ (bzw. ‚ttyu255‘) auswählen. Welche Nummer ein Treiber (z.B. ein USB-To-Virtual-Com-Port Treiber) vergeben hat, lässt sich im Ordner /dev/ nachvollziehen. Ein Gerätename ‚ttyU2‘ (USB-Gerät) wird gegenüber ‚ttyu2‘ (serieller HW Port) bevorzugt.

Baudrate

Es können alle Standard-Baudraten eingestellt werden, von 150 Baud bis zu 128000 Baud. Default ist 9600 Baud. Ebenso gebräuchlich ist 115200 Baud.

Parity

Hier wird die Einstellung der Paritätsprüfung für die serielle Datenübertragung vorgenommen. Mögliche Werte sind in der Enumeration ComParity_t zusammengefasst.

DataBits

Hier wird die Einstellung der Anzahl an Datenbits für die serielle Datenübertragung vorgenommen. Mögliche Werte sind 4,5,6,7 und 8.
Bei einem Wert kleiner 8 Bit werden zwar dennoch komplette Datenbytes an den SPS Puffer übergeben, jedoch werden nicht alle 8 Bit eines Bytes über die serielle Schnittstelle übertragen. Die höchstwertigsten Bits werden vor der Übertragung abgeschnitten, wodurch sich die Bitmenge je zu übertragenen Datenbytes verringert.
Diese Einstellung war hauptsächlich zu früheren Zeiten sinnvoll, falls man wusste, dass die höchstwertigsten Bits je Byte nie verwendet werden und man die Übertragungsgeschwindigkeit erhöhen wollte. Sie wird selten verwendet, so dass empfohlen wird die Anzahl an Datenbits bei 8 [default] zu belassen.

StopBits

Hier wird die Einstellung der Anzahl an Stoppbits für die serielle Datenübertragung vorgenommen. Mögliche Werte sind in der Enumeration ComStopBits_t zusammengefasst.

RTS

Hier wird die Einstellung des 'Request to Send' ( = RFR 'Ready for Receiving' ) Signals für die serielle Datenübertragung vorgenommen. Mögliche Werte sind in der Enumeration ComRTSCtrl_t zusammengefasst.

DTR

Hier wird die Einstellung des 'Data Terminal Ready' Signals für die serielle Datenübertragung vorgenommen. Mögliche Werte sind in der Enumeration ComDTRCtrl_t zusammengefasst.

CTS

Hier wird die Einstellung des 'Clear to Send' Signals für die serielle Datenübertragung vorgenommen. Wenn der Wert TRUE ist, so werden keine Daten gesendet, falls das CTS Eingangssignal der Datenübertragung nicht gesetzt ist.

DSR

Hier wird die Einstellung des 'Dataset Ready' Signals für die serielle Datenübertragung vorgenommen. Wenn der Wert TRUE ist, so werden keine Daten gesendet, falls das DSR Eingangssignal der Datenübertragung nicht gesetzt ist. Ebenso werden, wenn DSR TRUE ist, empfangene Datenbytes ignoriert, falls das DSR Eingangssignal der Datenübertragung nicht gesetzt ist.

TraceLevel

Mit diesem Eingang kann die Ausgabe von Meldungen (debug traces) seitens des TcAdsSerialCommServer konfiguriert werden.
Dies betrifft nicht die Fehlermeldungen am Ausgang vom SPS Funktionsbaustein SerialLineControlADS. Es handelt sich demnach um eine zusätzliche Diagnosemöglichkeit.

Folgende Trace Level sind möglich:
None: 0 (default)
Error: 1
Warning: 2
Info: 3
Verbose: 4
Noise: 5

Alle Meldungen mit einem Level kleiner oder gleich dem angegebenen Level werden ausgegeben. Falls Level 'None' gewählt ist, werden keine Meldungen ausgegeben.

Mit Level 'Noise' werden sogar am seriellen Port empfangene Daten sowie zum seriellen Port versendete Daten in den Meldungen ausgegeben. Dafür werden einige System Ressourcen benötigt und die Einstellung sollte somit nur für vorübergehende Tests gewählt werden.

Als Ausgabe werden Debug Traces verwendet. Unter Big Windows Betriebssystemen werden Error-/Warning-/Info-Messages ebenfalls als Log Events (Applikation Log) ausgegeben.

Hinweis: Bei Verwendung des Windows-Tools DebugView (von SysInternals) muss die Einstellung CaptureGlobalWin32 aktiv sein, um die Meldungen zu empfangen.

Unter TwinCAT/BSD Betriebssystemen werden die Meldungen in /var/log/messages gespeichert.

ComSerialConfig 1:

Ungültige Parametrierung

Nicht jede Einstellung der Parameter für die serielle Datenübertragung ist immer möglich. Manche Einstellungen oder Kombinationen werden vom Betriebssystem (Windows, TwinCAT/BSD) oder von COM-Port-Treibern oder der Hardware nicht unterstützt.

Beispiel: Oft wird die Möglichkeit der 1,5 Stoppbits oder der 4 Datenbits oder auch der Kombination von 5 Datenbits & 2 Stoppbits nicht unterstützt. Oder die Baudrate ist auf maximal 115200 Baud begrenzt. Bitte überprüfen Sie auch die Schnittstellenbeschreibung des jeweiligen embedded PC / IPC (Bsp. Schnittstellenbeschreibung des CX52x0).

Weitere Informationen zu den Parametern einer seriellen Datenübertragung unter Windows finden sich in der Microsoft MSDN Beschreibung zur DCB Struktur.

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS-Bibliotheken

TwinCAT v3.1.4016

PC oder CX (x86, x64)

Tc2_SerialCom