Hallo zusammen,
ich bin neu in LabView und muss eine Motorsteuerung in LabView so ändern das der Motor über eine Rampenfunktion langsam angefahren wird.
Das Programm zur Steuerung steht bereits und läuft auch, jedoch bekomme ich die Rampen Funktion nicht zum laufen, da der Motor lediglich einen einzelnen 16bit Wert akzeptiert. Wie kann ich den Vektor in so einen Wert konvertieren? Oder ist mein Ansatz hier gänzlich falsch?
Gruß Tom
Moin Tom,
leider fehlen in dem von Dir geposteten VI zwei VIs.
Wenn ich mir den Code ansehe nehme ich an, dass es sich dabei um die VIs zum Auslesen und Steuern des Motors handelt, richtig?
Zunächst einmal finde ich persönlich den Code ziemlich unübersichtlich. Eine Konvention z.B. lautet, dass der Datenfluss von links nach rechts gehen sollte.
Das ist an einigen Stellen bei dem VI nicht der Fall.
Falls Ihr das VI Analyzer Toolkit lizensiert habt, lass das doch mal durchlaufen.
Meiner Ansicht nach wäre es weiterhin empfehlenswert, das Auslesen und Ansteuern des Motors sowie die Benutzersteuerung nicht in einem großen VI unterzubringen.
Sieh Dir eventuell mal die mitgelieferten Beispiele zu verschiedenen Entwurfsmustern (Producer/Consumer sowie Master/Slave) an.
Unter anderem steigt die Wartbarkeit enorm an, wenn verschiedene Funktionen in verschiedenen Programmteilen bearbeitet werden.
Die Art und Weise mit der Du das Rampenmuster erzeugst erscheint mir recht umständlich:
Du erzeugst erst ein Rampenmuster um danach zwei Multiplikationen durchzuführen. Das lässt sich doch auch direkt so erzeugen.
Jetzt aber genug belehrt, zu Deiner Frage:
Das DBL-Array stellt wenn ich es richtig verstehe das Rampenmuster dar, das den Motor "anfahren" soll.
Die Steuerung akzeptiert aber nur immer einen Wert zur gleichen Zeit.
Also könntest Du doch eigentlich das Steuerungs-VI in eine For-Schleife packen und das Array damit iterieren lassen.
In der Schleife plazierst Du ggf. noch ein wait(ms). Das ganze packst Du ein ein VI sagen wir mal "Motor starten" und wärst fertig mit der Sache.
Oder geht es darum, dass das VI keine DBL-Werte akzeptiert? Dann ändere den Datentyp des Arrays das Du rein schickst.
Falls ich komplett daneben liege, hilft eventuell das fehlende VI oder wenigstens ein Dummy falls Du es aus Lizenzgründen nicht hochladen kannst.
Gruß,
Wedgewood
Hi,
wurde Dein Problem gelöst? Dann markiere es doch bitte als gelöst.
Wurde es nicht gelöst? Dann ist es auch hilfreich, dass zu wissen.
Vielleicht hat dann ja jemand noch eine Idee...
Gruß,
Wedgewood