Wir möchten die Möglichkeit geben, zuhause erstellte FMC Dateien zu verarbeiten. In der IMA befindet sich ein OS/2 Rechner, der überhaupt kein IP Stack unterstützt, sodass auch der externe PC auf maximal Windows XP beschränkt ist. Nun möchten wir nicht einen Windows XP PC offen im Netzwerk haben, außerdem unterstützt Windows XP maximal SMBv1 (kein v2 oder gar v3), was ein erhebliches Sicherheitsrisiko darstellt. Daher sind einige Vorsichtsmaßnahmen getroffen worden, die hier genauer dargestellt werden.
Grundsätzlicher Aufbau
Die IMA kann entweder direkt über den integrierten OS/2 Rechner programmiert werden, oder über einen externen Rechner. Letzte Option war bei uns schon im Auslieferungszustand der Fall, allerdings mit einem Windows NT 4.0 SP1 Rechner, der keine USB Datenträger unterstützt und dessen Festplatte bereits defekte Sektoren aufweist. Grundsätzlich funktioniert der Datenfluss so:
Die NUM Steuerung besteht im Prinzip aus zwei teilen:
- Dem integrierten Control PC (IPC), basierend auf dem OS/2 Betriebssystem. Hier läuft die IMA Software "IMATronic"
- Der NUM PLC - ist für die eigentliche Ausführung der ISO G-Codes zuständig
- Der externe PC - hier läuft die Software IMAWOP, mit der die Werkstücke Programmiert werden können
Auf dem externen PC werden die SRC Dateien mittels IMAWOP erzeugt, und können dann über Netzwerk vom IPC angefordert werden. OS/2 unterstützt in dieser Konfiguration kein IP Stack, sodass hier NetBIOS über L2 zum Einsatz kommt (NetBEUI). Der Treiber hierfür ist schon unter Windows XP nicht mehr standardmäßig installiert, kann aber nachgerüstet werden. Ab Windows Vista ist der Treiber nicht mehr verfügbar. Auch aus dem Linux Kernel wurde der Support für NetBEUI inzwischen entfernt, sodass auch der Wechsel auf Linux keine Option ist.
Makerspace Setup
Um die Abhängigkeit zum externen PC mit defekter Festplatte loszuwerden, haben wir den PC virtualisiert und dabei gleich auf Windows XP aktualisiert. Da allerdings auch Windows XP schon seit langer Zeit nicht mehr unterstützt ist und nicht frei im Netzwerk sein sollte, ist auch die Windows XP VM abgeschottet und kann nur mit bestimmten anderen Adressen kommunizieren. Die folgende Grafik zeigt das Setup:
Netzwerk Topology
VLAN | Name | Beschreibung | Firewall Regeln |
---|---|---|---|
100 | IMA L2 Transfer | Layer 2 only, direkte Verbindung zwischen der NUM Steuerung und der Windows XP VM, internes Interface | N/A |
1100 | IMAWinXP | Eigene Zone für Windows XP VM (10.1.100.1/29). Keine anderen Endpunkte sind in dem Netzwerk | Inbound RDP (tcp/3389) von Makerspace Rechnern RDP (tcp/3389) aus VPN Netzwerk Outbound SMB (tcp/445) zum SMB Proxy |
60 | Makerspace Services | Beinhaltet den SMB Proxy (10.1.60.10). Dieser mounted den UserShare vom NAS und stellt ihn als Share für die XP VM zur Verfügung. | N/A |
Windows XP einrichten
Damit die IMA mit der Windows XP VM sprechen kann, sind einige Bedingungen zu beachten.
- Die Maschine hat zwei NICs:
- NIC "IMA" in VLAN 100, keine IP, nur NetBEUI
- NIC "MKSP" in VLAN 1100, IP 10.1.100.2/29
- Ein Benutzer mit dem Benutzernamen IMA muss erstellt werden. Das Passwort muss dem an der Maschine hinterlegten Passwort entsprechen
- Der NetBEUI Treiber muss installiert werden und auf dem IMA Interface aktiviert werden (siehe unten)
Windows XP nutzt TCP/IP als Standardprotokoll für Netzwerke. NetBEUI, welches vorrangig noch unter Windows 3.x und Windows 95 zum Einsatz kam, ist aus der Liste der verfügbaren Protokolle verschwunden, findet sich aber auf der WindowsXP–CD im Ordner \ValueAdd\msft\net. Das Protokoll wird zugefügt über die »Systemsteuerung -> Netzwerk -> entsprechende Netzwerkkarte -> Protokoll hinzufügen« und hier als Quelle den o.a. Pfad auf der CD angeben. Zusätzlich sollte die Datei NBF.SYS manuell vom Ordner \valueadd\msft\net\netbui (auf der CD) nach "C:\Windows\system32\drivers" kopiert werden. Sonst wird das Protokoll zwar als bereit (in der Netzwerkumgebung) angezeigt, aber funktioniert leider nicht.
Quelle: https://www.wintotal.de/tipp/netbeui-unter-windows-xp/ - Freigabe des gesamten C-Laufwerks (unter dem Namen LWC)
TODO
Hier gibt es ein TODO:
- Eigentlich greift die IMA nur auf den relativen Ordner IMAWOP\SRC zum lesen zu und schreibt im Root-Verzeichnis eine boot.dat Datei. Es sollte eigentlich nichts dagegen sprechen, IMAWOP in einen eigenen Ordner zu packen und nur diesen freizugeben. Die Freigabe des C: Laufwerks wurde vom NT4.0 PC übernommen.
IMA_transfer Sync zu IMAWOP Ordner
Um Arbeitsabläufe zu beschleunigen, wird der IMA_transfer Ordner (Synology SMB Ordner) automatisch in den IMAWOP FMC-Ordner synchronisiert. Das spart manuelle Kopiervorgänge auf der XP-VM, besonders im Zusammenhang mit dem Estlcam Converter, welcher nicht direkt auf der XP-VM läuft.
Hierzu ist im Verzeichnis C: ein Batch-Skript angelegt, um mittels Robocopy alle FMC-Dateien in den FMC-Ordner zu kopieren.
sync.cmd
@echo off set "sourceFolder=Z:\" set "destinationFolder=C:\IMAWOP\FMC" :loop robocopy %sourceFolder% %destinationFolder% *.fmc /e /copy:DAT /xo /r:3 /w:5 ping localhost -n 5 > nul goto loop @echo on
Um das Skript ohne Fenster zu starten werden zwei weitere Dateien im Verzeichnis C: benötigt:
sync_launcher.cmd
wscript.exe "C:\invisible.vbs" "C:\sync.cmd"
invisible.vbs
CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 0, False
Eine Verknüpfung des sync_launcher.cmd Skriptes muss in den Startup-Ordner platziert werden, um automatisch gestartet zu werden. Zudem muss eine WinXP-taugliche Robocopy-Version im system32 Ordner abgelegt werden.