Zeitschaltuhr mit Step7

seppi82

Level-1
Beiträge
39
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo alle zusammen,

wie kann ich eine Zeitschaltuhr in Step7 realisieren??? :confused:

z.B.

Montag, Mittwoch soll ein Ausgang zu um 16.oo eingeschaltet und 18.3o wieder ausgeschaltet werden

bzw.

immer zu einer bestimmten Zeit ein und zu einer bestimmten Zeit ausgeschaltet werden.

Würde mich freuen, wenn mir jemand weiterhelfen könnte.

Gruß Seppi
 
Ich hab mal einen Wochenschaltuhrbaustein mit bis zu 100 Schaltnocken programmiert. Schick mir deine Emailadresse, dann laß ich ihn Dir zukommen.

Wenn du es selber Programmieren möchtest nutze am besten die Systemfunktion SFC1. Zerlege den Datentyp Date und Time in zwei D-Worte.
Mit SLD bzw. SRD (AWL) kannst Du Dir dann die entsprechenden Stellen für Zeitwerte (u.a. auch Wochentag-Nr.) rausfiltern und Vergleicher dransetzen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn du es selber Programmieren möchtest nutze am besten die Systemfunktion SFC1. Zerlege den Datentyp Date und Time in zwei D-Worte.
Mit SLD bzw. SRD (AWL) kannst Du Dir dann die entsprechenden Stellen für Zeitwerte (u.a. auch Wochentag-Nr.) rausfiltern und Vergleicher dransetzen.
ist nicht wirklich nötig. die daten liegen bereits im ob1.
guckst du z.b. hier
http://www.sps-forum.de/showthread.php?t=4325&highlight=ob1+uhrzeit+datum
 
Ja Volker, man kann auch das ganze Programm in den OB1 schreiben, toll was?!

Und auch dann mußt du den Datentyp Date and Time zum Zwecke der Auswertung durch Schieben oder byteweisen Zugriff zerlegen, denn der Wochentag kommt nach den Millisekunden...
 
völliger blödsinn.
den link hast du dir scheinbar nicht wirklich angesehen. :twisted:

die daten liegen dort bereit ab LD12. brauch man nur in die gewünschten bereich kopieren.

Byte 0 = Jahr (z.B. 05)
Byte 1 = Monat (z.B. 08 )
Byte 2 = Tag (z.B. 26)
Byte 3 = Stunde
Byte 4 = Minute
Byte 5 = Sekunde
Byte 6 = Die beiden höchstwertigen Ziffern von ms
Byte 7 - 4 MSB = niederwertigen Ziffern von ms
Byte 7 - 4 LSB = Wochentag - 1 = Sonntag, 2 = Montag ...

die verteilung der daten ist bei dt logischerweise immer gleich, also auch wenn ich mir die daten mit der sfc1 holst.
da brauch man nix schieben. ausgenommen mal der wochentag.


und kein mensch hat davon gesprochen das programm im ob1 zu schreiben.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Volker, der Aufruf der SFC1 frist weniger Speicher als mehrfaches Laden und Transferieren und das was Du gerade geschrieben hast ist eine notwendige Zerlegung des Datentypes Date and Time, den Du ja im Stück nicht verarbeiten oder vergleichen kannst, Du must ja schließlich Zeit und Wochentag usw. mit gespeicherten Refernzwerten vergleichen, um den Schaltvorgang auszulösen also definieren, tippen ...

Hab sowas jedenfalls schon vor 3 Jahren mal als FB für 100 Schaltpunkte (EIN/AUS) geschrieben, warum sich also noch damit befassen... Hab die Funktion heute früh zugemailt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
schaltuhr

hallo hartmut, ich weis das das thema nun nicht mehr aktuell ist, aba die schaltuhr mit 100 zeiten würde mich auch interessieren, ich würd würd mich freuen wenn du sie auch mir zukommen lassen würdest. vielen dank im vorraus.
 
Also, ihr 2 beiden könntet natürlich auch hergehen, und das ganze mal selbst probieren.
Sind im Grunde nur ein Paar Schleifen/Vergleicher, die sich besonders schön in SCL lösen liesen.

Mfg
Manuel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Da ich immer wieder nach der Funktion gefragt werde, stelle ich das Programm mit Protoolbeispiel mal zum download bereit.

Der Baustein wird im Programm nur ein einziges mal aufgerufen, die Bausteinschnittstelle dient zum Prüfen und parametrieren im Programmstatus. Den Datentyp time mußte ich zerlegen, weil er in machen Visualisierungen schwer zu händeln ist. Die Abfrage des Schaltzustandes erfolgt über das Instands-DB-Bit: DB_Wochenschaltuhr.Nocke[x].EIN
(siehe Beispiel). Generell werden bei einem Durchlauf alle Nocken bearbeitet.

Wer über Mitternacht "einschalten" will muß zwei Nocken nehmen oder beim Vergleicher "täglich" im Baustein die Setzbedingung der Nocke hinter die Rücksetzbedingung schreiben (ist sonst andersrum sicherer). Es ist ja nur ein Beispiel, wie man so etwas lösen kann, Möglichkeiten gibt es mehrere.
 

Anhänge

  • Zeitscha.zip
    207 KB · Aufrufe: 1.182
Hallo Solution,

wo Du dich jetzt extra hier im Forum angemeldet hast, brauchst Du einfach nur auf die angehängte Datei im Beitrag vor Dir zu klicken.

Und danach auf den
post_thanks.gif
-Button unter dem Beitrag von Hartmut Lux.
Über 180 Leute haben sich den Code runtergeladen und nur einer hat sich bisher bedankt.

Gruß
Harald
 
Zeitschaltuhr

Hi Harald,

ich habe in WinCC flex ein EA Feld für die Stunde und ein EA Feld für die Minuten angelegt, die Sekunden werden direkt am Baustein vergeben. Den Wochentag wähle ich über 7 Button die jeweils ein Bit in der Steuerung setzen. Die Minuten und Stunden für die Nockenbeschaltung gelten für alle Nocken. Über die 7 Button wähle ich dann aus an welchen Tag der Woche die Zeitschaltuhr aktiv ist.

kannst du mir noch mal auf die Sprünge helfen wie ich den Baustein beschalten muss?


Hallo Solution,

wo Du dich jetzt extra hier im Forum angemeldet hast, brauchst Du einfach nur auf die angehängte Datei im Beitrag vor Dir zu klicken.

Und danach auf den
post_thanks.gif
-Button unter dem Beitrag von Hartmut Lux.
Über 180 Leute haben sich den Code runtergeladen und nur einer hat sich bisher bedankt.

Gruß
Harald
 
Volker, der Aufruf der SFC1 frist weniger Speicher als mehrfaches Laden und Transferieren und das was Du gerade geschrieben hast ist eine notwendige Zerlegung des Datentypes Date and Time, den Du ja im Stück nicht verarbeiten oder vergleichen kannst, Du must ja schließlich Zeit und Wochentag usw. mit gespeicherten Refernzwerten vergleichen, um den Schaltvorgang auszulösen also definieren, tippen ...

Hab sowas jedenfalls schon vor 3 Jahren mal als FB für 100 Schaltpunkte (EIN/AUS) geschrieben, warum sich also noch damit befassen... Hab die Funktion heute früh zugemailt.

könnte ich vieleicht auch bekommen.
 
Zurück
Oben