bits sammeln und dezimal zählen

A

Anonymous

Guest
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo,
folgendes: ich sammel bits die in der reihen folge reinkommen.
0000000, 0000001, 0000011 ,0000111
0001111....usw. bis all 1 sind. danach gehen alle wieder auf Null.

nun möchte ich möglichst einfach die eigehenden bits mit einem zähler zählen? d.h.
0000000 = 0
0000001 = 1
0000011 = 2 usw...

es soll ein word oder sogar ein doppelword so fedüllt werden und mein zähler soll bis16 bzw bis 32 zählen.
wie mache ich sowas? die schwierigkeit ist einen wechsel zu erkennen.

danke
 
Ich bin kein SPS-Programmierer, daher kann ich kein Beispiel in AWL liefern, aber ich würde das so machen:

  • 1. Ergebnis auf 0 setzen
    2. Wenn Bit_0 = 0
    3. dann Ergebnis zurückliefern und fertig
    4. sonst Ergebnis incrementieren und Eingangswert rechts schieben (SRW oder SRD, nicht SSI oder SSD)
    5. Weiter mit 2.
Dann ist es gar nicht nötig, einen Wechsel zu erkennen.

Viele Grüße
Axel Kinting
 
dez in bit darstellen

danke erstmal. ihr habt mir sehr weitergeholfen.
nun folgendes: ich hab am eingang DEZ 7 und will nur das 7 bit angehen lassen. bei DEZ 8 das 8.Bit usw.
0=00000000
1=00000001
2=00000010
3=00000100 usw...

wie stelle ich das an?

danke
 
Aus genannten Gründen wieder in Beschreibungssprache:

  • 1. Wenn Eingang = 0 dann Ergebnis = 0 und weiter mit 5.
    2. Zähler = 1
    3. Ergebnis = 1
    4. Solange Zähler < Eingang: schiebe links Ergebnis und inkrementiere Zähler
    5. Fertig
Viele Grüße
Axel Kinting
 
Zurück
Oben