Kommunikation mit Schnittstellen

Die Kommunikation mit den Schnittstellen erfolgt über die Variablen in.COM und out.COM. Wobei COM irgendeinen Namen bekommen kann. Danach können Sie auf der rechten Seite des Editors unter Kommunikation die Schnittstelle auswählen. Es werden dort alle Schnittstellen aufgeführt, die dem Projekt zugeordnet wurden. In der Liste unterhalb des Auswahlfeldes können die Telegramme definiert werden. Anders als bei anderen Systemen können Sie hier mehrere Datenpunkte pro Variable eintragen. Es ist auch möglich die Variable via Drag&Drop direkt von der Schnittstelle unter Installation zu verknüpfen.

Dabei müssen Sie den Datentyp korrekt festlegen. Anders als beim Standard des Bussystems KNX wird hier ein universeller Typ verwendet und nicht die DPT/EIS-Typen.

Aufbau des Editors

Das Dialogfeld im Editor ermöglicht die Verknüpfung von Schnittstellen, ohne dass diese einen Einfluss auf die Programmierung des Elementes haben.

In dem oben gezeigten Beispiel wurde ein SONOS Lautsprecher mit einem KNX-Taster angesteuert. Ausserdem wurde ein Analogwert mit einem Status verbunden.

Die Kommunikationsvariable status sendet auf die Gruppenadresse 1/0/5 und reagiert dabei auf Änderungen von 1/0/5 und 1/7/5. Das Fragezeichen fragt bei der Initialisierung den Status von 1/7/5 ab.

Bei den Werten Tr_UP und Tr_DW wurde das Senden durch das Abwählen des Häkchens deaktiviert.

Die rot markierten Werte (Tr_Play und Tr_Stop) wurden in der SPS nicht gefunden und werden entsprechend ignoriert. Wurde das Programm erfolgreich getestet, können diese Werte gelöscht werden, ohne Einfluss auf die Applikation zu haben.

Tipp: Klicken Sie mit der rechten Maustaste auf eine Kommunikationsvariable, um deren Auftreten in der SPS zu finden.

Trigger

Die Eingangssignale werden gefiltert. Sich wiederholende Werte werden ignoriert. Für diesen Zweck gibt es den Datentyp trig, trig_p usw. Diese erzeugen eine Flanke, wenn ein Telegramm ankommt. Bei mehreren Gateways auf derselben Schnittstelle, dann wird nur über den aktuellen Gateway ein Impuls generiert. Dies verhindert mehrere Impulse hintereinander.

Verbinden von Werten

Sie können Kommunikationsobjekte via Drag&Drop direkt mit einem Element aus der Struktur verknüpfen. Dazu können in der Installation jegliche Objekte mit folgenden Symbolen gezogen werden.

Symbol Beschreibung
Objekt kann gelesen werden.
Objekt kann gelesen und geschrieben werden.
Dies ist eine Konstante. Dieser Wert kann nicht gelesen oder beschrieben werden.

Die entsprechende Schnittstelle wird automatisch ausgewählt. Dies bedeutet, Sie brauchen nicht vorher die Schnittstelle auszuwählen. Darüberziehen reicht aus. Auch muss nicht beachtet werden, ob die Schnittstelle korrekt ist. Wird z.B. ein KNX-Objekt in eine SPS gezogen, wird die Variable entsprechend korrekt zugeordnet. Beachten Sie, dass immer nur der erste Eintrag einer Kommunikationsvariable gesendet werden kann.

Tipp: Unter den einzelnen Objekten in der Installation wird die Referenzierung mit den jeweiligen Elementen unter den Objekten angezeigt. Dies ist hilfreich, wenn nach Fehlern gesucht werden muss.

Senden von Werten

Nur der erste Datenpunkt sendet auf den Bus, wenn der Haken auf der rechten Seite aktiviert ist. Alle anderen Objekte geben den Zustand an. Ein Beispiel für den KNX-Bus: Wenn Sie in der ETS einen Schaltaktor ansehen, stehen dort meist zwei Kommunikationsobjekte. Eines zum Schalten des Aktors und ein Status-Objekt (kann auch im Schalt-Objekt enthalten sein). Optimal können Sie jede Gruppenadresse als Datenpunkt in die Schnittstellenkonfiguration einfügen. So wird der Zustand auf der Visualisierung sofort angezeigt. Und nicht erst beim Schalten des Aktors.

Es werden nur Änderungen einer Variable auf die Schnittstelle übertragen. Die Änderung wird beim Empfangen auf dieselbe Variable zurückgesetzt. Dies bedeutet, dass beim Empfangen einer Änderung auf in.COM der Ausgang out.COM nicht gesendet wird. Dies gilt besonderer Aufmerksamkeit beim Verzögern von Werten.

Beachten Sie auch immer die Anzahl Telegramme, die eine Schnittstelle sendet. Denn zu viele Telegramme blockieren den BUS. Dies kann nur durch eine weitere separate Linie verbessert werden. Wenn eine Variabel schnelle Impulse sendet, kann dies zur Überschreibung des Puffers führen und dabei Telegramme der Variable löschen. So kann dies zu ungewollten Effekten führen. Verlangsamen Sie daher unbedingt die Variable.

Wiederholtes senden des gleichen Wertes

Ein Spezialfall ist das Senden des gleichen Wertes. Dies kann durch mehrere Wege realisiert werden.

Ist der Wert ein boolescher Wert, kann direkt trig_p oder trig_n als Datentyp verwendet werden. trig_n sendet dabei FALSE und trig_p TRUE, sobald auf dem Ausgang out.COM eine positive Flanke erzeugt wurde.

Eine andere Methode, ist das Setzen von NULL. Dies kann mit mehreren Möglichkeiten programmiert werden. Die einfachste Methode ist das Verwenden des Funktionsblocks SEL.

Initialisierung nach dem Neustart

Beim Starten des Servers oder bei neuen Telegrammen werden diese initialisiert, wenn ein ? ohne Leerschlag vor dem Telegramm steht. Z.B. ?1/4/22.

Achtung: Wenn bei der ETS die erste Gruppenadresse des Schaltaktors ein zentraler Befehl ist, kann dies beim Lesen ein Zentral ein oder aus verursachen. Daher stets die Schalt-Adresse als sendend definieren.