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

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

Thema: Flankenwechsel als Startereignis für Zähler erzeugen...

  1. #1
    Registriert seit
    07.11.2004
    Beiträge
    697
    Danke
    69
    Erhielt 64 Danke für 48 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich bin ein wenig genervt...


    Ich möchte in Step7 AWL in einem Weckalarm (OB 35 - 250ms) einen FB aufrufen.

    Dieser FB soll aber im gegensatz zu den anderen nur jedes n-te mal des Weckalarms aufgerufen werden.

    Ich dachte ich nehme einen Zähler um den Aufruf zu überspringen bis der Zählwert wieder passt, und setze diesen dann wieder zurück.

    Geht aber irgendwie nicht


    Ich habe in der Hilfe nachgelesen, aber die Beispiele beziehen sich immer auf Eingänge oder Merker mit denen Flankenwechsel erzeugt werden um die Zähler zu aktivieren.

    Kann ich aber so nicht brauchen.


    Geht das auch irgendwie anders ?? (ohne auf einen Eingang zu hören z.B.)
    RS (rs-plc-aa)
    ______________________________________________
    Morgen ist Heute Gestern...
    ______________________________________________
    Installierst du noch - oder Arbeitest du schon ?
    ______________________________________________
    Zitieren Zitieren Flankenwechsel als Startereignis für Zähler erzeugen...  

  2. #2
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard

    Kenne deinen Code nicht, aber setzt du vielleicht den Zaehler zurück, bevor du die Aktion ausführst?
    So sollte es gehen:
    Code:
    L Zaehler // irgendein Merker- oder Datenwort (keineLokaldaten!!)
    L 1
    +I
    T Zaehler
    
    L Vergleichswert
    <I 
    SPB =M001
    &#91;deine Aktion&#93;
    L 0
    T Zaehler
    M001&#58; NOP 0

  3. #3
    Registriert seit
    06.10.2003
    Beiträge
    3.411
    Danke
    451
    Erhielt 504 Danke für 407 Beiträge

    Standard

    Hallo,

    wenn es ein Zähler sein soll, dann müsstest du den Zahler im OB35 zweimal aufrufen, einmal mit VKE=0 und einmal mit VKE=1. Dann hat er die Flanke, die er braucht.


    Gruss, Onkel

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

    Standard

    Code:
    L Zaehler // irgendein Merker- oder Datenwort &#40;keineLokaldaten!!&#41;
    INC 1 
    T Zaehler
    
    L Vergleichswert
    <I
    SPB =M001
    &#91;deine Aktion&#93;
    L 0
    T Zaehler
    M001&#58; NOP 0
    spart eine Zeile code durch INC 1 statt l1 und +I
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten
    Zitieren Zitieren geht no kürzer...  

  5. #5
    Registriert seit
    27.08.2004
    Ort
    Bei Bremen
    Beiträge
    648
    Danke
    11
    Erhielt 12 Danke für 10 Beiträge

    Standard

    INC Arbeitet nur für das Byte...
    Gruß
    Heinz

  6. #6
    Avatar von rs-plc-aa
    rs-plc-aa ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    07.11.2004
    Beiträge
    697
    Danke
    69
    Erhielt 64 Danke für 48 Beiträge

    Standard

    Hallo,

    danke für die schnellen Antworten !

    Das mit der Byteinkrementierung kannte ich bereits - warum ich es nicht nahm weiß ich nicht...

    Meine Frage zielte eher in Richtung der fest verankerten Zähler (Z0-Zx) in Step7.

    Also mit zähle vorwärts/rückwärts, lade Zählwert und setze/rücksetze Zähler...

    Genau die gleiche Problematik hatte ich mit den Timern in AWL auch schon.



    Ein Ansatz (der nicht funktionierte) sah so aus:

    Code:
    // Netzwerk x im OB 35...
    
    L Z 1
    L 2
    ==I
    SPBN a000
    
    CALL FB111,DB111
    
    R Z1
    SPA ende
    
    a000&#58; Nop 0
    
    ZV Z1
    
    ende&#58; NOP 0
    Im OB 100 sollte dann vielleicht noch der Zähler entweder auf 0 oder auf den Sollvergleichswert gesetzt werden - falls beim ersten Aufruf der FB gleich aufgerufen werden soll.

    Jetzt fehlen quasi nur noch die Flankenwechsel vor "R Z1" und "ZV Z 1".

    Einen digitalen Eingang kann und will ich nicht nehmen da er damit nix zu tun hat, und CLR gefolgt von SET hat auch nicht funktioniert...

    Ich möchte einfach ohne viel Heckmeck zählen...

    Aber das war mir bei den Timern auch schon nicht vergönnt... (was ich da gemacht habe zeige ich hier lieber nicht...).
    RS (rs-plc-aa)
    ______________________________________________
    Morgen ist Heute Gestern...
    ______________________________________________
    Installierst du noch - oder Arbeitest du schon ?
    ______________________________________________

  7. #7
    Registriert seit
    27.08.2004
    Ort
    Bei Bremen
    Beiträge
    648
    Danke
    11
    Erhielt 12 Danke für 10 Beiträge

    Standard

    Auf die Schnelle,
    versuche doch mal vor dem R Zxy U VKE1.

    Es gibt immer / häufig Probleme, weil Timer / Zähler nicht zyklisch durchlaufen werden...
    Gruß
    Heinz

  8. #8
    Registriert seit
    29.01.2004
    Beiträge
    322
    Danke
    10
    Erhielt 22 Danke für 22 Beiträge

    Standard

    Hallo
    Der OB35 wird doch alle x ms einmal durchlaufen.
    Kann man dann nicht einfach ein mw hochzählen?
    Code:
    l mw100
    l 1
    +i
    t mw100
    
    l 2
    ==I
    spbn weit
    call fb1,db1
    l 0
    t mw100
    weit&#58; nop
    Gruß

    Znarf

  9. #9
    Avatar von rs-plc-aa
    rs-plc-aa ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    07.11.2004
    Beiträge
    697
    Danke
    69
    Erhielt 64 Danke für 48 Beiträge

    Standard

    Zitat Zitat von Znarf
    Hallo
    Der OB35 wird doch alle x ms einmal durchlaufen.
    Kann man dann nicht einfach ein mw hochzählen?

    Gruß

    Znarf
    Hallo,

    ja man kann...

    Aber mir geht es nochmals gesagt um die Problematik mit den Zählern.
    RS (rs-plc-aa)
    ______________________________________________
    Morgen ist Heute Gestern...
    ______________________________________________
    Installierst du noch - oder Arbeitest du schon ?
    ______________________________________________

  10. #10
    Registriert seit
    29.01.2004
    Beiträge
    322
    Danke
    10
    Erhielt 22 Danke für 22 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ok, habe ich dann missverstanden.
    Probier folgendes:

    Code:
          UN    M    120.0
          =     M    120.0
    
          U     M    120.0
          ZV    Z     10
    
          L     Z     10
          L     10
          >=I   
          SPBN  weit
         call fb1, db1
          SET   
          R     Z     10
    weit&#58; NOP   0
    Gruß

    Znarf

    Edit: ich habe bei einem Aufrufintervall von 100ms ein Rücksetzen des Z10 ca alle 2s. D.h. du musst den Vergleichswert halbieren, da ja der OB35 einmal mit m120.0 als true und beim nächsten mal mit false aufgerufen wird.

Ähnliche Themen

  1. Betriebsstunden Zähler / max. Zähler Anzahl.
    Von superkato im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 03.12.2010, 16:38
  2. frage zum flankenwechsel
    Von linuxluder im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 04.10.2008, 21:15
  3. Frage zum Flankenwechsel
    Von linuxluder im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 14.09.2008, 18:39
  4. 6 stelliger zähler erzeugen
    Von stift im Forum Programmierstrategien
    Antworten: 2
    Letzter Beitrag: 26.02.2008, 10:34
  5. Maximalzählwert Zähler S7-300 + maximale Zähler CPU
    Von DennisBerger im Forum Simatic
    Antworten: 16
    Letzter Beitrag: 02.07.2007, 10:54

Lesezeichen

Berechtigungen

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