hilfe gesucht für schaltuhr

linuxluder

Level-1
Beiträge
171
Reaktionspunkte
4
Zuviel Werbung?
-> Hier kostenlos registrieren
hi,

vor einigen wochen hatte mir kai hier http://www.sps-forum.de/showpost.php?p=85931&postcount=25 ein paar bausteine ins netz gelegt, mit der man die systemzeit aus des cpu ausliest.

könnte mir freundlicherweise irgendwer dabei helfen, nun auf dieser grundlage bei folgendes behilflich sein, ...
1. einen baustein zu erstellen, der diese uhrzeit und das datum auf einem op7 ausgibt
2. einen baustein zu erstellen, der als schltuhr fungiert?

vielen dank schon mal,
jo
 
Hey
es ist zwar schon etwas was her, als ich das letzte mal mit nen op7 gearbeitet habe aber ich habe in erinnerung das man beim op 7 die system zeit ganz einfach über protool bzw wincc einfügen kann.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
auf sdem OP7 kannst du die Systemzeit nur als SPS-Variable anzeigen. D.h. du musst in der SPS eine Variable erzeugen, die den von dir gewünschten Inhalt im entsprechenden Format enthält.

Zum Thema Schaltuhr gibt es in der Suche einige interessante Beiträge. Hier vielleicht speziell den von "Kai" heraussuchen ...
 
hi,

danke für eure tipps. die systemuhrzeit auf op bringen ist zunächst mal sekundär.
ich bräuchte erstmal einen baustein, in dem ich die schaltzeiten eingeben kann, um einen bestimmten merker oder ausgang zu bekommen. die uhr selbst habe ich schon "programmiert" - auf der grundlage der o.g. bausteine.

danke
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@linuxluder

Vom Prinzip her kommen für mich zwei Ansätze in Frage:

1. Auslesen der Zeit aus der CPU (SFC1 oder im OB1-Kopf) und Ablegen der Start- und Stop-Zeit im Format "Time and Date". Dann müßte man diese Formate jedesmal auseinanderpuzzeln und über einzelne Vergleicher ermitteln, ob Jahr, Tag, Stunde, Minut, Sekunde die Bedingungen erfüllen, einen Nocken zu schalten oder nicht.

2. Auslesen der Zeit wie oben, Ablegen in zwei Variablen a) Date, b) Time of Day.

Date:

Datentyp Länge (Bit) Format Beispiele für das Format
Min. Max.
DATE 16 Jahr-Monat-Tag D#1990-01-01 D#2168-12-31
MSB: Most Significant Bit
LSB: Least Significant Bit
Das Datum wird als vorzeichenlose Ganzzahl in Tagen dargestellt, wobei der erste Tag der 1. Jan. 1990 ist.

Time of Day:

Datentyp Länge (Bit) Format
TIME_OF_DAYoder TOD 32 Tageszeit in Stunden:Minuten:Sekunden.Millisekunden
Beispiele für das Format (oberer und unterer Grenzwert)

TOD#00:00:00.000
TOD#23:59:59.999
Stunden, Minuten und Sekunden müssen angegeben werden. Die Angabe der Millisekunden ist nicht erforderlich.

MSB: Most Significant Bit
LSB: Least Significant Bit

Hinweis:

Der Datentyp TOD wird als vorzeichenlose Ganzzahl in Millisekunden gespeichert, wobei Null gleich Mitternacht ist.

Die Start- und Stopzeit für die Schaltuhr legst du ebenfalls jeweils in diesen zwei Variablenformaten ab.

Nun kannst du mit 4 Vergleichsoperationen entscheiden, ob deine Schaltuhr den zugehörigen Ausgang schalten soll oder nicht.

Wenn
1. Aktuelles Datum > Einschaltdatum
UND
2. Aktuelle Zeit > Einschaltzeit
UND
3. Aktuelles Datum < Ausschaltdatum
UND
4. Aktuelle Zeit < Ausschaltzeit
DANN
Schaltausgang auf 1

