LabVIEWForum.de
Pumpe in LabVIEW über Sytem Exec an und ausschalten - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: DLL & externer Code (/Forum-DLL-externer-Code)
+---- Thema: Pumpe in LabVIEW über Sytem Exec an und ausschalten (/Thread-Pumpe-in-LabVIEW-ueber-Sytem-Exec-an-und-ausschalten)



Pumpe in LabVIEW über Sytem Exec an und ausschalten - lazfather - 23.10.2014 12:52

Hallo alle zusammen,

ich bin ein LabVIEW neueinsteiger, doch ich Vemute, dass mein Verständnis sich deutlich gesteigert hat dank dieser Seite. Vielen Dank ersmal an alle.
Ich bin mir auch nicht sicher ob meine Frage bzw Problem hier richtig bin.

Ich erkläre erstmal mein Projekt:
Ich habe eine Festo Compact Workstation mit Easyport zu Verfügung. Zunächst war meine Aufgabe die Anlage nur über LabVIEW anzusteuern, also die Pumpe an und aus wie die Heizung oder Sensoren auslesen dies klappte alles.
Der nächste Schritt war es in LabVIEW einen beliebigen C-Code über .dll oder .exe auszuführen. Dazu hatte ich einfach einen Additions-Code geschrieben gehabt, dies Klappte auch.
Übrigens meine C kenntnisse sind auch sehr mager.

Nun meine Hauptaufgabe:
LabVIEW muss eigentlich nur im Hintergrunf laufen während das C-Pogramm zb LabVIEW starter, die Pumpe an aus usw.. Ist die erstmal überhaupt zu realisieren?

Erstmal Schritt für Schritt rangehen würde ich sagen. Ich habe ein Vi hochgeladen, dies ist mein jetziger Stand. Doch da is das Problem, dass für jeden Sensor ein extra Fenster öffnet um die Eingabe (die Einfach 1 oder 0 ist für an und aus) zu schreiben und ich muss erst in allen eine Eingabe geben damit der nächste Schritt gemacht wird, sprich ich sage Pumpe an erstmal passiert nichts, erst wenn ich allen eine 1 oder 0 eingetragen habe dann geh die Pumpe an.

Ich hoffe, dass ich mich einigermaßen Verständlich ausgedrückt habe.

Vielen Dank schonmal im Voraus

Viele Grüße

lazfather


RE: Pumpe in LabVIEW über Sytem Exec an und ausschalten - Trinitatis - 27.10.2014 22:53

(23.10.2014 12:52 )lazfather schrieb:  Nun meine Hauptaufgabe:
LabVIEW muss eigentlich nur im Hintergrunf laufen während das C-Pogramm zb LabVIEW starter, die Pumpe an aus usw.. Ist die erstmal überhaupt zu realisieren?

Erstmal Schritt für Schritt rangehen würde ich sagen. Ich habe ein Vi hochgeladen, dies ist mein jetziger Stand. Doch da is das Problem, dass für jeden Sensor ein extra Fenster öffnet um die Eingabe (die Einfach 1 oder 0 ist für an und aus) zu schreiben und ich muss erst in allen eine Eingabe geben damit der nächste Schritt gemacht wird, sprich ich sage Pumpe an erstmal passiert nichts, erst wenn ich allen eine 1 oder 0 eingetragen habe dann geh die Pumpe an.

Hallo,

eine LV-Applikation kann prinzipiell auch im Hintergrund laufen, sogar ohne in der Task-Leiste zu erscheinen.
Das Problem, dass du da mit deinen Fenstern hast ist eigentlich nur ein Einstellungsproblem, was die Eigenschaften deiner Sub-VIs angeht. Ich kann dein VI leider nicht öffnen - es ist immer schlauer, seine VIs nicht gerade in der neusten LV-Version ins LVF zu stellen.

Gruß, Marko


RE: Pumpe in LabVIEW über Sytem Exec an und ausschalten - lazfather - 28.10.2014 11:07

