Mit Codesys Schalter für ModBus und KNX mit 2 und 3 Schaltzuständen

guwen

Level-2
Beiträge
66
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
ich versuche die Schaltzustände der Beleuchtung auf meinem Flur über 3 Schaltzustände zu schalten.
Dauer Ein; Dauer Aus; Automatik über BWM.
Am physikalisch vorhandenen Taster möchte ich über 0/1 die Zustände Automatik und Dauer Ein auslösen.
Über ModBus bekomme ich 0/1/2 und habe dann Automatik, Dauer Ein, Dauer Aus.
In der Betriebsart Automatik schaltet der BWM die Beleuchtung.
Die aktuelle Betriebsart muss sowohl am physischen KNX Taster angezeigt werden, als auch auf der Visu (ModBus), wobei Dauer Aus auf dem KNX Taster nicht beachtet wird / werden kann.
Hat so etwas schon mal jemand in CoDeSys programmiert? Ich verzweifele gerade ein wenig daran.
Vielen Dank für eure Unterstützung.
 
Am physikalisch vorhandenen Taster möchte ich über 0/1 die Zustände Automatik und Dauer Ein auslösen.
Je nachdem, welche Objekte der Taster u. der BWM zur Verfügung stellen, geht das z.B. per 1-bit oder 2-bit(Zwangssteuerung).
Z.b. Nebeneingangsobjekt per 1-bit u. Dauer-Ein

In der Betriebsart Automatik schaltet der BWM die Beleuchtung.
Ist ohnehin der Regelfall - wird über eine GA, verbunden zwischen BWM-Ausgang u. Schaltaktor Eingang gemacht.
Die aktuelle Betriebsart muss sowohl am physischen KNX Taster angezeigt werden, als auch auf der Visu (ModBus), wobei Dauer Aus auf dem KNX Taster nicht beachtet wird / werden kann.
Ist auf dem RM-Objekt bei 1-bit die selbe, wie Punkt 1.
Nimmt man ein anderes Format, kommt es darauf an, was der Taster kann - ansonsten Format wandeln.

Vlt. liege ich falsch, aber aktuell sieht mir das nicht als grosses CoDeSys-Problem aus, eher nach grundsätzlichem Verständnis von KNX.
Die absolut grundlegenden Angaben zur Fragestellung fehlen in Gänze.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Vlt. liege ich falsch, aber aktuell sieht mir das nicht als grosses CoDeSys-Problem aus, eher nach grundsätzlichem Verständnis von KNX.
Die absolut grundlegenden Angaben zur Fragestellung fehlen in Gänze.
Moin, und Danke für die Antwort,
es ist auch sicherlich kein großes CoDeSys Problem, allein mir fehlt das Verständnis, wie ich ModBus und KNX synchronisiert bekommen. Ich weiß nicht, wie ich das besser ausdrücken soll.
Die Betriebsarten Auto/Dauer Ein über KNX-Taster, inkl. Rückmeldung an die LED des Tasters zum Schaltzustand und auch der BWM laufen seit Jahren einwandfrei. Die Einstellungen auf Seite KNX sind klar und auch nicht das Thema.
Nicht klar für mich ist, wie ich die beiden Telegramme (KNX und ModBus) gleich ziehe.

Habe mal folgende probiert. Vllt. wird kann man dann besser verstehen, was ich meine, weil ich das nicht so gut erklären kann:

FUNCTION_BLOCK SchalterSPSKNX
VAR_INPUT
SwitchIn_KNX: BOOL; (* Schalter TRUE/FALSE = 1/0 vom KNX *)
SwitchIn_SPS: INT; (* Schalter 0/1/2 von der SPS *)
StatusIn_BWM : BOOL; (* StatusTelegramm TRUE/FALSE des Bewegungsmelders *)
END_VAR
VAR_OUTPUT
StatusOut_KNX : BOOL; (* Statusvariable Ausgang für den KNX TRUE/FALSE = 1/0 | LED des Tasters: Betriebsart 0/2 = false; 1 = true*)
SwitchOut_KNX : BOOL; (* Schalter den Ausgang am KNX-Aktor TRUE/FALSE = 1/0 *)
SwitchOut_SPS : INT; (* Schalter Ausgang 0/1/2 zur SPS *)
END_VAR
VAR
LastSwitch : INT := 0; (* Der letzte Schaltzustand *)
LastValue_KNX: BOOL := FALSE;
LastValue_SPS:INT := 0;
END_VAR
-----------------------------------------------------
IF (SwitchIn_KNX = 0) AND (SwitchIn_SPS = 0) THEN
SwitchOut_KNX := StatusIn_BWM;
StatusOut_KNX := FALSE; (* LED bleibt in den Betriebsarten 0 und 2 auf false *)
RETURN;
END_IF;

