Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 30

Thema: Laufzeit bestimmen auch wenn Steuerung abgeschaltet ist

  1. #11
    Registriert seit
    14.01.2013
    Beiträge
    45
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Das habe ich soweit verstanden.
    Die Variablen habe ich in einem Baustein als TIME_OF_DAY und eine als DATE deklariert.
    Diese kann ich aber nicht an den SFC1 schreiben. (Syntax-Fehler)
    Vermutlich habe ich da noch etwas falsch verstanden.

  2. #12
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.727
    Danke
    398
    Erhielt 2.404 Danke für 2.002 Beiträge

    Standard

    Doch - kannst du. Aber sinnvoll nur symbolisch. Dafür muß aber der DB einen symbolischen Namen haben - der kann auch der DB-Name selbst sein, muß aber in der Symbolik hinterlegt sein.
    Dann schreibst du halt z.B. "DB11".Datum oder "DB11".Uhrzeit an deinen SFC-Aufruf. Wichtig hier : symbolischer DB-Name in Gänsefüßchen, dann der punkt und dann der Variablenname im DB.

    Gruß
    Larry

  3. #13
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.727
    Danke
    398
    Erhielt 2.404 Danke für 2.002 Beiträge

    Standard

    Nachtrag dazu :
    Ich sehe gerade, dass du SFC1 geschrieben hast. Der liest den Datentyp DT (oder auch DATE_and_TIME) aus. Den mußt du dann seperat deklarieren, kannst ihn aber auch wie oben beschrieben übergeben.
    Dieser Datentyp beinhaltet beide Informationen - Datum und Uhrzeit. Mit dem kannst du natürlich auch arbeiten ...

  4. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    themenstarter234 (26.03.2013)

  5. #14
    Registriert seit
    14.01.2013
    Beiträge
    45
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo mal wieder

    Wir haben nun einiges ausprobiert. Mit dem auslesen klappt jetzt alles gut.

    SFC1 Datum / uhrzeit einlesen
    FC12 aus der Standart libary Vergleich von 2xDate and Time

    nun müssen wir noch auf eine "Date/Time" eine Anzahl x Stunden addieren. Der FC1 (Standart Libary) kann das, aber nur bis zu 24 Tagen ... (Format Time begrenzt)
    Eine Lösung wäre den Baustein öfter aufzurufen, zB in einer Schleife.

    Geht das vielleicht auch mit einem fertigen Baustein?

    Ansonsten schon mal Daumen hoch für die Antworten.

  6. #15
    Registriert seit
    19.07.2010
    Beiträge
    1.289
    Danke
    213
    Erhielt 267 Danke für 233 Beiträge

    Standard

    Ich würde die zwei Zeitstempel in DATE und TIME_OF_DAY zerlegen (FC7 und FC8 aus der IEC-Library). Dann kannst du relativ einfach ohne das (zu kleine) Time-Format deine Zeitdifferenz in Sekunden berechnen.
    mfG Aventinus

  7. #16
    Registriert seit
    14.01.2013
    Beiträge
    45
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Standard

    @Aventinus
    Ich glaube wir reden aneinander vorbei. Wenn ich dich richtig versthe habe ich schon 2 Zeitstempel, diese dann zerlegen und eine Differenz berechnen.
    So weit bin ich aber noch gar nicht. Wenn der Bediener eine Flüssigkeit wechselt bestätigt er dies mit einem Tastendruck. Damit schreibe ich mir den ersten Zeitstempel, darauf muss aber nun eine Variable Zeit von zB 26 Tage. --> Dafür fehlt mir der Baustein. Es gibt den FC 1 AD_DT_TM aus der Libary. Dort kann ich aber nur eine TIME addieren. Bei diesem Format ist aber bei 24 Tagen Schluß.
    Da könnte ich nun mit einer Schleife 26x 1 Tag addieren.

    Der zweite Zeitstempel wäre die aktuelle zeit. Diese kann ich dann mit dem FC12 aus der Libary vergleichen und bekomme die Info Aktuelle Zeit größer als (Wechselzeit+26Tage) dann ist die Flüssigkeit gekippt und muss gewechselt werden.

    Ich hoffe es ist nun klarer geworden.

  8. #17
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.727
    Danke
    398
    Erhielt 2.404 Danke für 2.002 Beiträge

    Standard

    @TE:
    Im Prinzip liegt Aventinus trotzdem richtig.
    So, wie du die Aufgabenstellung beschreibst, würde ich es dann doch so angehen, dass ich mir einen auf diese Aufgabenstellung spezialisierten Baustein erschaffen würde, der den Vergleich intern durchführt (immer wenn benötigt) und dir dann ggf. als Ausgang die Restzeit und/oder ein Bit (gut-nichtgut) oder oder zurückgibt ...
    Das würde aber auf Basis der schon angedeuteten berechnung erfolgen müssen ...

    Gruß
    Larry

  9. #18
    Registriert seit
    19.07.2010
    Beiträge
    1.289
    Danke
    213
    Erhielt 267 Danke für 233 Beiträge

    Standard

    Zitat Zitat von themenstarter234 Beitrag anzeigen
    @Aventinus
    Ich glaube wir reden aneinander vorbei. Wenn ich dich richtig versthe habe ich schon 2 Zeitstempel, diese dann zerlegen und eine Differenz berechnen.
    So weit bin ich aber noch gar nicht. Wenn der Bediener eine Flüssigkeit wechselt bestätigt er dies mit einem Tastendruck. Damit schreibe ich mir den ersten Zeitstempel, darauf muss aber nun eine Variable Zeit von zB 26 Tage. --> Dafür fehlt mir der Baustein. Es gibt den FC 1 AD_DT_TM aus der Libary. Dort kann ich aber nur eine TIME addieren. Bei diesem Format ist aber bei 24 Tagen Schluß.
    Da könnte ich nun mit einer Schleife 26x 1 Tag addieren.

    Der zweite Zeitstempel wäre die aktuelle zeit. Diese kann ich dann mit dem FC12 aus der Libary vergleichen und bekomme die Info Aktuelle Zeit größer als (Wechselzeit+26Tage) dann ist die Flüssigkeit gekippt und muss gewechselt werden.

    Ich hoffe es ist nun klarer geworden.
    Ich denke, wir reden nicht aneinander vorbei.

    Was machst du wenn deine Zeitdifferenz größer ist als die 24T?

    Du subtrahierst die beiden Zeitpunkte und stellst fest dass du einen Überlauf bekommen hast. Dann addierst du zum ersten Zeitstempel 24 Tage und subtrahierst dann wieder. Dann bekommst du aber das Ergebniss trotzdem nicht in ein Time-Format.

    Wenn du dir aber einen Baustein schreibst, der zwei DT subtrahiert und das Ergebnis in Sekunden skaliert, hast du in einer Variablen die Zeitdifferenz in ausreichender Genauigkeit und kannst mit dem Wert auch noch was anfangen.
    mfG Aventinus

  10. #19
    Registriert seit
    14.01.2013
    Beiträge
    45
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Daumen hoch

    Hallo zusammen
    ich muss gestehen, das ich euch beide bezüglich der Subtrahktion nicht verstehe..
    weil ich möchte gar nicht subtrahieren sondern eine Alterung von zB 30 Tagen auf ein DATE-AND-TIME addieren.

    Habe aber trotzdem das Programm für diesen Teil gerade fertig:

    Der Bediener gibt eine Sollzeit als INT in Tagen in die Visu ein und drückt "Flüssigkeit gewechselt"

    Netz1:
    SFC1 aktuelle Uhrzeit auslesen

    Netz2:
    Loop_soll mit Anzahl an Tagen vorbelegen

    Netz3:
    Tastendruck "Flüssigkeit gewechselt"
    -Aktuelle Zeit in "Zeit Wechsel" geschrieben (SFC20)
    - "Zeit Wechsel" nach "Zeit Soll" geschrieben (SFC20)

    - Beginn LOOP
    FC1 "Zeit Soll" + T#1d = "Zeit Soll"
    Schleife so oft durchlaufen wie Tage eingetrage

    Netz4:
    FC12 Vergleich Aktuelle Zeit mit "Zeit Soll"
    Ausgabe Bit wenn Alterung überschritten.

    Das ganze noch auf dem HMI dargestellt .......


    Vielen Dank für die Antworten
    Geändert von themenstarter234 (27.03.2013 um 10:50 Uhr)

  11. #20
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.727
    Danke
    398
    Erhielt 2.404 Danke für 2.002 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ... wenn es nur so sein soll dann ginge auch (mit m.E. weniger Aufwand) :
    - DT auslesen
    - DT in DATE und TOD zerlegen mit den schon genannten FC's
    - DATE um Anzahl der geschünschten Tage erhöhen (einfache Addition des Vorgabewerts)
    - neuen DATE und alten TOD in neuen DT schreiben

    Vorteil :
    Was hier passiert versteht man auch noch in 10 Jahren ...

    Gruß
    Larry

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 16.07.2012, 18:09
  2. CoDeSys, Zeit eines Timers durch Variable bestimmen.
    Von Junior im Forum CODESYS und IEC61131
    Antworten: 6
    Letzter Beitrag: 13.03.2012, 20:27
  3. Antworten: 1
    Letzter Beitrag: 23.07.2011, 10:58
  4. Bekommt ihr auch zur Zeit so schlecht Komponenten?
    Von rostiger Nagel im Forum Stammtisch
    Antworten: 25
    Letzter Beitrag: 21.03.2011, 09:01
  5. Wert in einer bestimmen Zeit hochzählen
    Von CheGuevara83 im Forum Programmierstrategien
    Antworten: 8
    Letzter Beitrag: 07.03.2008, 07:04

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •