Forum: Mikrocontroller und Digitale Elektronik Absolutwertgeberauswertung, Überlauf Multiturninfo abfangen


von Holger B. (rst-el)


Lesenswert?

Hallo,
arbeite gerade an einer Positionierung mittels Absolutwertgeber (13Bit 
SingleTurn, 12 Bit Multiturn). Hierbei muß abgefangen werden, wenn die 
Multiturninfo während der Bewegung überläuft.

Hat jemand Erfahrungen mit so etwas ?

von Helmut (Gast)


Lesenswert?

Ich würde die Werte explizit abfragen. Elegantere Möglichkeiten sind mir 
nicht bekannt.

von Bürovorsteher (Gast)


Lesenswert?

Was für ein DG? SSI? Solange beim SSI der Takt läuft, werden die Daten 
normalenweiser intern festgeklemmt (Laden des Parallelregisters von den 
Geberscheiben mit der ersten Taktflanke nach Ablauf der Monoflopzeit).
Für jede Positionsabfrage musst du die 25 Takte erneut reinschicken.

Kannst du deine Frage konkreter fassen?

von Holger B. (rst-el)


Lesenswert?

Die Frage hat nichts mit dem Datenstrom zu tun. Es geht um die 
Behandlung der ausgelesenen Informationen:

Beispiel Einlesewerte während der Positionierung:
Zeitpunkt t-2: Eingelesener MT-Wert: 0x3F9A (entspricht Absolutpos 50 
cm)
Zeitpunkt t-1: Eingelesener MT-Wert: 0x3FFE (entspricht Absolutpos 60 
cm)
--- MT-Bereich läuft über -----
Zeitpunkt t:   Eingelesener MT-Wert: 0x0064 (entspricht Absolutpos 
70cm!)

Den Überlauf kann ich nur erkennen und berücksichtigen, in dem ich die 
Zahlenwerte explizit abfrage - an der Unstetigkeit erkenne ich den 
Überlauf.

Hier hatte ich überlegt, ob es auch andere Lösungen gibt.

von Bürovorsteher (Gast)


Lesenswert?

> Den Überlauf kann ich nur erkennen und berücksichtigen, in dem ich die
> Zahlenwerte explizit abfrage - an der Unstetigkeit erkenne ich den
> Überlauf.

Jetzt habe ich deine Frage verstanden. Ja, das ist die einzige 
Möglichkeit,
die du hast, es sei denn, du kannst einen DG-Hersteller dazu bringen, 
dir einen Überlaufimpuls auf einen Statusausgang zu legen.
Vllt. gibt es so etwas auch bereits, was durchaus möglich ist.

von Peter D. (peda)


Lesenswert?

Der Trick bei einem Überlauf ist:
Die Differenz ist immer gültig, solange es nur einen Überlauf zwischen 2 
Abfragen gibt.

Also den alten Wert merken, diesen vom neuen Wert abziehen, das Ergebnis 
vorzeichenrichtig erweitern und dann zu Deinem großen Wert addieren.


Peter

von Brutus (Gast)


Lesenswert?

Peter Dannegger schrieb:
> Der Trick bei einem Überlauf ist:
>
> Die Differenz ist immer gültig, solange es nur einen Überlauf zwischen 2
>
> Abfragen gibt.

Das stimmt in diesem Fall nicht, wenn er (13Bit
SingleTurn, 12 Bit Multiturn = 25Bit) in einer 32 Bit Variable 
gespeichert hat, dann läuft eben nur der "Geber" über, nicht aber die 
"Variable".

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.