# Twincat 3 in VM



## quiddi (25 Juli 2019)

Hallo zusammen,
ich hatte versucht die Twincat 3 Runtime innerhalb einer Virtuellen Maschine zu betreiben, jedoch bin ich bisher daran gescheitert. Vll. hat von euch noch einer einen Tipp

Host-System:
Windows 10 Prof mit 1803
CPU i7 7700HQ
Board und CPU unterstürtzen VT-x und ist selbstverständlich im Bios an.

Gast System:
Windows 10 Enterprise LTSB mit 1607
In den VMWare Einstellungen  ist VT-x und auch "Virtualize IOMMU" aktiviert. "Virtualize CPU performance counter" ist ausgeschalten.

Was ich bisher getan habe.
1. Im Gast System Windows einen Kern der CPU entzogen und in TwinCAT 3 für die Runtime einen Kern als isolated konfiguriert.
2. Die "win8settick.bat" als Admin ausgeführt.
3. Sichergestestellt dass Hyper-V in Host- und Gastsystem ausgeschaltet ist.
4. Spectre & Meltdown Patches im Gast System abgeschalten.
5. Die Speicher-Integrität in Host- und Gastsystem abgeschalten.

Nach all den Maßnahmen erhalte ich folgenden Fehler beim Starten der Runtime für TC3

```
Fehler beim Starten des TwinCAT Systems!
Init4\RTime: Start Interrupt: Ticker started >> AdsWarning 4115
(0x1013, RTIME: system clock setup failes.)
```

Hat von euch noch einer eine Idee?


----------



## Guga (29 Juli 2019)

Schau doch mal nach ob im Bios "Secure Boot" aktiviert ist. Wenn ja: Testweise de-aktivieren.
Ich schätze die Chance 50/50 das es danach funktioniert. Feedback welcome!

Tech.Hintergrund: TPM ist nicht Echtzeitfähig (zumindest nicht mit den aktuellen TwinCAT-Versionen).

Guga


----------



## quiddi (30 Juli 2019)

Dank die für die Antwort. Hat nicht geklappt.


----------



## olbie (17 September 2019)

Hallo quiddi, hat sich dein Problem inzwischen gelöst? Wenn ja wie? 

Und Achtung, ich bin der totale noob was sps angeht. Der Programmierer meines Vertrauens ist aber in den nächsten Wochen nicht verfügbar... Insofern wäre ich dankbar für extremst einfache Erklärungen, sofern das geht.

Danke


----------



## oliver.tonn (17 September 2019)

So wie quiddi es in #1 beschrieben hat sollte es eigentlich laufen, wobei die TC3.4022 Versionen mit dem Spectre/Meltdown Patch klarkommen. Nur bei Punkt 2 muss man darauf achten, dass man nicht nur Admin ist, sondern die Batch-Datei mit Rechtsklick auswählt und im Kontextmenü "Als Admin ausführen" wählt, ich bin mir aber nicht sicher, ob die Batchdatei unter Win 10 überhaupt noch benötigt wird. Punkt 5 habe ich noch nie gemacht, aber vielleicht ist die per Default aus.


----------



## quiddi (17 September 2019)

> Hallo quiddi, hat sich dein Problem inzwischen gelöst? Wenn ja wie?


Leider nein. Ich bekomme es in meinem Host-System zum laufen, nicht jedoch unter meinem Gast-System in der VM.



> So wie quiddi es in #1 beschrieben hat sollte es eigentlich laufen, wobei die TC3.4022...


Die Betonung liegt auf "Sollte". Ich könnte mir vorstellen, dass es unter Umständen doch Hardwareabhängig ist. Man will zwar mit VMs hardwareunabhängig sein, jedoch klappt dies nicht immer so ganz. Obwohl mein Rechner hier kein PCI-PassThrough hat gibt es einige Hardwarekomponenten die durchgereicht werden, wie z.B. Prozessor und Chipsatz. Soll heißen, VMWare  emuliert die CPU nicht und gibt die aufgerufenen Funktionen für die CPU direkt an diese weiter. Wäre dies nicht so könnte man ja einfach auf auf dem Host-System eine Intel-CPU haben und im Gastsystem eine AMD-CPU emulieren. 

Ich hatte leider nur mein Firmenlaptop zur Auswahl, meine private Maschine packt das in der VM nicht. Schreibe doch mal, ob du mit deiner Hardware Erfolg hattest.


----------



## oliver.tonn (17 September 2019)

Hallo quiddi,


quiddi schrieb:


> Schreibe doch mal, ob du mit deiner Hardware Erfolg hattest.


