TwinCAT Event

Der TwinCAT Event Block erzeugt bei einer steigenden Flanke am Blockeingang ein TwinCAT Event. Der Block erfüllt diese Funktion nur, wenn das Simulink®-Modell bereits in ein TcCOM Modul überführt wurde und in einer TwinCAT Runtime ausgeführt wird. Wenn das Simulink®-Modell in Simulink® ausgeführt wird, hat dieser Block keine Funktion. Sie finden hier weiterführende Informationen zu Events in TwinCAT 3.

Das Wichtigste zu Events in TwinCAT 3 in Kürze:

Die Erzeugung eines Events (Nachricht oder Alarm) erfolgt über eine steigende Flanke an den entsprechenden Eingang des TwinCAT Event Blocks in Simulink®. Im Fall von Nachrichten hat der Block einen Send Eingang. Im Fall von Alarmen hat der Block die Eingänge Raise, Confirm (optional), und Clear.

Zur Nutzung des TwinCAT Event Blocks wird eine TMC-Datei benötigt, in der die Events definiert sind. Die Erzeugung einer solchen Datei ist unten beschrieben.

Der TwinCAT Event Block kann über dieses Fenster konfiguriert werden:

TwinCAT Event 1:

Die einzelnen Optionen bewirken Folgendes:

Number

Name

Description

(1)

Load event from file

Button that opens a new window which provides a selection menu for an event from a source TMC file (refer to 2).

(2)

Event definition source TMC file

Path to the TMC file that holds the underlying event definition. Is automatically set when using (1). Can also be set manually e.g. relative to the Simulink® project directory: fullfile(currentProject().RootFolder, 'TE1400SampleEvents.tmc').

(3)

Mode

Switch between Message and Alarm. Alarms have an internal state; Messages do not.

(4)

Event class name

Name of the selected event class. Is automatically set when using (1). Can also be set manually.

(5)

Event name

Name of the selected event. Is automatically set when using (1). Can also be set manually.

(6)

Event severity

Severity level of the to be generated event.

Options: Verbose, Info, Warning, Error, Critical

(7)

Confirmation policy

Only available for alarms (refer to (3))

Defines how the confirmation state of an alarm changes at a rising edge of the Confirm and Clear input:

  • Not required: Confirmation state is not supported.
  • Optional: Confirmation state is optional. Triggering the Clear input before a Confirm changes the confirmation state to Reset and clears the alarm.
  • Required: Confirmation state is required. Triggering the Clear input before a Confirm does not change the confirmation state (i.e., remains WaitForConfirmation). The alarm is cleared anyways, however, when raised again the same underlying alarm is used (as it has not been confirmed before).

(8)

Event source name suffix

Advanced Parameter: adds a suffix to the automatically resolved source name (name of the object instance in TwinCAT). Useful when one event is triggered from multiple points in one Simulink® model.

(9)

Arguments

Events can have additional (dynamic) data in the event text in the form of arguments. Up to 9 arguments are supported.

(10)

Enable

Checkbox that enables the respective argument. A new input will be added to the block on the Simulink® block diagram.

TwinCAT Event 2:

Funktionsblöcke werden von dem "TwinCAT Event" Block nicht unterstützt

Zur Code-Generierung müssen der Parameter „Generate TwinCAT PLC Function Block“ unter „TC PlcFb General“, der Parameter „TcCOM Wrapper FB“ unter „TC TcCom Wrapper“, sowie die Parameter „Generate a PLC library“ und „Install the generated PLC library“ unter „TC PLC Library“ deaktiviert sein.

Nachfolgend ist zunächst beschrieben wie Sie eine Event Definition in einer TMC-Datei abspeichern und anschließend diese TMC-Datei in den "TwinCAT Event" Block in Simulink® einbinden können, um Nachrichten oder Alarme zu erzeugen.

Voraussetzungen zur Nutzung des TwinCAT Event Blocks: Event Definition in einer TMC-Datei

Zur Nutzung des TwinCAT Event Blocks benötigen Sie eine TMC-Datei, in der die Eventklasse der zu erzeugenden Events definiert ist. Zur Erstellung einer solchen TMC-Datei gehen Sie im TwinCAT 3 Engineering wie folgt vor:

