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:

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();