Encoder nullen

Sisu

Member
Beiträge
15
Punkte Reaktionen
0
Zuviel Werbung?
->Hier kostenlos registrieren
Hallo zusammen!

meine Ausgangslage:

Inkrementall Encoder welcher in den positiven sowie auch in den negativen Bereich verläuft.
Die Klemme für die Auswertung hat einen "Nullen" Eingang, also die Encoderwert auf Null stellen.


momentane Lösung:

L Wert Encoder
L Speicher
==I
FP Merker

//------

U Merker
= Encoder "nullen"

//-----

L Wert Encoder
T Speicher


Es läuft soweit, aber teilweise habe ich Verzögerungen beim nullen.

Gibt es eventuell noch eine "schönere" Lösung?

Danke für euere Hilfe
 

IBFS

Well-known member
Beiträge
4.057
Punkte Reaktionen
886
Umso schneller der Umdrehungen umso mehr hinkt der Aktualwert in der SPS dem Wert an der Welle hinterher.
Normalerweise trägt man im Antriebskontroller den Modulofaktor ein - Anzahl der Incremente pro Umdrehung -
und schalten den Flag von Linearachse auf Rundachse um. Ich weißt ja nicht was du da an Hardware hast, aber das
Nullen über die SPS zu machen ist nicht sinnvoll wenn die Achse dabei dreht.

Grüße

Frank
 

rostiger Nagel

Forums-Knochenbrecher
Teammitglied
Beiträge
15.045
Punkte Reaktionen
4.721
Zuviel Werbung?
->Hier kostenlos registrieren
Die Verwendung deines Flankemerker ist nicht ganz OK.
Das ist eigentlich ein Hilfsmerker zur Erzeugung der Flanke
und wird nicht abgefragt.

Code:
L Wert Encoder
L Speicher 
==I
FP Merker
= Encoder "nullen"



L Wert Encoder
T Speicher
 
OP
S

Sisu

Member
Beiträge
15
Punkte Reaktionen
0
Danke für eure Tipps!

@IBFS

Also es ist ein Handrad welches sich sobald im Stillstand befindet auf "Null" schalten soll! Also kein Antriebsmodul, etc. Als Auswertung wird eine KL5101 von Beckhoff verwendet.

@ rostiger Nagel

Ja ich weiss und deshalb frage ich nach Rat ;)
 

rostiger Nagel

Forums-Knochenbrecher
Teammitglied
Beiträge
15.045
Punkte Reaktionen
4.721
Hallo Sisu,
in deinen Beispiel hast du den Flankenmerker abgefragt, dieser ist aber
bei dem Vergleich 'Wert Encoder' zu 'Speicher' immer '1' solange der Vergleich
eine '1' liefert.

Aber grundsätzlich ist dein Vergleich sowieso ungünstig, du solltest nach 'Größer'
oder 'kleiner' vergleichen, da das Increment zu treffen nicht immer gelingt.
 

IBFS

Well-known member
Beiträge
4.057
Punkte Reaktionen
886
Zuviel Werbung?
->Hier kostenlos registrieren
@sisu

und wie erkennst du dann den Stillstand?

Ich würde sagen, wenn sich der Aktualwert länger als 1 Sekunde nicht mehr ändert, erst dann würde ich Nullen.

Daher brauchst du vor deinem Nullen noch einen Vergleicher zwischen AltWert - letzter SPS-Zyklus und Aktualwert - aktueller SPS-Zyklus.

Ich kenne die Auflösung deines Encoders nicht, aber in Grenzfällen könnte der Wert "flackern". Daher muss ggf. noch etwas davorgeschaletet werden, was dieses "Rauschen" unterdrückt,
d.h, der Wert des Einganges wird nur dann an deinen Vergleicher weitergeleltet, wenn sich der Wert mindestens um + oder - 2 INC verändert hat. Das muss man aber im Einzelfall ausprobieren.

Frank
 

rostiger Nagel

Forums-Knochenbrecher
Teammitglied
Beiträge
15.045
Punkte Reaktionen
4.721
Um den Stillstand zu erfassen könntest du vielleicht so Vorgehen.

Code:
L Encoder
L Speicher
-I
L 1
<=I
= Stillstand

U Stillstand
L S5T#1s
SE T 0

U T 0
= EndcoderNullen

L Encoder
T Speicher
 

Blockmove

Supermoderator und User des Jahres 2019
Teammitglied
Beiträge
10.386
Punkte Reaktionen
3.028
Ich kenn die Beckhoff-Klemme nicht, aber die meisten Klemmen dieser Art liefern auch Zusatz-Informationen wie Drehrichtung oder Stillstand. Wirf doch mal einen Blick ins Handbuch der Klemme.

Gruß
Dieter
 
OP
S

Sisu

Member
Beiträge
15
Punkte Reaktionen
0
Zuviel Werbung?
->Hier kostenlos registrieren
Danke für eure Hilfe

Zusatzinfo gibt es auch bei dieser Klemme, aber nicht die Stillstands Info!

Werde den Code vom "rostigen Nagel" ausprobieren ;)

Danke nochmals
 
Oben