# Frage zu Codesys mit einer Wago 750-889 und KNX



## prozanko (12 Dezember 2017)

Hallo,

ist es möglich die KNX Bausteine (rot in Bild markiert) auch in anderen Programmbausteinen einzufügen? Würde gerne die markierten FbDPT_Switch Bausteine in das Leinwand Programm einfügen. Oder müssen alle Bausteine, die als Schnittstelle zwischen Codesys und KNX Bus dienen, sich im Programm befinden wo auch der KNX_IP_Master Baustein ist?

Grüße


----------



## GLT (12 Dezember 2017)

Die Bausteine müssen im selben Zyklus aufgerufen werden - ich würd die an dieser Stelle lassen.

Den FB selber brauchst Du doch nicht - arbeite mit den Variablen.


----------



## prozanko (13 Dezember 2017)

OK, habe es schon vermutet. Wird nur ziemlich unübersichtlich wenn man die ganzen Präsenzmelder, Taster und Reedkontakte von KNX Bus ins CodeSys haben möchte und umgekehrt:/


----------



## GLT (13 Dezember 2017)

Nein, warum?
Du hast einen definierten Platz, an dem alle KNX Übergaben stattfinden und musst sie ggfs. nicht querbeet suchen.
Die Variablen kannst Du überall und mehrfach verarbeiten, anstatt des unhandlicheren FB.


----------



## oliver.tonn (13 Dezember 2017)

GLT schrieb:


> Die Variablen kannst Du überall und mehrfach verarbeiten, anstatt des unhandlicheren FB.


Direkt mehrfach verarbeiten aber bitte nur Eingangsvariablen. Ausgangsvariablen sollten nur an einer Stelle geschrieben/gesetzt werden, sollen mehrere Funktionen/FBs/Programme eine Variable setzen sollte eine entsprechende Logik dazwischengeschaltet werden.


----------



## GLT (13 Dezember 2017)

oliver.tonn schrieb:


> Ausgangsvariablen sollten nur an einer Stelle geschrieben/gesetzt werden..


Ich würde da sogar soweit gehen u. statt sollten von dürfen sprechen - sonst kommt da nur Kuddelmuddel bei raus.


----------



## _Eddi_ (13 Dezember 2017)

GLT schrieb:


> Ich würde da sogar soweit gehen u. statt sollten von dürfen sprechen - sonst kommt da nur Kuddelmuddel bei raus.


Das versteh ich nicht so ganz. Als Konvention ist das problematisch genug, aber es sollte doch keine technischen Gründe dagegen geben.


----------



## GLT (13 Dezember 2017)

Konkurrierende Schreibzugriffe auf Prozessausgangsbilder sind immer problematisch, da es zu inkonsistenten Anlagenzuständen kommen kann.
Manche Programmiersysteme lassen sowas deshalb auch gar nicht erst zu.

Nicht alles, was technisch möglich wäre, sollte, darf man machen oder empfiehlt sich - deswegen die eher harschere Formulierung mit Hinweis auf evtl. Folgen


----------



## prozanko (14 Dezember 2017)

Damit ich in anderen Programmbausteinen auf die Variablen zugreifen kann muss ich alle Variablen die sich in den PRG_KNX_IP_Controller Programm befinden in globale Variablen einfügen oder? Oder gibt es noch eine einfache Möglichkeit auf diese dann zuzugreifen?

Grüße


----------



## GLT (15 Dezember 2017)

So ist es u. deklarieren müsstest Du sie sowieso.
Vorteil - schön zusammengefasst u. übersichtlich an einer zentralen Stelle.


----------



## Passion4Automation (15 Dezember 2017)

Ich mach es mit den Dali Bausteinen auch so. Alle FB, s für Dali in nem seperaten Task und die individuelle Logik des Projektes dann in verschiedenen Programmen und Tasks über globale Variablen übergeben. Das hat den Vorteil das du alles was eng miteinander verzahnt ist, im PRG oder FB sauber beieinander hast. Die Übergabe   über globale Variablen ist natürlich aufwendiger aber kann gut lesbar programmiert werden. 
Ich denke wenn man es so macht, ist es nicht schlecht.


----------

