Binäruntersetzer

Elektrikus

Well-known member
Beiträge
126
Punkte Reaktionen
3
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
 

Astralavista

Well-known member
Beiträge
799
Punkte Reaktionen
112
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.
 

Ralle

Supermoderator
Teammitglied
Beiträge
14.631
Punkte Reaktionen
3.487
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:
 

mnuesser

Well-known member
Beiträge
1.020
Punkte Reaktionen
163
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...
 

M-Ott

Well-known member
Beiträge
1.768
Punkte Reaktionen
365
Das hat aber mit einem Binäruntersetzer genauso viel zu tun, wie der AWL-Schnipsel im ersten Post.
 

hucki

User des Jahres 2014
Beiträge
5.558
Punkte Reaktionen
1.656
Zuviel Werbung?
->Hier kostenlos registrieren
Oh, hätte mir auch den Code ansehen sollen und nicht nur die Kommentare! :oops:

Und vor allem googeln, was 'n Binäruntersetzer ist. :sm10:
 
Zuletzt bearbeitet:
OP
E

Elektrikus

Well-known member
Beiträge
126
Punkte Reaktionen
3
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.
 

hucki

User des Jahres 2014
Beiträge
5.558
Punkte Reaktionen
1.656
...
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:

Aventinus

Well-known member
Beiträge
1.339
Punkte Reaktionen
315
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.
 

PN/DP

User des Jahres 2011-2013; 2015-2017; 2020-2021
Beiträge
17.595
Punkte Reaktionen
5.172
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
 

Onkel Dagobert

Well-known member
Beiträge
5.163
Punkte Reaktionen
1.049
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
 
Oben