TIA Anlage nur zu bestimmten Zeiten und Wochentagen schalten

Mauricem02

Level-2
Beiträge
17
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

Ich soll eine Analge mit 3 Kompressoren regeln. Heißt der Kompressor 1 soll von 14-2 Uhr laufen Kompressor 2 von 2-14 Uhr. Diesen beiden sollen Außerdem von Sonntag 22Uhr bis Samstags 14uhr laufen. Der Kompressor 3 soll die ganzen zeit von Samstag 14 Uhr bis Sonntag 22 Uhr laufen. Jetzt habe ich das Probleme das ich es nicht schaffe den Wochentag (Weekday) aus der DTL Datei zu vergleichen um somit die Kompressoren zu starten oder auszuschalten. Das mit der Zeit habe ich hingekriegt in dem ich die Zeit auslese mit RD_LOC_T und sie dann von einer DTL Datei in einen Time_of_day umwandel und diese dann mit 14 Uhr verglichen habe. Doch jetzt die Frage wie ich nur den Weekday auslesen und vergleichen kann.
 

Anhänge

  • image.jpg
    image.jpg
    6,8 MB · Aufrufe: 37
Schau dir doch mal das DTL-Format im DB an, da steh doch der Wochentag direkt drin. Brauchst du doch nur mit deiner Vorgabe vergleichen
Da steht kein WochenTag drin, sondern eine Zahl. ;) Man muss jetzt nur noch wissen, welche Zahl welchem WochenTag entspricht.
Das sollte aber aus der Doku des DTL-Formats hervorgehen ... oder man ergründet es experimentell.
 
Gibt es im Allgemeinen eine einfacherer Variante als das alles mit vergleichen zu machen? Z.B eine Abfrage der Zeitspanne und des Tages ?
Wie meinst du denn das? Bei deiner Aufgabenstellung bleibt dir nichts anderes als den Tag, Anfangs- und Endzeit deiner Vorgabe mit aktuellen Zeit zu vergleichen um zu wissen welcher Kompressor laufen soll.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Gibt es im Allgemeinen eine einfacherer Variante als das alles mit vergleichen zu machen? Z.B eine Abfrage der Zeitspanne und des Tages ?
:unsure: Ich nix verstehen.
Wenn Du möchtest, dass viele Kriterien berücksichtigt werden, dann wirst Du damit leben müssen, dass die Anzahl der erforderlichen Vergleiche und ggfs der logischen Verknüpfungen zwischen den VergleichsErgebnissen entsprechend umfangreich wird.
Evtl. kann man die Bedingungen einfacher formulieren, aber das hast Du vermutlich schon getan, denn Du nennst für Kompressor 1 und 2 Regeln, die zu etlichen Zeiten die Kompressoren "doppeltgemoppelt" aktivieren.
Manchmal ist "von hinten durch die Brust ins Auge" einfacher. Will sagen, es kann sein, dass die Bedingungen, zu denen etwas inaktiv sein soll, sparsamer zu formulieren sein könnten, als die Bedingungen, zu denen etwas aktiv sein soll. Da müsste man mal beide Varianten formulieren und ggfs optimieren und dann vergleichen, welche der beiden Varianten die weniger aufwändige ist. Aber, ob der ZusatzAufwand für diese Überlegungen zu rechtfertigen ist? Dann hätte man vielleicht eine einfache Lösung für einen SpezialFall und alle anderen Fälle werden dadurch unübersichtlicher?

Was meinst Du eigentlich mit einfacher? Einfacher als was? Wie einfach oder uneinfach sieht denn Deine bisherige Lösung aus?

Wenn ich Deinen Beitrag#1 richtig deute, sollen für die 3 Kompressoren folgende Bedingungen gelten:
Code:
Kompr1 := WoTa>=2 OR Zeit<02:00 OR Zeit>=14:00 ;
Kompr2 := WoTa>=2 AND WoTa<=6 OR WoTa=1 AND (Zeit>=22:00 OR Zeit>=02:00 AND Zeit<14:00) OR WoTa=7 AND Zeit>=14:00 ;
Kompr3 := WoTa>=2 AND WoTa<=6 OR WoTa=1 AND Zeit<22:00 OR WoTa=7 AND Zeit>=14:00 ;