Die Formate für Date und "Time of Date" sind 16 bzw. 32 Bit, können also direkt mit Vergleichern benutzt werden.

Die 2. Variante würde ich wohl vorziehen.

Das Programm würde ich in 4 Teile gliedern:

1. Eingabe der Daten (Start-, Stopzeit) am OP, umwandeln in die gewünschten Formate und eintragen in einen Datenbaustein.
2. Ein Baustein, der fortlaufend die aktuelle Zeit ausliest, in das benötigte Format wandelt.
3. Ein Baustein, der für ein Pärchen (Start-, Stopzeit) die Vergleichsoperationen durchführt und den Schaltausgang schaltet.
4. Wenn nötig, den Baustein von 3. für mehrere Schaltnocken wiederverwenden, z.Bsp. in einem übergeordneten FB für 6 Schaltausgänge.
 
danke ralle,

hier mal ne kleine Zusammenfassung

Anforderungen SPS-Projekt in Dringlichkeitsreihenfolge

1. Systemzeit aus CPU auslesen [FONT=Symbol erw.][FONT=Symbol erw.]®[/FONT][/FONT] bitte Anmerkungen lesen !!!
2. Schaltuhr,
  • Genauigkeit: Sekunden
  • eine Schaltnocke, bezogen auf einen Tag, z. B. 6.00 – 16.30
  • eine Schaltnocke, bezogen auf zwei Tage, z. B. 18.00 – 9.30 des nächsten Tages
  • eine Schaltnocke, bezogen auf beliebigen Zeitraum 3.10.07, 15.00 – 12.12.08, 12:30
3. Anzeigen der Systemzeit auf dem OP7
4. Programmierung der Schaltpunkte über OP7

Punkt 1 ist ohne Punkt 2 im Prinzip „wertlos“ für mich.
Die Punkte 3 und 4 sind im Moment nicht wichtig.


Anmerkungen zu 1)
a) Im Dezember letzten Jahres habe ich mit Antonios Hilfe
http://www.sps-forum.de/showpost.php?p=61656&postcount=4
zum ersten Mal die CPU-Uhrzeit ausgelesen. Ich habe mich sehr schwer getan, das Beispiel „abzuschreiben“. Aber irgendwann lief es und es läuft im Moment immer noch! Auch Du warst damals bei der Klärung meines Problems dabei. Leider habe ich es bei Antonios Beispiel nicht geschafft, das Datum mit zu integrieren, was die Sache mit der Schaltnocke erschwerte, wenn sie in den nächsten Tag reichte. Die Lösung aus dem Forum war diese:
http://www.sps-forum.de/showpost.php?p=85637&postcount=3

All das habe ich immer noch so im Einsatz.
Die Schaltzeiten gebe ich übrigens über STEP 7 LIGHT direkt in den entsprechenden FB ein.


b) Ich war also mit der Lösung aus a) nicht besonders glücklich. Habe nochmals gepostet. Kai lieferte eine „für mich“ andere Art, die Systemzeit auszulesen, die ich viel leichter übernehmen konnte, als die von Antonio:
http://www.sps-forum.de/showpost.php?p=85931&postcount=25
Auch Du warst wieder dabei, als mal nichts mehr weiterging.
So, ich hatte also eine auf wenige Bausteine begrenzte CPU-Uhr.
Ich kenne mich aber zu wenig aus, damit ich nun auf dieser Grundlage, eine Schaltuhr hinbekomme.
Ich hänge aber nicht an Kais Bausteinen. Ich fange, falls nötig, auch gern noch einmal ganz von an.


Ich nutze im Übrigen STEP7 Light. Die Bausteine als pdfs zum abtippen wäre mir am liebsten.
gruß jo
 
  • eine Schaltnocke, bezogen auf einen Tag, z. B. 6.00 – 16.30
  • eine Schaltnocke, bezogen auf zwei Tage, z. B. 18.00 – 9.30 des nächsten Tages
  • eine Schaltnocke, bezogen auf beliebigen Zeitraum 3.10.07, 15.00 – 12.12.08, 12:30
gruß jo

