Beispiel
Dieses Beispiel stellt die unterschiedlichen Möglichkeiten dar, wie die TwinCAT 3 Usermode Runtime genutzt werden kann.
Beispielcode für diese Produkte können über das entsprechende Repository auf GitHub bezogen werden: https://github.com/Beckhoff/TC170x_Samples.
Sie haben dort die Möglichkeit das Repository zu clonen oder ein ZIP File mit dem Sample herunterzuladen.
Das Beispiel geht davon aus, dass eine TwinCAT 3 Usermode Runtime zur Ausführung gestartet ist und diese auch, wie beschrieben, für die Umschaltung unterschiedlicher Modes mit -f 0x4 gestartet wurde.
Im Repository liegen zwei Projekte:
- TcRtSimulationExternalTick stellt die Kontrolle über die TwinCAT 3 Usermode Runtime von außen bereit. Es wird ein Kommando gesendet, dass zur Ausführung von 100 Echtzeitticks führt.
Das Programm kann in einem Visual Studio mit C++ Unterstützung einfach kompiliert werden. Bitte beachten Sie, dass Sie gegebenenfalls die AmsNetId anpassen müssen. - TestTcOsUmRtSimulation_SelfTick ist eine TwinCAT Solution, die ein entsprechendes Beispiel bereitstellt, um die Verwendung der Produkte zu zeigen.
External Control (TC1701): MAIN_ExternalTick
Es wird ein Counter value
im normalen zyklischen Mode von 100 auf 0 heruntergezählt. Währenddessen wird „…cycling…“ in einer „hint“ Variable angezeigt. Danach wird auf die externen Ticks gewartet, die Sie durch das Programm TcRtSimulationExternalTick absenden können
Die drei Varianten des MAIN_ExternalTick zeigen unterschiedliche Varianten, wie die gleiche Schnittstelle genutzt werden kann:
Über ADS (MAIN_ExternalTick),
als Functions-Aufruf (MAIN_ExternalTick_F),
oder als TcCOM Objekt (MAIN_ExternalTick_ITc).
Fast As Possible (TC1702): MAIN_FastAsPossible
Es wird ein Counter value
im normalenzyklischen Mode von 100 auf 0 heruntergezählt. Danach wird in den RtMode_FastAsPossible gewechselt und von 100.000 auf 0 gezählt. Der Ablauf wiederholt sich, welches in dem Zähler Iteration mitgezählt wird.
Die drei Varianten des MAIN_FastAsPossible zeigen unterschiedliche Varianten, wie die gleiche Schnittstelle genutzt werden kann: Über ADS (MAIN_FastAsPossible); als Functions-Aufruf (MAIN_FastAsPossible_F); oder als TcCOM Objekt (MAIN_FastAsPossible_ITc).