andreas-w211
Level-2
- Beiträge
- 30
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Hallo zusammen,
für eine Heizungssteuerung mit Einzelraum- Temperaturregelung brauche ich eine Strategie um die Programmierung mit Visuaisierung möglichst effizient umzusetzen. Die Temperaturen (PT1000, jeweils Luft- und Estrichtemp.) der ca. 50 Räume werden durch Multiplexer erfasst. Die Stellantriebe der FBH werden von der SPS direkt angesteuert. Als Steuerung kommt ein Wago PFC100 mit e!COCKPIT als Programmiersoftware zum Einsatz. Je Nutzungseinheit (umfasst 4 bis 6 Räume) werden die Soll- Raumtemperaturen durch ein Webpanel vorgegeben und die Istwerte angezeigt.
Für eine Nutzungseinheit habe ich ein Programm und eine Visualisierung erstellt welches gut funktioniert. Das Programm ist aktuell sehr einfach und soll später über weitere Funktionen (z.B. Nachtabsenkung) erweitert werden. Ich habe zwar schon ein paar SPS- Programme erstellt, welche auch alle so funktionieren wie ich es mir vorgestellt habe, gelernt habe ich das Programmieren von Grund auf aber nie und brauche es auch nicht täglich.
Ich erstelle die Programme immer mit Funktionsbausteinen (bzw. CFC), da mir die grafische Darstellung sehr hilft. Bisher hatte ich jedoch keinen Fall, wo eine Funktion so häufig benötigt wird.
Wie kann ich am besten damit umgehen? Wenn ich den bereits erstellten Funtionsbaustein für die Regelung eines Raums über 50 mal einfüge und mit den entsprechenden Ein- und Ausgängen versehe ist dies sehr Zeitraubend und bei Änderungen immer aufwändig.
Ich stelle mir vor die Variablen für einen Raum in einer Struktur (Datentyp) zu definieren, die Variable (1...50) wäre dann der entsprechende Raum.
Wie kann ich nun die vorhandene Funktion mehrfach nutzen? Geht das über Instanzen? Muss ich eine "Array of Struct" anlegen?
Das gleiche gilt für die Visualisierung: Die einzelne Visualisierung für einen Raum würde ich als Frame einfügen und die definierten Schnittstellen müssten dann auf die jeweilige Struktur / Instanz zurückgreifen?
Eine weiteres bisher ungelöstes Problem: Die über die Visu eingestellten Sollwerte und Regelparameter sollen abgespeichert werden und auch bei Änderungen am Programm wiederhergestellt werden. Mit der Retain Persistant- Deklaration bleiben die Werte ja nur erhalten wenn sich das Programm nicht ändert (und beim OnlineChange). Hilft hier die Rezepturverwaltung weiter? Für alle zu speichernden Variablen in einem Rezept eine Rezeptur anlegen und das ganze dan auf der Speicherkanrte sichern. Wenn das Programm startet müsste die Rezeptur einmalig gelesen und dann in regelmäßigen Abständen geschrieben werden. Gibt es noch eine bessere Möglichkeit?
Vielen Dank,
Andreas
für eine Heizungssteuerung mit Einzelraum- Temperaturregelung brauche ich eine Strategie um die Programmierung mit Visuaisierung möglichst effizient umzusetzen. Die Temperaturen (PT1000, jeweils Luft- und Estrichtemp.) der ca. 50 Räume werden durch Multiplexer erfasst. Die Stellantriebe der FBH werden von der SPS direkt angesteuert. Als Steuerung kommt ein Wago PFC100 mit e!COCKPIT als Programmiersoftware zum Einsatz. Je Nutzungseinheit (umfasst 4 bis 6 Räume) werden die Soll- Raumtemperaturen durch ein Webpanel vorgegeben und die Istwerte angezeigt.
Für eine Nutzungseinheit habe ich ein Programm und eine Visualisierung erstellt welches gut funktioniert. Das Programm ist aktuell sehr einfach und soll später über weitere Funktionen (z.B. Nachtabsenkung) erweitert werden. Ich habe zwar schon ein paar SPS- Programme erstellt, welche auch alle so funktionieren wie ich es mir vorgestellt habe, gelernt habe ich das Programmieren von Grund auf aber nie und brauche es auch nicht täglich.
Ich erstelle die Programme immer mit Funktionsbausteinen (bzw. CFC), da mir die grafische Darstellung sehr hilft. Bisher hatte ich jedoch keinen Fall, wo eine Funktion so häufig benötigt wird.
Wie kann ich am besten damit umgehen? Wenn ich den bereits erstellten Funtionsbaustein für die Regelung eines Raums über 50 mal einfüge und mit den entsprechenden Ein- und Ausgängen versehe ist dies sehr Zeitraubend und bei Änderungen immer aufwändig.
Ich stelle mir vor die Variablen für einen Raum in einer Struktur (Datentyp) zu definieren, die Variable (1...50) wäre dann der entsprechende Raum.
Wie kann ich nun die vorhandene Funktion mehrfach nutzen? Geht das über Instanzen? Muss ich eine "Array of Struct" anlegen?
Das gleiche gilt für die Visualisierung: Die einzelne Visualisierung für einen Raum würde ich als Frame einfügen und die definierten Schnittstellen müssten dann auf die jeweilige Struktur / Instanz zurückgreifen?
Eine weiteres bisher ungelöstes Problem: Die über die Visu eingestellten Sollwerte und Regelparameter sollen abgespeichert werden und auch bei Änderungen am Programm wiederhergestellt werden. Mit der Retain Persistant- Deklaration bleiben die Werte ja nur erhalten wenn sich das Programm nicht ändert (und beim OnlineChange). Hilft hier die Rezepturverwaltung weiter? Für alle zu speichernden Variablen in einem Rezept eine Rezeptur anlegen und das ganze dan auf der Speicherkanrte sichern. Wenn das Programm startet müsste die Rezeptur einmalig gelesen und dann in regelmäßigen Abständen geschrieben werden. Gibt es noch eine bessere Möglichkeit?
Vielen Dank,
Andreas