Hinweise zur Dokumentation

Diese Beschreibung wendet sich ausschließlich an ausgebildetes Fachpersonal der Steuerungs- und Automatisierungstechnik, das mit den geltenden nationalen Normen vertraut ist.
Zur Installation und Inbetriebnahme der Komponenten ist die Beachtung der Dokumentation und der nachfolgenden Hinweise und Erklärungen unbedingt notwendig.
Das Fachpersonal ist verpflichtet, für jede Installation und Inbetriebnahme die zu dem Zeitpunkt veröffentlichte Dokumentation zu verwenden.

Das Fachpersonal hat sicherzustellen, dass die Anwendung bzw. der Einsatz der beschriebenen Produkte alle Sicherheitsanforderungen, einschließlich sämtlicher anwendbaren Gesetze, Vorschriften, Bestimmungen und Normen erfüllt.

Disclaimer

Diese Dokumentation wurde sorgfältig erstellt. Die beschriebenen Produkte werden jedoch ständig weiter entwickelt.
Wir behalten uns das Recht vor, die Dokumentation jederzeit und ohne Ankündigung zu überarbeiten und zu ändern.
Aus den Angaben, Abbildungen und Beschreibungen in dieser Dokumentation können keine Ansprüche auf Änderung bereits gelieferter Produkte geltend gemacht werden.

Marken

Beckhoff®, TwinCAT®, EtherCAT®, EtherCAT G®, EtherCAT G10®, EtherCAT P®, Safety over EtherCAT®, TwinSAFE®, XFC®, XTS® und XPlanar® sind eingetragene und lizenzierte Marken der Beckhoff Automation GmbH.
Die Verwendung anderer in dieser Dokumentation enthaltenen Marken oder Kennzeichen durch Dritte kann zu einer Verletzung von Rechten der Inhaber der entsprechenden Bezeichnungen führen.

Patente

Die EtherCAT Technologie ist patentrechtlich geschützt, insbesondere durch folgende Anmeldungen und Patente:
EP1590927, EP1789857, EP1456722, EP2137893, DE102015105702
mit den entsprechenden Anmeldungen und Eintragungen in verschiedenen anderen Ländern.

EtherCAT® ist eine eingetragene Marke und patentierte Technologie lizenziert durch die Beckhoff Automation GmbH, Deutschland.

Copyright

© Beckhoff Automation GmbH & Co. KG, Deutschland.
Weitergabe sowie Vervielfältigung dieses Dokuments, Verwertung und Mitteilung seines Inhalts sind verboten, soweit nicht ausdrücklich gestattet.
Zuwiderhandlungen verpflichten zu Schadenersatz. Alle Rechte für den Fall der Patent-, Gebrauchsmuster- oder Geschmacksmustereintragung vorbehalten.


BECKHOFF Information System

TS6360 | TwinCAT Virtual Serial COM Driver

TwinCAT Virtual Serial COM Driver

Der TwinCAT Virtual Serial COM Driver blendet eine oder mehrere E-Bus Klemmen EL6001 als normale serielle Schnittstellen ("COMx") in Windows CE oder Windows XP ein.
Die Konfiguration erfolgt im System Manager, wobei für jede EL6001 Klemme individuell definiert wird, ob und auf welchem Rechner für sie eine serielle Schnittstelle erzeugt werden soll. Der Zugriff auf die Klemme erfolgt dann über die normale Windows API für serielle Schnittstellen. Damit können auch existierende Windows Applikationen verwendet werden, um Daten über eine EL6001 Klemme von Geräten mit serieller Schnittstelle, wie z.B. Barcodescannern, einzulesen. Es gibt zwei Varianten des Treibers, eine für Windows CE und die andere für Windows XP. Beide Varianten haben denselben Funktionsumfang.

  • Systemvoraussetzungen
  • Installation unter Windows XP
  • Installation unter Windows CE
  • Architektur
  • Konfiguration im System Manager
  • Konkurrierender Zugriff auf Klemme aus SPS
  • Verhalten bei TwinCAT Stop und Start
  • Bemerkungen


