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".

Konfiguration des Datenzugriffs auf Daten eines TcCOM-Objekts 1:

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')
Konfiguration des Datenzugriffs auf Daten eines TcCOM-Objekts 2:

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.

Konfiguration des Datenzugriffs auf Daten eines TcCOM-Objekts 3:

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.

Konfiguration des Datenzugriffs auf Daten eines TcCOM-Objekts 4:

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.

Konfiguration des Datenzugriffs auf Daten eines TcCOM-Objekts 5:

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.
Siehe auch Parametrierung mehrerer Modulinstanzen.

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: