Konfiguration des Datenzugriffs auf Daten eines TcCOM-Objekts
Im Bereich TC TcCom Interface konfigurieren Sie, auf welche Art und Weise auf Daten bestimmter Variablen-Gruppen zugegriffen werden kann. Je nach Anforderung kann der ADS-Zugriff und der Typ des Prozessabbildes konfiguriert werden. Diese Einstellung beeinflusst, in welcher Weise eine Variable in einer Gruppe mit anderen Prozessabbildern in der TwinCAT-Entwicklungsumgebung verknüpft werden kann und Daten ausgetauscht werden können.
Variablen-Gruppen
Abhängig vom Simulink®-Modell gibt es neben den Ein- und Ausgangsvariablen mehrere Gruppen interner Variablen.
Folgende Gruppen können konfiguriert werden:
Gruppe | Beschreibung | Benennung der DataArea (default) | Benennung der DataArea (Option „classic“) |
---|---|---|---|
Input | Modell-Eingänge | <ModelName>_U | Input |
Output | Modell-Ausgänge | <ModelName>_Y | Output |
BlockIO | Globale Ausgangssignale von Simulink®-Blöcken: Interne Signale, für die ein "Testpunkt" festgelegt wurde. | <ModelName>_B | BlockIO |
Parameter | Modellspezifische Parameter: Parameter von Simulink®-Blöcken, die tunable sind. | <ModelName>_P | Model-Parameters |
ContState | Kontinuierliche Zustandsvariablen | <ModelName>_X | ContStates |
DWork | Zeitdiskrete Zustandsvariablen | <ModelName>_DW | DWork |
DataStore | Data Store Memory | <ModelName>_DW_<DataStoreName> | <ModelName>_DW_<DataStoreName> |
Unter TC TcCom Interface kann mit der Option Mapping between variable names and ADS symbols die Benennung der DataAreas beeinflusst werden. Standardmäßig erhalten sie den gleichen Namen, wie die zugehörige C++-Variable. Dieser wird vom Simulink CoderTM vorgegeben. Mit der Einstellung "Classic" werden die Namen abgekürzt auf den der Variablengruppe, wie man es aus früheren TE1400-Versionen 1.2.x kennt. Die Eingänge sind dann bspw. in der DataArea "Input" zusammengefasst und nicht in "<ModelName>_U".
![]() | TcCOM mit mehreren Task-Kontexten Wird ein TcCOM erzeugt, welches mehr als einen Task-Kontext besitzt (siehe Multitask, Concurrent Execution und OpenMP), werden die DataAreas automatisch aufgetrennt. So existieren bspw. mehrere Inputs oder Dwork DataAreas. |
Konfigurationsoberfläche in Simulink®
Wechseln Sie in den Advanced Modus, um folgende Parameter sichtbar zu machen.
TwinCAT.ModuleGenerator.Settings.Change('ConfigurationLevel', 'Advanced')

Zu jeder oben benannten Variablen-Gruppe kann individuell der Data Access definiert werden. Auswahlmöglichkeiten zu DataAreas und Modul-Parametern sind in folgender Tabelle zusammengefasst:
Data Access | Zugriff per ADS | Zugriff per Mapping | Zugriff per Data Pointer |
---|---|---|---|
None | Nein | Nein | Nein |
Modul Parameter | Ja | Nein | Nein |
Input Destination DataArea | Ja | Ja (mit Output Source) | Ja |
Output Source DataArea | Ja | Ja (mit Input Destination) | Ja |
Internal DataArea | Ja | Nein | Nein |
Standard DataArea | Ja | Nein | Ja |
Retain Source DataArea | Ja | Ja (mit Retain Handler) | Nein |
Modul Parameter sind im Gegensatz zu DataAreas nicht für den zyklischen (Prozess-)Datenaustausch mit anderen Modulen oder I/Os gedacht. Sie werden im Allgemeinen asynchron gelesen oder geschrieben, z. B. per ADS. Die Parameter unter dem Reiter Parameter (Init) haben einen im Projekt konfigurierbaren Initialwert, der beim Start der TcCOM-Instanz geschrieben wird. Die Parameter unter Parameter (Online) dagegen, haben keinen konfigurierbaren Initialwert und dienen typischerweise der Überwachung interner Zustände.