Code:
Edit(2023-10-18 23:08): Kompr2 := WoTa>=2 AND WoTa<=6 OR WoTa=1 AND (Zeit>=22:00 OR Zeit>=02:00 AND Zeit<14:00) OR WoTa=7 AND Zeit<14:00 ;
Edit(2023-10-18 22:35): Kompr3 := WoTa=1 AND Zeit<22:00 OR WoTa=7 AND Zeit>=14:00 ;
 
Zuletzt bearbeitet:
Kompr1 := WoTa>=2 OR Zeit<02:00 OR Zeit>=14:00 ;
Bin in SCL noch etwas unerfahren.......
Würde Komp1 hier nicht Mo-Sa immer laufen, da alles mit OR verknüpft ist?
Kompr2 := WoTa>=2 AND WoTa<=6 OR WoTa=1 AND (Zeit>=22:00 OR Zeit>=02:00 AND Zeit<14:00) OR WoTa=7 AND Zeit>=14:00 ;
Da komme ich nicht ganz mit...
Komp2 läuft Mo-Sa oder So nach 22:00 oder nach 2:00 bis 14Uhr und So nach 14Uhr, soll doch aber Mo-Sa von 2:00 bis 14:00 laufen
Kompr3 := WoTa>=2 AND WoTa<=6 OR WoTa=1 AND Zeit<22:00 OR WoTa=7 AND Zeit>=14:00 ;
Komp3 sollte doch nur von Sa 14Uhr bis So 22Uhr laufen, würde er hier nicht von Mo bis Sa durchlaufen?

Sorry, ich habe die Frage zwar nicht gestellt, will mich aber in SCL besser zurechtfinden und vielleicht kannst du mir ja meine Denkfehler aufzeigen.
 
Würde Komp1 hier nicht Mo-Sa immer laufen, da alles mit OR verknüpft ist?
Ja, weil ...
Diesen beiden sollen Außerdem von Sonntag 22Uhr bis Samstags 14uhr laufen.
... also Mo..Fr ganztägig und Sa bis 14:00, aber wegen ...
Heißt der Kompressor 1 soll von 14-2 Uhr laufen ... .
... sprich für den Rest des Sa weiterlaufen.
Damit läuft Kompr1 aber auch am So ab 22:00 und vormittags bis 02:00

Da komme ich nicht ganz mit...
Komp2 läuft Mo-Sa
Ja, wie oben Mo..Fr ganztägig.
oder So nach 22:00 oder nach 2:00 bis 14Uhr
Ja.
und So nach 14Uhr,
Nein. Sa bis 14:00. Da hatte ich mich leider vertippt: der letzte Vergleich in Kompr2 := ... muss 'Zeit<14:00' statt 'Zeit>=14:00' lauten.
soll doch aber Mo-Sa von 2:00 bis 14:00 laufen
Tut er u.a. auch, weil er jeden Tag von 02:00..14:00 läuft.
Heißt der ... Kompressor 2 von 2-14 Uhr. Diesen beiden sollen Außerdem von Sonntag 22Uhr bis Samstags 14uhr laufen.

Komp3 sollte doch nur von Sa 14Uhr bis So 22Uhr laufen, würde er hier nicht von Mo bis Sa durchlaufen?
Du hast Recht. Das hatte ich mir falsch aufgemalt. :oops: Mo..Fr müssen wieder raus, also ...
Code:
Kompr3korrigiert := WoTa=1 AND Zeit<22:00 OR WoTa=7 AND Zeit>=14:00

... vielleicht kannst du mir ja meine Denkfehler aufzeigen.
... es können aber genauso gut meine Denkfehler sein (s.o.)!

PS:
Ich hatte mir die "TextAufgabe" in Excel in 3 Tabellen (je Kompressor eine) versucht darzustellen und bei Kompr3 die Lichtung im Wald vor lauter zuviel aufgemalten Bäumen übersehen. ;)
Das war ganz schön aufwändig und zeitraubend ... und lange nicht so übersichtlich, wie erhofft.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
... es können aber genauso gut meine Denkfehler sein (s.o.)!
Dann habe ich deinen Code wohl richtig gelesen, es gehen nur unsere Auslegung der Laufzeiten auseinander.
Dazu muss sich aber der TS äußern.
Dennoch vielen Dank für deine Ausführungen.
 
Zurück
Oben