(* Haben beide Schalter den gleichen Wert, dann braucht nix gemacht zu werden *)
IF (BOOL_TO_INT(SwitchIn_KNX) = SwitchIn_SPS) THEN
RETURN;
END_IF;

(* Änderung SPS / ModBus *)
IF SwitchIn_SPS <> LastValue_SPS THEN
IF SwitchIn_SPS = 2 THEN
StatusOut_KNX := FALSE;
SwitchOut_KNX := FALSE;
LastValue_KNX := FALSE;
RETURN;
END_IF;
IF SwitchIn_SPS < 2 THEN
SwitchOut_SPS := SwitchIn_SPS;
LastValue_SPS := SwitchIn_SPS;
SwitchOut_KNX := INT_TO_BOOL(SwitchIn_SPS);
StatusOut_KNX := SwitchOut_KNX;
LastValue_KNX := SwitchOut_KNX;
END_IF;
END_IF;


(* Änderung KNX *)
IF (SwitchIn_KNX <> LastValue_KNX) THEN
SwitchOut_SPS := BOOL_TO_INT(SwitchIn_KNX);
LastValue_SPS := SwitchOut_SPS;
SwitchOut_KNX := SwitchIn_KNX;
StatusOut_KNX := SwitchIn_KNX;
LastValue_KNX := SwitchIn_KNX;
END_IF;
 
SwitchIn_SPS: INT; (* Schalter 0/1/2 von der SPS *)
Hängt da wirklich ein physikalischer Schalter an einem Eingangsmodul oder kommt da was von einer Visu?

Das ganze Gedöhns mit Schaltzustand, Aktoransteuerung ist völlig überflüssig - das macht der KNX-Taster, der KNX-BWM incl. KNX-Aktor völlig eigenständig - in diese bestehende Konstellation zusätzlich (also parallel) eingreifen zu wollen, ist eher zum scheitern verurteilt.

Was Du wirklich machen müsstest wäre, entsprechend vorhandene Sperr-/Zwangsansteuerungsobjekte in den KNX-Geräte zu befehlieren - dafür müssen KNX-seitig jedoch die Parametrierung/GAs eingepflegt werden.
Dafür müssen allerdings die Produkte/Typen der KNX-Geräte u. aktuelle Projektierung bekannt sein, damit man das genauer beurteilen u. spezifizieren kann.

Im einfachsten Falle besitzen die BWM ein 2-bit-Zwangsobjekt - dafür bräuchte man dann genau 1 GA u. man kann das Licht darüber in alle 3 gewünschte Stati bekommen, d.h. der BWM schaltet den Aktor je nach Betriebsart wie gewünscht. Evtl. Rückmeldungen gäbe man dann u.U. einfach nur auf bereits bestehende GAs aus. Das wars.
 
OK. Das kann funktionieren, in Abhängigkeit der verwendeten Konfiguration.
Ich habe hier einen Taster von BJE (6125) auf einer BCU 6120U-102 im Einsatz. Als PM hängt der BJE 6131-102 unter der Decke und als Aktor ist der BJE 6194/80 im Einsatz.
Aber, und das ist sicherlich meine persönliche Einstellung, möchte ich möglichst wenig "Intelligenz" in die KNX-Geräte stecken. Denn dies führt in vielen Fällen dazu, dass ich das KNX-Gerät nicht anhand des Aussehens und grundsätzlicher Funktionalität kaufe, sondern anhand von besonderen/Internen Funktionen auswählen muss. Und dann habe ich u.U. mehrere KNX-Geräte (z.B. Taster) im Raum, die vom Design nicht miteinander harmonieren.
Wenn es allerdings eine Möglichkeit in der vorhandenen Konfiguration gibt, die obigen Bedürfnisse darzustellen, bin ich auch für diese Lösung dankbar.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bei der Auswahl der Gerät berücksichtigt man idT den Funktionsumfang - was hilft die tollste Optik, wenn ich nur ein Stück dummes Elektroteil dafür bekäme - aber genau das ist bei KNX bei halbwegs aktuellen Geräte ohnehin nicht der Fall.

KNX "dumm" zu programmieren u. die "Intelligenz" in eine Zentralkomponente zu stecken, ist beleibe nicht der optimale Ansatz - sowas wird eher gewählt, wenn man von KNX im Grunde keine Ahnung/Erfahrung hat. Optimale Ergebnisse hingegen erzielt man, wenn man sich die Vorzüge der beteiligten Gerätschaften zu Nutze macht.

Z.B. ist es ja kein Hexenwerk sich ein 3P-Modul zu entwickeln, mit Stellungsanzeige, Vorrang, Zwangsansteuerung, Laufzeitanpassung, Ventilschutz, etc. u. das über Koppelrelais auszugeben - ist da aber ohnehin ein KNX-System involviert, nehm ich ein entsprechendne Aktor, halte Schaltschrankbau u. SW kompakt.
 
Zurück
Oben