Tut mir Leid eine andere Version steht mir nicht zu Verfügung.


RE: Pumpe in LabVIEW über Sytem Exec an und ausschalten - jg - 28.10.2014 11:50

(28.10.2014 11:07 )lazfather schrieb:  Tut mir Leid eine andere Version steht mir nicht zu Verfügung.

Pulldownmenü -> File -> Save for Previous Version...

Gruß, Jens


RE: Pumpe in LabVIEW über Sytem Exec an und ausschalten - lazfather - 28.10.2014 12:11

Vielen Dank, dann hier die anderen Versionen dazu.


RE: Pumpe in LabVIEW über Sytem Exec an und ausschalten - rolfk - 29.10.2014 22:39

(23.10.2014 12:52 )lazfather schrieb:  Ich hoffe, dass ich mich einigermaßen Verständlich ausgedrückt habe.

Eher nicht. Ich verstehe fast nur Bahn


Dein C Programm ist ein Prozess. LabVIEW oder eine Build LabVIEW Applikation ist ein anderer. Die können erst einmal nicht einfach durch Speicherzugriff miteinander kommunizieren. Selbst wenn Du den gemeinsamen Code in ein DLL auslagerst und diese in beide Prozesse lädst gewinnst Du nichts, denn die DLL wird jeweils seperat in den jeweiligen Prozess geladen und ist dank Windows Protected Mode genau so weit voneinander entfernt wie wenn sie auf verschiedenen Computern geladen würden.

Die einzige Art und Weise um zwischen diesen Prozessen zu kommunizieren ist ... genau, Interprozesskommunikation. Das kann über Netzwerk sein, per File, Shared memory, Remote Procedure Call oder auch Dinge wie Corba oder DDE. Alles ausser Netzwerk und File ist in LabVIEW eher kompliziert (und auch in C ziemlich involviert wenn Du nicht spezifisch viel Erfahrung mit einer der Möglichkeiten hast).

An sich ist deshalb die Idee om beides in verschiedenen Programmen zu machen erst einmal eine recht schlechte Idee. Wenn da keine absolut zwingenden Gründe dafür bestehen, würde ich unbedingt davon absehen. Und nein, ein Supervisor der sagt man soll es so machen weil es eine so schöne Herausforderung ist, zählt nicht als zwingender Grund! Big Grin

Warum willst Du dann überhaupt noch C bemühen, wenn Du einen Teil schon in LabVIEW funktionierend hast???


RE: Pumpe in LabVIEW über Sytem Exec an und ausschalten - GerdW - 30.10.2014 08:01

Hier ging es gestern um die gleiche Frage

@Erman:
Bitte keine Doppelpostings/Crossposts ohne entsprechenden Hinweis darauf!


RE: Pumpe in LabVIEW über Sytem Exec an und ausschalten - lazfather - 30.10.2014 10:01

Erstmal Entschuligung an Gerd.

Ja Rolf, da gebe ich dir Recht, wenn man es in LabVIEW ohne Probleme wozu noch C.
Aber leider kann ich dagegen nichts machen.

Die Verbindung zwischen den Prozessen sollte man besser mit Netzwerk oder per File machen hast du ja gesagt.
Netzwerk sagt mir etwas, aber was meinst du mit File?


RE: Pumpe in LabVIEW über Sytem Exec an und ausschalten - jg - 30.10.2014 10:14

(30.10.2014 10:01 )lazfather schrieb:  Die Verbindung zwischen den Prozessen sollte man besser mit Netzwerk oder per File machen hast du ja gesagt.
Netzwerk sagt mir etwas, aber was meinst du mit File?
Die eine Exe erzeugt irgendwo ein File (deutsch Datei) auf der HDD (Festplatte) mit einem definierten Inhalt, die andere Applikation liest sie dann wieder aus.

vgl. hier.

Das kommt durch das Doppelposting, jetzt bekommst du 2x dieselben Antworten.

Gruß, Jens