Binäruntersetzer

Elektrikus

Level-2
Beiträge
202
Reaktionspunkte
19
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, ich würde gerne eine Binäruntersetzer programmieren der Vor und Rückwärtszählen kann, leider schaffe ich es nur soweit bis zum vorwärtszählen und nicht das rückwärtszählen, dann werden direkt alle zurückgesetzt.


U E 1.0
FP M 0.0
= M 1.0


U M 1.0
UN A 1.0
S A 1.0
R M 1.0

U M 1.0
UN A 1.1
S A 1.1
R M 1.0


U M 1.0
UN A 1.2
S A 1.2
R M 1.0
 
Also ich kapier grad gar nix.
Was soll denn ein Binäruntersetzer sein bzw. wo zählst du etwas in deinem Code?
Das einzige was mit deinem Programmcode gemacht wird, ist bei einer positiven Flanke vom Eingang E1.0 die Ausgänge A1.0 bis A1.2 zu setzen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also ich kapier grad gar nix.
Was soll denn ein Binäruntersetzer sein bzw. wo zählst du etwas in deinem Code?
Das einzige was mit deinem Programmcode gemacht wird, ist bei einer positiven Flanke vom Eingang E1.0 die Ausgänge A1.0 bis A1.2 zu setzen.

Yep, ich bin auch grad am Grübeln, was das wohl soll :confused:
 
irgendwie versucht er per Taster Ausgänge zu schalten:
1. tast = A1.0
2. Tast = A1.1
3. Tast = A1.2

soweit so gut, er bezeichnet das als "Vorwärtszählen"

wie zum himmel will er nun "Rückwärtszählen"

Schreib mal bitte was mehr Info zu dem was du versuchst...
Vielleicht mit einem Hinweis darauf was der Zweck des ganzen ist... vielleicht die Gartenbeleuchtung zu schalten? oder Szenarien im Wohnzimmer oder sowas?
Da gibt es bessere Methoden...
 
Also klar ich könnte auch einen einfachen Zähler nehmen und mit der Bitauswertung oder Vergleicher arbeiten können.

Ich will mit EINEN Taster bis 3 zählen und dann wieder von 3-0

A1.0
A1.0 u A1.1
A1.0u a1.1 u a1.2
A1.0 u a1.1
a1.0
---

Also dieser Ablauf. Ich habe bis jetzt nur die Bezeichnung Binäruntersetzter finden können für dieses Vorhaben. Ich weiss es ist auch "sinnlos", aber ich soll für die Schule halt solch eine Art Ablauf programmieren. Ich habe es bis dahin auch sehr gut geschafft und viel gegoogelt und gelesen, leider ohne Erfolg, aber die Bezeichnung Binäruntersetzer habe ich gefunden. Ich schaffe es auch das nach dem die 3 Ausgänge gesetzt worden sind danach wieder 1 zurücksetzen zu lassen nur danach wird dieser wieder gesetzt. Ich komme an dieser stelle einfach nicht weiter und habe schon ausprobiert wie ein Esel aber beiße da auf Granit.
 
...
Ich will mit EINEN Taster bis 3 zählen und dann wieder von 3-0

A1.0
A1.0 u A1.1
A1.0u a1.1 u a1.2
A1.0 u a1.1
a1.0
...
Oh - dann macht ja mein Link doch genau das, was du wolltest [EDIT] (oder auch nicht) [/EDIT]. Allerdings auf der Logo. War aber auch nur für den Sinn gedacht.
[EDIT] Was is' denn los heute, lesen müsste man können - Du willst ja nur einen Taster! [/EDIT]

Ein Binäruntersetzer ist dies dann allerdings nicht.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Für dein Problem fallen mir spontan zwei Ansätze ein, es gibt aber wahrscheinlich 1000.

1. Du zählst hoch bis 3 und setzt dir dann einen Merker damit du weißt dass du bei der nächsten Flanke wieder rückwärts zählen musst. Wenn dann nur noch A1.0 leuchtet setzt du den Merker wieder zurück damit du wieder vorwärts zählst.
2. Du bastelst dir eine Schrittkette, schaltest jeweils mit einer Flanke weiter und steuerst die Ausgänge entsprechend der Schrittmerker an.
 
Ich würde es spontan ähnlich wie Aventinus machen:
* Taster -> Vorwärtszähler 0-1-2-3-4-5-0-1-...
* für jeden der 3 Ausgänge ein Oder-Netzwerk oder Vergleicher
A1.0 := z<>0
A1.1 := z>=2 & z<=4
A1.2 := z=3

Harald
 
Für dein Problem fallen mir spontan zwei Ansätze ein, es gibt aber wahrscheinlich 1000...
Dem stimme ich zu ;) .

Ich würde zunächst einen Impuls bilden, wie es der TE schon gemacht hat. Mit diesem zähle ich einen Zähler hoch, bzw. verwende gleich einen Umlaufzähler. Mit dem Zählwert bediene ich einen Sprungverteiler und setze meine Ausgänge nach Herzenslust.

Vorteile:
  • sehr übersichtlich
  • leicht änder- und erweiterbar
Code:
//*** Initialisierung
      CLR   
      =     A      1.0
      =     A      1.1
      =     A      1.2

//*** Impulsbildung
      U     E      1.0                  // Weiterschalten
      FP    M      0.0
      =     M      1.0

//*** Umlaufzähler
      U     M      1.0
      SPBN  M001
      L     MW     2
      +     1
      L     10                          // Anzahl der Schritte
      MOD   
      T     MW     2
M001: NOP   0

//*** Sprungverteiler (max. 255 Schritte)
      L     MW     2
      SPL   ERR
      SPA   S01
      SPA   S02
      SPA   S03
      SPA   S04
      SPA   S05
      SPA   S06
      SPA   S07
      SPA   S08
      SPA   S09
      SPA   S10
ERR:  SPA   ENDE

//*** Schritt 1
S01:  SET   
      =     A      1.0
      SPA   ENDE

//*** Schritt 2
S02:  SET   
      =     A      1.0
      =     A      1.1
      SPA   ENDE

//*** Schritt 3
S03:  SET   
      =     A      1.0
      =     A      1.1
      =     A      1.2
      SPA   ENDE

//*** Schritt 4
S04:  SET   
      =     A      1.0
      =     A      1.1
      SPA   ENDE

//*** Schritt 5
S05:  SET   
      =     A      1.0
      SPA   ENDE

//*** Schritt 6
S06:  SET   
      SPA   ENDE

//*** Schritt 7
S07:  SET   
      SPA   ENDE

//*** Schritt 8
S08:  SET   
      SPA   ENDE

//*** Schritt 9
S09:  SET   
      SPA   ENDE

//*** Schritt 10
S10:  SET   
      SPA   ENDE


ENDE: NOP   0
 
Zurück
Oben