LabVIEWForum.de
Speicher voll / Programmaufbau - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Speicher voll / Programmaufbau (/Thread-Speicher-voll-Programmaufbau)



Speicher voll / Programmaufbau - yapete - 13.12.2016 16:03

Hallo Zusammen,

ich bin relativ neu in der LabView Welt. Eigentlich beschäftige ich mich hauptsächlich der Programmierung von SPS Systemen. Bei einem aktuellen Projekt muss mit einem Lab View Porgramm ein 2-Achs Linear System gesteuert werden. Die Steuereinheit für die Antriebe kommt aus dem Hause Systec (Xemo).
Auf dieser Steuerung läuft bereits ein Programm (MotionBasic, erweite Basic Programmierung) zur Initialisierung der Achsen, dieses läuft automatisch nach dem Einschalten an. Die Steuerung ist via USB mit dem Labview Rechner verbunden. Über die Labview Bedienoberfläche sollen die Antriebe referenziert und gesteuert werden.
Vom Hersteller gibt es eine VI Bibliothek um die Kommunikation herzustellen und um diverse andere Befehle auszuführen.

Nun tritt in meinem ersten Programm folgender Fehler auf: Sobald ich einen Get Befehl ausführe um z.b die Serienummer auszulesen erscheint Speicher voll. Ich habe schon im Forum nach dem Fehler gesucht und rausgefunden das eine Wartezeit in die While Schleife gehört da die Schleife sonst zu oft ausgeführt wird. Aber eine wirkliche Besserung konnte ich nicht feststellen. Weitere hilfreiche Tipps finde ich zu dem Thema leider nicht.

Also die Kommunikation zu der Steuerung scheint zu funktionieren, da die Serienummer manchmal ausgelesen wird.

Im Anhang mal ein Bild meines ersten Versuchs, ich habe das Gefühl das ich generell in Labview irgendwas komplett falsch mache...


Ich bin für jeden Tipp von euch dankbar!


RE: Speicher voll / Programmaufbau - Trinitatis - 13.12.2016 16:12

(13.12.2016 16:03 )yapete schrieb:  Ich habe schon im Forum nach dem Fehler gesucht und rausgefunden das eine Wartezeit in die While Schleife gehört da die Schleife sonst zu oft ausgeführt wird. Aber eine wirkliche Besserung konnte ich nicht feststellen. Weitere hilfreiche Tipps finde ich zu dem Thema leider nicht.

Hallo,

das mit der Wartezeit ist zwar richtig, macht dein Programm aber allenfalls langsam. Der Speicherfehler entsteht, wenn LabView einen zu großen zusammenhängenden Speicher alloziieren soll. Generierst du z.B. mit der Funktion "Array initialisieren" ein 2D-Array mit 100M mal 100M Byte, dann wirst du diesen Fehler auch bekommen.

Also suche nach Arrays, die in deinen Sub-VIs erstellt werden - gern auch autoindiziert an Schleifen oder nach Queues in die geschrieben wird, ohne aus ihnen zu lesen. Der übliche Verdächtige wird aber ein Array sein, mglw. gekoppelt mit einem Registerüberlauf, mit dem es dann initialisiert werden soll.


Gruß, Marko
Nachtrag:
Die Fehlermeldung sollte dir eigentlich auch schon das Übeltäter-VI und den Stop-Knoten namentlich nennen bzw. bei ihrer Bestätigung dort hineinspringen.


RE: Speicher voll / Programmaufbau - jg - 13.12.2016 16:21

Wieso initialisierst du alle 100ms die DLL und die Schnittstelle? Im Normal muss das nur 1x bei Programmstart aufgerufen werden. Vor allem, da du keinen DeIni-Aufruf programmiert hast.

Gruß, Jens