-> Hier kostenlos registrieren
Hallo zusammen,
über eine Schnittstelle KNX <-> WAGO 750-849 mit KNX-TP-Klemmen und zwei DMX-Klemmen (RS485) steuere ich 4-kanalige CV und CC DMX-Decoder für 24V-LED-Stripes, bzw. 350MA-LED-Downlights an.
4 LED-Stripes an einem 4-kanaligen CV DMX-Decoder sollen in einer Schleife auf- und abgedimmt werden. Dafür habe ich für den Gira Homeserver einen Logikbaustein geschrieben, der soweit auch funktioniert. Damit aber ein einigermaßen stufenloses Dimmen erfolgt, sendet der Baustein natürlich mehrere Dimmwerte pro Sekunde auf den KNX-Bus (von dort über die Wago KNX-Klemme auf die Wago DMX-Klemme). Das hat zur Folge dass der Gira Homeserver so ausgebremst wird, dass die anderen Ein- und Ausgänge des Homeservers nur mit sehr erheblicher Zeitverzögerung gelesen, bzw. ausgegeben werden. Also unbrauchbar.
Homeserver Logikbaustein:
Da ich bei der Planung mit sowas schon gerechnet hatte, habe ich wohlweislich eine Wago mit in die KNX-Installation genommen und möchte die Dimmerfunktion nun vom Gira Homeserver auf die Wago "auslagern". Da meine Programmierkenntnisse mit Codesys ausbaufähig sind, bitte ich Euch um Unterstützung bei der Erstellung eines entsprechenden FBs in Codesys (v2.3).
Ausgang 1
- Der Ausgang dimmt zwischen 0 und 255 auf und ab innerhalb der dem FB zu übergebenden Zykluszeit in Sekunden.
- Per FB-Eingang wird parametriert, wieviele Dimmwerte pro Zykluszeit am Ausgang ausgegeben werden (z.B. bei einer Zykluszeit von 10 s 40 Dimmwerte (= 4 Dimmwerte pro Sekunde)
- Durch optionale Vorgaben eines min-Wertes und/oder eines max-Wertes kann der Dimmbereich eingeschränkt werden.
Ausgang 2
Wie Ausgang 1 nur 180° phasenverschoben, bzw. invertiert
Ausgang 3
Wie Ausgang 1 nur phasenverschoben um 0-50% der Zyklusdauer.
- Per FB-Eingang wird diese Verschiebung übergeben (0-50)
Ausgang 4
Wie Ausgang 3 nur zusätzlich 180° phasenverschoben, bzw. invertiert
Der Baustein soll bei "1" an E1 gestartet und bei "0" gestoppt werden. Bei Stopp sollen alle Ausgänge auf 0 gesetzt werden.
Wenn der Baustein läuft, soll "1" an A5 ausgegeben werden und "0", wenn er nicht läuft.
Nice to have: Per FB-Eingang wird parametriert (0/1), ob die Dimmkurven linear oder logarithmisch ausgegeben werden.
Eingänge:
- E1 1 bit (Start/Stop FB)
- E2 1 Byte (min-Wert 0-255)
- E3 1 Byte (max-Wert 0-255)
- E4 1 Byte (Zykluszeit in Sekunden 0-255)
- E5 1 Byte (Dimmwerte pro Zykluszeit 0-255)
- E6 1 Byte (Phasenverschiebung 0-50% A3 und A4)
[- E7 1 bit ("0" = lineare Dimmkurve / "1" = logarithmische Dimmkurve]
Ausgänge:
- A1 1 Byte (0-255)
- A2 1 Byte (0-255)
- A3 1 Byte (0-255)
- A4 1 Byte (0-255)
- A5 1 bit (FB läuft/läuft nicht)
Wäre superklasse, wenn mir hier jemand aufs Pferd helfen könnte.
Herzlichen Dank im Voraus
Gruß
Peter
über eine Schnittstelle KNX <-> WAGO 750-849 mit KNX-TP-Klemmen und zwei DMX-Klemmen (RS485) steuere ich 4-kanalige CV und CC DMX-Decoder für 24V-LED-Stripes, bzw. 350MA-LED-Downlights an.
4 LED-Stripes an einem 4-kanaligen CV DMX-Decoder sollen in einer Schleife auf- und abgedimmt werden. Dafür habe ich für den Gira Homeserver einen Logikbaustein geschrieben, der soweit auch funktioniert. Damit aber ein einigermaßen stufenloses Dimmen erfolgt, sendet der Baustein natürlich mehrere Dimmwerte pro Sekunde auf den KNX-Bus (von dort über die Wago KNX-Klemme auf die Wago DMX-Klemme). Das hat zur Folge dass der Gira Homeserver so ausgebremst wird, dass die anderen Ein- und Ausgänge des Homeservers nur mit sehr erheblicher Zeitverzögerung gelesen, bzw. ausgegeben werden. Also unbrauchbar.
Homeserver Logikbaustein:
Da ich bei der Planung mit sowas schon gerechnet hatte, habe ich wohlweislich eine Wago mit in die KNX-Installation genommen und möchte die Dimmerfunktion nun vom Gira Homeserver auf die Wago "auslagern". Da meine Programmierkenntnisse mit Codesys ausbaufähig sind, bitte ich Euch um Unterstützung bei der Erstellung eines entsprechenden FBs in Codesys (v2.3).
Ausgang 1
- Der Ausgang dimmt zwischen 0 und 255 auf und ab innerhalb der dem FB zu übergebenden Zykluszeit in Sekunden.
- Per FB-Eingang wird parametriert, wieviele Dimmwerte pro Zykluszeit am Ausgang ausgegeben werden (z.B. bei einer Zykluszeit von 10 s 40 Dimmwerte (= 4 Dimmwerte pro Sekunde)
- Durch optionale Vorgaben eines min-Wertes und/oder eines max-Wertes kann der Dimmbereich eingeschränkt werden.
Ausgang 2
Wie Ausgang 1 nur 180° phasenverschoben, bzw. invertiert
Ausgang 3
Wie Ausgang 1 nur phasenverschoben um 0-50% der Zyklusdauer.
- Per FB-Eingang wird diese Verschiebung übergeben (0-50)
Ausgang 4
Wie Ausgang 3 nur zusätzlich 180° phasenverschoben, bzw. invertiert
Der Baustein soll bei "1" an E1 gestartet und bei "0" gestoppt werden. Bei Stopp sollen alle Ausgänge auf 0 gesetzt werden.
Wenn der Baustein läuft, soll "1" an A5 ausgegeben werden und "0", wenn er nicht läuft.
Nice to have: Per FB-Eingang wird parametriert (0/1), ob die Dimmkurven linear oder logarithmisch ausgegeben werden.
Eingänge:
- E1 1 bit (Start/Stop FB)
- E2 1 Byte (min-Wert 0-255)
- E3 1 Byte (max-Wert 0-255)
- E4 1 Byte (Zykluszeit in Sekunden 0-255)
- E5 1 Byte (Dimmwerte pro Zykluszeit 0-255)
- E6 1 Byte (Phasenverschiebung 0-50% A3 und A4)
[- E7 1 bit ("0" = lineare Dimmkurve / "1" = logarithmische Dimmkurve]
Ausgänge:
- A1 1 Byte (0-255)
- A2 1 Byte (0-255)
- A3 1 Byte (0-255)
- A4 1 Byte (0-255)
- A5 1 bit (FB läuft/läuft nicht)
Wäre superklasse, wenn mir hier jemand aufs Pferd helfen könnte.
Herzlichen Dank im Voraus
Gruß
Peter