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

Festplattentyp von dynamisch auf fixe Größe ändern in VirtualBox unter Debian

Das besonders unter Linuxnutzern beliebte Virtualisierungsprogramm VirtualBox bringt zwei „eigene“ virtuelle Festplattentypen mit, die beide unter „Virtual Disk Image“ (VDI) zusammengefasst werden: Die Festplattendatei mit fixer Größe und die Datei mit dynamischer Größe.

Der Hintergrund: Weist man dem Gastsystem eine 50GB-Festplatte zu und wählt die fixe Größe, wird eine 50GB große Datei auf dem Wirtsystem erstellt. Wählt man für die 50GB-Festplatte die dynamische Größe, wird eine sehr kleine Datei erstellt, die dann erst mit der Benutzung wächst (die Sektoren werden erst erstellt, wenn sie auch zum ersten Mal beschrieben werden).

Hat man sich für die dynamische Größe entschieden, wird man eventuell irgendwann feststellen, dass das virtuelle System oft langsam läuft. Schreibvorgänge auf die Festplatte sind in diesem Fall eben keine normalen Schreibvorgänge, es wird mehr Rechenleistung benötigt, um die Festplattensektoren zu erstellen.

Es ist aber möglich, eine Festplatte mit dynamischer Größe in eine ebensolche mit fixer Größe zu wandeln, VirtualBox bringt dazu auch alle Werkzeuge gleich mit. Das Umwandeln geht recht einfach über die Konsole.

Zuerst sollte man die bisher genutzte Festplatte sichern. Welche Festplattendatei für die entsprechende virtuelle Maschine genutzt wird und wo im Dateisystem diese angelegt wurde, lässt sich leicht in der Oberfläche leicht nachvollziehen. Hier wird auch der Typ angezeigt. Diese Datei wird nun unter einem eindeutigen Namen kopiert und kann später gelöscht werden, wenn alles funktioniert.

Nun wird die bisherige Festplatte geklont, hierfür wird das Programm vboxmanage genutzt:

VirtualBox: Festplatte klonen mit clonehd
VirtualBox: Festplatte klonen mit clonehd

Die Anwendung ist einfach:

vboxmanage clonehd /Pfad/zur/Quelldatei.vdi /Pfad/zur/Zieldatei.vdi --variant fixed

Dies klont die vorhandene Festplatte in eine neue Datei mit fixer Größe.

Nun muss die vorhandene Festplatte im VirtualBox Manager (also der GUI) aus dem Controller entfernt werden. Dafür wird einfach die betroffene VM ausgewählt und im „Ändern“-Menü unter „Massenspeicher“ die bisherige Festplatte entfernt.

In der Konsole wird nun mit

vboxmanage list hdds

eine Liste aller registrierten VirtualBox-Festplatten ausgegeben. Die UUID der bisher verwendeten Platte wird kopiert.

VirtualBox: Festplatte schließen und löschen mit closemedium
VirtualBox: Festplatte schließen und löschen mit closemedium

Nun wird ebenfalls in der Konsole die bisherige Festplatte geschlossen und gelöscht. Dies geschieht mittels

vboxmanage closemedium disk UUID –delete

Sollte dabei die Fehlermeldung auftauchen, dass die Festplatte noch zu einer virtuellen Maschine gehört (Medium cannot be closed because it is still attached to 1 virtual machines), wurde sie vorher entweder nicht aus dem Controller gelöscht, oder das Fenster wurde danach nicht geschlossen. Ansonsten sollte die Festplatte damit gelöscht sein.

Anschließend muss die geklonte Festplatte den Dateinamen der nun gelöschten Festplatte bekommen, danach kann sie wieder im Manager dem Controller hinzugefügt werden.

VirtualBox: Neue Festplatte dem Controller hinzufügen
VirtualBox: Neue Festplatte dem Controller hinzufügen

Ist das alles erledigt, sollte die Virtuelle Maschine wieder starten wie zuvor, jedoch von der neuen Festplatte. Fast einfacher als ein echter Hardware-Tausch.

Übrigens: Unter Windows funktioniert das ganze quasi genau so. Dort gibt es eine VBoxManage.exe, die ebenfalls mit den genannten Parametern ausgeführt werden kann.

Weitere Artikel zum Thema:

Debian – Windows 10 in VirtualBox: Gasterweiterungen für bessere Integration installieren

Vor ein paar Tagen schrieb ich schon davon, wie Windows 7 in einer VirtualBox-VM unfallfrei auf das kürzlich erschienene Windows 10 aktualisiert werden kann, heute geht es darum, dieses Windows 10 möglichst Anwenderfreundlich nutzbar zu machen.

Denn wer eine laufende Windows 10 Instanz unter der VirtualBox-Version 4.3.x hat, wird feststellen, dass sich die Größe der virtuellen Maschine nicht an die Größe des VirtualBox-Fensters anpassen lässt, gemeinsame Ordner nicht verfügbar sind (also quasi mit dem Host geteilte Netzlaufwerke) und es auch sonst mit der Host-Integration nicht besonders weit her ist.

Das liegt daran, dass Windows 10 in der VirtualBox-Version 4.3.x noch nicht wirklich unterstützt wird und es auch keine funktionierenden Gasterweiterungen für Windows 10 gibt (die Gasterweiterungen stellen eine Art Treiberpaket für die Integration des Gastsystems in das Hostsystem dar).

Abhilfe schafft hier die Deinstallation der bisherigen VirtualBox-Software (Achtung: Nur deinstallieren, nicht vollständig entfernen, wir brauchen ja die Konfigurationen noch!) und die anschließende Installation von VirtualBox 5.0 aus den offiziellen Oracle-Quellen. Falls diese Quellen noch nicht Teil der Paketquellen des Rechners sind, sollten sie hinzugefügt werden:

deb http://download.virtualbox.org/virtualbox/debian jessie contrib

Der öffentliche Schlüssel für dieses Repository kann wie folgt installiert werden:

wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -
VirtualBox 5.0 unterstützt Windows 10 offiziell
VirtualBox 5.0 unterstützt Windows 10 offiziell

Das neue VirtualBox-Paket unterstützt dann auch Windows 10 32bit und 64bit (kann in den Einstellungen der virtuellen Maschine geändert werden) und stellt die passenden und aktuellen Gasterweiterungen in der Windows-Maschine dann als virtuelles CD-Laufwerk zur Installation bereit.

VirtualBox 5.0: Gasterweiterungen und geteilte Ordner mit Windows 10
VirtualBox 5.0: Gasterweiterungen und geteilte Ordner mit Windows 10

Nach der Installation der Treiber können die gemeinsamen Ordner wieder verwendet werden, auch das Anpassen der Fenstergröße und die saumlose Mauszeigerintegration funktionieren einwandfrei.

(Ja, ich weiß, meine Platten sind bald voll…)