Autor Thema: Wecker bzw. Zeitschaltuhr mit Codesys Visualisierung  (Gelesen 4657 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline chekker91

  • Newbie
  • *
  • Beiträge: 1
    • Profil anzeigen
Wecker bzw. Zeitschaltuhr mit Codesys Visualisierung
« am: 18. Januar 2017, 22:28:51 »
Hallo Zusammen,

ich versuche schon länger einen FB zu finden der Eine in der Visu eingestellte Zeit mit der Tageszeit vergleicht und dann eine Funktion ausführt.
z.B. die Jalousien hochfährt.

Es soll so ähnlich wie auf dem Bild aussehen.

Hat jemand so was schon realisiert?

Hardware: RaspberryPi - Beckhoff EK1100 - DI/DO Klemmen


[gelöscht durch Administrator]

Offline Blauprinz

  • Newbie
  • *
  • Beiträge: 40
    • Profil anzeigen
    • E-Mail
Re: Wecker bzw. Zeitschaltuhr mit Codesys Visualisierung
« Antwort #1 am: 26. September 2018, 11:52:20 »
Hallo chekker91,

ich habe solch eine Wochenplan-Lösung schon mehrmals realisiert.
Welche Steuerung und welche Codesys-Version verwendest du denn?
Es gibt eine SysRtc.lib, welche eine Funktion Namens "SysRtcGetTime" beinhaltet.
Die Funktion gibt eine DT-Variable aus, welche die aktuelle Uhrzeit/Datum deiner Steuerung wieder gibt.
Damit kannst du Zeit und Datum entsprechend in einem Syntax mit deinen Sollwerten vergleichen.

Gruß

Offline Airuei

  • Newbie
  • *
  • Beiträge: 2
    • Profil anzeigen
Re: Wecker bzw. Zeitschaltuhr mit Codesys Visualisierung
« Antwort #2 am: 30. November 2018, 09:16:31 »
For these data, we think that it is good information to get more knowledge.

Fensinee

  • Gast
Re: Wecker bzw. Zeitschaltuhr mit Codesys Visualisierung
« Antwort #3 am: 17. Dezember 2018, 04:43:50 »
We are very pleased to recommend this to your friends.

Offline Blauprinz

  • Newbie
  • *
  • Beiträge: 40
    • Profil anzeigen
    • E-Mail
Re: Wecker bzw. Zeitschaltuhr mit Codesys Visualisierung
« Antwort #4 am: 04. Mai 2020, 20:17:57 »
Hallo Zusammen,

auf Anfrage von Sven werde ich mich gerne zu diesem Thema äußern:

["...kannst du mir vielleicht eine kleines Beispiel geben, wie du den Vergleich machst und daraus eine Aktion wird?
Ich will in eine Ablaufsteuerung (Rapsberry SPS mit CODESYS) uhrzeitgesteuerte Elemente einbauen.
Das wäre sehr nett.
Vielen Dank für den Fall, dass Du mir helfen möchstest!
MfG
Sven
"]

@Sven, damit ich dir helfen kann benötige ich genauere Infos. Es führen schließlich viele Wege nach Rom.  ;)
Kannst du denn folgende Bibliothek in deiner Codesys-Umgebung finden: "SysRtc23" ?
Wenn nicht, dann müssten wir uns mit der "SysTimeRtc" beschäftigen.

Gruß

Offline Blauprinz

  • Newbie
  • *
  • Beiträge: 40
    • Profil anzeigen
    • E-Mail
Re: Wecker bzw. Zeitschaltuhr mit Codesys Visualisierung
« Antwort #5 am: 06. Mai 2020, 11:41:58 »
Hallo Sven,

hier also mal ein abgespecktes Beispiel für die SysRtc23.lib:

Deklarations-Editor:

VAR
dt_Systemzeit :DT;

i_actuStunde :INT;
i_actuMinute :INT;
i_actuSekunde :INT;
i_actuWochentag :INT;
i_actuTag :INT;
i_actuMonat :INT;
i_actuJahr :INT;

dt_Soll_Datum :DT:=DT#2020-5-6-12:00:00; (* <-- Initialwert entspricht 06.05.2020 - 12:00:00 Uhr *)

i_Soll_Stunde :INT;
i_Soll_Minute :INT;
i_Soll_Sekunde :INT;
i_Soll_Wochentag :INT; (* 1=Mo, 2=Di, 3=Mi, 4=Do, 5=Fr, 6=Sa, 7=So *)
i_Soll_Tag :INT;
i_Soll_Monat :INT;
i_Soll_Jahr :INT;

x_ZeitgesteuertesEreignis_1 :BOOL;
x_ZeitgesteuertesEreignis_2 :BOOL;
END_VAR

(*
Referenzierte Bibliotheken:
- SysRtc23.lib
- Oscat_Basic.lib
*)


Programm-Editor:

//Bereitstellung bzw. Erfassung Systemzeit der Zielsteuerung:
dt_Systemzeit:=SysRtcGetTime(TRUE);
//DT-Variable aufsplitten:
i_actuStunde :=OSCAT_BASIC.HOUR_OF_DT(dt_Systemzeit);
i_actuMinute :=OSCAT_BASIC.MINUTE_OF_DT(dt_Systemzeit);
i_actuSekunde :=OSCAT_BASIC.SECOND_OF_DT(dt_Systemzeit);
i_actuWochentag :=OSCAT_BASIC.DAY_OF_WEEK(DT_TO_DATE(dt_Systemzeit));
i_actuTag :=OSCAT_BASIC.DAY_OF_MONTH(DT_TO_DATE(dt_Systemzeit));
i_actuMonat :=OSCAT_BASIC.MONTH_OF_DATE(DT_TO_DATE(dt_Systemzeit));
i_actuJahr :=OSCAT_BASIC.YEAR_OF_DATE(DT_TO_DATE(dt_Systemzeit));

//Variante 1 Ereignissteuerung --> per Vergleich DT-Variablen:
IF dt_Systemzeit = dt_Soll_Datum THEN
x_ZeitgesteuertesEreignis_1:=TRUE;
END_IF;

//Variante 2 Ereignissteuerung --> per Vergleich Einzel-Sollwerte:
IF
i_actuStunde = i_Soll_Stunde AND  
i_actuMinute = i_Soll_Minute AND 
i_actuSekunde = i_Soll_Sekunde     AND
i_actuWochentag = i_Soll_Wochentag AND
i_actuTag = i_Soll_Tag     AND
i_actuMonat = i_Soll_Monat     AND
i_actuJahr = i_Soll_Jahr     THEN
x_ZeitgesteuertesEreignis_2 :=TRUE;
END_IF;


Hier hast du 2 Varianten um ein zeitgesteuertes Ereignis auszuführen.
Sicherlich würde ich persönlich hier mit Arrays und Strukturen arbeiten, aber zur Veranschaulichung sollte das erstmal ausreichen.
Für das Aufsplitten der DATE_OF_TIME habe ich die vorgefertigten Oscat-Funktionen verwendet.
Dies setzt natürlich voraus, dass du die Oscat_Basic.lib im Codesys implementiert hast.  ;)

Gruß

Offline Svenner

  • Newbie
  • *
  • Beiträge: 1
    • Profil anzeigen
Re: Wecker bzw. Zeitschaltuhr mit Codesys Visualisierung
« Antwort #6 am: 21. Mai 2020, 07:34:20 »
Hallo Rick,

jetzt hat es vor ein paar Tagen mit der Aktivierung geklappt. Ich habe auch jetzt erst Deine Beispiele gesehen. Danke dafür. :D Ich werde es die Tage mal ausprobieren und melde mich dann wieder.
LG
Sven