TIA V15 Verwendung Wochenzeitschaltuhr FB_LGF_TimerSwitch

Zuviel Werbung?
-> Hier kostenlos registrieren
Und hier noch die Zuweisung der Kreiselpumpe:

Kreiselpumpe.JPG

Wie gesagt es gibt nur ein DB. Im OB1 sind auch nur die FC´s eingefügt, die DB´s alle samt nicht. Eine Remanenz ist für die Zeitfunktion auch nicht vorhanden!?


mfg Ronny
 
Anscheinend rufst Du alle TimeSwitch-Aufrufe nur bedingt auf, womöglich rufst Du manchmal sogar gar keine Instanz auf - das wird mir nun zu kompliziert, alle Deine Mini-Bildchen zu entziffern.
Ich würde wahrscheinlich die Instanzen immer aufrufen und erst danach verknüpfen, welche Schaltsignale verwendet werden.

Tipp: Wenn Du hilfsbereiten Leuten die Arbeit erleichtern willst, dann poste nicht so viel unnützen Hintergrund-Pixelmüll und das was wichtig ist kann niemand entziffern, sondern schneide Deine Bilder so zu, daß sie mit lesbarer Schriftgröße nur die Programmanweisungen zeigen.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ok, wollte nur links den Baum mit zeigen....Sorry

Leider verstehe ich deine Aussage nicht so recht...Jedes Ventil soll an jedem Tag (wenn auch derzeit nicht so realisiert) zu anderen Zeiten schalten... Desweiteren gibt es die Kreiselpumpe, die das Wasser aus der Zisterne zu den Regnern (über die entsprechenden Ventile) fördert. Diese soll aber zusätzlich auch zu anderen Tageszeiten, unabhängig von den Ventilen eingeschaltet sein, sodass man auch Wasser am Wasserhahn nehmen kann.

sollte ich vielleicht anstatt eines gemeinsamen FC für die Ventile jeweils ein FB 1 für Ventil 1, FB 2 für Ventil 2, etc. nehmen und das gleiche für die entsprechenden Pumpen. Sodass jeder LGF TimeSwitch seinen eigenen Datenbaustein hat!?

Mfg Ronny
 
sollte ich vielleicht anstatt eines gemeinsamen FC für die Ventile jeweils ein FB 1 für Ventil 1, FB 2 für Ventil 2, etc. nehmen und das gleiche für die entsprechenden Pumpen. Sodass jeder LGF TimeSwitch seinen eigenen Datenbaustein hat!?

Das kommt auf den vorhandenen Speicher an und dein Konzept der Softwaregestaltung. Mehrere FB mit Instanz ist womöglich leichter lesbar. du kannst aber auch die Eingangsparameter dynamisch an einen FB übergeben. Das geht auch ist vielleicht nicht ganz so gut lesbar (sauber beschriften)

Ein beispiel wie ich den Timer verwende, meine Zeiten sind hier Statisch.
Code:
// Zeitsteuerung Taupunktventilation


#L2_1(onWeekday    := #Freitag,
      onHour       := 22,
      offWeekday   := #Samstag,
      offHour      := 5,
      mode         := 2,
      signal=>#signal,
      actLocalTime=>#localtime);


#L2_2(onWeekday  := #Samstag,
      onHour     := 5,
      offWeekday := #Samstag,
      offHour    := 22,
      mode       := 2);


#L2_3(onWeekday  := #Samstag,
      onHour     := 22,
      offWeekday := #Sonntag,
      offHour    := 5,
      mode       := 2);


#L2_4(onWeekday  := #Sonntag,
      onHour     := 5,
      offWeekday := #Sonntag,
      offHour    := 22,
      mode       := 2);


#L2_5(onWeekday    := #Sonntag,
      onHour       := 22,
      offWeekday   := #Montag,
      offHour      := 5,
      mode         := 2);


#L2_6(onHour  := 5,
      offHour := 22,
      mode    := 1);
    
If #L2_1.signal Then
    "Taupunkt_Parameter".Absaugmenge.m150 := FALSE; // 150m^3
    "Taupunkt_Parameter".Absaugmenge.m185 := true;  // 185m^3
    "Taupunkt_Parameter".Absaugmenge.m260 := FALSE;  // 260m^3
    "Taupunkt_Parameter".Absaugmenge.m330 := FALSE;  // 330m^3
ElsIf #L2_2.signal Then
    "Taupunkt_Parameter".Absaugmenge.m150 := FALSE;
    "Taupunkt_Parameter".Absaugmenge.m185 := FALSE;
    "Taupunkt_Parameter".Absaugmenge.m260 := TRUE;
    "Taupunkt_Parameter".Absaugmenge.m330 := FALSE;
ElsIf #L2_3.signal Or #L2_4.signal Or #L2_5.signal Then
    "Taupunkt_Parameter".Absaugmenge.m150 := true;
    "Taupunkt_Parameter".Absaugmenge.m185 := FALSE;
    "Taupunkt_Parameter".Absaugmenge.m260 := FALSE;
    "Taupunkt_Parameter".Absaugmenge.m330 := FALSE;
ElsIf #L2_6.signal Then
    "Taupunkt_Parameter".Absaugmenge.m150 := FALSE;
    "Taupunkt_Parameter".Absaugmenge.m185 := FALSE;
    "Taupunkt_Parameter".Absaugmenge.m260 := FALSE;
    "Taupunkt_Parameter".Absaugmenge.m330 := TRUE;