TwinCAT 3 Engineering ist installiert (XAE Shell oder Visual Studio Integration) und geöffnet.
Ein TwinCAT XAE Projekt ist geöffnet.
1. Erweitern Sie den System Knoten und fügen Sie eine neue TMC-Datei unter dem "Type System" über einen Rechtsklick und "Add New Item…" hinzu.
2. Geben Sie der Datei einen Namen und speichern Sie diese (als Beispiel nutzen wir hier: "TE1400SampleEvents.tmc").
3. Öffnen Sie den TMC-Editor über einen Rechtsklick und "Edit Project File" auf die erstellte TMC-Datei im TwinCAT 3 Engineering.
4. Im TMC-Editor erstellen Sie eine neue "event class" über einen Rechtsklick auf den "Data Types" Knoten.
5. Geben Sie der Ereignisklasse einen Namen und geben Sie einen Display-Text an.
6. Unterhalb der Ereignisklasse ist bereits ein Ereignis angelegt. Geben Sie dem Ereignis einen Namen und geben Sie einen Display Text und die Severity an. Im Display Text können Sie auch Argumente einsetzen, welche Sie zur Laufzeit mit Werten versorgen und so hilfreiche Zusatzinformationen (wie beispielsweise eine Temperatur) bereitstellen können. (Bspw. "Current temperature: {0}").
7. Speichern Sie nun die Ereignisklasse und schließen Sie den TMC-Editor.
8. Wählen Sie nun folgende CheckBox in dem "Event Classes" Tab der erzeugten "TE1400SampleEvents" TMC aus (diese CheckBox bewirkt, dass der Ref Count inkrementiert wird und die Event Informationen tatsächlich in der TMC-Datei gespeichert werden).
TwinCAT Event 3:
9. Speichern Sie anschließend das TwinCAT Projekt über Save All (Ctr + Shift + S).
Die Event Definition ist in einer TMC-Datei gespeichert und kann nun von dem TwinCAT Event Block in Simulink® genutzt werden.

Konfiguration des TwinCAT Event Blocks in Simulink®

Das Verhalten des TwinCAT Event Blocks kann über das oben gezeigte Fenster, welches mit Doppelklick auf den Block geöffnet wird, konfiguriert werden. Gehen Sie hierzu wie folgt vor:

Sie verfügen über eine in einer TMC-Datei gespeicherten Event Definition (siehe Oben).
Das Konfigurations UI des TwinCAT Event Blocks ist mittels Doppelklicks geöffnet.
1. Über den "Load event form file" (1) button wird ein "Browse events" Fenster geöffnet, welches die Auswahl des zu erzeugenden Events erleichtert (zum Einlesen einer TMC-Datei den "Load file" button einsetzen und die Datei auswählen).
TwinCAT Event 4:
2. Wählen Sie nun das zu erzeugende Event aus (in unserem Beispiel "MyCustomEvent") und bestätigen Sie über "OK".
Es werden für Sie im Hintergrund automatisch der "Event class name" (4) und der "Event name" (5) gesetzt.
3. Wählen Sie nun über den "Mode" (3) aus, ob eine Nachricht oder ein Alarm erzeugt werden soll (in diesem Beispiel erzeugen wir eine Nachricht; Alarme können analog zu Nachrichten erzeugt werden und unterscheiden sich durch zwei zusätzliche Trigger Eingänge, sowie den Confirmation state).
4. Wählen Sie nun die Event severity (6) aus.
5. (In diesem Beispiel werden keine Argumente genutzt, wenn Sie Argumente nutzen möchten, können Sie in dem UI unter den entsprechenden Argument Tabs (9) die Argumente erstellen. Für jedes Argument wird ein eigener Eingang generiert. Es können aktuell bis zu 9 Argumente erstellt werden. Beachten Sie, dass die Nutzung der Argumente beim Anlegen im TMC-Editor über den Event Display Text vorgegeben werden muss; Bspw: "Current temperature: {0}")
6. Schließen Sie die Konfiguration mit einem Klick auf "Ok" ab.
Beachten Sie die nicht Unterstützung von Funktionsblöcken und parametrieren Sie die Code-Generierung in Simulink® entsprechend.
TwinCAT Event 5:

Bei der Generierung der TcCOM Module werden die Event Informationen aus der TMC-Datei kopiert

Werden die Event-Informationen in der TMC-Datei anschließend geändert, ist zu einer Übernahme der Änderungen ein erneutes Bauen des Simulink® Models erforderlich.