ich denke mal damit bin ich gemeint. Ich habe TC3 in mehreren VMs auf meinem Laptop (I7, 32GB Ram, Host/Gast Win10) am Laufen, allerdings mit VirtualBox und nicht VMWare. Die Batch-Datei hast Du auch mit Rechtsklick ausgeführt?


----------



## Fx64 (17 September 2019)

Hallo,
vielleicht ist auch der Unterschied das oliver.tonn 32 Bit Gastsysteme verwendet und qudidi 64 Bit??

Viele Grüße


----------



## oliver.tonn (17 September 2019)

Fx64 schrieb:


> vielleicht ist auch der Unterschied das oliver.tonn 32 Bit Gastsysteme verwendet und qudidi 64 Bit??


Da muss ich Dich enttäuschen, 32 Bit nutze ich höchstens noch für TC2.


----------



## Fx64 (17 September 2019)

Wenn es dann TwinCAT in den RUN schafft, alles richtig


----------



## quiddi (17 September 2019)

> vielleicht ist auch der Unterschied das oliver.tonn 32 Bit Gastsysteme verwendet und qudidi 64 Bit??


Guter Punkt. Das hatte ich auch des Öfteren hier im Netz gelesen, dass die 32Bit Systeme nicht so viel Ärger machen. 



> Die Batch-Datei hast Du auch mit Rechtsklick ausgeführt?


Ja.

Danke nochmal für die Antworten. Ich werde mich mal an VBox probieren.


----------



## quiddi (24 September 2019)

Ok, hier nochmal eine Rückmeldung. Auch mit Oracle VBox habe ich den gleichen Fehler.

Mal eine Frage noch an euch: Wie alt ist euer Windows 7 Installationsdatenträger? Meiner ist relativ alt, ich habe die Updates aber alle nachinstalliert, vll. läuft bei den Updates was falsch.


----------



## KGU (24 September 2019)

quiddi schrieb:


> Gast System:
> Windows 10 Enterprise LTSB mit 1607
> In den VMWare Einstellungen  ist VT-x und auch "Virtualize IOMMU" aktiviert. "Virtualize CPU performance counter" ist ausgeschalten.



"Virtualize IOMMU" bitte mal ausschalten, dann dürfte das gehen


----------



## quiddi (24 September 2019)

> "Virtualize IOMMU" bitte mal ausschalten, dann dürfte das gehen


Danke für die Antwort. Es geht leider nicht, da kommt dann die Fehlermeldung, dass VT-x Extensions nicht da sind, obwohl diese aktiviert sind und nur "Virtualize IOMMU" deaktiviert ist.


----------



## KGU (24 September 2019)

VT-x dann bitte in der VMware auch ausschalten. Und dann natürlich einen Isolierten Kern verwenden ...


----------



## quiddi (24 September 2019)

> VT-x dann bitte in der VMware auch ausschalten. Und dann natürlich einen Isolierten Kern verwenden ...


Nochmals Danke. Geht trotzdem nicht. Da bekomme ich eine Fehlermeldung mit "AdsWarning 4132".


----------



## KGU (24 September 2019)

das hat aber dann andere Gründe. Wahrscheinlich passt deine Kern-Konfiguration nicht. Wie bereits beschrieben müssen isolierte Kerne verwendet werden. Diese müssen dann mit SetOnTarget dem System auch bekannt gemacht werden. Danach muss die VM neu gestartet werden. Wie hast Du denn die Kerne eingestellt? Führe doch mal ein Read-From-Target in den Kern-Einstellungen aus und poste dann das ERgebnis


----------



## quiddi (24 September 2019)

Vielen Dank nochmal für deine Mühen.

Ich habe es hier sogar mal mit zwei isolierten Cores probiert. Ob ein oder zwei macht für die Fehlermeldung keinen Unterschied.


----------



## KGU (24 September 2019)

Nur nochmal als Nachfrage: das mit dem SetOnTarget hattest Du aber ausgeführt, nachdem Du die EInstellungen 2/2 durchgeführt hast, oder?


----------



## oliver.tonn (24 September 2019)

Wie hast Du die Kerne isoliert über TwinCAT oder über MSCONFIG. Falls über TwinCAT mach das mal wieder rückgängig und nutze dann MSCONFIG um einen Kern zu isolieren.

Von irgendwas mit Internetzugang gesendet.


----------



## quiddi (24 September 2019)

> Nur nochmal als Nachfrage: das mit dem SetOnTarget hattest Du aber ausgeführt, nachdem Du die EInstellungen 2/2 durchgeführt hast, oder?


Ja.


> Wie hast Du die Kerne isoliert über TwinCAT oder über MSCONFIG. Falls über TwinCAT mach das mal wieder rückgängig und nutze dann MSCONFIG um einen Kern zu isolieren.


