Hallo,
um eine elektropneumatische Steuerung zu realisieren habe ich eine While-Schleife gebaut, die meine DIOs einliest und ausgibt. Das klappt schon ganz gut.
Jetzt möchte ich per Knopfdruck vom Frontpanel und immer dann, wenn mein Zylinder einen Zyklus fährt, meine AIs und meinen Zähler abfragen und die Werte speichern. Ich habe mal ein paar Versuche mit Variablen gemacht, bin aber nicht zu einem zufriedenstellenden Ergebnis gekommen. (s. Bild)
[
attachment=26412]
Kann mir jemand weiterhelfen und mir in einer kurzen Beispiel VI vielleicht zeigen, wie ich Werte zwischen den Schleifen übergeben kann? (Startsignal zur Nebenschleife, Messdaten zurück zur Hauptschleife)
Vielen Dank für Hilfe!
Grüße
Johannes
Klar, ich schlage mich 2 Wochen mit dem kleinen Programm rum, ich habe keine Ahnung von LabVIEW und mache quasi alles per Try and Error und der blöde Doktorant will nächste Woche seine Messungen machen, hat aber auch keine Ahnung von dem Programm. Deshalb versuch ich jede Hilfe zu bekommen, die ich kriegen kann, sonst bekomm ich einen Anfall!
.... was Du aber hier erwähnen musst. Das solltest Du eigentlich wissen, wenn Du die LVF-Regeln durchgelesen hast.
Gruß Markus
' schrieb:Deshalb versuch ich jede Hilfe zu bekommen
Alles per Try and Error selbst zu machen ist sicher ein guter Weg, man lernt dabei sehr viel, allerdings dauerts halt auch ewig.
Es gibt 3 "Anlaufpunkte" in LabVIEW mit denen man sich selbst weiterhelfen kann:
1. der Rechtsklick. Was mit dem Kontext-Menü möglich ist, macht auch meistens irgendwie sinn
2. der Example-Finder: in der deutschen Version zu finden unter "Hilfe - Beispiele suchen"
3. Express VIs. Mit Express VIs kann man viele Standard-Aufgaben per Konfiguration "zusammenklicken". Wenn man wissen will was dahinter steckt kann man einen Rechtsklick drauf machen und über "Frontpanel öffnen" das Express VI in "normalen" Code umwandeln und sich den anschaun. Der Code der dahinter steckt ist für Anfänger vielleicht etwas kryptisch, weil der natürlich so geschrieben ist, dass er möglichst viele Eventualitäten abdeckt, aber man hat immerhin schonmal funktionierenden Code, den man eig. nur noch abspecken muss.
Ich würde vorschlagen du fängst mal mit dem Example-Finder an und schaust dir die Beispiele zum Thema "Schleifen synchronisieren mittels Queues" an, das kommt schon ganz nah an die Problemstellung ran, die du beschrieben hast
Hallo,
ich habe mich jetzt eine weitere Woche mit dem Problem auseinander gesetzt, bin trotz Examples etc noch nicht auf den Trichter gekommen.
Inzwischen habe ich herausgefunden, dass ich die Anfragen an meine Karte sequenziell abarbeiten muss, sprich: Treiber öffnen, nacheinander alles abrufen, Treiber wieder schließen. Ich will nun die Werte meines Counters abfragen, während der Zylinder unterwegs ist. Das funktioniert so nur bedingt, da die Abfrage erst geschieht, wenn der Zylinder in einer Endlage angekommen ist.
Hat jemand vielleicht eine Idee?. Ich brauche auch noch die Zeit, die der Zylinder für einen Zyklus braucht, leider habe ich in den Examples sowas wie eine Stopuhr noch nicht gefunden.
[
attachment=26514]
Vielen Dank für die Hilfe