TF5100 | TwinCAT 3 NCI (GST-Interpreter)
Die Function TF5100 TwinCAT 3 NCI wird teilweise (GST-Interpreter, PLC-Interpolation) von der TwinCAT 3 Usermode Runtime unterstützt. Der Classic-Interpreter wird nicht unterstützt.
GST-Interpreter
Neben der allgemeinen Usermode Runtime Installation, sind für die Verwendung des GST-Interpreters noch folgende Pakete auf dem Usermode Runtime System zu installieren:
- TwinCAT.XARUM.NCPTP
- TwinCAT.XAR.NCI.GST
Der GST-Interpreter ist ein ADS-Server, welcher von der Usermode Runtime gestartet wird. Hierfür muss – nachdem die Function installiert wurde – die Datei StartManConfig.xml mit dem folgenden Inhalt in dem 3.1\Target Verzeichnis der Usermode Runtime angelegt werden (beispielsweise: C:\ProgramData\Beckhoff\TwinCAT\3.1\Runtimes\UmRT_Default\3.1\Target).
<StartMan>
<TwinCATServers>
<TwinCATServer Enabled="1">
<Name>TcMcGst</Name>
<Path>C:\Program Files (x86)\Beckhoff\TwinCAT\3.1\Components\Mc\Nci\TcMcGst.exe</Path>
</TwinCATServer>
</TwinCATServers>
</StartMan>
Jede Usermode Runtime Instanz hat eine eigene „Registry“: TcRegistry.xml. In dieser werden für den GST-Interpreter die Default-Verzeichnisse definiert. Zum Bearbeiten der TcRegistry.xml Datei darf die dazugehörige Usermode Runtime Instanz nicht gestartet sein.
<TcRegistry>
<Key Name="HKLM">
<Key Name="Software">
<Key Name="Beckhoff">
<Key Name="TwinCAT3">
<Key Name="Nc">
<Key Name="TcMcGst">
<Value Name="searchpath" Type="SZ">C:\ProgramData\Beckhoff\TwinCAT\Mc\Nci\</Value>
<Value Name="workingdirectory" Type="SZ">C:\ProgramData\Beckhoff\TwinCAT\Mc\Nci\UmRT_Default\</Value>
</Key>
</Key>
</Key>
</Key>
</Key>
</Key>
</TcRegistry>
GST-Interpreter und Fast As Possible Mode
Der GST-Interpreter ist ein ADS-Server außerhalb der Runtime im Windows Kontext. Hierdurch wird der Zustand des GST-Interpreters beim Vorstellen des Zyklusticks im fast-as-possible Modes der Usermode Runtime nicht berücksichtigt. Dies kann zur Folge haben, dass die NC schneller die Motion-Commandos ausführt, als der Interpreter die Commandos an die NC sendet. Unrealistische Dynamikverläufe und fehlende Verschleifungen sind die Folge. Um dies zu verhindern, sollte bei der Verwendung des Fast As Possible Modes im Zusammenspiel mit dem GST-Interpreter der Lookahead der NC überwacht werden und bei Unterschreitung eines Schwellwertes in den Cyclic-Mode gewechselt werden, sodass der Interpreter die Chance hat den Lookahead wieder zu füllen.
IF fbSetRtMode.bExecute = FALSE THEN
IF io_X.NcToPlc.SafEntries > nSafEntriesThreshold THEN
IF fbSetRtMode.rtMode <> E_RtMode.RtMode_FastAsPossible THEN
fbSetRtMode.rtMode := E_RtMode.RtMode_FastAsPossible;
fbSetRtMode.bExecute := TRUE;
END_IF
ELSIF fbSetRtMode.rtMode <> E_RtMode.RtMode_Cyclic THEN
fbSetRtMode.rtMode := E_RtMode.RtMode_Cyclic;
fbSetRtMode.bExecute := TRUE;
END_IF
ELSIF NOT fbSetRtMode.bBusy THEN
fbSetRtMode.bExecute := FALSE;
END_IF
fbSetRtMode();