LabVIEWForum.de
LabView "echtzeitfähig" als stand-alone Lösung? - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: LabView "echtzeitfähig" als stand-alone Lösung? (/Thread-LabView-echtzeitfaehig-als-stand-alone-Loesung)



LabView "echtzeitfähig" als stand-alone Lösung? - Matlabnutzer - 30.07.2018 07:07

Hallo zusammen,

ich bin neu in diesem Forum und habe eine Frage zur Realisierung einer Regelung mit LabView. Hoffentlich passt die Kategorie...
Ich möchte mit einem Linearmotor die Kraft in Abhängigkeit des Weges regeln. Der Linearmotor hat ein Servo Drive, welches eine vorgegebene Kraft regeln kann, die Temperatur überwacht und den Weg inkrementell misst. Außerdem beherscht das Servo Drive Schnittstellen, wie RS485, RS 232, Ethercat, Profinet und liefert fertige Bausteine/Treiber für z.B. LabView. Die Regelung habe ich bereits mit Simulink aufgebaut und getestet. Dabei handelt es sich lediglich um einen übergeordneten PI-Regler mit der Sollposition als Führungsgröße, der Kraft als Stellgröße und dem Weg als Rückführung, sowie zwei Vorsteuerungen und einer Aufschaltung. Meine Messtechnik (eigenes System und nicht mit LabView / Servo Drive verbunden) misst mit 100Hz, die Regelung sollte mindestens genauso schnell sein, wobei der Einschwingvorgang vernachlässigt wird und anschließend der Motor mit einer konstanten Geschwindigkeit ausgelenkt wird.

Ist es möglich eine Regelung mit LabView in „Echtzeit“ unter Windows zu betreiben ohne eine teure Echtzeithardware / Embedded-Lösung (wie CompactRIO) zu kaufen? Brauche ich dafür LabView Realtime oder ist das nur für die Embedded-Entwicklung? Kann man in LabView einen Zeitversatz vorgeben, sodass mein Programm mir am Ende mitteilt, ob die Regelung schnell genug innerhalb der Toleranz funktionierte? So könnte man den Ablauf wiederholen, falls es nicht echtzeitfähig war.
Hat jemand eine ähnliche Anwendung aufgebaut und erfolgreich getestet?

Vielen Dank im Voraus.


RE: LabView "echtzeitfähig" als stand-alone Lösung? - GerdW - 30.07.2018 07:28

Hallo Matlabnutzer,

herzlich willkommen im Forum!

Zitat:Ist es möglich eine Regelung mit LabView in „Echtzeit“ unter Windows zu betreiben ohne eine teure Echtzeithardware / Embedded-Lösung (wie CompactRIO) zu kaufen?
Ja.
Man muss dann eben mit den Einschränkungen der Windows-Umgebung leben.

Zitat:Brauche ich dafür LabView Realtime oder ist das nur für die Embedded-Entwicklung?
Nein, du brauchst dafür kein LabVIEW-RT.
RT ist prinzipiell für die RT-Plattformen (wie das cRIO) vorgesehen. Man kann es aber auch auf speziell vorbereiteten PCs (mit genau definierten Komponenten) verwenden - anstatt Windows. (Zumindest war das in den Vor-Linux-Zeiten so…)

Kann man in LabView einen Zeitversatz vorgeben, sodass mein Programm mir am Ende mitteilt, ob die Regelung schnell genug innerhalb der Toleranz funktionierte?
Ja.
LabVIEW ist ja eine Programmiersprache und man kann da alles programmieren, was man so braucht…

Zitat:So könnte man den Ablauf wiederholen, falls es nicht echtzeitfähig war.
???

Zitat:Hat jemand eine ähnliche Anwendung aufgebaut und erfolgreich getestet?
Regelungen mache ich andauernd, aber bisher nicht mit 100Hz oder schneller.

Zitat:Außerdem beherscht das Servo Drive Schnittstellen, wie RS485, RS 232, Ethercat, Profinet und liefert fertige Bausteine/Treiber für z.B. LabView. … Meine Messtechnik (eigenes System und nicht mit LabView / Servo Drive verbunden) misst mit 100Hz, die Regelung sollte mindestens genauso schnell sein,
Du willst also im 10ms-Takt neue Stellwerte generieren?
Das ist prinzipiell möglich!
Leider sagst du nicht, wie du deine Messwerte nach LabVIEW bekommst. Und du sagst auch nicht, wie schnell dein Servo neue Stellbefehle entgegennimmt…


RE: LabView "echtzeitfähig" als stand-alone Lösung? - Matlabnutzer - 30.07.2018 08:09

Vielen Dank GerdW, für die ausführlichen Antworten. Damit hast du mir sehr geholfen.

(30.07.2018 07:28 )GerdW schrieb:  
Zitat:So könnte man den Ablauf wiederholen, falls es nicht echtzeitfähig war.
???
Damit meine ich, dass ich erkenne, falls durch Windows o.ä. meine Zykluszeit nicht eingehalten wurde und ich die Regelung und direkt neu starten kann, ohne erst in meine Messdaten gucken zu müssen, um zu sehen, dass die gewünschten Werte in einer kurzen Zeit nicht erreicht wurden.
Aber das ist etwas, worum ich mich erst später kümmern möchte.

(30.07.2018 07:28 )GerdW schrieb:  Du willst also im 10ms-Takt neue Stellwerte generieren?
Das ist prinzipiell möglich!
Leider sagst du nicht, wie du deine Messwerte nach LabVIEW bekommst. Und du sagst auch nicht, wie schnell dein Servo neue Stellbefehle entgegennimmt…
Das Servo Drive kann angeblich mit Zykluszeiten von 0.25ms - 5ms arbeiten, sodass ich mit einer kleinen Toleranz innerhalb der 100Hz bleiben sollte.
Die Messwerte nach LabVIEW zu bekommen und die Stellgröße ins Servo zu geben, ist mir noch nicht ganz klar. Wenn ein Hersteller LabVIEW-Treiber zur Verfügung stellt, ist das dann eine plug and play Lösung? Also muss ich mich nur um die Erkennung unter Windows kümmern und kann dann ähnlich wie in fertigen Simulink Blöcken einfach die Größen auslesen, die ich brauche?


RE: LabView "echtzeitfähig" als stand-alone Lösung? - GerdW - 30.07.2018 09:24

Hallo,

ja, man kann in LabVIEW auch Zeit messen...
(Hinweis: man könnte die timed while loop verwenden, die liefert dir diese Messwerte automatisch. Ich rate aber davon unter einem normalen Windows ab, du handelst dir damit andere Probleme ein.)

Je nach Gerätetreiber musst du noch etwas drum herum programmieren, aber meist sind auch Beispiele dabei.