Wie der TwinCAT-State gesteuert wird

TwinCAT lässt sich über DTE-Befehle in den Config-Modus versetzen, der FreeRun-Zustand kann umgeschaltet werden, und der aktuelle Startzustand ist per Interface abfragbar.

Voraussetzungen

C#-Beispiel

// Switch TwinCAT to config mode
dte.ExecuteCommand("TwinCAT.RestartTwinCATConfigMode");

// Switch TwinCAT to run mode
dte.ExecuteCommand("TwinCAT.RestartTwinCATSystem");

// Check if TwinCAT is started (config or run mode)
bool isRunning = sysManager.IsTwinCATStarted();

PowerShell-Beispiel

# Config mode
$dte.ExecuteCommand("TwinCAT.RestartTwinCATConfigMode")

# Toggle FreeRun
$dte.ExecuteCommand("TwinCAT.ToogleFreeRunState")

# Check status
$isRunning = $sysManager.IsTwinCATStarted()
Write-Host "TwinCAT läuft: $isRunning"
Wie der TwinCAT-State gesteuert wird 1:

Das Steuern des TwinCAT-State ist nicht nur über die hier gezeigten DTE-Befehle, sondern auch direkt per ADS möglich (TwinCAT-System-Service, ADS-Port 10000).

Wie der TwinCAT-State gesteuert wird 2:

IsTwinCATStarted() gibt true zurück, wenn TwinCAT läuft, unabhängig vom Config- oder Run-Modus. Die Methode prüft damit, ob eine laufende TwinCAT-Instanz vorhanden ist. Sie eignet sich als Vorbedingung für Aktionen, die eine laufende TwinCAT-Instanz voraussetzen, etwa Upload. Der genaue Unterschied zu einer Prüfung des Run Mode ist noch zu verifizieren. Der Wechsel in den Config-Modus via RestartTwinCATConfigMode läuft asynchron. Für zuverlässige Automatisierung empfiehlt sich das Abfragen des TwinCAT-Zustands über ADS-Port 10000, bis der Config-Modus bestätigt ist.