Absolutwertgeberauswertung, Überlauf Multiturninfo abfangen

Gast #2292013
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?
OP #2292168
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.
Gast #2292255
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.
#2292314
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
Gast #2292592
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".

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren