INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Inkrementalgeber mit FPGA



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

20.11.2014, 09:49
Beitrag #1

logan Offline
LVF-Grünschnabel
*


Beiträge: 18
Registriert seit: May 2012

17.0
2012
DE


Deutschland
Inkrementalgeber mit FPGA
Hallo Leute,

ich habe ein cRIO9076 und nutze den FPGA für die DI/DO (9425).

Es wird ein Motor verfahren, an dem ein Inkrementalgeber angebracht ist.
Diese Flanken vom Inkrementalgeber erfasse ich über den FPGA und werte die positiven Flanken mittels dem Baustein "boolean crossing" aus.

Problem ist, dass das ganze extrem empfindlich ist. sobald man in der nähe vom Weggeber minimal auf den Tisch haut, dann hat er schon so peaks und somit flanken, die gezählt werden. Allerdings sollen diese ja noch nicht gezählt werden, da der Motor/Weggeber nicht verfährt.

Ist das erste Projekt mit FGPA, deshalb noch nicht soviel Ahnung.

Gibt es einen Baustein oder sonstirgendwas, wo ich nur die echten gewollten Flanken zähle, und nicht diese Peaks?

Danke schonmal


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.11.2014, 09:56
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.398
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Inkrementalgeber mit FPGA
Hallo logan,

Zitat:wo ich nur die echten gewollten Flanken zähle, und nicht diese Peaks?
Defniere bitte "echte gewollte Flanken" (aus Sicht deines FPGA)!
Wenn du diese Definition hast, können wir über eine entsprechend angepasste Auswertung reden…

Tipps:
- Auch im FPGA machen sich Schieberegister sehr gut…
- Bei solchen Problemen haben sich "Entprellfilter" bewährt…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.11.2014, 12:41
Beitrag #3

logan Offline
LVF-Grünschnabel
*


Beiträge: 18
Registriert seit: May 2012

17.0
2012
DE


Deutschland
RE: Inkrementalgeber mit FPGA
so ein ungewollten peak hab ich mit ca. 75µs gemessen.

alles was größer 150µs ist, sollte nur ausgewertet werden.

gibts so entprellfilter im fpga bereich? find da nix auf anhieb.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.11.2014, 12:46
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.398
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Inkrementalgeber mit FPGA
Hallo logan,

Zitat: ein ungewollten peak hab ich mit ca. 75µs gemessen.
alles was größer 150µs ist, sollte nur ausgewertet werden.
Na siehst du, jetzt haben wir doch eine Handlungsgrundlage…

Code:
IF delay(RisingEdge - FallingEdge) > 125µs
THEN Count++
ELSE do nothing
Du musst dir also den Timestamp der Flanken merken (beim FPGA würde ich einfach die Ticks der Loop nehmen und diese mit einer definierten Rate laufen lassen) und die (zeitliche) Differenz der Flanken bestimmen. Nur, wenn die Zeit zwischen den Flanken groß genug war, zählt der Puls als "gewollt"…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.11.2014, 13:26
Beitrag #5

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
RE: Inkrementalgeber mit FPGA
ich glaube eher an ein elektrisches Problem! Normalerweise sind Encoder sehr stabil, ich benutze sie seit Jahren mit dem 9401 auf dem cRIO als Drehzahl-Eingang und "pseudo-Pulse" habe ich nur erlebt wenn etwas mit der Elektrik nicht gestimmt hat. Im Detail: es handelte sich um "Nahnebensprechen" in nicht terminierten BNC-Leitungen.

In den Beispielen (example-finder) gibt es ein VI in dem gezeigt wird wie man auf dem FPGA die Encoder-Signale richtig auswertet, such mal nach "quadratur(e) encoder", dann wirst du das beispiel hoffentlich finden. Der Code im Beispiel funktioniert 100%ig - ich verwende ihn seit 10 Jahren für Drehzahl-Eingänge - und wenn du dann immer noch "Pseudo-Pulse" bekommst kannst du 100%ig davon ausgehen, dass was mit deiner Elektrik nicht so ganz stimmt.

Da du schreibst du wärst ein Anfänger tippe ich dann mal auf eine schlechte Masse-Verbindung. Die Masse vom Encoder muss die gleiche Masse wie das DIO-Modul haben! Sonst zieht sich der Stromkreis die Masse über das Chassis und das DIO-Modul oder über irgendwelche sonstigen wilden Pfade und dann kann es zu den wildesten Effekten kommen ...

viele Grüße
cb

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Sind Referenzen auf FPGA-Variablen in FPGA vi möglich? Felix777 2 6.834 26.10.2015 20:41
Letzter Beitrag: Felix777
  FPGA-Referenz öffnen: FPGA-VI nicht kompiliert LauraP. 9 11.476 17.03.2015 16:58
Letzter Beitrag: LauraP.

Gehe zu: