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

Ergebnis 1 bis 6 von 6

Thema: Tastlängen abfragen

  1. #1
    Registriert seit
    11.03.2009
    Beiträge
    4
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich würde gerne über einen Taster mehrere Aktionen steuern je nachdem wie lange ich den Taster drücke.

    z.B. Taster 1 Sek gedrückt = Ausgang 0.0 ein, Taster 5 Sek gedrückt Ausgang 0.1 ein (aber Ausgang 0.0 soll aus bleiben)

    Die Ausgänge längenabhängig zu steuern bekomme ich mit TON hin aber die überschneiden sich dann immer.

    Jemand einen Rat?

    Danke im Voraus
    Zitieren Zitieren Tastlängen abfragen  

  2. #2
    Registriert seit
    10.02.2008
    Ort
    Klagenfurt/Austria
    Beiträge
    80
    Danke
    4
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Hi!

    Frag doch einfach nach der einen Sekunde die negative Flanke ab. Sprich wenn nach 1er Sekunde der Taster losgelassen wird, geht der Ausgang auf 1, wenn nicht dann nicht.
    Selbiges bei 3,5,8,10 Sekunden...

    So würd ich das am einfachsten machen.

    EDIT:

    Habs grad versucht, funzt einwandfrei:

    Erste Abfrage auf 1S:
    U E0.0
    L S5T#1S
    SE T1
    U T2
    R T1
    NOP 0
    NOP 0
    U T1
    = M 0.0

    U E0.0
    FN M 0.1
    U M 0.0
    S A 0.0
    2. Abfrage auf 3s:

    U E0.0
    L S5T#3S
    SE T2
    U T3
    R T2
    NOP 0
    NOP 0
    U T2
    = M0.3

    U E0.0
    FN M 0.4
    U M 0.3
    S A 0.1
    usw. usf...
    Geändert von DjTommyB (21.05.2010 um 17:48 Uhr)
    gültig bis auf widerruf:
    SIMATIC Step7 V5.4 + SP3 + HF1
    SIMATIC PLCSim V5.3 + SP1
    SIMATIC ProTool V6.0 + SP2

    (um das nicht immer wieder schreiben zu müssen.....)

  3. Folgender Benutzer sagt Danke zu DjTommyB für den nützlichen Beitrag:

    waskostdas (25.05.2010)

  4. #3
    Registriert seit
    20.03.2010
    Beiträge
    59
    Danke
    10
    Erhielt 9 Danke für 8 Beiträge

    Standard

    Hier ist mal ein Ansatz den du auch in einem FB programmieren und dann so oft du willst als Multiinstanz aufrufen kanst.

    Code:
           U     #taktmerker_10Hz
            FP    #hilfsmerker1_flanke
            =     #impuls_10ms                // Aufbereitung 0,1sek Impuls
       
            U     #taster
            FP    #hilfsmerker2_flanke
            NOT   
            SPB   jum1
            L     0
            T     #Zaehler_10ms_Imp           // Reset Zaehler 
      jum1: NOP   0
       
            U     #taster
            U     #impuls_10ms
            NOT   
            SPB   jum2
            L     1
            L     #Zaehler_10ms_Imp           // Timer als Zähler nachgebildet
            +I    
            T     #Zaehler_10ms_Imp
      jum2: NOP   0
       
            U(    
            L     0
            L     #Zaehler_10ms_Imp
            <=I   
            )     
            U(    
            L     9
            L     #Zaehler_10ms_Imp
            >=I   
            )     
            UN    #taster
            =     #Ausgang_1                  //Ausgang 1 Taste kürzer als 1sek betätigt
       
            U(    
            L     10
            L     #Zaehler_10ms_Imp
            <=I   
            )     
            U(    
            L     19
            L     #Zaehler_10ms_Imp
            >=I   
            )     
            UN    #taster
            =     #Ausgang_2                  //Ausgang 2 Taste länger als 1sek kürzer als 2sek betätigt
       
            U(    
            L     20
            L     #Zaehler_10ms_Imp
            <=I   
            )     
            U(    
            L     29
            L     #Zaehler_10ms_Imp
            >=I   
            )     
            UN    #taster
            =     #Ausgang_3                  //Ausgang 3 Taste länger als 2sek kürzer als 3sek betätigt
    Diese Version hat noch den Vorteil das wenn der Taster länger als die längste angegebene Zeit gedrückt wird alle Ausgänge ausgeschaltet werden. Es werden keine Timer benötigt und es können sehr leicht noch mehr Ausgänge dabeiprogrammiert werden.
    Den Fortschritt verdanken die Menschen den Unzufriedenen.
    Aldous Huxley

  5. Folgender Benutzer sagt Danke zu Pinky für den nützlichen Beitrag:

    waskostdas (25.05.2010)

  6. #4
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.327
    Danke
    932
    Erhielt 3.332 Danke für 2.690 Beiträge

    Idee

    Code:
           U     #taktmerker_10Hz
            FP    #hilfsmerker1_flanke
            =     #impuls_10ms                // Aufbereitung 0,1sek Impuls
    Dieser Programmcode funktioniert nur korrekt, wenn die Zykluszeit der CPU immer kleiner 50ms ist.


    Code:
            U     #taster
            FP    #hilfsmerker2_flanke
            NOT   
            SPB   jum1
    Für NOT + SPB gibt es fertig den Sprungbefehl SPBN.
    Code:
            U     #taster
            FP    #hilfsmerker2_flanke
            SPBN  jum1

    Code:
            U(    
            L     10
            L     #Zaehler_10ms_Imp
            <=I   
            )     
            U(    
            L     19
            L     #Zaehler_10ms_Imp
            >=I   
            )     
            UN    #taster
            =     #Ausgang_2                  //Ausgang 2 Taste länger als 1sek kürzer als 2sek betätigt
    Warum die Vergleiche "verkehrt herum"?
    So ist es viel verständlicher:
    Code:
            U(    
            L     #Zaehler_10ms_Imp
            L     10
            >=I   
            )     
            U(    
            L     #Zaehler_10ms_Imp
            L     19
            <=I   
            )     
            UN    #taster
            =     #Ausgang_2                  //Ausgang 2 Taste länger als 1sek kürzer als 2sek betätigt
    Gruß
    Harald

  7. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    waskostdas (25.05.2010)

  8. #5
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    Hallo,
    ich nehme an, dass du die Funktion "Taste kurz" und "Taste lang" von LCN oder EIB nachempfinden willst ...
    Das funktioniert bei denen so, dass erstmal irgendwo festgelegt ist, ab wann ein Signal als "lang" interpretiert wird. Dann läuft es weiterhin so, das mit dem Tastendruck der Timer gestartet wird. Kann die Zeit ablaufen, so ist es ein "lang"-Signal. Diese Entscheidung wird dann aber tatsächlich erst nach Ablauf der vorgegebenen Zeit getroffen. Wird die Taste losgelassen bevor der Timer ablaufen konnte, so wird in dem Moment die Entscheidung getroffen und das Signal als "kurz" eingestuft ...

    Gruß
    LL

  9. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    waskostdas (25.05.2010)

  10. #6
    waskostdas ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    11.03.2009
    Beiträge
    4
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Rotes Gesicht


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    erstmal danke für die Lösungsansätze.
    Ich habe leider vergessen zu sagen das ich das ganze unter Microwin 4.0 zu lösen versuche. Bin weiterhin für jeden Rat dankbar.
    Wo ist eigentlich dokumentiert wie ich unter Microwin FB's erstelle?

    Gruß

    Helge
    Zitieren Zitieren Funktion unter Microwin  

Ähnliche Themen

  1. Bit in PEW abfragen?
    Von D4K!ZZ4 im Forum Simatic
    Antworten: 20
    Letzter Beitrag: 29.10.2011, 16:41
  2. DB adresse in FUP abfragen
    Von JOKER83 im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 19.05.2009, 16:47
  3. S7 300 Uhrzeit abfragen !!
    Von jamalau im Forum Simatic
    Antworten: 27
    Letzter Beitrag: 06.12.2006, 18:16
  4. SMS abfragen für S7
    Von lsr im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 23.06.2005, 22:03
  5. Mit SCL Flanke 0->1 abfragen
    Von Anonymous im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 21.06.2005, 18:07

Stichworte

Lesezeichen

Berechtigungen

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