Msconfig aufgemacht und die CPU-Kerne für Windows auf 2 gestellt. Neu gebootet. Danach TC gestartet. Nun stand bei mir dort die alte Konfiguration in den Settings drinnen. Also bin ich auf "Read from Target" gegangen, habe die zwei Hacken bei den isolierten Kernen gesetzt und dann auf "Set on Target" geklickt.

Vielen Dank euch. Meine Vermutung ist, dass es eventuell an der Hardware liegen könnte. Schließt ihr das aus?


----------



## oliver.tonn (25 September 2019)

"Set on Target" brauchst Du nicht zu drücken wenn Du die Kerne über MSCONFIG schon isoliert hast. Ein Druck auf den Button macht quasi das Selbe nochmal, allerdings hatte ich schon Probleme, wenn ich den Button anstatt MSCONFIG genutzt hatte, daher mach die Einstellungen in MSCONFIG nochmals rückgängig, boote neu und isoliere wieder einen Kern und probier es erneut.


----------



## quiddi (25 September 2019)

> "Set on Target" brauchst Du nicht zu drücken wenn Du die Kerne über MSCONFIG schon isoliert hast. Ein Druck auf den Button macht quasi das Selbe nochmal, allerdings hatte ich schon Probleme, wenn ich den Button anstatt MSCONFIG genutzt hatte, daher mach die Einstellungen in MSCONFIG nochmals rückgängig, boote neu und isoliere wieder einen Kern und probier es erneut.


Danke auch nochmal hierfür. Hatte leider auch nichts gebracht. 

Nochmal zum Verständnis: Sehe ich das richtig, dass die Runtime die VT-x von Intel braucht, aber nur dann, wenn ein Kern von Windows und TC3 gleichzeitig benutzt werden soll? Isoliere ich einen Kern, und überlasse diesen der Runtime für TC3 alleine, so ist VT-x nicht mehr erforderlich?


----------



## oliver.tonn (25 September 2019)

Doch die VT-x ist bei einer VM immer erforderlich, zumindest bei 64 Bit
Falls nicht aktiv sollte es eigentlich auch eine entsprechende Meldung geben.

Von irgendwas mit Internetzugang gesendet.


----------



## plcSniffer (25 September 2019)

Die aktuelle TC3 Version 4024 wird aber schon verwendet?


----------



## quiddi (25 September 2019)

> Die aktuelle TC3 Version 4024 wird aber schon verwendet?


Ja ich hatte die Tage sogar nochmal die VM komplett neu gemacht, mit 1903 und allen Updates von Windows, auch 4024 hatte ich dann installiert.


----------



## plcSniffer (25 September 2019)

Testweise Hyper-Threading deaktivieren... und eventuell BIOS / UEFI zurücksetzen...Chipsatz eventuell auch mal auf aktuelle Treiber überprüfen...auch noch einmal mit VirtualBox testen...


----------



## KGU (26 September 2019)

oliver.tonn schrieb:


> Doch die VT-x ist bei einer VM immer erforderlich, zumindest bei 64 Bit


Auf dem Host ja ...  Bei VMWare sollte das im Moment ausgeschalten werden, wenn man isolated Cores verwendet.


----------



## oliver.tonn (26 September 2019)

KGU schrieb:


> Auf dem Host ja ...  Bei VMWare sollte das im Moment ausgeschalten werden, wenn man isolated Cores verwendet.



Und das geht?
Ich meine mich zu erinnern, dass TC3 in einer 64 Bit VM meckert, wenn kein VT-x aktiv ist und man versucht in Run zu gehen.

Von irgendwas mit Internetzugang gesendet.


----------



## quiddi (26 September 2019)

Danke noch mal an alle die sich hier gemeldet haben. Auch nach Rücksetzen des BIOS bzw. UEFI und Neuinstallation von Treibern für das Chipset funktionierte es nicht. Ihr habt mir den besten Service geboten, den man extern über ein Forum bieten kann. Für alle welche nach mir kommen möchte ich nochmal betonen, dass man sich die Probleme erspart, wenn man TC3 auf einem 32-bit System installiert.


----------



## KGU (26 September 2019)

VMWare stellt diese Virtulisierung nur "nestet" zu Verfügung und das wird im Moment (noch) nicht unterstützt. Bei VirtualBox ist das anders, die verwenden die Virtualsierung des Hosts, wobei es wohl auch da Einstellung gibt die Virtualsierung auch nestet zur Verfügung zu stellen (würde dann im Moment auch nicht gehen)


----------



## Guga (11 November 2019)

@quiddi :
Probiere es mal bitte aus in der VM die 4024.4 zu installieren/nutzen. Ein Kollege hatte hier das gleiche Problem wie du und mit der 4024.4 läuft es nun.

Guga


----------

