Guten Tag zusammen,
ich bräuchte mal ein paar Denkanstöße da ich mich derzeit noch nicht so gut in WAGO auskenne.
Folgende Hardware ist vorhanden:
e!Chockpit in der Version 1.5.1.1
WAGO PFC 100 750-8100
Mehrere Power Supply Karten 750-610
Mehrere DI / DO Karten (750-430, 750-1405, 750-530, 750-1504)
Mehrere Temp. AI-Karten 750-460/0000-0003
DALI Multimaster DC/DC Konverter 753-620
RS485 Schnittstelle 750-653/0003-000 (für die Elsner Wetterstation, wobei ich wahrscheinlich auf Mod-Bus umsteigen will)
Leistungskarte (für Strommessung) 750-494
DALI Multi-Master Klemme 753-647
1x AO 4-20 mA Karte 750-554
1x AI 4-20mA Karte 750-473
Zu meinem Ausbildungsstand:
Meister in FR Energie- und Gebäudetechnik, Grundkurse in SPS S7, KNX etc.
Vor ca. 8 Wochen Grundkurs für e!Cockpit absolviert (Seminarnummer 070201)
Die ganzen Programme wurden in CFC geschrieben.
Sooo nun zu mein Vorhaben:
Ich plane nächstes Jahr mein Haus zu bauen. Ich möchte gerne über konventionelle Taster eben Signale an WAGO Controller schicken sodass der wiederrum über externe Relais verschiedene Funktionen ausführt.
Ich habe nun zu folgenden Programmabschnitte Fragen:
Programm 1: Beleuchtung
Ich lasse über den FB FbAdvancedLatchingRelay mein Licht An- und Ausschalten. Über einen Zentraltaster möchte ich gerne an der Haustür einen Zentral-Aus Befehl geben.
Soweit gibt es hier keine Probleme bzw. erst mal keine Frage
. ABER
Ich lasse in verschiedenen Räumen das Licht über einer DALI Schnittstelle dimmen bzw. Schalten.
Als erstes habe ich in meinem Programm den Fb FbDaliMaster aufgerufen mit folgendem Parameter
bPortDALI = 1
I-Port = nichts
xQuit = nichts
xWriteStandardSensorConfig = nichts
oStatus = nichts
sStatus = nichts
danach kommt schon mein erster FB FbDaliDimSingleButton mit folgendem Parameter
typBallast = LED_Treiber_1: typBallast:=(bAddress:=1,xIsGroup:=FALSE);
xButton = entsprechender Raumtaster
typConfigParameters = typDimSingleButton:=(xSwitchOnLastLevel:=TRUE,xSwitchOnAndStepUp:=TRUE);
oStatus = nichts
sStatus = nichts
xReady = nichts
rActualLevel =nichts
soweit sollte das ja schon funktionieren (ich habe noch keinen Funktionstest gemacht sondern rein nur in e!Cockpit Programmiert)
FRAGE: Wie realisiere ich hier die Statusabfrage von entsprechenden EVG sodass ich ggf. ein Zentral-AUS Befehl schicken kann?
Gibt es ein FB indem ich über den zum Beispiel oStatus raus finden kann ob das EVG an ist sodass ich dann per BOOL irgendwie einen AUS-Befehl nach schicken kann?
Programm 2: Heizung
Ich finde keinen passenden Baustein indem ich meine Heizungssteuerung realisieren kann.
Ich möchte gerne folgendes realisieren:
3.000l Pufferspeicher indem oben und unten jeweils ein PT1000 Temp.-Fühler sitzt.
Beheizt werden soll der Pufferspeicher mit einer 9kW E-Patrone die über ein 4-20 mA Schwingpaket getaktet wird. (d.h. ich benötige ein analoges Ausgangssignal für die 4-20 mA 750-554 Karte)
Die Steuerung muss dabei nicht über Außentemp. geregelt werden da ich aus dem Pufferspeicher auch mein Brauch-Warmwasser erzeuge.
Wie realisiere ich z.B. über einen PID Regler die Pufferspeicher-Regelung, abhängig von der Schichttemperatur oben
und unten? Ich möchte dabei gerne das der Controller eben selbst Entscheidet wie schnell der Pufferspeicher leer wird und entsprechend schnell nachregeln muss. (wäre cool wenn mir jemand einen Tipp geben könne, welchen FB dafür her nehmen könnte)
Mir sind dabei noch nachfolgende Punkte wichtig:
- E-Patrone soll über BOOL ggf. gesperrt werden. (Hintergrund ist das ich auch einen Wasserführenden Holzofen einbaue. Wenn ich z.B. weiß, dass ich heute Abend den Ofen anmache, wäre es sinnvoll, die Patrone 6h davor zu sperren sodass ich dann die thermische Energie von Holzofen in den Pufferspeicher laden kann).
- Ich möchte gerne das analoge Ausgangssignal d.h. was der PID Regler ausgibt, nochmal übersteuert wird und zwar kommt auf mein Dach eine 10kWp Photovoltaik-Anlage.
Produziere ich gerade zu viel Strom (die Rückmeldung bekomme ich später von meinem Leistungsmodul 750-494 ob ich zu viel Strom produziere), möchte ich gerne das die e-Patrone mit mehr Leistung in den Pufferspeicher rein heizt bis z.B. die max. Temepratur von 95°C erreicht wurde. (allerdings nur so viel Leistung wie ich tatsächlich an Überstrom produziere)
Ansonsten soll die normale Regelung den Pufferspeicher auf ungefähr 70-80°C halten.
Gibt es ggf. aus der HLK-Bibliothek etwas Passendes? Wenn nein, kann mir jemand ein paar FB nennen sodass ich das ganze realisieren kann?
Ich denke das ich für die "Grundsteuerung" ganz gut den FB "FbLevel2Boiler" nutzen kann.
Diesen muss ich mir aber erst nochmal genauer zu gemüde führen.. (steige bei dem FB noch nicht ganz so gut durch wie der funktioniert)
Gerne vielleicht ein Programmierbeispiel?
Zum nächsten Problem:
Es soll über einer Einzelraumregelung (Fußbodenheizung) entsprechend der Raumtemperatur geregelt werden.
Hierzu habe ich den FB Fb2PointSingleRoomController gewählt.
Auf dem Input rRoomTemperature bekomm ich meine Temperatur von PT1000.
Als Ausgang habe ich den xHeating auf mein 24V Stellmotor geplant. (AN/AUS).
Nun zur Frage:
Ich kann dem FB vorgeben wann Comfort-Schaltung erfolgen soll bzw. wann die Standby-Schalter per BOOL erfolgen soll.
Wie kann ich die PFC100-Zeit dafür nutzen sodass ich eine einfache Zeitschalt-Uhr einbauen kann? (generell habe ich derzeit noch keine Ahnung wie ich ein Zeit Programm in der WAGO programmieren kann).
Ich spiele auch mit dem Gedanken die Zeit von der Elsner Wetterstation zu nehmen (GPS-Zeit)
Später soll mal die Zeitschaltuhr-Zeit variable über die WebVisu realisiert werden.
Weitere Frage:
Wenn in per typConfigParameters verschiedene Parameter vor gebe, müssen die dann unter VAR RETAIN PERSISTENT eingetragen werden sodass der Controller bei einem Reset die Vorgaben noch hat?
Kann ich evtl. über den "xWindowContact" auch eine "Sommerzeit-Sperre" mit rein programmieren oder habt ihr da eine andere Lösung / besseren Tipp?
(hier würde ich ggf. die Außentemperatur über 48h abfragen und wenn im Durchschnitt die Temperatur unter z.B. 10°C ist, würde ich die Heizung freigeben sodass die Regler arbeiten können.
Program 3: Jalousie-Steuerung
Ich möchte gerne dass mein Controller über der Elsner Wetterstation berechnet wo die Sonne aktuell steht und somit die Jalousie einzeln hoch und runter fahren lässt.
Der Standard Baustein FbSunshaderActuator habe ich soweit drin mit den ganzen xUp und xDown usw. aber wie kann ich nun die Verbindung zwischen Wetterstation und Jalousie herstellen?
Ich habe unter dem Programmpunkt PRG_Wetterstation auch schon eine Hysterese eingebaut sodass ich sagen kann z.B. Sun_East ist aktiv wenn die entsprechenden Lumen erreicht wurden. (dasselbe hab ich auch für South und West).
Ich möchte halt gerne das ganze Dynamisch machen mit automatisierte Lamellenverstellung usw.
Leider steh ich als Anfänger noch auf Kriegsfuß mit der ganzen Programmierung aber ich möchte es gerne lernen.
Ihr würdet mir extrem helfen wenn ihr mir zu den einzelnen Punkten einfach ein paar Denkanstöße geben würdet
z.B. mach mit dem FB sowieso dies und das damit wir dieses Ergebnis bekommen.
Ich kann euch auch gerne mein bisheriges Programm mal zur Verfügung stellen damit ihr das mal seht was ich so angestellt habe.
Letzten Endes möchte ich natürlich am liebst selbst alles Programmieren sodass ich mich auch später im Programm noch auskenne
Ob das was wird, weiß ich noch nicht :)
Schönen Tag noch,
Gruß Peter