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.

TYPE ComSerialConfig :
(* contains the configuration parameters of the com port to be opened. *)
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

ComPort

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.

Baudrate

Es können alle Standardbaudraten eingestellt werden, von 150 Baud bis zu 115200 Baud. Default ist 9600 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 (default = 0):

  • 0    None (default)
  • 1    Error
  • 2    Warning
  • 3    Info
  • 4    Verbose
  • 5    Noise

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

Als Ausgabe werden Debug Traces verwendet. Unter win32 werden Error-/Warning-/Info-Messages ebenfalls als Log Events (Applikation Log) ausgegeben.
Mit Level 'Noise' werden sogar am seriellen Port empfangene 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.
Hinweis: Bei Verwendung des Tools DebugView (von SysInternals) muss die Einstellung CaptureGlobalWin32 aktiv sein, um die Meldungen zu empfangen.

Hinweis: Nicht jede Einstellung der Parameter für die serielle Datenübertragung ist zwangsweise immer möglich. Manche Einstellungen oder Kombinationen werden von Windows oder von Com-Port-Treibern 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.)

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

Einzubindende SPS Bibliotheken

COMlibV2.lib [Version 2.003.008 oder höher]