Forum: Mikrocontroller und Digitale Elektronik Zähler Underflow Overflow


von Anfänger (Gast)


Lesenswert?

Hallo liebes Forum,

zu Anfang möchte ich darauf hinweisen das ich Anfänger auf dem Gebiet 
bin also bitte ich um Rücksicht.

Ich habe einen Zähler ,dieser bietet als Ausgänge den Zählwert (32 Bit 
ganzzahlig, vorzeichenlos), Overflow und Underflow. Wenn der Zähler den 
maximalen Zählwert erreicht hat, und weitergezählt wird, springt der 
Zählerwert vom maximalen Wert auf 0 um und der Ausgang Overflow wird 
gesetzt. Bei inverser Zählrichtung springt der Zählwert von 0 auf den 
maximalen Zählwert um und der Underflow Ausgang wird gesetzt.

Die Werte sollen mit einer SPS weiterverarbeitet werden.

Aus den Werten des Zählers würde ich gerne in der SPS einen Zähler bauen 
der vorzeichenbehaftet arbeitet, d.h negative und positive Werte 
annehmen kann.
Ich stehe nur gerade etwas auf dem Schlauch und wäre dankbar über Tipps 
und Vorschläge.

Gruß

Anfänger

von STK500-Besitzer (Gast)


Lesenswert?

Anfänger schrieb:
> Aus den Werten des Zählers würde ich gerne in der SPS einen Zähler bauen
> der vorzeichenbehaftet arbeitet, d.h negative und positive Werte
> annehmen kann.
> Ich stehe nur gerade etwas auf dem Schlauch und wäre dankbar über Tipps
> und Vorschläge.

Das Vorzeichen hast du schon durch dein Underflow-Bit.

von Marco (Gast)


Lesenswert?

Wie kommt denn der aktuelle Zählerstand in die SPS ?
Kannd der externe Zähler hoch- sowie auch runterzählen ?

Ich würde auf der SPS einen Zähler nachbilden und zyklisch mit dem 
Externen vergleichen. Immer wenn eines mehr drauf ist als bei der 
letzten Abfrage, den "SPS-Zähler" inkrementieren, wenn eines weniger 
drauf ist, dekrementieren. Sollte ein Überlauf stattfinden, den 
Vergleichswert auf 0 setzen und den "SPS-Zähler" inkrementieren, sollte 
ein Unterlauf stattfinden, den Vergleichswert ebenfalls rücksetzen und 
den "SPS-Zähler" dekrementieren.

von Thomas E. (thomase)


Lesenswert?

Anfänger schrieb:
> Ich habe einen Zähler ,dieser bietet als Ausgänge den Zählwert (32 Bit
> ganzzahlig, vorzeichenlos),
Was ist denn eine 32-Bit Zahl mit Vorzeichen? Wo steht das Vorzeichen?
Das Vorzeichen ist das höchste Bit.
Betrachten wir das mal für 8 Bit, dann sind die Zahlen nicht so groß.
Was ist +1 in Hex? Klar 0x01. Was ist -1? Auch klar oder vielleicht auch 
nicht: 0xFF.
Was ist +127? 0x7F. Und -128? 0x80.
Somit zählt der Zähler von -128 bis +127.
Bei 32 Bit sind es dann von -2147483648 bis +2147483647.

Anfänger schrieb:
> Overflow und Underflow.
Die sind nicht für das Vorzeichen, sondern zum kaskadieren.

mfg.

von Anfänger (Gast)


Lesenswert?

Marco schrieb:
> Wie kommt denn der aktuelle Zählerstand in die SPS ?
> Kannd der externe Zähler hoch- sowie auch runterzählen ?

Der Zählerwert kommt mit den zyklischen Prozessdaten auf die SPS.
Es handelt sich bei dem Zähler um eine Ethercat Inkrementalgeberklemme 
EL5101.


Thomas Eckmann schrieb:
> Was ist denn eine 32-Bit Zahl mit Vorzeichen? Wo steht das Vorzeichen?
> Das Vorzeichen ist das höchste Bit.
> Betrachten wir das mal für 8 Bit, dann sind die Zahlen nicht so groß.
> Was ist +1 in Hex? Klar 0x01. Was ist -1? Auch klar oder vielleicht auch
> nicht: 0xFF.
> Was ist +127? 0x7F. Und -128? 0x80.
> Somit zählt der Zähler von -128 bis +127.
> Bei 32 Bit sind es dann von -2147483648 bis +2147483647.

Danke für den Hinweis, dieser Zusammenhang war mir bekannt, ich habe es 
leider nicht präzise geschrieben aber ich würde gerne 32Bit positiv und 
32 Bit negativ zählen.

von holger (Gast)


Lesenswert?

>aber ich würde gerne 32Bit positiv und
>32 Bit negativ zählen.

Dann brauchst du einen 64Bit Zähler.

von Erich (Gast)


Lesenswert?

holger schrieb:
>>aber ich würde gerne 32Bit positiv und
>>32 Bit negativ zählen.
>
> Dann brauchst du einen 64Bit Zähler.

Naja, eigentlich nur einen 33 Bit Zähler.
Allerdings sind die nicht ganz so gängig.

von holger (Gast)


Lesenswert?

> Dann brauchst du einen 64Bit Zähler.>
>
>Naja, eigentlich nur einen 33 Bit Zähler.
>Allerdings sind die nicht ganz so gängig.

Korrekt. Meine Antwort war als pampige
Anmache gedacht damit er mal über sein Problem nachdenkt.

Wenn das Teil rückwärts zählt kommt beim Underflow

0xFFFFFFFF

dann

0xFFFFFFFE

Wenn man das invertiert

0xFFFFFFFF invers 0x00000000
0xFFFFFFFE invers 0x00000001

Also eins zu wenig beim inversen.
Muss er halt das Underflow Bit auswerten und dann
noch eins draufzählen. Einfachste Digitaltechnik.

von Thomas E. (thomase)


Lesenswert?

Erich schrieb:
>> Dann brauchst du einen 64Bit Zähler.
> Naja, eigentlich nur einen 33 Bit Zähler.
So ganz Unrecht hat er da nicht.

Anfänger schrieb:
> Die Werte sollen mit einer SPS weiterverarbeitet werden.
Denn, wenn der Rechner dahinter mit normalen Datentypen arbeitet, ist 
die nächste Stufe 64 Bit. DSPs können auch 48. Aber das ist immer noch 
recht viel. Einem PC wäre das ja völlig egal, aber der Controller in 
einer SPS ist dann doch eher limitiert.

Anfänger schrieb:
> aber ich würde gerne 32Bit positiv und 32 Bit negativ zählen.
Kann mir nicht vorstellen, daß die Aufgabenstellung so ein krummes Zeug 
vorsieht.

mfg.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.