Drehzahl- und Drehrichtungserkennung mittels 2 um 90° Phasenverschobene HallSensoren

Redone

Level-1
Beiträge
20
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Jungs,
ich arbeite im Moment auf ein Kleines Projekt und Zwar ich muss einem Zahnrad der Gleichstrommaschine 2 um 90° Grad Phasenverschobene Hall Sensoren anbringen und damit das Drehzahl und die Drehrichtung mittels CodeSys V2.3 erfassen. kann mir bitte jemanden helfen wie ich es anfangen soll...:confused:

Vielen DAnk im Voraus
 
Ich gehe von digitalen Ausgängen der Sensoren aus. Ausserdem von einem Magneten.
Mit dieser Anordnung bekommst Du pro Umdrehung (des Zahnrads) einen Impuls für Drehzahl und Richtung.

Code:
Pseudocode:

If Flankepositiv_Drehzahl AND NOT Richtung THEN Drehrichtung_rechts:=TRUE; ELSE Drehrichtung_rechts:=FALSE; END_IF;
If Flankepositiv_Drehzahl AND Richtung THEN Drehrichtung_links:=TRUE; ELSE Drehrichtung_links:=FALSE; END_IF;

Bei einem Impuls pro Umdrehung und rel. hoher Drehzahl kannst Du die Impulse von einem Sensor pro Sekunde aufsummieren oder bei langsamer Drehzahl eine Periodendauermessung machen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@weißnix
genau so darf man es nicht machen.
Wenn der Geber auf einer Flanke hin- und her bewegt wird, kommen immer nur Pulse in eine Richtung und ein nachgeschalteter Zähler (z. B. als DBW oder DBD in einem DB) läuft in eine Richtung davon obwohl sich die Position nicht geändert hat.
Man muss, um das zu vermeiden, mindestens die positive und die negative Flanke eines Kanals auswerten.

Gruß
Erich

btw: das kann man alles als boolsche Zuweisung ohne IF hinschreiben.
 
Zuletzt bearbeitet:
Du hast recht.
Hier geht es aber nur um eine Geschwindigkeitserfassung, nicht um Positionen. Ich habe nur mal eine prinzipielle Grundstruktur skizziert.
Wie ich in anderen Threads schon schrieb: Ich löse im Low-Cost Bereich schonmal so ähnlich, und es funktioniert hervorragend.

Der Pseudocode dient nur der Illustration. Natürlich geht das einfacher,logischer.
Für die Rotationsüberwachung müssen natürlich beide Kanäle einbezogen werden. Wenn nur ein Kanal flankt, dann läuft der Zähler so oder so davon:ROFLMAO:. Aber wie gesagt: Hier würde ich garnicht zählen.
 
Hier geht es aber nur um eine Geschwindigkeitserfassung, nicht um Positionen
Der TE schrieb, dass er auch die Drehrichtung erkennen will.


Für die Rotationsüberwachung müssen natürlich beide Kanäle einbezogen werden. Wenn nur ein Kanal flankt, dann läuft der Zähler so oder so davon...
Nö. Wenn Du auf einem Kanal beide Flanken auswertest läuft da nichts davon.

Gruß
Erich
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Sorry leute für meine Verschwindung, ich musste eine Klausur vorbereiten!!! :)
Der LargoD hat recht! ich muss auch die Richtung bestimmen!!
Gruß
Redone
 
Das kann man ganz einfach über eine Tabelle lösen. Es darf sich ja immer nur eines von beiden Signalen ändern (Gray-Code). Erlaubt sind also die folgenden Zustände, Übergänge sind immer nur von einer Zeile zur nächsten möglich. Die Drehrichtung bestimmt, wie herum man durch die Tabelle läuft.

Zustand Signale
0 00
1 01
2 11
3 10

Mit freundlichen Grüßen
Thorsten Ostermann
 
Vielen DAnk Ostermann,
kannst du mir bitte genauer erklären wie ich das Programm auf CoDesys schreiben kann. ich bin ein Anfänger.
Vielen Dank noch mal.
Gruß
Reda
 
Zurück
Oben