Ok, da würde ich schon mal die von mir vorgeschlagene Variante 2 in Betracht ziehen.

eine Schaltnocke, bezogen auf einen Tag, z. B. 6.00 – 16.30
Soll der Ausgang also an jedem Tag schalten?

eine Schaltnocke, bezogen auf zwei Tage, z. B. 18.00 – 9.30 des nächsten Tages
???

Es gäbe 2 Möglichkeiten, Ausgänge, die täglich wiederkehrend schalten und Ausgänge, die einmalig schalten, also mit Datum angegeben werden. Täglich Schalten als Sonderfall könnte man machen, indem man das Datum auf 0 setzt und entsprechend reagiert.

Die Vorgeschichte werd ich morgen nochmal ansehen, der FC10 von Kai kann ja mit Datum versehen entspechend abgeändert genutzt werden.

Wozu dient der ganze Spaß eigentlich?
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
@ ralle

hi,

Wozu dient der ganze Spaß eigentlich?

Unter anderem schalte ich eine Zirkulationspumpe der Heizung und ein paar Lichter im Haus. Demnächst sollen evtl. ein paar Magnetventile zur Gartenbewässerung dazukommen.
Ich habe mir damals halt sowas "eingebildet". Habe einiges an Kohle reingesteckt. Habs mir leichter vorgestellt, das Programmieren.

Die Vorgeschichte werd ich morgen nochmal ansehen, der FC10 von Kai kann ja mit Datum versehen entspechend abgeändert genutzt werden.

Und genau da hakt es bei mir. Ich habe kaum Probleme mit logischen Verknüpfungen. Aber was darüber hinausgeht, bereitet mir große Schwierigkeiten. Ein paar konkrete Beispiele bringen mich dann immer weiter. Alles was so weiß, habe ich mir zum Großteil selbst beigebracht, na ja, besser gesagt hier im Forum nachgefragt.

Bis dann, Gruß Jo
 
Hallo Jo,

in diesem Fall solltest du über eine Wochenschaltuhr nachdenken, also nichts mit Datum, sondern in Abhängigkeit vom Wochentag. Reicht dir eine Auflösung der Schaltzeiten im 15-Minutentakt?


Gruß, Onkel
 
servus onkel,

das wäre sicher auch ne möglichkeit, aber ich denke ziemlich aufwendig.
so wie die fertigen 230V-schaltuhren, mit diesen möglichkeiten
mo, di, mi, do, fr
oder
mo, di, mi, do, fr, sa, so
oder
sa, so

aber das ganz normale aus meinem obigen posting wäre mir zunächst am liebsten.
das mit den wochentagen wäre zusätzlich ein "schmankerl"

gruß "neffe" jo
 
Hallo,

ohne das ich die ganzen links hier gelesen hab...wäre das nicht am einfachsten über die S7 Uhrzeitalarme (OB10..OB17)?
anbei ein Auszug aus der Online-Hilfe:

Beschreibung
S7 stellt bis zu acht OBs (OB 10 bis OB 17) zur Verfügung, die einmalig oder periodisch gestartet werden. Sie können Ihre CPU mittels SFC oder STEP 7 so parametrieren, daß diese OBs in den folgenden Intervallen bearbeitet werden:
· Einmalig
· Minütlich
· Stündlich
· Täglich
· Wöchentlich
· Monatlich
· Jährlich
· Am Monatsende
 
Sag mal jo, kennst du diesen Beitrag bei Siemens schon?
Wenn man die Funkuhr rausnimmt, wäre das ja evtl. etwas.

Zeitschaltuhr

hi ralle,

das schaut wirklich gut aus, aber ich bezweifle, dass ich das selbst so einfach umsetzen kann. aber die verschiedenen schaltuhr-versionen (auf tag, woche, monat oder jahr bezogen) wären super.
ich weiß ehrlichgesagt nicht, ob ich den inhalt der zipfiles so einfach in meinem step7-light öffnen kann.
aber vielleicht kannst du dir ja trotzdem mal die bausteine von kai ansehen.

bis dann,
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Jo,

