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

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

Thema: Zeitmessung über Prozessalarm

  1. #1
    Registriert seit
    12.10.2006
    Beiträge
    66
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Liebes SPS-Forum-Team, ich versuche schon seit Tagen eine Zeitmessung mit Hilfe des OB 40 und einer Digitalen Eingangsbaugruppe (mit Prozess und Diagnosealarm) hin zu bekommen. Leider ohne Erfolg.
    Ich habe an dem 1.Eingang und am 3.Eingang ein Digitaleingang. Durch eine negative Flanke am 1. soll die Zeitmessung starten und durch eine positive Flanke wieder stoppen.So habe ich ein Häkchen "fallende Flanke" am Eingang 0-1 und eine Häkchen "steigende Flanke" am Eingang 2-3 gesetzt.

    Ich denke das ich einen Programmierfehler im OB 40 mache. Hat einer vielleicht eine Idee wie ich dort eine Zeitmessung am besten programmiere?
    Zitieren Zitieren Zeitmessung über Prozessalarm  

  2. #2
    Registriert seit
    30.10.2009
    Ort
    10 km vom Herzen der Natur
    Beiträge
    1.626
    Danke
    120
    Erhielt 340 Danke für 255 Beiträge

    Standard

    Nur so als kleine Anregung:
    Wenn Du glaubst, einen Programmierfehler zu haben wäre es vielleicht nicht schlecht, wenn Du den Code posten würdest. Zumindestens, wenn Dir jemand helfen soll...
    Gruß
    Michael

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

    Standard

    Poste doch mal deinen Ob40 den du schon hast!
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

  4. #4
    tigger ist offline Benutzer
    Themenstarter
    Registriert seit
    12.10.2006
    Beiträge
    66
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich dachte nur das ich euch mit meinem Mist verwirre, aber gut

    L #OB40_POINT_ADDR
    T db166.dbd78

    U #zeitmessung_bereit
    UN DB166.DBX 78.2
    S #zeitmessung_start
    U #zeitmessung_bereit
    U DB166.DBX 78.3
    R #zeitmessung_start

    U #zeitmessung_start
    L S5T#20S
    SI T16

    LC T16
    T db166.dbw122

    U(
    U(
    L db166.dbw122
    BTI
    T #zeit_int
    SET
    SAVE
    CLR
    U BIE
    )
    SPBNB _001
    L 200
    L #zeit_int
    -I
    T #zeit_int
    UN OV
    SAVE
    CLR
    _001: U BIE
    )
    SPBNB _002
    L #zeit_int
    L 100
    *I
    T #zeit_int
    _002: NOP 0

    #zeit_int = Ergebnis

  5. #5
    Registriert seit
    13.10.2007
    Beiträge
    12.038
    Danke
    2.789
    Erhielt 3.273 Danke für 2.159 Beiträge

    Standard

    beim OB40 etwas zu beobachten ist immer schwer, vlt. lässt du ihn nur
    deine Alarmeingänge Triggern und speicherst die Zeit des Aufrufs mit
    "OB40_DATE_TIME" zwischen und machst die Auswertung dann im
    Zyklischen Programm.
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

  6. #6
    Registriert seit
    13.10.2007
    Beiträge
    12.038
    Danke
    2.789
    Erhielt 3.273 Danke für 2.159 Beiträge

    Standard

    Was du in Beitrag #4 geschrieben hast wird nicht funktionieren, du musst
    die Zeit des ersten Impuls speichern wie schon gesagt mit "OB40_DATE_TIME",
    dann die Zeit deines zweiten Impulses und diese voneinander abziehen.

    Dein OB40 wird bei jeden Alarm, also Impuls deines Alarmeinganges nur für
    einen Zyklus aufgerufen. Also nicht wie z.b. wie der OB1 der Zyklisch läuft.
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

  7. #7
    Registriert seit
    30.10.2009
    Ort
    10 km vom Herzen der Natur
    Beiträge
    1.626
    Danke
    120
    Erhielt 340 Danke für 255 Beiträge

    Standard

    Helmut hat recht.
    Du könntest zwar prinzipiell auch mit einer S5TIME arbeiten, müsstest dann aber anders da ran gehen. Wenn Deine Zeit gestartet wird, wird der OB einmal durchlaufen und der volle Zeitwert ausgegeben. Der OB wird das nächste Mal durchlaufen, wenn die Zeit gestoppt wird, aber dann ist "zeitmessung_start" schon wieder zurückgesetzt und somit wird der Zeitwert nicht übertragen.

    Code:
     
    P.S: Code als "Code" posten erhöht die Lesbarkeit deutlich
    Gruß
    Michael

  8. #8
    tigger ist offline Benutzer
    Themenstarter
    Registriert seit
    12.10.2006
    Beiträge
    66
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von Helmut_von_der_Reparatur Beitrag anzeigen
    Was du in Beitrag #4 geschrieben hast wird nicht funktionieren, du musst
    die Zeit des ersten Impuls speichern wie schon gesagt mit "OB40_DATE_TIME",
    dann die Zeit deines zweiten Impulses und diese voneinander abziehen.
    Danke, woher weiß ich denn, dass der 1.Impuls für die fallende Flanke und der 2.Impuls für die steigende Flanke kam, damit ich mir "OB40_DATE_TIME" merken kann. Kann ich mir die,wenn es denn gehen sollte auch gleich in einem DB speichern.
    z.B.

    u #zeitmessung_bereit
    fn ?????
    l "OB40_DATE_TIME"
    t DB1DBD0

    u #zeitmessung_bereit
    fp ?????
    l "OB40_DATE_TIME"
    t DB1DBD4

    Oder sollte ich lieber den zweiten Eingang mit einem extra-OB (z.B.OB41) bearbeiten?
    Geändert von tigger (14.06.2011 um 13:56 Uhr)

  9. #9
    Registriert seit
    30.10.2009
    Ort
    10 km vom Herzen der Natur
    Beiträge
    1.626
    Danke
    120
    Erhielt 340 Danke für 255 Beiträge

    Standard

    Zitat Zitat von tigger Beitrag anzeigen
    Danke, woher weiß ich denn, dass der 1.Impuls für die fallende Flanke und der 2.Impuls für die steigende Flanke kam, damit ich mir "OB40_DATE_TIME" merken kann. Kann ich mir die,wenn es denn gehen sollte auch gleich in einem DB speichern.
    Anders:
    Du hast doch ein Startsignal und ein Stoppsignal.
    Wenn das Startsignal kommt, rettest Du den aktuellen OB40_DATE_TIME entweder in Merker oder DB. Wenn Dein Stoppsignal kommt, ziehst Du den geretteten Wert vom aktuellen ab und schon hast Du die abgelaufene Zeit.

    P.S. Setze doch Mal Deinen Code in "Code"-Zeichen
    Gruß
    Michael

  10. Folgender Benutzer sagt Danke zu M-Ott für den nützlichen Beitrag:

    tigger (14.06.2011)

  11. #10
    Registriert seit
    13.10.2007
    Beiträge
    12.038
    Danke
    2.789
    Erhielt 3.273 Danke für 2.159 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von tigger Beitrag anzeigen
    Danke, woher weiß ich denn, dass der 1.Impuls für die fallende Flanke und der 2.Impuls für die steigende Flanke kam, damit ich mir "OB40_DATE_TIME" merken kann. Kann ich mir die,wenn es denn gehen sollte auch gleich in einem DB speichern.
    z.B.

    u #zeitmessung_bereit
    fn ?????
    l "OB40_DATE_TIME"
    t DB1DBD0

    u #zeitmessung_bereit
    fp ?????
    l "OB40_DATE_TIME"
    t DB1DBD4

    Oder sollte ich lieber den zweiten Eingang mit einem extra-OB (z.B.OB41) bearbeiten?

    Du fragst im Zyklischen Programm einfach deine Eingänge ab, gehe mal
    einfach davon aus das die Flanken der Alarmeingänge nicht Zeitgleich
    kommen, wenn doch kannst du sie eh nicht Auswerten.
    Also steigende Flanke Startalarms die Letzte Zeit in einen normalen Zwischenspeicher
    ablegen. Fallende Flanke Endalarms diese Zeit in den nächsten Zwischenspeicher
    und dann diese beiden Werte voneinander abziehen. Das war es.

    Im OB40 nichts anderes machen wie:
    Code:
    L #OB40_DATE_TIME
    T #Speicher_OB40
    Den rest im Zyklischen Programm, so kannst du es auch dann wunderbar
    beobachten und intreptieren. Die Flanken stehen doch so lange an das Sie
    im Zyklischen Programm ausgewertet werden können?
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

  12. Folgender Benutzer sagt Danke zu rostiger Nagel für den nützlichen Beitrag:

    tigger (14.06.2011)

Ähnliche Themen

  1. Prozessalarm CPU314-2DP
    Von markus.sp im Forum Simatic
    Antworten: 15
    Letzter Beitrag: 18.06.2010, 11:18
  2. Zählen mit Prozessalarm
    Von Andy_speedy im Forum Simatic
    Antworten: 22
    Letzter Beitrag: 03.06.2010, 10:11
  3. Prozessalarm aus 350-1
    Von thomasgull im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 28.09.2008, 17:00
  4. ET200s und Prozessalarm
    Von Hotsch im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 15.02.2008, 14:00
  5. Prozessalarm OB 40
    Von godi im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 30.03.2007, 08:49

Lesezeichen

Berechtigungen

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