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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Wert eines Timers in INT oder der gleichen wandeln

  1. #1
    Registriert seit
    13.09.2005
    Beiträge
    633
    Danke
    8
    Erhielt 8 Danke für 6 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Vielleicht stehe ich ja nur auf der Leitung, aber ich bekomme es nicht hin den Wert eines Timers in eine Int - Variable oder etwas ähnliches zu wandeln.

    Es soll ein INT - Wert (Gasdurchfluss/Sekunde) mit der gestoppten Zeit eines Timers multipliziert werden.

    Das man einen Timer nicht direkt mit dem INT - Wert multiplizieren kann ist mir schon klar, darum werde ich den Wert irgendwie in einen anderen Variablentyp konvertieren müssen, nur wie?

    Die Millisekundenangaben dürfen nicht verloren gehen, sonst wird das Ergebnis zu ungenau.
    Zitieren Zitieren Wert eines Timers in INT oder der gleichen wandeln  

  2. #2
    Registriert seit
    09.09.2005
    Beiträge
    108
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo bin mir nicht ganz sicher aber Timer sind in BCD richtig?

    Da wäre die umwandlung so meines wissens

    L XXX
    BTI
    T XXX

    hoffe das ist kein blödsinn was ich da erzähle


    In der hilfe sollten aber alle konvertierungen mit deren abkürzungen zu finden sein

  3. #3
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.732
    Danke
    314
    Erhielt 1.520 Danke für 1.282 Beiträge

    Standard

    Standart Library - IEC Function Blocks -> FC33
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  4. #4
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.732
    Danke
    314
    Erhielt 1.520 Danke für 1.282 Beiträge

    Standard

    @Adenauer
    Ja aber, in dem BCD Wert des Timers verstecken sich 3 Stellen, mit dem Zeitwert, und eine mit der Zeitbasis.
    0 = 10 ms
    1 = 100 ms
    2 = 1 s
    3 = 10 s

    Mfg
    Manuel
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  5. #5
    CrazyCat ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    13.09.2005
    Beiträge
    633
    Danke
    8
    Erhielt 8 Danke für 6 Beiträge

    Standard

    Der FC33 bringt mich irgendwie nicht weiter, damit erhalte ich das Format TIME.

    Mit dem Format kann ich immer noch nicht rechnen.


    Wie funktioniert das mit den Bytes, wo ist die Zeitbasis und wo die Werte?

  6. #6
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.732
    Danke
    314
    Erhielt 1.520 Danke für 1.282 Beiträge

    Standard

    Time ist ein DINT mit der Zeit in ms,
    also wo ist das Problem?

    Siehe dazu auch die Step7 Hilfe.
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  7. #7
    CrazyCat ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    13.09.2005
    Beiträge
    633
    Danke
    8
    Erhielt 8 Danke für 6 Beiträge

    Standard

    Oh, das war mir neu.

    Also das Ding in Time wandeln und in eine REAL oder INT - Variable konvertieren, dann sollte es mit der Rechnung klappen, richtig?

    Den Durchfluss muss ich natürlich auch vorher in eine dementsprechende Variable konvertieren.

  8. #8
    CrazyCat ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    13.09.2005
    Beiträge
    633
    Danke
    8
    Erhielt 8 Danke für 6 Beiträge

    Standard

    Eine Frage hätte ich noch:

    Fällt jemand eine elegantere Lösung für das Stoppen der Zeit ein, als jene die ich anwende?

    Momentan läuft das so:

    Die aktuelle Zeit und das Datum werden im OB1 gelesen und in einem DB im Format date_and_time abgelegt.

    Bei einer positiven Flanke eines Merkers wird dieser Eintrag mit BLK_MOV in die Variable Start_Zeit geschrieben.
    Bei der negativen Flanke des Merkers in die Variable End_Zeit.

    Ist der Merker nicht gesetzt werden FC34 die beiden Werte voneinander abgezogen und in eine Variable des Typs TIME das Ergebnis abgelegt.

    Das Ergebnis wird anschließend in eine Hilfsvariable des DINT geschrieben mit der anschließend weiter gerrechnet werden kann.

    Geht das auch einfacher?

    Zuvor hatte ich eine ähnliche Lösung mit 2 Timern, aber die war noch komplizierter.

  9. #9
    Registriert seit
    04.06.2008
    Beiträge
    118
    Danke
    7
    Erhielt 8 Danke für 7 Beiträge

    Standard

    Da stell ich mir gerade die Frage in welchem zu erwarteten
    Stopp-Zeitrahmen bewegen wir uns bei Deiner Frage und
    wie genau muss das sein ?

    Ich baue mir für sowas immer einen Taktgeber in einem
    gewünschtem Zeittakt. Zum Beispiel 100ms.

    Jetzt zähle ich einfach, wie oft der Takt in der zu stoppenden
    Zeit da war.
    Code:
     
    //Taktgeber 100ms
     
    L S5T#100ms
     
    UN Takt
    SE Timer_Takt_Aus
     
    U Timer_Takt_Aus
    S Takt
     
    U Takt
    SE Timer_Takt_Ein
     
    U Timer_Takt_Ein
    R Takt
     
    //Stoppen
     
    ON Stoppen
    ON Takt
    O Flanke
    SPB M001
    L DB1.DBW0
    L 1
    +I
    T DB1.DBW0
     
    UN Flanke
    S Flanke
    M001: NOP 0
     
    UN Takt
    U Flanke
    R Flanke
    So Zähle ich, so lange der Stoppen Merker 1 ist die Anzahl
    der Impulse. Für mich hat das bisher immer ausgereicht.
    Ist natürlich jetzt noch ohne jegliche Überlauf Sicherung und
    falls ein Wort nicht reicht für die Anzahl nehm ich ein DW.
    Gruß.

    ToBo
    Zwei Dinge in dieser Welt sind unendlich !
    Das Universum und die menschliche Dummheit.

    Beim Universum bin ich mir allerdings noch nicht sicher......

    A.Einstein

  10. #10
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.697 Danke für 1.949 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von CrazyCat Beitrag anzeigen
    Eine Frage hätte ich noch:

    Fällt jemand eine elegantere Lösung für das Stoppen der Zeit ein, als jene die ich anwende?

    Momentan läuft das so:

    Die aktuelle Zeit und das Datum werden im OB1 gelesen und in einem DB im Format date_and_time abgelegt.

    Bei einer positiven Flanke eines Merkers wird dieser Eintrag mit BLK_MOV in die Variable Start_Zeit geschrieben.
    Bei der negativen Flanke des Merkers in die Variable End_Zeit.

    Ist der Merker nicht gesetzt werden FC34 die beiden Werte voneinander abgezogen und in eine Variable des Typs TIME das Ergebnis abgelegt.

    Das Ergebnis wird anschließend in eine Hilfsvariable des DINT geschrieben mit der anschließend weiter gerrechnet werden kann.

    Geht das auch einfacher?

    Zuvor hatte ich eine ähnliche Lösung mit 2 Timern, aber die war noch komplizierter.
    So ähnlich mach ich das auch. Damit messe ich die Taktzeit meiner Maschinen.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

Ähnliche Themen

  1. Format DATE in real oder INt wandeln
    Von jensel im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 10.05.2011, 18:18
  2. Wert eines ANY-Parameter in SCL auslesen
    Von U.Schmidt im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 02.09.2010, 14:37
  3. Ablaufzeit eines Timers beeinflussen
    Von Puch14 im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 17.05.2009, 17:06
  4. Restzeit eines Timers anzeigen S7 200
    Von don_g im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 22.01.2008, 20:43
  5. Wert in viele Bereiche eines DB schreiben
    Von elektro_mensch im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 12.12.2007, 20:56

Lesezeichen

Berechtigungen

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