Einfacher Uhrzeit Vergleicher

Joker666

Level-2
Beiträge
40
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen, ich stehe gerade gewaltig auf dem Schlauch

Ich weiß gerade nicht, wie ich das umsetzen soll, das um eine Uhrzeit z.B. 12 Uhr oder 14 Uhr ein Signal bekomme, am besten mit einem Vergleicher

Wenn ich danach google, finde ich Bausteine mit riesigen Funktionen oder ganze Wochenschaltzeituhren.

Gibt es da denn einen kleinen Baustein, der das auch machen kann?

Das System ist eine Wago mit eCockpit

vielleicht kann mit jemand auf die Sprünge helfen
Vielen Dank

und wünsche allen eine schöne Adventszeit
 
Hallo Joker,

nutze den Datentypen TOD (Time of Day), das ist im Endeffekt nur eine Ganzzahl. Diese kannst Du vergleichen auf >=.
Sobald der Vergleich positiv ist (also um 12 oder 14 Uhr), setzt Du einen Flankenmerker. Sonst würdest Du ja bis Mitternacht immer ein positives Signal bekommen.
Um Mitternach wird dieser dann wieder zurückgesetzt.

Das ist die einfachste Variante, die ich Dir vorschlagen kann.

Beachte bitte, daß die Uhrzeit in der WAGO korrekt gesetzt sein muß!
Mir ist auch aufgefallen, daß die Uhr bei fabrikneuen Steuerungen nicht läuft und erst einmal gesetzt werden muß!

Gruß
Jens
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für die Antwort, das klappt bei mir irgendwie nicht wirklich, das Brett vorm Kopf ist zu GRoß...

Ich habe mir die Systemzeit mit sysrtcgettime vom Controller geholt, dann konvertiert mit DT_TO_TOD. da habe ich dann auch die Uhrzeit z.B. 14:19:32
Aber die Uhrzeit kann ich nicht einfach mit 14 vergleichen, da bekomme ich eine Fehlermeldung

Dann habe ich mit dem Oscat Baustein SET_TOD die Zeit zu erstellen mit der ich vergleichen kann, da bekomme ich auch wieder Fehlermeldungen, Dies kann in Das nicht konvertiert werden...

Und gefühlt drehe ich mich da gerade immer im Kreis,

Eigentlich will ich das so, wie Jens das geschrieben hat.
 
Ich habe mir die Systemzeit mit sysrtcgettime vom Controller geholt, dann konvertiert mit DT_TO_TOD. da habe ich dann auch die Uhrzeit z.B. 14:19:32
Aber die Uhrzeit kann ich nicht einfach mit 14 vergleichen, da bekomme ich eine Fehlermeldung
Ich vermute mal, dass die wenigsten hier eine Glaskugel besitzen.

Demzufolge:
Wie genau hast Du verglichen (etwa TOD mit DINT)?
Wie genau lautet die Fehlermeldung?

Und Screenshots sagen oft mehr als Worte...
;)
 
Hallo,

Du kannst das (natürlich) nicht einfach mit 14 vergleichen...
Du musst das schon mit 14:00 vergleichen, also mit einem TOD Datentypen.

Wenn Du eine Benutzereingabe “14“ hast, musst Du - korrigiert mich - das in Millisekunden seit Mitternacht umwandeln.

Gruß
Jens
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich hatte ja die Hoffnung, das man ganz einfach nur die Stunden von der Systemzeit, mit einer eingegeben Stunde vergleichen kann und bei Gleich oder größer ein True bekommt.

Meine jetzige Fehlermeldung bei meinem Kontrukt ist SET_TOD kan nicht in Time_of_Day konvertiert werden,

ich hab mal ein Bild eingefügt, ich hoffe ich hab das richtig eingefügt.
 

Anhänge

  • 123456.jpg
    123456.jpg
    279,7 KB · Aufrufe: 52
Hallo,

Sekunde als REAL ist schon richtig bei dieser OSCAT-Funktion. Die Nachkommastellen sind die Millisekunden.
Mir sieht das eher aus, als ob wie wenn die Funktion im System nicht bekannt wäre.
Hast Du die Bibliothek richtig eingebunden bzw. die Funktion richtig importiert?

Ansonsten sieht das nicht verkehrt aus.

Gruß
Jens
 
Schön, dass Du das Problem beheben konntest.
:cool:


Keine Ahnung wie das bei eCockpit ist:
Normalerweise ist es etwas "unschön", wenn einem REAL nur eine 10 statt 10.0 zugewiesen wird.
Sollte man sich IMHO nicht erst angewöhnen, weil man mit anderen Programmierumgebungen damit u.U. Probleme bekommt.
 
Zurück
Oben