CEM (Cause Effect Matrix) ab TIA v17

Um was geht es hier?

Seit Herbst 2021 gibt es das TIA Portal in der Version 17. Mit ihr veröffentlicht Siemens eine neue Programmiersprache. Diese wird CEM - Cause Effect Matrix - genannt. Wir hatten seither die Möglichkeit in den Sprachen FUP (Funktionsplan), KOP (Kontaktplan), Graph (Schrittkette) zu programmieren. Das sind die gängigen Sprachen. Weiter gibt es SCL, AWL, und den Sonderfall ProDiag. Wir wollen hier die CEM etwas genauer anschauen.

Download zum TIA-Portal Projekt (TIA v17) des Video-Tutorials: 

 Download TIA Portal Beispielprogramm zur CEM Cause Effect Matrix

Allgemeines zur CEM (Cause Effect Matrix)

Die CEM ist nur in speichernden Bausteinen, den sogenannten FB, möglich. Er muss sich, ähnlich zur Schrittkette, diverse Zustände merken. Deshalb ist eine Programmierung im FC nicht möglich. Für den späteren Aufruf wird ein I-DB (Instanzdatenbaustein), wie bei jedem FB, benötigt. Grob zusammengefasst kann man sagen, dass die CEM eine Anweisungsliste in Form einer Matrix darstellt.

Die Schnittstelle der Cause Effect Matrix

Zu Beginn betrachten wir die Schnitstelle eines Cause Effect Matrix. Später gehen wir auf die CEM selbst weiter ein. Die Schnittstelle ist der der Schrittkette sehr ähnlich. Wie jeder FB besitzt sie die Rubriken: Input, Output, InOut, Static, Temp und Constant.

CEM Cause Effect Matrix Siemens TIA Portal Beispiel 2

Zur Erinnerung werden diese hier wiederholt. Der Input repräsentiert die Eingangsvariablen des Bausteins. Innerhalb des Bausteins können diese nur gelesen werden. Der Output repräsentiert den Ausgang. Diese Variablen können auch geschrieben werden. InOut ist, wie der Name schon sagt, eine Kombination aus Input und Output. Sie weißen die Funktionen von Input, wie auch die von Output auf. Constant sind konstante Variablen. Diese können zur Laufzeit nur gelesen werden. Dies eignet sich z.B. für Variablen wie die Kreiszahl Pi. Temp sind temporäre Variablen. Diese sind zu Beginn des Aufrufes immer 0. Static sind Variablen, welche es nur in FBs gibt. Diese werden über den Zyklus hinaus gespeichert. Der Speicherplatz hierfür steht im I-DB (Instanzdatenbaustein) zur Verfügung. Wie auch bei der Schrittkette, legt auch die CEM unter Static automatisiert Variablen an.

Aufteilung der Cause Effect Matrix

Grundsätzlich lässt sich die CEM in drei wichtige Bereiche einteilen. Diese sind die Cause-Anweisungen, auch Ursache genannt. Die Intersection-Aktion, auch Schnitt- oder Knotenpunkte genannt. Die Effect-Anweisungen, auch Wirkung genannt. Im nachfolgenden Bild ist dies farblich hervorgehoben.

CEM Cause Effect Matrix Siemens TIA Portal Beispiel 1

In der Physik sagt man, jede Ereignis hat eine Ursache. Dies beschreibt das Kausalprinzip. Die Auswirkungen sind hier grün als Effect-Anweisung dargestellt. In dieser grünen Rubrik weisen wir den Variablen werten zu. Etwas praktischer gesprochen bedeutet dies, wir setzen hier die Ausgänge. Effects lassen sich beliebig viele Anlegen. Zu Beginn ist ein Leerer angelegt. Diese sind nummeriert. Im Bild hat er die Nummer 1.

Ähnlich ist es mit den Causes, den Ursachen. Im Bild sind diese blau hervorgehoben. Hier lesen wir die Zustände der Variablen ein und vergleichen diese ggf.. Praktisch gesprochen bedeutet dies, wir lesen die Eingänge ein. Auch die Causes sind nummeriert. Der Cause hat auch hie Nummer 1.

