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

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

Thema: Ausgänge binär hochzählen

  1. #1
    Registriert seit
    04.07.2015
    Beiträge
    4
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo

    Ich versuche gerade ein banales Programm in AWL zu schreiben, irgendwie geh ich es aber scheinbar verkehrt und viel zu kompliziert an.
    Es sollen jedes mal wenn E0 aktiviert wird die Ausgänge A0-A3 binär hochzählen und wenn E1 aktiviert wird die Ausgänge rückwärts zählen

    Vielleicht kann mir hier jemand zumindest in die richtige Richtung weisen...
    Zitieren Zitieren Ausgänge binär hochzählen  

  2. #2
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.351
    Danke
    452
    Erhielt 692 Danke für 517 Beiträge

    Standard

    definiere doch mal bitte "binär hochzählen".
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

  3. #3
    Registriert seit
    19.06.2015
    Beiträge
    459
    Danke
    26
    Erhielt 40 Danke für 35 Beiträge

    Standard

    1,4,8,16 und rückwärts?

  4. #4
    Lazarus ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    04.07.2015
    Beiträge
    4
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von RONIN Beitrag anzeigen
    definiere doch mal bitte "binär hochzählen".
    sorry war wohl etwas unglücklich ausgedrückt

    also jedes mal wenn E0 aktiviert wird einen Schritt weiter:
    A0
    A1
    A1+A0
    A2
    A2+A0
    A2+A1
    A2+A1+A0
    usw.

  5. #5
    Registriert seit
    19.06.2015
    Beiträge
    459
    Danke
    26
    Erhielt 40 Danke für 35 Beiträge

    Standard

    Kannst du mit einem Vor/Rückwärtszähler machen und den Zählwert dann den Werten dann zuweisen.
    Ziemlich viel Schreibarbeit?Hm - geht vielleicht einfacher.

    Du müsstest dann quasi immer die Summe der Bits zusammenzählen und dann mit einem move-Befehl bei entsprechedem Zählerstand zuweisen.

  6. #6
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.351
    Danke
    452
    Erhielt 692 Danke für 517 Beiträge

    Standard

    a0
    a1
    a1+a0
    a2
    a2+a0
    a2+a1
    a2+a1+a0
    1
    2
    3
    4
    5
    6
    7

    Das wäre dann aber ein ganz normales hochzählen.
    Dafür kannst du alles mögliche nehmen.
    Entweder irgendeinen Zähler, oder einfach direkt selber zählen...
    Code:
          U E0.0          //raufzählen
          FP M100.0
          SPBN Ma01
    
          L MB10
          + 1
          T MB10
    
    Ma01: U E0.1          //runterzählen
          FP M100.1
          SPBN Ma02
    
          L MB10
          + -1
          T MB10
    
    Ma02: L MB10          //Nach unten hin begrenzen
          L 0
          <I
          SPBN Ma03
    
          L 0
          T MB10
    
    Ma03: L MB10          //Nach oben hin begrenzen
          L 15
          >I
          SPBN Ma04
    
          L 15
          T MB10
    
    Ma04: L AB0          //Ergebnis auf AB0 geben ohne A0.4 bist A0.7 zu stören
          L B#16#F0
          UW
          L MB10
          OW
          T AB0
    Geändert von RONIN (04.07.2015 um 20:33 Uhr)
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

  7. Folgender Benutzer sagt Danke zu RONIN für den nützlichen Beitrag:

    Lazarus (04.07.2015)

  8. #7
    Lazarus ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    04.07.2015
    Beiträge
    4
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    viele Dank Ronin, das nenn ich mal eine elegante Programmierart!

    ich grübe allerdings noch warum der obere Überlauf bzw. die Rücksetzung von >15 nach 0 nicht funktioniert...

  9. #8
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.351
    Danke
    452
    Erhielt 692 Danke für 517 Beiträge

    Standard

    Zitat Zitat von Lazarus Beitrag anzeigen
    viele Dank Ronin, das nenn ich mal eine elegante Programmierart!
    ich grübe allerdings noch warum der obere Überlauf bzw. die Rücksetzung von >15 nach 0 nicht funktioniert...
    Weil das Programmbeispiel so programmiert wurde das der Zähler bei 15 stoppt und man dann wieder runter zählen muss.

    Siehe den Teil hier:
    Code:
    Ma03: L MB10          //Nach oben hin begrenzen
          L 15
          >I
          SPBN Ma04
    
          L 15
          T MB10
    Wenn die Zahl (MB10) bereits 15 ist, und (beim Bereich "raufzählen") auf 16 erhöht wird, dann wird durch den obigen Teil aus der 16 wieder eine 15 gemacht.
    Damit geht's nach oben hin nicht mehr weiter. Du müsstest also in dem Schnipsel hier nur eine Zahl ändern damit aus der 16 keine 15, sondern eine 0 wird.
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

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

    Lazarus (04.07.2015)

  11. #9
    Lazarus ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    04.07.2015
    Beiträge
    4
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von RONIN Beitrag anzeigen
    Du müsstest also in dem Schnipsel hier nur eine Zahl ändern damit aus der 16 keine 15, sondern eine 0 wird.
    Ok jetzt glaub ich blick ich durch, danke. Warum wird aber beim anderen "Schnipsel" aus <0 eine 15? D.H. wenn ich von 0 noch einen Step herunterzähle bekomme ich eine 15

  12. #10
    Registriert seit
    06.10.2003
    Beiträge
    3.412
    Danke
    451
    Erhielt 506 Danke für 408 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Lazarus Beitrag anzeigen
    .. warum der obere Überlauf bzw. die Rücksetzung von >15 nach 0 nicht funktioniert...
    Wenn dem so sein soll, dann vielleicht mit "MOD"?
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford

Ähnliche Themen

  1. Binär in Gray
    Von SCLNewbie im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 25.02.2013, 17:34
  2. Dezimal in Binär
    Von SCLNewbie im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 03.12.2012, 22:13
  3. Word in Binär wandeln
    Von emsbootsmann im Forum CODESYS und IEC61131
    Antworten: 5
    Letzter Beitrag: 27.06.2011, 10:04
  4. Eingänge Binär einlesen
    Von Jo Feldhase im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 05.02.2006, 17:43
  5. DINT Binär verarbeiten
    Von M-Arens im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 23.09.2005, 08:49

Lesezeichen

Berechtigungen

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