DataAreas sind auf der TcCOM-Instanz unter dem Tab DataArea zu finden. Der genaue Typ der DataArea wird ebenfalls hier angezeigt. Internal DataAreas werden in der Entwicklungsumgebung nicht als Prozessdatenabbild angelegt.

Eigenschaften der Parametrierung
Der Zugriff per ADS ist in der Regel ReadOnly. Nur die Gruppen Inputs und Parameter können per ADS auch beschrieben werden.
Unabhängig davon kann zu jeder Gruppe eingestellt werden, ob für die jeweilige Gruppe ADS-Symbolinformationen (Create ADS Symbols) erstellt werden sollen. Wenn keine ADS-Symbolinformationen vorhanden sind, kann per ADS nur noch über IndexGroup und IndexOffset auf die Daten zugegriffen werden.
Über die Option „Input: Initial values“ erhalten Sie zusätzlich zur DataArea (für den zyklischen Datenaustausch) einen Eintrag unter "Parameter (Init)". So können Initialwerte für Eingänge realisiert werden. Diese Werte gelten dann, wenn die entsprechenden Eingänge nicht verknüpft wurden. Ohne diese Parameter sind nicht verknüpfte Eingangswerte immer 0.
Über die Option „Parameter: Initial values“ werden die Paramater des Simulink®-Modells zusätzlich zur DataArea-Einstellung ebenfalls als Modul-Parameter (Struktur <ModelName>_P) angelegt.
![]() | Sonderfall: DataArea für Modell-Parameter Wird das Code Interface auf Reusable function gestellt (Default), dann wird keine DataArea für Modell-Parameter erstellt, da die Parameter für diesen Fall global gehalten werden und somit zwischen mehreren Instanzen geteilt werden. Wenn "Parameter: Initial values" ausgewählt ist, wird in diesem Fall unter Parameter (Init) neben dem Eintrag für die Modell-Parameter ein weiterer Parameter "<ModellParameterName>_Sharing" angelegt. Dieser Parameter kann nur bei einer Instanz dieser TcCOM-Modulklasse auf "Define" eingestellt sein. Alle weiteren Instanzen müssen "Inherit" verwenden. Da sich alle Instanzen in diesem Fall die Parameter teilen, arbeiten dann alle mit dem beim "Definer" eingestellten Parametersatz. Die Modell-Parameter-Einstellungen der anderen Instanzen werden ignoriert. |
Monitor Execution Time: Erstellt einen Modul-Parameter unter Parameter (Online) und im Blockdiagramm (rechte Seite). Über diesen Parameter kann die Ausführungszeit des TcCOM ausgelesen werden. Die Messung wird bei jedem Aufruf des TcCOM aktualisiert, sodass bspw. die Execution Time über das TwinCAT Scope präzise für jeden Aufruf verfolgt werden kann.
Create ExecutionInfo output: Erstellt eine zusätzliche Output Source DataArea mit Informationen zum Modulaufruf, siehe Exception Handling.
DataStores: Variablen aus einem Data Store Memory Block werden standardmäßig im DWork abgelegt. Sie können eine zusätzliche Adressierung dieser Variablen anlegen, wenn Sie für DataStores eine DataArea erzeugen. Standardmäßig wird keine DataArea angelegt. Beispiel siehe Geteilter Speicher zwischen TcCOM-Instanzen.
Weiterführende Beschreibungen:
- Aufbau eines TcCOM: Beschreibung der TcCOM Eigenschaften
- Eigenschaften von DataAreas
- Nutzen einer RetainDataArea mit dem NOV-RAM: RetainDataArea
- DataPointer können Sie bspw. über die TC Module Input- und TC Module Output Blöcke verwenden, siehe Geteilter Speicher zwischen TcCOM-Instanzen.