Else
    "Taupunkt_Parameter".Absaugmenge.m150 := FALSE;
    "Taupunkt_Parameter".Absaugmenge.m185 := TRUE;
    "Taupunkt_Parameter".Absaugmenge.m260 := FALSE;
    "Taupunkt_Parameter".Absaugmenge.m330 := FALSE;
End_If;

Kleiner Hinweis. Wenn ausreichend Speicher verfügbar ist, dann nutze ihn auch um die Software verständlich zu halten. Ungenutzer Speicherplatz nützt keinem was ausser dem Programmiererego, vor allem nicht wenn dafür Lesbarkeit und Struktur geopfert wird.
 
Zuletzt bearbeitet:
aber das erklärt ja immer noch nicht, warum das abgefragt Freigabesignal am LGF Ausgang FALSE ist, im nächsten Netzwerk aber TRUE!?


Mfg Ronny
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn nicht unbedingt Datenspeicher gespart werden muß, dann würde ich jedem TimeSwitch seine eigene Instanz gönnen (eigener DB oder eigene Multiinstanz). Falls in dem TimeSwitch-FB Flankenauswertungen programmiert sind, dann muß jeder TimeSwitch seine eigene Instanz haben.

Kurz geschossen würde ich zunächst für jeden nötigen Zeitschaltbereich einen unabhängigen TimeSwitch vorsehen und bei den Ventilen verknüpfen, von welchen TimeSwitch(en) sie geschaltet werden sollen. Gut möglich daß ich im weiteren Programmierfortschritt erkenne, daß für jedes Ventil ein oder mehrere eigene TimeSwitch besser geeignet sind (dann könnte man sie auch gleich in die Ventil-Instanz integrieren), kommt auf die Details der Aufgabe drauf an. Mit so fertigen Zeitschaltuhren habe ich wenig Erfahrung, ich programmiere meine Schaltzeiten je nach Erfordernis meistens "zu Fuß" aus. Es kommt weiter auch noch darauf an, wie die Zeitschaltpunkte in der Visu vom Bediener parametriert und aktiviert werden sollen. Bei mir soll der Bediener meistens nur Kreuzchen/Häkchen zu vorgegebenen Zeiten setzen.

Wenn Du Ventile einerseits mit mehreren Zeitschaltuhren und andererseits zusätzlich per Hand Ein/Ausschalten willst dann wird es richtig haarig, wenn das alles ohne Betriebsartenumschaltung gehen soll. Da muß dann nach Ereignissen geschaltet werden und welche Bedingungen/Ereignisse haben Vorrang, und was ist wenn die Steuerung mal ausgeschaltet ist ... Du versuchst das durch bedingten Aufruf der TimeSwitch zu lösen und durch manipulieren der Eingangsparameter der TimeSwitch, was die ganze Sache (zumindest für mich) sehr undurchsichtig macht. Da müsste ein klares und verstehbares Konzept überlegt und eingehalten werden.

Vielleicht findet man in Bibliotheken und/oder Internetforen für Hausautomatisierer schon fertige Bausteine für die typischen konkreten Anwendungsfälle?

Harald
 
aber das erklärt ja immer noch nicht, warum das abgefragt Freigabesignal am LGF Ausgang FALSE ist, im nächsten Netzwerk aber TRUE!?

Das kann ich dir nicht sagen. Es ist aber auf jedenfall nicht anzuraten Funktionsbausteine mit instanzen Bedingt aufzurufen. das führt üblicherweise zu nicht nachvollziehbarem Verhalten. Du kannst eingangsparameter oder die verwendung der Ausgangsparameter an Bedingungen binden, aber einen Funktionsbaustein als ganzes bitte immer unbedingt ausführen vor allem wenn da noch irgendwelche anderen Bausteine, womöglich Regler/Timer etc drin aufgerufen werden wird das unkontrollierbar.

Dann sollten Bausteine nie mehrmals mit derselben Bausteininstanz aufgerufen werden (es seidenn du weisst ganz genau was du da machst)

Also bau das vernünftig um und dann sehen wir weiter.
 
das heißt ich mache ein FB 1 für Ventil 1 inkl. Instanz DB; dann FB 2 für Ventil 2 inkl Instanz DB usw. sowie ein FB 6 für Kreiselpumpe inkl. Instanz DB, sowie das gleiche für die beiden anderen Pumpen!? Meint ihr das so?

Mfg Ronny
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, habe immer noch das alte Problem, das die 2. Zeit von einem Bewässerungskreis nicht angesteuert wird, obwohl es ein anderer Tag ist.

Habe 5 Bewässerungskreise wobei der 2. Kreis 2x am Tag laufen soll, einmal Abends 20:30Uhr bis 21:00Uhr und dann nochmal 02:45-03:15Uhr. Wenn ich ab und an in der Nacht mal wach bin, seh ich, das die Nachtzeit nicht angesteuert wird, diese hängt zwischen den anderen Zyklen der anderen 4 Kreise. Die Bewässerung läuft insgesamt dann in der Nacht von 01:00-05:00Uhr im groben.
Zwischen den einzelnen Strängen sind jeweils Pausen integriert....

Wäre es möglich das sich jmd das Programm mal anschaut, wenn ich die Datei, sofern möglich hier hochladen würde oder als PDF Ausdruck!?

Wäre sehr nett von euch!?


Mfg Ronny
 
Zurück
Oben