LabVIEWForum.de
Probleme mit Drehgeber - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Probleme mit Drehgeber (/Thread-Probleme-mit-Drehgeber)

Seiten: 1 2 3 4 5 6


RE: Probleme mit Drehgeber - GerdW - 02.08.2012 09:49

Hallo Benny,

Idee:
Für deinen CTR holst du dir immer wieder einen neuen Startwert vor der CTR-Schleife. Durch die AI-Funktionen danach gibt es eine kleine Verzögerung, bevor du wieder neue CTR-Werte abfragst. In dieser Zeitspanne können natürlich CTR-Pulse verloren gehen. Dummerweise ignorierst du eben diese Impulse, in dem du dir einen neuen Startwert für die CTR-Schleife holst..

Mögliche Lösung:
Hole dir nur einmal einen CTR-Startwert vor der "großen" While-Schleife und nutze diesen als Referenzmarke innerhalb deiner kompletten Mess-Schleife...


RE: Probleme mit Drehgeber - Ben187ny - 02.08.2012 10:15

hi,

ich muss ja für die Berechnung immer wieder mit dem Wert von 0 anfangen. Wenn ich jetzt den Counterwert von der großen Schleife abfrage wie setze ich den dann immer wieder zurück und wie nutze ich den per Referenz?

Habe mal ein Screenshot gemacht, vielleicht kannst es mir daran besser erklären


RE: Probleme mit Drehgeber - GerdW - 02.08.2012 10:20

Hallo Benny,

Zitat:ich muss ja für die Berechnung immer wieder mit dem Wert von 0 anfangen.
Du musst nicht bei Null anfangen, sondern beim letzten bekannte CTR-Wert. Also: Schieberegister verwenden, um den letzten CTR-Stand zu merken und dieses Schieberegister vor der großen Schleife einmalig mit dem dann aktuellen CTR-Wert initialisieren...


RE: Probleme mit Drehgeber - Ben187ny - 02.08.2012 10:27

hi,
aber wenn ich nicht den zähler auf 0 zurücksetze und z.b. bei 50mm weg bin, dann stoppt die wegzählung ja und soll wieder von vorne anfangen. Aber mit dem schieberegister fängts dann ja nicht von vorne an sondern vom letzten Wert und ist automatisch über 50mm oder verstehe ich jetzt was falsch?


RE: Probleme mit Drehgeber - GerdW - 02.08.2012 10:30

Hallo Benny,

Zitat:Aber mit dem schieberegister fängts dann ja nicht von vorne an sondern vom letzten Wert und ist automatisch über 50mm
Der letzte CTR-Wert ist doch schon bei deiner "50mm"-Marke. Wenn du jetzt erneut in die Schleife gehst, startest du an der letzten 50mm-Marke und kannst erneut 50mm abzählen.
Ja, ich glaube, du verstehst da etwas falsch: Deine Wegmessung beruht auf Differenzen und du musst nur immer den richtigen Startwert wählen...


RE: Probleme mit Drehgeber - Ben187ny - 02.08.2012 11:51

hi,
bekomme das leider nicht hin, habe leider noch nie mit schieberegistern gearbeitet Sad
Könntest du mir das vielleicht an meinem Programm zeigen? Wäre dir auch unheimlich dankbar dafür.

Anbei noch das Programm

Vielen Dank schon mal


RE: Probleme mit Drehgeber - GerdW - 02.08.2012 12:01

Hallo Benny,

da mir die ganzen Geräte-SubVIs fehlen, nur ein rudimentäres VI im Anhang. Den eigentlichen Aufruf des CTR-Lesens habe ich durch einen Sequenzrahmen dargestellt. Siehe auch die passend geänderte Berechnungsfunktion...


RE: Probleme mit Drehgeber - Ben187ny - 02.08.2012 13:06

Vielen vielen Dank, nun geht es endlich, hat bloß nicht die eingänge von Sub VI erkannt aber sonst läuft es super

Vielen Dank dafür


RE: Probleme mit Drehgeber - Ben187ny - 03.08.2012 09:37

Hallo,

wollte noch etwas am programm ändern und zwar wollte ich zusätzlich noch so etwas wie ich tabelle einfügen, in diese soll z.b. zu vermessende Länge eingegeben werden und es soll einem dann ein zulässiger Wert angezeigt werden.

Möchte das für eingegebenen Werte unter 10 ein Ergebniss von 500 angezeigt wird, bei über 15 soll 1000 angezeigt werden und bei 20 soll 1500 angezeigt werden, zwischen den werten von 10 und 15 und den Werten von 15 bis undendlich soll interpoliert werden.

Weiss leider nicht genau wie ich dies genau programmieren soll, evtl mit chase Struktur ?


RE: Probleme mit Drehgeber - GerdW - 03.08.2012 09:40

Hallo Benny,

Zitat:zwischen den werten von 10 und 15 und den Werten von 15 bis undendlich soll interpoliert werden.
Array-Palette -> "1D-Array interpolieren"