Zeit messen mit SCL

Casimyr

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

kann mir jemand sagen, wie ich in SCL eine Zeit messen kann?

IN FUP geht das ja recht einfach, aber in SCL bekomme ich am Ausgang einen "BCD_Zeitwert" im S5TIME Format. Damit kann ich absolut nichts anfangen. Lieber wäre mir ein BOOL Wert, also wie im FUP.

Ich weiß weder, wie man dieses Format umwandelt, noch wie man die S5TIME vergleicht. Z.B. geht folgendes nicht:

IF ("S5TIME" < T#3s")

Dabei ersetze ich S5TIME natürlich durch die Variable.

Im Prinzip möchte ich nur 3 Sekunden messen. Am besten als Einschaltverzögerung.

In FUP habe ich auch einen Taktgeber gebastelt, in SCL unvortellbar.

Kann mir da jemand weiterhelfen?

Die Suche habe ich schon bemüht und google hilft auch nicht. Die meisten wollen INT oder REAL in S5TIME umwandeln. Also genau umgekehrt.

Gibt es eine einfach Lösung?

danke
Casi
 
Hallo,
ich verstehe es so, dass du eine Zeitverzögerung programmieren willst.
Das ist in der SCL-Hilfe unter "Zeiten / Aufruf von Zeitfunktionen" sehr schön beschrieben - und es geht ähnlich, wie in FUP, das es ja auch den S5Timer benutzt.

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich verstehe es so, dass du eine Zeitverzögerung programmieren willst.
Das ist in der SCL-Hilfe unter "Zeiten / Aufruf von Zeitfunktionen" sehr schön beschrieben - und es geht ähnlich, wie in FUP, das es ja auch den S5Timer benutzt.

Gruß
Larry

so ähnlich hab ich das auch verstanden... ist ja nicht so ganz einfach aus dem dahin gerotzten kauderwelsch etwas brauchbares zu extrahieren...

Code:
*
VAR_TEMP
    curr_time : S5TIME;
    
END_VAR

    curr_time := S_ODT (T_NO:=T1, 
                      S:=E0.0, 
                      TV:=T#3S, 
                      Q:=M10.0); 
                        
IF  (M10.0) THEN                                              
     //Anweisungen
     ;
END_IF;
 
Danke, bin inzwischen auch drauf gekommen, dass das Q in der Klammer der Ausgang ist.

Ich habe immer versucht mit curr_time (aus deinem Beispiel) zu rechnen.

Das ist neu und ungewohnt für mich.

ist ja nicht so ganz einfach aus dem dahin gerotzten kauderwelsch etwas brauchbares zu extrahieren...

:ROFLMAO:

Wenn ich das jetzt so lese muss ich Dir leider recht geben.
 
Zuletzt bearbeitet:
und so ganz ohne timer geht es mit einem taktmerker 1hz

hier der code dazu (ich brauche sehr viele zeiten, deshalb hab ich mir alternative geschrieben die keine timer verbräht)

die zeit wird in sekunden mit einer auflösung von 1:1 im integer-format angegeben.

der taktmerker wird in diesem beispiel auf M0.3 erwartet, kann aber natürlich geändert werden.

Multiinstanzfähig mit eigenen Multiinstanzen, also aufpassen bei vorhanden db-strutkuren bei verwendung

Counter.zip
 
Zurück
Oben