Zuletzt haben wir noch die Intersection-Aktionen. Hier werden die Causes mit den Effects verknüpft. Hierzu ein praktisches Beispiel: Wir haben drei Zylinder, Zylinder 1, 2 und 3. Diese werden durch die Ausgänge, Ausgang 1,2 und 3, geschalten. Die Zylinder haben alle eine Rückstellfeder. Wir haben nun drei Taster jeweils auf den Eingängen 1, 2 und 3. Mit jedem Tastendruck soll nun ein Zylinder angesteuert werden. Die Ursache (Cause) wäre hier ein gedrückter Taster. Die Wirkung (Effect) ein bewegender Zylinder. Taster 1 soll nun Zylinder 1 bewegen. Diese Verknüpfung wird in Intersection-Aktionen angelegt.

Beispiel einer CEM

Nun schauen wir uns ein praktisches Beispiel an. Es beinhaltet drei Causes. Auch drei Effects sind angelegt. Ergänzend noch eine Information. Die Anzahl der Effects darf ungleich der Anzahl der Causes sein. Im Bild finden wir Eingang-1 bis Eingang-4. Diese sind als Bool angelegt. Weiter finden wir Ausgang-1 bis Ausgang-4. Auch diese sind als Bool angelegt. Am besten legst du nun das untenstehende Bild ausgedruckt neben dich hinn.

CEM Cause Effect Matrix Siemens TIA Portal Beispiel 3

Bitte beachte vorerst nicht Spalte 3. Du erkennst es an den 2N Verknüpfungen. Wir konzentrieren uns vorerst auf 1 und 2. Im Bild haben wir die Causes mit den Effects über N verknüpft. Das N hat hier die gleiche Bedeutung wie beim Graph. Dies heißt "Setzen (nicht speichernd)". Anderst formuliert heißt es "Speichern, so lange Cause aktiv". Wie im Graph können wir S (Speichernd, setzen auf 1). Oder R (Speichernd, setzen auf 0). Dies wiederholen wir kurz.

Ist der Case erfüllt so setzt "N" den Effect für einen SPS-Zyklus.

Ist der Case erfüllt so setzt "S" den Effect bis er zurückgesetzt wird.

Ist der Case erfüllt so rücksetzt "R" den Effect bis er wieder gesetzt wird.

Wir fangen mit Cause 2 an. Cause 2 wird gesetzt, wenn Eingang-3 ein True-Signal hat. Cause 2 ist über ein "N" mit Effect 1 verknüpft. Ist Eingang-3 True, so wird Effect 1 für einen Zyklus ausgeführt. Effect 1 setzt Ausgang 1. Somit wird Ausgang-1 gesetzt, wenn Eingang-3 True ist.

Wir schauen nun Effect 2 an. Dieser ist mit Cause 1 und Cause 3 verknüpft. Dies ist eine Oder-Verknüpfung. Effect 2 wird ausgefhrt, wenn Cause 1 oder Cause 3 True sind. Cause 1 ist True, wenn Eingang-1 und Eingang-2 True sind. Du siehst, wir können in den Causes auch Logik verschalten. In Effect 2 selbst werden zwei Ausgänge zugewiesen, nämlich Ausgang-2 und Ausgang-3.

Wir schauen uns nun Effect 3 an. Macht man in der Intersection-Matrix einen Doppelklick kann man eine Arbeitsgruppe definieren. Diese Gruppe beinhaltet nun zwei Causes, nämlich Cause 2 und Cause 3. Diese 2N Verknüpfung realisiert nun ein UND. Ist Case 2 und Case 3 gleichzeitig erfüllt, so wird Effect 3 ausgeführt.

Zum Schluss noch einen Tipp. Ich empfehle dir in den Intersection-Aktionen immer mit N zu verknüpfen. Weiter empfehle ich in den Effects nur mit einem = für einen Zyklus zuzuweisen. Alles andere würde ich außerhalb der CEM realisieren. Bitte beachte hierzu, dass du zwei Mal setzen kannst. In den Intersection-Aktionen und in den Effects. Hierzu ein Bild.

CEM Cause Effect Matrix Siemens TIA Portal Baispiel 4

Bitte versuche einen solchen Fall zu vermeiden.

Ein Video zur CEM (Cause Effect Matrix):