Ausführung des generierten Moduls unter TwinCAT

In TwinCAT 3 kann ein TcCOM-Modul direkt von einer zyklischen Echtzeit-Task oder von einem anderen Modul, z.B. einer SPS, aufgerufen werden. Um das Verhalten der einzelnen Modulinstanzen festzulegen, kann die Art der Ausführung in der TwinCAT 3-Entwicklungsumgebung definiert werden.

Kontexteinstellungen

Unter dem Karteireiter Context der Modulinstanz finden Sie eine Liste aller Simulink-Sampletimes des Moduls. Ist in den Solvereinstellungen des Simulink-Modells "SingleTasking" ausgewählt, ist die Anzahl der Tasks auf 1 beschränkt:

Ausführung des generierten Moduls unter TwinCAT 1:


Für jeden der in der Tabelle aufgelisteten Kontexte ist eine Task festzulegen, über die der Aufruf des Moduls erfolgen soll. Abhängig von den Einstellungen unter "Depend On" erfolgt die Zuordnung der Tasks unterschiedlich:

Einstellung "Depend On"

Beschreibung

Manual Config

Die Tasks können in der Kontexttabelle manuell zugewiesen werden, indem in der Spalte "Task" die Objekt-IDs der Tasks ausgewählt oder eingetragen werden. Die ausgewählten Tasks müssen alle Kriterien erfüllen, die über die "Aufruf-Parameter" konfiguriert wurden.

Parent Object

Kann nur verwendet werden, wenn der Eltern-Knoten der Modulinstanz im Projektbaum eine Task ist. In diesem Fall dient das Parent-Object als zyklischer Aufrufer des Moduls.

Task Properties

Die Tasks werden dem Modul automatisch zugewiesen, wenn Zykluszeit und Priorität den in Simulink festgelegten Werten entsprechen. Gibt es keine entsprechende Task, können unter dem Knoten "System Configuration -> Task Management" neue Tasks erstellt und entsprechend parametriert werden.

Konfiguration in XAE

Parameter, die das Verhalten des Simulink-Moduls in der Ausführung beeinflussen, sind:

Parameter

Optionen / Beschreibung

CallBy

Task

Das Modul hängt sich automatisch an die in den Kontexteinstellungen festgelegten Tasks an, wenn TwinCAT in den Run-Modus geschaltet wird. Die Tasks rufen das Modul zyklisch auf, bis TwinCAT gestoppt wird.

Module

Das Modul wird nicht direkt von den zugeordneten Tasks aufgerufen, sondern kann aus der SPS oder einem anderen Modul heraus aufgerufen werden. Wichtig: Dem aufrufenden Modul muss die gleiche Task zugewiesen sein, wie dem aufzurufenden TcCOM-Objects selbst.

Step size

RequireMatchingTaskCycleTime

Das Modul erwartet als Zykluszeit der zugeordneten Task die in Simulink festgelegte "Fixed Step Size". Multitasking-Module erwarten, dass alle zugewiesenen Tasks mit der zugehörigen Simulink-Sampletime konfiguriert wurden. Anderenfalls kann das Modul (und auch TwinCAT) nicht gestartet werden. Die Startsequenz wird dann mit entsprechenden Fehlermeldungen abgebrochen.

UseTaskCycleTime

Das Modul erlaubt Zykluszeiten, die von der in Simulink festgelegten "Fixed Step Size" abweichen. Bei Multitasking-Modulen müssen alle Task-Zykluszeiten das gleiche Verhältnis zur zugehörigen Simulink-Sampletime aufweisen.

UseModelStepSize

Das Modul verwendet für alle internen Berechnungen die in Simulink eingestellte SampleTime. Diese Einstellung ist vornehmlich für die Verwendung in Simulationen innerhalb der TwinCAT-Umgebung gedacht.

ExecutionSequence

Dieser Parameter ist nur in Modulen verfügbar, die ab TE1400 Version 1.1 generiert wurden. Mit ihm kann die Reihenfolge der Berechnungs- und Kommunikationsprozesse angepasst werden, um Jitter und Reaktionszeit für den jeweiligen Anwendungsfall zu optimieren. Mit TE1400 Version 1.0 generierte Module verwenden immer die Reihenfolge "StateUpdateAfterOutputMapping ". Die Unterschiede zwischen den verschiedenen Optionen sind unter „ Ausführungsreihenfolge“ beschrieben.

IOAtTaskbeginn

Ausführungsreihenfolge:
Eingangs-Mapping -> Ausgangs-Mapping -> Zustandsupdate -> Ausgangs-Update -> External mode Abarbeitung -> ADS Zugriff

StateupdateAfterOutputMapping

Ausführungsreihenfolge:
Eingangs-Mapping -> Ausgangs-Update -> Ausgangs-Mapping -> Zustandsupdate -> External mode Abarbeitung -> ADS Zugriff

StateupdateBeforeOutpunkUpdate

Ausführungsreihenfolge:
Eingangs-Mapping -> Zustandsupdate -> Ausgangs-Update -> Ausgangs-Mapping -> External mode Abarbeitung -> ADS Zugriff


Zugriff auf diese Parameter erhält man in der TwinCAT-Entwicklungsumgebung (XAE) über den Objektknoten unter folgenden Karteireitern:

Ausführung des generierten Moduls unter TwinCAT 4:

Wird keiner dieser Karteireiter angezeigt, müssen die Simulink-Coder-Einstellungen für Parameterdarstellung in XAE angepasst werden.