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

Ergebnis 1 bis 7 von 7

Thema: Flankenerkennung

  1. #1
    Registriert seit
    13.09.2008
    Beiträge
    34
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    hi,

    ich habe folgendes Problem.
    Ich möchte bei einer Änderung eindes Signals(DWORD) auf <>0 eine Aktion ausführen, allerdings nur einmal. D.h. ich muss die steigende Flanke auswerten.

    Im moment Versuche ich es so:

    L #OBJ
    L 0
    <>D
    FP #FM

    UN #FM
    BEA
    ...




    Aber irgendwie funktionierts nicht so wie ich mir das vorstelle
    Zitieren Zitieren Flankenerkennung  

  2. #2
    Registriert seit
    23.02.2007
    Ort
    Regensburg
    Beiträge
    53
    Danke
    18
    Erhielt 4 Danke für 4 Beiträge

    Standard

    Zitat Zitat von knubbl Beitrag anzeigen
    hi,

    ich habe folgendes Problem.
    Ich möchte bei einer Änderung eindes Signals(DWORD) auf <>0 eine Aktion ausführen, allerdings nur einmal. D.h. ich muss die steigende Flanke auswerten.

    Im moment Versuche ich es so:

    L #OBJ
    L 0
    <>D
    FP #FM

    UN #FM
    BEA
    ...




    Aber irgendwie funktionierts nicht so wie ich mir das vorstelle

    Probiers mal so

    Code:
    L #OBJ
    L L#0
    <>D
    FP #FM
    = FM2
     
    UN #FM2
    BEA
    ...
    Gruß

    BiBi

    Alle Menschen sind klug - die einen vorher, die anderen nachher. (Voltaire)


  3. #3
    knubbl ist offline Benutzer
    Themenstarter
    Registriert seit
    13.09.2008
    Beiträge
    34
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    geht leider auch nicht.


    aber ich glaub ich hab das Problem gefunden.

    Wenn ich die Lokalvariable durch einen Merker ersetze geht alles, was auch Sinn macht weil ja der Zustand in 2 Zyklen verglichen wird bei FP und das wird mit einer Lokalvariable etwas schwierig sein.

  4. #4
    Registriert seit
    23.02.2007
    Ort
    Regensburg
    Beiträge
    53
    Danke
    18
    Erhielt 4 Danke für 4 Beiträge

    Standard

    sorry, das hab ich übersehen.
    mit Lokalvariablen als Merker geht es nicht.

    fm und fm2 sind normale Merker (oder in/out variablen).
    Gruß

    BiBi

    Alle Menschen sind klug - die einen vorher, die anderen nachher. (Voltaire)


  5. #5
    Registriert seit
    23.12.2010
    Beiträge
    8
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    UN Mx.y
    BEA
    ...
    beendet deinen Baustein unabhängig vom Zustand deines Flankenmerkers...
    Geändert von Timmaeh (04.04.2011 um 14:29 Uhr) Grund: edit

  6. #6
    Registriert seit
    08.04.2008
    Ort
    Köln
    Beiträge
    844
    Danke
    39
    Erhielt 244 Danke für 199 Beiträge

    Standard

    Hallo Knubbl,

    so wie Du es geschrieben hast, bekommst Du nur mit, wenn das DWord ungleich 0 ist.
    Ändert sich innerhalb des DWords etwas wird keine neue Flanke erzeugt.
    Probier mal folgendes aus:
    Code:
      L     MD    20                    // Neuwerte 
      L     MD    24                    // Altwerte 
      UD    
      XOD   
      L     0
      <>D   
      S     M      1.0                  // Änderung im DWord
    
      L     MD    20                    // Neuwerte 
      T     MD    24                    // Als Altwert ablegen
    Grüße
    Gebs

  7. #7
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 916 Danke für 740 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Gebs Beitrag anzeigen
    Hallo Knubbl,

    so wie Du es geschrieben hast, bekommst Du nur mit, wenn das DWord ungleich 0 ist.
    ...
    Mehr wollte er ja auch nicht:
    Zitat Zitat von knubbl Beitrag anzeigen
    ...
    Ich möchte bei einer Änderung eindes Signals(DWORD) auf <>0 eine Aktion ausführen, allerdings nur einmal.
    ...
    Allerdings wird mit obigen Code von BiBi die Flanke wieder erzeugt, wenn das DWORD zurück auf 0 und dann wieder auf <>0 geht und knubbl hat geschrieben nur einmal.
    Wenn's wirklich nur einmal sein soll, dann S anstatt = verwenden:
    Code:
    L #OBJ
    L L#0
    <>D
    S "OBJ<>0"
     
    U "OBJ<>0"
    FP "FM"
    einmalige Aktion
     
    ...

Ähnliche Themen

  1. Flankenerkennung
    Von Airen im Forum Simatic
    Antworten: 54
    Letzter Beitrag: 05.04.2010, 20:53
  2. Problem mit Flankenerkennung
    Von frickel im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 30.04.2008, 12:14
  3. Problem bei Flankenerkennung
    Von Klerijan im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 07.04.2007, 12:10

Lesezeichen

Berechtigungen

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