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

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

Thema: Counter mit beliebigem Wert zum Inkrementieren

  1. #1
    Registriert seit
    02.02.2011
    Beiträge
    63
    Danke
    31
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen
    Wie baut ihr eigentlich einen Softwarezähler (in FUP), ähnlich einem “CTU”, den man anstatt um 1 um eine beliebige Zahl inkrementieren kann?
    Beste Grüße und viele Dank
    Geri
    Zitieren Zitieren Counter mit beliebigem Wert zum Inkrementieren  

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

    Standard

    Nimm dir zB eine Integervariable und addiere deinen beliebigen Wert dazu. Dafür gibt es links unter Festpunktfunktionen den Baustein ADD_I dort an den Enable eine Flanke vor das Zählsignal schalten. Zum setzen des Zählers auf einen bestimmten Wert nimmst du den MOVE Befehl und schreibst einen Wert in die Integervariable. Zum Schalten eines Ausganges brauchst du nun nur noch eine Vergleichsfunktion. Davon gibt es ja auch genug (stehen links unter Vergleicher) und Fertig ist dein Zähler.
    Den Fortschritt verdanken die Menschen den Unzufriedenen.
    Aldous Huxley

  3. #3
    GBat ist offline Benutzer
    Themenstarter
    Registriert seit
    02.02.2011
    Beiträge
    63
    Danke
    31
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Pinky

    Danke für deine Tipps. Ich habe mal versucht deine Beschreibung nachzubilden, kam aber nicht ganz auf einen grünen Zweig. Vielleicht kannst du mir das noch ein wenig konkretisieren. Meine Version sah so aus. Diese funktionierte allerdings nicht.

    Beste Grüsse und vielen Dank nochmals

    GeriCounter01.png

  4. #4
    GBat ist offline Benutzer
    Themenstarter
    Registriert seit
    02.02.2011
    Beiträge
    63
    Danke
    31
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Der Counter funktioniert nun halbwegs. Wenn der Eingang IXE0 1 ist, dann wird in der Simulation interessanterweise aber eine große Zahl angezeigt...
    Habt ihr hierfür vielleicht eine Erklärung

    Beste Grüsse
    Counter_OK.pngCounter_NOK.png
    Geri

  5. #5
    Registriert seit
    05.10.2005
    Beiträge
    2.373
    Danke
    321
    Erhielt 296 Danke für 266 Beiträge

    Standard

    versuch es mal mit einer pos. Flanke von IXE0. sonst addiert er in jedem Zyklus... bis zum Überlauf deiner Variablen...

  6. #6
    GBat ist offline Benutzer
    Themenstarter
    Registriert seit
    02.02.2011
    Beiträge
    63
    Danke
    31
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Thomas

    Ich war eigentlich der Meinung, dass "P" einen einzelnen Impuls erzeugt, wenn der Eingang auf 1 geht..?
    Interessanterweise stimmt auch der Zählerwert, wenn der Eingang gerade auf 0 ist. Der Zähler zählt "schön" bei jedem Übergang von 0 nach 1 um zwei weiter. Solage am Eingang aber eben eine 1 anliegt stimmt der Wert in der Simulation nicht.
    Geht er wieder von 1 auf 0, dann wird der richtiger Zählerwert ausgegeben..

    Beste Grüsse
    Geri

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

    Standard

    Vor allem ist es schlecht, wenn der Counter auf Adresse MD0 schon die Bits M0.0 bis M3.7 belegt, den Flankenmerker auch noch auf die Adresse M0.0 zu legen!


    Zitat Zitat von GBat Beitrag anzeigen

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

    190B (13.07.2013)

  9. #8
    Registriert seit
    05.10.2005
    Beiträge
    2.373
    Danke
    321
    Erhielt 296 Danke für 266 Beiträge

    Standard

    Sorry mein Fehler, hatte auf meinem Telefon nicht so genau hingeschaut.

    Gesendet von meinem GT-N7100 mit Tapatalk 2

  10. Folgender Benutzer sagt Danke zu thomass5 für den nützlichen Beitrag:

    GBat (14.07.2013)

  11. #9
    Registriert seit
    15.04.2011
    Beiträge
    1.122
    Danke
    229
    Erhielt 208 Danke für 176 Beiträge

    Standard

    Du nutzt den Merker 0.0 als Flankenmerker für die Auswertung des positiven Impuls. Der Merker 0.0 ist aber ein Merker innerhalb des Bereichs des MD0.
    Dadurch kommt es zur einer Überschneidung. Nimm mal für den Flankenmerker z.B. den Merker 4.0, wenn dieser wirklich frei ist.
    Gruß
    190B

  12. Folgender Benutzer sagt Danke zu 190B für den nützlichen Beitrag:

    GBat (14.07.2013)

  13. #10
    GBat ist offline Benutzer
    Themenstarter
    Registriert seit
    02.02.2011
    Beiträge
    63
    Danke
    31
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo 190B


    Danke für den Hinweis! Gibt es eigentlich eine Möglichkeit solche Überschneidungen per Knopfdruck festzustellen? ..oder wie macht ihr das allgemein um das Problem zu vermeiden?.
    1.) Man könnte für die unterschiedlichen Typen ja z.B. von Haus aus unterschiedliche Speicherbereiche definieren. Z.B. M0-100 bitmerker, M101-102 Bytes, M201-300 Word ....
    2.) Alignment-Liste prüfen
    3.) ...


    Kann das Problem auch bei Datenbausteinen auftreten?

    Beste Grüsse und Danke nochmals

    Geri

    Die Ressourcensicht

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 19.12.2011, 16:00
  2. DB Wert mit Hex Wert Vergleichen?
    Von ibanesch im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 13.02.2011, 14:32
  3. Counter Wert des SFC47 löschen
    Von Sesssko im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 19.04.2009, 10:09
  4. Zeitmessung durch Inkrementieren
    Von HTL im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 22.02.2009, 15:05
  5. Antworten: 3
    Letzter Beitrag: 24.04.2006, 11:35

Lesezeichen

Berechtigungen

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