Service-Kabel z.B. für Wago-Controller sehr günstig „selbst gemacht“

In einem meiner letzten Beiträge schrieb ich noch darüber, wie das Kommunikations-Kabel von Wago (ein USB-Kabel mit proprietärem Stecker für die Service-Schnittstelle auf diversen Controllern) unter Virtualbox genutzt werden kann und auch, dass es sich eigentlich nur um einen USB-zu-TTL-Adapter handelt.

Patrik stellte per Kommentar die Frage, ob man dann nicht auch statt des teuren Kabels einen normalen USB-zu-TTL-Adapter nutzen kann. Natürlich kann man.

Wer also statt des etwa 50€ teuren Kabels, das dann an 364 Tagen im Jahr irgendwo in einer Kiste verstaubt, lieber einen kleinen USB-Adapter für 2€ nutzen möchte, kann das problemlos tun.

USB-zu-TTL-Converter FTDI FTD1232 am Service-Port einer Wago 750-841
Einfacher USB-zu-TTL-Converter an einer Wago 750-841

Ich habe hier einen FTDI-Adapter für 2,20€ aus China, der per Mini-USB (da musste ich erstmal nach einem Kabel suchen, alles Micro-USB inzwischen) an den Computer angeschlossen wird. Er wird erkannt als:

ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC

Benötigt werden die Pins VCC, GND, TX und RX. Die Belegung am Wago-Controller ist von oben nach unten:

  • TxD
  • RxD
  • +5V
  • GND
Pinout der Wago-Service-Schnittstelle
Pinout der Wago-Service-Schnittstelle

TxD und RxD werden logischerweise mit TX und RX verbunden, jedoch üblicherweise gekreuzt (was natürlich darauf ankommt, ob der genutzte Adapter auf der „Pin-Seite“ noch 1:1 belegt ist), VCC wird mit +5V verbunden, GND mit GND.

Pinout des FTDI USB-zu-TTL-Adapters
Pinout des FTDI USB-zu-TTL-Adapters

Das wars, mehr ist nicht zu tun. Das Kabel wird unter Windows beispielsweise in den Wago Ethernet Settings erkannt und kann zur Kommunikation genutzt werden.

Das Low-Cost Kabel wird in den Ethernet Settings erkannt und kann zur Kommunikation genutzt werden
Der USB-zu-TTL-Adapter in den Ethernet Settings

Selbst gemacht steht übrigens aus dem Grund in Anführungszeichen, weil man ja hier nicht wirklich etwas selbst macht, außer einen FTDI-Adapter zu kaufen und anzuschließen.

HTML5-Visualisierungen auch mit CoDeSys 2.3

CoDeSys in der Version 2.3 (also der klassischen Version, die unter anderem von den meisten WAGO-Controllern ausschließlich unterstützt wird) bringt eine eigene Webvisualisierung mit. Die Visu kann über CoDeSys zusammengesetzt werden, sie wird mit dem Programmdownload auf den Controller übertragen.

Das Problem daran: Die Visu besteht aus einem Java-Applet, das von manchen Browsern überhaupt nicht ausgeführt wird, unter anderem von Chrome oder mobilen Browsern.

CODESYS 3.5 bringt eine neue Visualisierung auf HTML5-Basis mit, die deutlich besser funktioniert. Jedoch laufen die „klassischen“ WAGO-Controller nicht mit CODESYS 3.5, wer nicht gerade einen PFC200 oder PFC100 einsetzt, wird davon nichts sehen.

Es gibt ein Projekt namens WebVisu auf sourceforge, das sich dieses Problems annimmt. Es stellt auf dem integrierten Webserver der Controller eine HTML5-Visu bereit, die mit CoDeSys 2.3 zusammenarbeitet und in wenigen Schritten auf den Controller „installiert“ werden kann.

Installiert insofern in Anführungszeichen, als dass diese Installation lediglich aus dem Kopieren einer einzelnen HTML-Datei auf den Controller besteht. Laut Wiki ist WebVisu kompatibel mit der WAGO 750-841 und dem Beck IPC, zufällig besitze ich einen uralten Controller 750-841 bei dem leider die Buskontakte nicht mehr besonders zuverlässig sind, aber zum Testen reicht es allemal.
Vermutlich funktioniert die Visu auch bei den anderen 750-8xx Controllern mit CoDeSys-WebVisu, davon habe ich allerdings kein Gerät zum spielen.

