Unter Heizungslogik verstehe ich z.B einen selbst gebastelten PI-Regler, welcher ich in einem DB als Array [0...49] anlegen kann. Danach als Parameter dem Rampen-FB übergeben. Oder hast du was anderes gemeint
Das kommt drauf an wie du deine Heizung strukturierst.
Thema: objektorientierte Programmierung.
Gibt im Forenbereich "Programmierstrategien" ein paar Treads darüber.
Hab mal kurz was hin geschmiert wie ich so etwas aufziehen würde:
Input und Ausgabe sind Bausteine, die je nach vorhandener Hardware ausgewählt werden & sind mit standardisierten Schnittstellen an die Logik angebunden. Diese Aufbereitung brauche ich, da ich alles mögliche an Hardware für die gleiche Funktionslogik vorgesetzt bekomme.
Da diese beiden "Seiten" je Instanz auf andere Hardware adressieren müssen, werden diese nicht innerhalb von Schleifen verwendet.
=> Klassisches je Netzwerk ein Baustein.
Alles zwischen Input und Ausgabe wird in Arrays strukturiert; Die UDTs, Logik, Submodule...
Input/Logik/Output-Bausteine sind im zyklischen Programmteil angesiedelt.
Submodule können Teile der Funktion sein, die in einem Weckalarm laufen müssen oder nicht als Array angelegt werden können (Tech-Objekte) & bekommen per inOut die komplette Instanz der Logik-Baugruppe übergeben.
=>minimiert den Verschaltungsaufwand.
Die Strukturierung per Array macht die Logik sehr schnell skalierbar.
Eine Konstante ändern, die zusätzlichen Input/Ausgabe-Bausteine dran & du hast aufeinmal statt 10 Heizzonen 50, die alle identisch & wie definiert funktionieren.
In der Instanz haben die Submodule im Static-Bereich einen UDT oder Struktur für ihren jeweiligen Funktions-Slot indem diese sich im ersten Programmzyklus anmelden (in einen Int eine Nummer reinschreiben, die identifiziert wer/was sie sind & dass sie vorhanden sind) und auch alle Variablen zum Datenaustausch finden.
Einen PID-Regler kannst du bei so etwas z.B. per FC abhandeln.
Der FC bekommt per InOut die Instanz der Logik & das Technologieobjekt und kümmert sich intern nur um die Verschaltung zwischen der Logik & dem eigentlichen Siemens PID-Baustein.
Ein FC, zwei Variablen & fertig ist die Verschaltung.
=> minimiertes Fehlerpotenzial beim Anlegen.
Bei Verwendung der Technologieobjekte kannst du beim Regler-Submodul tatsächlich keine Schleifenbearbeitung verwenden, aber du kannst dir dein Leben einfacher machen.
Solche Konstrukte funktionieren natürlich nur so gut wie der Plan, den du dur gemacht hast BEVOR du auch nur eine Zeile Code geschrieben hast.
Und sie sind initial ein riesen f*cking Aufwand zum erstellen, können aber danach sehr viele Kopfschmerzen bei der IB einsparen.
Und nachdem ich jetzt antworttechnisch malwieder komplett eskaliert bin, ist mein Kaffee kalt & ich sollte nochwas arbeiten...
[]~( ̄▽ ̄)~*