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

Ergebnis 1 bis 7 von 7

Thema: SFC1 und Zeitformate

  1. #1
    Registriert seit
    23.03.2006
    Ort
    Thüringen
    Beiträge
    2.005
    Danke
    162
    Erhielt 278 Danke für 199 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    ich habe mich ein wenig festgefressen, stehe im Dschungel und sehe keinen Weg, also:
    Der SFC 1 CPU Uhr auslesen liefert mir eine 64 bit Zeitangabe mit ms Genauigkeit. Wenn ich also eine Zeitdifferenz ermitteln möchte rufe ich diesen zweimal auf und subtrahiere beide erhaltenen Zeitangaben voneinander. Soweit sogut, nur ich brauche eigentlich nur die Millisekunden, wie bekomme ich die vernünftig in eine Int Variable?
    Ein anderer Weg wäre die Zykluszeit der CPU, diese in der Meßphase einfach jeden Zyklus aufaddieren, nur wie ist das Ergebnis wenn der Zyklus unter einer ms bleibt? Ich vermute mal das es da nichts zum addieren gibt.....
    Und zu guter letzt muß ich in einem Zeitraum Weggeberimpulse ermitteln, ich sage mal im Bereich von 10 bis 100 ms, Genauigkeit vorläufig noch unbekannt.
    Da ergeben sich drei Wege, erstens ein Timer, der kleinste ist 10ms, mit einer solchen Unschärfe beim Start plus der Ungenauigkeit im Zyklus, letztere ist vernachlässigbar.
    Zweitens wieder die SFC 1 Geschichte, diese würde ich favorisieren, sofern nicht Variante 3 mit der Zykluszeitaddition funktionieren sollte.
    Oder gibt es noch andere Möglichkeiten, die vielleicht sogar eleganter sind?

    Gruß
    Mario
    Zitieren Zitieren SFC1 und Zeitformate  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.401 Danke für 2.001 Beiträge

    Standard

    Hallo Mario,
    wie du schon schreibst gibt es da mehrere Möglichkeiten.

    Um bei der Systemuhr zu bleiben : nur mit den ms zu arbeiten nützt dir nichts wenn du einen Sekundenübertrag hast. Du könntest also die Systemuhr mit dem genannten SFC auslesen und den ausgelesenen Wert mit dem Baustein aus der Siemens-Bibliothek DT_to_TOD umwandeln. Nun hast du einen DINT mit dem du dann rechnen kannst.

    Die nächste Möglichkeit wäre, den OB1_Date_Time (z.B.) auf gleiche Weise umzuwandeln. Das käme vom Ergebnis auf dasselbe.

    Das Aufaddieren der OB1_Prev_Cycle geht auch und den Genauigkeits-Fehler, den du dort erhälst kannst du sehr wahrscheinlich auch verschmerzen. das mußt du aber entscheiden.

    Kommst du so weiter ?

    Gruß
    Larry

    Nachsatz:
    Die Variante mit dem Timer scheidet für mich hier aus.

    Zu der Sache mit dem Weggeber müßtest du m.E. noch etwas mehr schreiben.

  3. #3
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.746
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard

    Zitat Zitat von mariob Beitrag anzeigen
    Hallo,
    Der SFC 1 CPU Uhr auslesen liefert mir eine 64 bit Zeitangabe mit ms Genauigkeit.
    Das ist aber bestimmt nicht so wie du denkst. Also du bekommst keinen 64 Bit ms Wert, sondern eine Struktur in der für die Einzelnen Werte (Tag, Monat, Jahr, Stunde, Minute, Sekunde)
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

  4. #4
    Registriert seit
    08.10.2009
    Ort
    Südpfalz
    Beiträge
    273
    Danke
    43
    Erhielt 54 Danke für 47 Beiträge

    Standard

    Was musst du eigentlich erreichen?
    Wenn ich das richtig verstanden habe, geht darum Impulse während einer Zeit zu ermitteln.
    Da ist es doch einfacher, du hast ein festes Zeitraster (Zeit-OB)
    Oder gleich eine entsprechende Karte, kommt auf die Werte an.

    Gruß Roland
    Nicht Mensch, nicht Tier: Programmierer halt ...

  5. #5
    mariob ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    23.03.2006
    Ort
    Thüringen
    Beiträge
    2.005
    Danke
    162
    Erhielt 278 Danke für 199 Beiträge

    Standard

    Hallo,
    also, es geht darum die mechanischen Verzögerungszeiten z.B. eines Ventils und Zylinders von der Aktivierung des Ausganges bis zum Erreichen der Endlage zu messen.
    Aus diesen Werten müssen dann Vorhaltewege errechnet werden. Thats all.
    @ Jochen Kühner, das mit der Struktur habe ich schon befürchtet, es gibt auch keinen mir bekannten SFC, der mir die ms extrahiert. Ich hatte hier irgendwo gelesen, das das wohl ein DINT sei, das war mir aber unlogisch (wozu gibt es dann das Zeitformat überhaupt).
    @LL, wie beschrieben, wenn ich unter einer ms Zykluszeit bleibe (wovon auszugehen ist) erhalte ich doch sicherlich 0 als Zykluszeit und das brauche ich nicht zu addieren oder liege ich da falsch?

    Gruß
    Mario
    Geändert von mariob (12.05.2011 um 11:07 Uhr) Grund: Nicks verwechselt

  6. #6
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.401 Danke für 2.001 Beiträge

    Standard

    Hallo Mario,
    das Siemens-Ding, das dir die DT in TOD umrechnet ist der FC8 aus der Standard-Bibliothek-IEC-Funktion-Blocks.

    Und ... wenn du unter 1 ms bleibst (was ich aus deiner Beschreibung als eher unwahrscheinlich ansehe) dann hast du so oder so verloren, da du auf keinem Weg irgendetwas, das kleiner als 1 ms ist, aus der systemuhr heraus bekommst - so oder so nicht.

    Gruß
    Larry

  7. #7
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.850
    Danke
    78
    Erhielt 800 Danke für 543 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    mit der fc 34 kann man direkt 2 dt vergleichen.
    macht auch deshalb sinn, wenn man man den messzyklus mist der den nächsten tag einleutet

    Code:
    SB_DT_DT FC34 Subtract DT - DT; subtrahiert zwei Zeitpunkte (DT) liefert eine Zeitdauer (TIME)
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  8. Folgender Benutzer sagt Danke zu volker für den nützlichen Beitrag:

    winnman (12.05.2011)

Ähnliche Themen

  1. Probleme mit dem SFC1
    Von Magni im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 19.08.2014, 22:32
  2. Aufruf in SCL SFC1
    Von Carsten77 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 23.05.2011, 11:38
  3. S7-300 / SFC1 einfügen...
    Von pinolino im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 06.04.2009, 07:43
  4. Sfc1
    Von crazygerman im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 09.01.2008, 15:00
  5. sfc1
    Von Anonymous im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 25.11.2004, 19:42

Lesezeichen

Berechtigungen

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