Die WebVisu.html wird einfach auf dem Controller unter /webserv abgelegt und ist danach unter der IP des Controllers unter /webserv/WebVisu.html zu finden.

Die Visualisierung wird unter CoDeSys ganz normal erstellt, das JAVA-Applet ist nachher auch problemlos nutzbar. Die HTML5-WebVisu ist nur zusätzlich vorhanden.

Zum Test habe ich einfach einen inkrementierenden Wert auf eine 8-fach Ausgangsklemme geschrieben und diesen Wert außerdem in der Visu als Zahlenwert, als LED-Zustand und als Kreisdiagramm dargestellt. Außerdem habe ich noch einen Toggle-Taster mit einer booleschen Variable eingefügt, um auch diesen Fall testen zu können.
Direkt in CoDeSys sieht das so aus:

Webvisualisierung und ST-Programm in CoDeSys 2.3
Webvisualisierung und ST-Programm in CoDeSys 2.3

In Chrome fehlt das Kreisdiagramm, generell werden neben dynamischen Formen wie dem Kreissegment auch Tabellen und Skalen nicht angezeigt. Vermutlich fehlen diese Darstellungen in der HTML5-WebVisu einfach:

HTML5 WebVisu in Chrome auf dem Desktop
HTML5 WebVisu in Chrome auf dem Desktop

Auf dem Smartphone wird die WebVisu quasi identisch dargestellt:

HTML5 WebVisu in Chrome auf einem Android Smartphone
HTML5 WebVisu in Chrome auf einem Android Smartphone

Die Bedienung der Schaltfläche funktioniert übrigens einwandfrei, sowohl im Desktop-Browser als auch auf dem Smartphone und die Grafikaktualisierung ist ziemlich flott und ohne Ruckeln.

Alles in allem also eine sehr passende Lösung für Leute, die eine einfache Webvisualisierung unter CoDeSys 2.3 erstellen wollen, die auch ohne JAVA-Applet und damit auch auf mobilen Geräten bedienbar ist.

WAGO USB Service Cable unter Linux in einer Virtualbox benutzen

Um mit SPS-Komponenten zu kommunizieren gibt es verschiedene Wege und fast alle führen zum Ziel. Bei bestimmten Einstellungsarbeiten oder Firmware-Updates ist es aber sinnvoll, die meistens vorhandene Service-Schnittstelle der Controller zu nutzen.

Jeder Hersteller bietet Service-Kabel an, die zu den eigenen Schnittstellen passen, die Kabel sind natürlich immer unterschiedlich.
Auch WAGO bietet ein „WAGO USB Service Cable“ an. Für Windows gibt es einen speziellen Treiber für dieses Kabel, für Linux nicht. Ich bin mir ziemlich sicher, dass dieser Artikel auch auf Siemens S7 und LOGO, sowie auf die meisten anderen SPS-Hersteller anwendbar ist, davon habe ich allerdings keine Altgeräte zum Basteln da.

Ich bin mir sicher, außer mir gibt es noch viele andere SPS-Menschen, die Zuhause Linux nutzen und zum Herumprobieren eine Virtuelle Maschine mit Windows laufen haben, in der die Entwicklungsumgebung läuft. Das Kommunikationskabel läuft allerdings in z.B. Virtualbox nicht ohne nachzuhelfen, wobei es sich wirklich um eine Kleinigkeit handelt.
Denn: Auch wenn jeder Hersteller ziemlich teure Kommunikationskabel in verschiedenen Ausführungen anbietet, eines haben sie gemeinsam: Es sind ziemlich stinknormale USB (oder RS232) auf TTL Konverter, die unter Debian als ttyUSB erkannt werden. Es muss lediglich der Virtualbox-Benutzer in die Gruppe dialout aufgenommen werden, damit er es benutzen darf:

usermod -aG dialout BENUTZERNAME

In der Virtualbox erscheint es bei installiertem Windows-Treiber dann ganz normal in der USB-Geräte-Auswahl:

WAGO USB Service Cable in den USB-Geräten von Virtualbox
WAGO USB Service Cable in den USB-Geräten von Virtualbox

Aktiviert man es dort, kann man es beispielsweise in den WAGO Ethernet Settings als Kommunikationsschnittstelle nutzen:

Virtualbox: WAGO USB Service Cable in den Ethernet Settings
Virtualbox: WAGO USB Service Cable in den Ethernet Settings