TcEL60xx Systemvoraussetzungen

Systemvoraussetzung:

  • TwinCAT 2.10 Build 1328 ist unter Windows XP und zur Konfiguration erforderlich
  • Virtuelle serielle Schnittstellen unter CE werden ab Windows CE 6.0 Image Version 306b unterstützt


TcEL60xx Installation unter XP

Installation auf Windows XP System

Zur Installation des TwinCAT Virtual Serial COM Treibers bitte das Setup-Programm TcVirtualSerialCOMDrv.exe ausführen, dass sich auf der "Beckhoff Software Products" DVD im Unterverzeichnis Supplement\TwinCAT_Virtual_Serial_COM_Driver\Install befindet.

Nach erfolgreicher Installation zeigt der Windows Gerätemanager unter dem Eintrag "TwinCAT Virtual Serial COM" ein einziges Gerät "TwinCAT Virtual Serial COM Device" an. Falls der Treiber schon vorher installiert war, wird er durch eine neuere Version ersetzt.

Die CAB Dateien für die CE Variante des Treiber werden unterhalb des TwinCAT System Verzeichnisses (normalerweise also in "c:\TwinCAT\CE\Virtual Serial COM Driver CE\") abgelegt.

Virtuelle serielle Schnittstellen des Treibers werden nicht im Gerätemanager angezeigt.

Ab Version 1.16 wird mit dem Treiber auch der TwinCAT Server TcEL60xxStartSync installiert. Dafür wird TwinCAT gestoppt und der TwinCAT Server wird in der Datei "Default.tps" eingetragen. Der TwinCAT Server TcEL60xxStartSync synchronisiert den Start des TwinCAT Systems mit dem Start des TwinCAT Virtual Serial COM Treibers. Damit ist sichergestellt, dass das TwinCAT System erst startet, wenn der Treiber vollständig initialisiert wurde.

Der TwinCAT Storage Editor ("TcStgEditor.exe" im TwinCAT Verzeichnis) kann die "Default.tps" Datei öffnen und zeigt die eingetragenen TwinCAT Server an. Die folgende Abbildung zeigt den Stand nach erfolgreicher Installation.

TwinCAT Storage Manager mit TcEL60xxStartSync Eintrag


TcEL60xx Installation auf CE

Installation auf CE System

Die CAB Dateien für die CE Variante des Treibers werden unterhalb des TwinCAT System Verzeichnisses (normalerweise also in "c:\TwinCAT\CE\Virtual Serial COM Driver CE\") abgelegt. Die weitere Installation erfolgt wie für alle CE Supplement Produkte (siehe Supplement Installation)

Nach der Installation muss das CE System neu gestartet werden, d.h. über das Startmenü die Funktion Reset bzw. Suspend ausführen, damit der Treiber aktiv wird.


TcEL60xx Architektur

Architektur

Bei einer konventionellen seriellen Schnittstelle spricht der Treiber über einen internen Hardwarebus direkt mit dem Chip (UART). Der TwinCAT Virtual Serial COM Treiber dagegen nutzt ADS und das EtherCAT Protokoll für diese Kommunikation.

Der Treiber instanziert auf dem Rechner, auf dem er installiert wurde, einen ADS Server mit fester Portnummer, der im folgenden TcEL60xx-AdsServer genannt wird. Über diesen ADS Server können COM Schnittstellen erzeugt werden. Der Client des TcEL60xx-AdsServers ist das EtherCAT Slave Objekt, welches im TcIo Treiber liegt. Für jede EtherCAT Busklemme wird ein solches Objekt erzeugt. Damit eine Klemme als COM Schnittstelle des Betriebssystems verwendet werden kann, gibt es für die EL60xx Klemmen eine spezielle Klasse von EtherCAT Slave Objekten. Diese können per ADS Daten zum Verschicken empfangen, die dann an die zugeordnete Klemme weitergereicht werden und sie können Daten, die von der Klemmen kommen, über ADS an den TcEL60xx-AdsServer weiterschicken. Dieser gibt die Daten dann ggf. an eine Applikation weiter, die gerade die COM Schnittstelle geöffnet hat.

Die folgende Abbildung illustriert die Architektur der XP Variante des EL60xx Treibers.


Beckhoff Information System

Konfiguration im System Manager

Parameter der virtuellen COM Schnittstelle

Im System Manager kann für Busklemmen vom Typ EL6001 und EL6021 der Karteireiter "EL60xx" ausgewählt werden. Die obige Abbildung zeigt ein Beispiel dieses Dialoges. Wenn das Haken im Auswahlkasten "Virtual Com Port" gesetzt wird, dann erzeugt TwinCAT nach Aktivierung der Konfiguration für diese Klemme eine virtuelle COM Schnittstelle. Die Nummer der Schnittstelle wird über das Eingabefeld "Com Port" festgelegt. Dabei ist zu beachten, dass jede Nummer nur einmal verwendet werden darf. Der Rechner auf dem die virtuelle Schnittstelle erzeugt werden soll, darf nicht schon eine Schnittstelle mit dieser Nummer haben. Standardmäßig werden Nummern ab 6 vergeben. COM Schnittstellennummern sind auf Werte kleiner 65536 beschränkt.

Im Feld "Host Ams NetId" kann mit einer NetId der Rechner festgelegt werden, auf dem die COM Schnittstelle erzeugt werden soll. Voreingestellt ist der lokale Rechner, also der auf dem die Konfiguration aktiviert wird und an dem die Klemme angeschlossen ist. Es ist auch möglich, die virtuelle COM Schnittstelle auf einem anderen Rechner zu erzeugen. Dafür muss dann dessen NetId angegeben werden. Dabei ist zu beachten, das auf diesem Rechner der Treiber installiert sein muss.

Im Feld "Com Port Settings" können die Parameter der EL60xx Klemme verändert werden. Die eingestellten Parameter werden als Standardwerte beim Aktivieren einer Konfiguration an die Klemme gesendet. Hier ist zu beachten, dass die normalen Parameter einer serielle Schnittstelle, d.h. Baudrate, Parität, Anzahl der Datenbits und Stopbits, sowie die Flusskontroll-Parameter RTS/CTS, Tx XON/XOFF und Rx XON/XOFF oft auch von der verwendeten Windows Anwendung konfiguriert werden und daher die hier eingestellten Parameter direkt wieder überschrieben werden.

Es sind nicht alle Kombinationen von Parität, Anzahl Datenbits und Anzahl Stopbits zulässig. In der folgenden Tabelle sind die zulässigen Kombinationen aufgelistet:

7 data bits, even parity, 1 stop bit
7 data bits, even parity, 2 stop bits
7 data bits, odd parity, 1 stop bit
7 data bits, odd parity, 2 stop bits
8 data bits, no parity, 1 stop bit
8 data bits, no parity, 2 stop bits
8 data bits, even parity, 1 stop bit
8 data bits, even parity, 2 stop bits
8 data bits, odd parity, 1 stop bit
8 data bits, odd parity, 2 stop bits

Die Parameter "Transfer Rate Optimization" und "Fifo Threshold" sind keine normalen Parameter einer COM Schnittstelle, sondern besondere Parameter der EL60xx Klemme. Bei aktivierter "Transfer Rate Optimization" nutzt die Klemme den Platz für empfangene Daten im Prozessabbild soweit wie möglich aus. Bei deaktivierter "Transfer Rate Optimization" werden empfangene Daten frühzeitig weitergereicht, auch wenn noch Platz im Prozessabbild ist. Der "Fifo Threshold" legt fest, wann die Klemme das "Fifo Full Flag" setzt.

Eine EL6021 Klemme hat etwas andere Parameter. Der Konfigurationsdialog ist entsprechend etwas anders:

Gegenüber einer EL6001 fehlt das RTS/CTS Flag, weil diese Art von Flusskontrolle nicht unterstützt wird. Die EL6021 unterstützt zusätzlich einen Halbduplex Modus und kann für Punkt zu Punkt Verbindungen konfiguriert werden.

Detaillierte Informationen zu den Parametern sind in der Dokumentation zu den Klemmen EL6001 und EL6021 zu finden.

Dummy Task

Damit der TwinCAT IO Treiber die Prozessdaten von einer Klemme berücksichtigt, muss mindestens eine Variable der Prozessdaten, z.B. das Statuswort "Status", mit einer Variablen aus einer "Additional Task" verknüpft sein. Falls keine explizite Verknüpfung existiert, ignoriert der TwinCAT IO Treiber die Prozessdaten von der Klemme.

Im obigen Screenshot hat diese zusätzliche Task für jede virtuelle COM Schnittstelle eine Variable, die mit dem Statuswort der entsprechenden Klemme verlinkt ist. Für den Task muss der Parameter "Auto Start" eingeschaltet werden. Mit der Einstellung im Feld "Cycle Ticks" wird festgelegt wie oft die Variablen aktualisiert werden. Damit bei der Kommunikation mit der Klemme die volle Datenrate erreicht werden kann, sollte die Zykluszeit im Bereich von 1 ms liegen.


TcEL60xx konkurrierender Zugriff auf EL60xx Klemme durch SPS

Konkurrierender Zugriff auf EL60xx Klemme durch SPS

Wenn eine EL60xx Klemme von der SPS genutzt wird und auch über den TwinCAT Virtual Serial COM Treiber als virtuelle COM Schnittstelle verwendet werden soll, dann muss der Zugriff auf die Klemme von einem übergeordneten Mechanismus koordiniert werden. Die beiden Zugriffsmöglichkeiten sind insoweit gegeneinander abgesichert, als dass der Zugriff auf die Klemme durch ein SPS Programm blockiert wird, sobald diese als virtuelle COM Schnittstelle geöffnet ist. Nach dem Schließen der virtuellen COM Schnittstelle kann das SPS Programm dann wieder zugreifen. Allerdings wird hier keine Rücksicht auf aktuell laufende Übertragungen genommen. Änderungen an der Konfiguration der Klemme (Baudrate, Stopbits, ...) durch eine Windows Applikation werden nicht wieder zurückgesetzt.


TcEL60xx Verhalten beim TwinCAT Starten und Stoppen

Verhalten beim TwinCAT Starten und Stoppen

Allgemein

Beim Stoppen von TwinCAT auf einem Rechner werden vorhandene COM Schnittstellen entfernt. Ein TwinCAT Start erzeugt die in der aktuellen Konfiguration definierten virtuellen COM Schnittstellen neu. Das bedeutet Applikationen, die eine virtuellen COM Schnittstelle geöffnet hatten, müssen die Schnittstelle nach einem TwinCAT Neustart nochmal neu öffnen. Applikationen müssen vor einem TwinCAT Neustart die verwendeten COM Schnittstellen schließen, da es im Allgemeinen nicht vorhersehbar ist, wie eine Applikation auf das Entfernen einer geöffneten COM Schnittstelle reagiert.

Virtuelle COM Schnittstelle auf entferntem Rechner

Wenn für eine EL60xx Busklemme an Rechner A eine virtuelle COM Schnittstelle auf einem anderen Rechner B erzeugt wurde, verhält sich der Treiber wie folgt:

TwinCAT Stopp auf Rechner A unterbricht die Verbindung zur Busklemme. Schreib- bzw. Lesezugriffe auf die virtuelle COM Schnittstelle auf Rechner B schlagen fehl.
TwinCAT Start auf Rechner A führt dazu das erneut die virtuelle COM Schnittstelle auf Rechner B erzeugt werden soll. Anhand der AMS Adresse prüft der Treiber auf Rechner B, ob für die Klemme schon ein virtueller Port existiert und löscht diesen dann gegebenenfalls. Anschließend wird die virtuelle COM Schnittstelle dann mit einer eventuell anderen Nummer erzeugt. Die Nummer kann sich z.B. ändern, wenn sie über den System Manager geändert wurde.

TwinCAT Stopp auf Rechner B löscht alle virtuelle COM Schnittstellen auf diesem Rechner.
Nach erneutem TwinCAT Start auf Rechner B können wieder virtuelle COM Schnittstellen erzeugt werden. Die vorher vorhandene virtuellen COM Schnittstelle, die von Rechner A aus erzeugt wurde, existiert zunächst nicht mehr. Erst ein TwinCAT Neustart auf Rechner A erzeugt diese neu.

Da TwinCAT auf Rechner B nicht direkt mitbekommt, wenn TwinCAT auf Rechner A gestoppt wird, kann auf Rechner B die virtuelle COM Schnittstelle nicht sofort entfernt werden. Falls die Konfiguration auf Rechner A nun z.B. so geändert wird, das keine virtuelle COM Schnittstelle mehr erzeugt werden soll, verbleibt auf Rechner B eine verwaiste virtuelle COM Schnittstelle, bis auch auf Rechner B TwinCAT gestoppt wird.


TcEL60xx Einschränkungen gegenüber normalen COM Schnittstellen

Einschränkungen gegenüber normalen COM Schnittstellen

  • Intervall Timeout
    Die virtuelle COM Schnittstelle für eine EL60xx Klemme unterstützt keine Intervall Timeouts, da die entsprechende Information im Treiber nicht zur Verfügung steht
  • DSR/DTR Flusskontrolle
    Die EL6001 und auch die EL6021 haben keine DSR/DTR Ausgänge.
  • Explizites Setzen von RTS/CTS Ausgängen
    Das explizite Setzen von RTS oder CTS Ausgang ist nicht möglich.
  • XON/XOFF Zeichen können nicht geändert werden
    Die EL6001/EL6021 Klemmen verwenden für XON das Zeichen 0x11 und für XOFF das Zeichen 0x13.

Bekannte Probleme:

  • EL60xx Klemme über Netzwerk auf CE Gerät einblenden
    Theoretisch kann eine EL60xx Klemme, die an Rechner A angeschlossen ist, über Netzwerk in einem CE Rechner B als virtuelle serielle Schnittstelle eingeblendet werden. Der Treiber wird auf CE Geräten zur Zeit nur aktiviert, wenn eine direkt an das Gerät angeschlossene EL60xx Klemme als virtuelle Schnittstelle eingeblendet werden soll. Man kann den Treiber auch durch manuelle Anpassung der CurrentConfig.xml aktivieren. Dazu muss folgender Eintrag am Anfang des Abschnitts <Drivers> ... </Drivers> eingefügt werden.

    <Drivers>
    <Driver>
    <Type>1</Type>
    <ServiceName>TCEL60XX</ServiceName>
    </Driver>
    ...
    </Drivers>

Behobene Probleme

Die nachfolgend aufgeführten Probleme treten mit den Klemmen EL6001 und EL6021 ab Softwarestand 03 (letzte zwei Ziffern der Klemmen-Seriennummer) nicht mehr auf.
(Anmerkung: Der Softwarestand 03 beinhaltet die Firmwareversion 00.04)

  • Diagnose Bits
    Die Diagnose Bits (Paritätsfehler, Datenrahmenfehler, Pufferüberlauf) der Klemme kann der Treiber nicht zur Verfügung stellen.
  • Störende XON Zeichen (0x11)
    Wenn das Feature "XON/XOFF support for Rx" eingeschaltet ist, dann sendet die EL6001/EL6021 Klemme jedes Mal das XON Zeichen, wenn ein Konfigurationsparameter in die Klemme geschrieben wird. Weil z.B. beim Öffnen einer virtuellen COM Schnittstelle die aktuellen Parameter an die entsprechende Klemme geschickt werden, versendet diese darauf 10 mal das XON Zeichen. Falls der angeschlossenen Empfänger dann so konfiguriert ist, beim Versenden die XON/XOFF Datenflußkontrolle zu verwenden ("XON/XOFF support for Tx"), dann sollten die XON Zeichen korrekt verarbeitet werden, und eine Datenübertragung nicht weiter stören.