Zähler Underflow Overflow

Gast #2602340
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
Gast
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.
Gast
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.
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.
Gast
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.
Gast
> 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.
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.