ich habe in der Zwischenzeit meinen Baustein für die Schaltuhr soweit geändert, dass Du die Ein- und Ausschaltzeiten über Dein OP7 ändern kannst. Damit hast Du dann eine Schaltuhr für einen Tag (6:00 - 16:30) und für zwei Tage (18:00 - 9:30), deren Schaltpunkte über Dein OP7 geändert werden können.

Gruß Kai
 

Anhänge

  • OB1 - AWL.pdf
    3,4 KB · Aufrufe: 284
  • FC200 - AWL.pdf
    3 KB · Aufrufe: 272
  • FC220 - AWL.pdf
    4,2 KB · Aufrufe: 244
  • DB220.pdf
    3,1 KB · Aufrufe: 178
Und hier sind die notwendigen Bilder und Variablen für Dein OP7 in ProTool.

Gruß Kai
 

Anhänge

  • OP7 Bilder.zip
    842,8 KB · Aufrufe: 109
  • OP7 Variablen.zip
    1,3 MB · Aufrufe: 78
Ohne das jetzt alles gelesen zu haben.

Ist es nicht so, wenn du jetzt Soll Uhrzeit und Ist Uhrzeit vergleichst du z.b. einen Problem bekommst wenn diese über Mitternacht geht?

Sprich 23 Uhr ein 1 Uhr aus?
 
Schaltuhr

Hallo,
genau das Problem hatte ich auch. Folgendermassen habe ich das gelöst.
Ich hab mir einen FC geschrieben


CALL "_Schaltuhr"
Ein:="Uhr_Datum_Werte".Winter_Hallenentl_ein //Time_of_Day
Aus:="Uhr_Datum_Werte".Winter_Hallenentl_aus //Time_of_Day
Out:="Uhr_Datum_Werte".Schaltuhr_Winter_Entl //Bool

FC12
L #Aus //Time_of_Day
L #Ein //Time_of_Day
>D
= #Selbe_Tag //Bool

L "Uhr_Datum_Werte".Uhrzeit //Time_of_Day
L #Ein //Time_of_Day
>D
= #Ist_Gr_Ein //Bool

L "Uhr_Datum_Werte".Uhrzeit //Time_of_Day
L #Aus //Time_of_Day
<D
= #Ist_Kl_Aus //Bool

U #Ist_Gr_Ein
U #Ist_Kl_Aus
U #Selbe_Tag
O(
U #Ist_Gr_Ein
O #Ist_Kl_Aus
UN #Selbe_Tag
)
= #Out //Bool

Funktioniert auf jeden Fall.Wenn Du willst kannst Du jetzt noch den
Tag als Parameter einbinden. Ich mache das immer Tag 0-7 bedingt einschalten.
Mit 8 bedingungslos (also egal welcher Tag) ein/ausschalten.

Viel Spass
 
Ohne das jetzt alles gelesen zu haben.

Ist es nicht so, wenn du jetzt Soll Uhrzeit und Ist Uhrzeit vergleichst du z.b. einen Problem bekommst wenn diese über Mitternacht geht?

Sprich 23 Uhr ein 1 Uhr aus?

Nein, es gibt da keine Probleme.

Im FC220 (Schaltuhr) mache ich folgende Unterscheidungen:

Code:
Einschaltzeit < Ausschaltzeit
 
Einschaltzeit = 10:00:00.000
Ausschaltzeit = 14:00:00.000
 
Einschaltzeit > Ausschaltzeit
 
Einschaltzeit = 22:00:00.000
Ausschaltzeit = 06:00:00.000
 
Einschaltzeit = Ausschaltzeit (Schaltuhr bleibt aus)
 
Einschaltzeit = 08:00:00.000
Ausschaltzeit = 08:00:00.000

Zur Verdeutlichung habe ich noch einmal den FC220 (Schaltuhr) als FUP beigefügt.

Im Netwerk 2 kann man sehen, wie die Schaltuhr arbeitet.

Gruß Kai
 

Anhänge

  • FC220 - FUP.pdf
    5,4 KB · Aufrufe: 249
Zurück
Oben