LabVIEWForum.de
mit Labview Servomotorsteuerung bedienen - nicht nachvollziehbare Abstürze - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Instrument IO & VISA (/Forum-Instrument-IO-VISA)
+---- Thema: mit Labview Servomotorsteuerung bedienen - nicht nachvollziehbare Abstürze (/Thread-mit-Labview-Servomotorsteuerung-bedienen-nicht-nachvollziehbare-Abstuerze)



mit Labview Servomotorsteuerung bedienen - nicht nachvollziehbare Abstürze - RockyIV - 31.08.2010 13:15

Hallo liebe Labviewer,


Im Rahmen meiner Bachelorarbeit an der Uni bin ich gerade dabei eine Motorsteuerung für einen Servomotor zu programmieren. Der Servomotor bewegt eine Traverse über eine Spinde in Z-Richtung (oben und unten).

Die eigentliche Motorsteuerung übernimmt hierbei die Software des Herstellers des Motors. Die Bedienung soll dann aber über Labview erfolgen. Der Motor soll später eine Geschwindigkeit anfahren, dann wird eine Messung gemacht und anschließend soll die nächste Geschwindigkeit angefahren werden. Desweiteren soll ein manueller Betrieb in beide Richtungen möglich sein.

In der Motorsteuerung funktioniert alles soweit, nur Labview stürzt relativ häufig ab und ich weiß nicht woran es liegt. Die Abstürze sind bislang nicht reproduzierbar und treten scheinbar „spontan“ auf. Die übergegebenen Parameter von Labview zu der Motorsteuerung sind:


aPowerOn – schaltet den Motor ein (true) bzw. wieder aus (false)
aHoming – referenziert den Motor (einmal auf true und dann wieder auf false) (als Taster)
aStop – stoppt den Motor wenn auf true
aMove – startet eine Bewegung mit der Geschwindigkeit (aMoveVal), wenn auf true
aMoveAbs – startet eine Bewegung zur Ausgangstellung (in aHoming referenzierte Position), wenn auf true
aTippNeg – startet eine Bewegung nach unten, wenn auf true (manueller Tipp-Betrieb)
aTippPos - startet eine Bewegung nach oben, wenn auf true (manueller Tipp-Betrieb)


Ich weiß, dass es sicherlich nicht einfach wird, mir bei meinem Problem zu helfen, da ihr es ja nur theoretisch testen könnt. Ich hoffe aber trotzdem, dass ihr mir den ein oder anderen Hinweis geben könnt, wie ich mein Problem in den Griff bekommen kann. Die Verwendete Version von LV ist die 9.0.

Vielen Dank für eure Unterstützung!

Sascha


mit Labview Servomotorsteuerung bedienen - nicht nachvollziehbare Abstürze - Y-P - 31.08.2010 15:09

In Deiner Schleife links unten liest Du etwas schnell aus. Da wird die CPU komplett überlastet. Mach' doch da mal eine Zeitverzögerung (z.B. 10 ms) rein.
Ansonsten die Frage: Stürzt LabVIEW mit einer Fehlermeldung ab? Oder "hängt es nur" (was an oben genannter überlasteten CPU liegen dürfte)?

Gruß Markus

EDIT: Links oben ist es dasselbe (Zeitverzögerung rein). Musst Du da überhaupt die ganze Zeit schreiben?


mit Labview Servomotorsteuerung bedienen - nicht nachvollziehbare Abstürze - RockyIV - 31.08.2010 15:58

Vielen Dank für die schnelle Antwort. Labview bleibt einfach hängen (ohne Fehlermeldung), die CPU Auslastung im Taskmanager ist relativ konstant auf 50 % bei nem Pentium Celeron und schnippt auch nicht kurz vorm Absturz hoch. Beim Status steht auch noch "Wird ausgeführt".

Den Tipp mit den Verzögerungen habe ich beherzigt, es hat sich aber scheinbar nichts verändert. Ich werde jetzt mal genau nachverfolgen nach welcher Kombination von Eingaben der Absturz zustande kommt.


mit Labview Servomotorsteuerung bedienen - nicht nachvollziehbare Abstürze - IchSelbst - 01.09.2010 12:41

' schrieb:Ich weiß, dass es sicherlich nicht einfach wird, mir bei meinem Problem zu helfen, da ihr es ja nur theoretisch testen könnt.
Ein Ratschlag hier zu geben ist relativ einfach.

Dein Verfahren mit dem OPC-Management halte ich für sehr schlecht. Ich hab mir eine Klasse (also ein erweitertes FGV) geschrieben, die das OPC-Management macht: Variablen öffnen, kommunizieren, Schließen etc. Was ich für ganz ungünstig halte, ist, dass die OPC-Lese/Schreib-Elemente unsequenziert parallel gemacht werden.

Man kann auch in B&R Variablen zusammenfassen und als eine Variable (also ein Cluster) übergeben. Das reduziert natürlich die Anzahl der Variablen-Referenzen erheblich - nämlich auf z.B. eine für Schreiben und eine für Lesen.


mit Labview Servomotorsteuerung bedienen - nicht nachvollziehbare Abstürze - IchSelbst - 29.09.2010 18:49

' schrieb:Ich hab mir eine Klasse (also ein erweitertes FGV) geschrieben, die das OPC-Management macht:
Hier mal die aus der Applikation herausgelöste OPC-Klasse. Start-VI ist OPC-Basisklasse. VersionLv82_img1