18.03.2010, 12:51
18.03.2010, 13:04
' schrieb:Das Problem ist, dass die Schleife ja jedes mal einmal ausgeführt wird, wenn der Rahmen durchlaufen wird. Allerdings sollte er wirklich nur einmal ganz zum Anfang ausgeführt werden.Dafür gibt es die Funktion "Erster Aufruf"
wie müsste dies aussehen?
[attachment=25239]
18.03.2010, 13:14
Dann braucht er aber auch nicht mehr den i-Anschluss, sondern, kann seinen Case auf True / False einstellen.
Nichtsdestotrotz gehört meiner Meinung nach (wie schon gesagt) immer eine Haupt-Whileschleife um ein Hauptprogramm.
Gruß Markus
Nichtsdestotrotz gehört meiner Meinung nach (wie schon gesagt) immer eine Haupt-Whileschleife um ein Hauptprogramm.
Gruß Markus
' schrieb:Dafür gibt es die Funktion "Erster Aufruf"
[attachment=53722:clip.png]
18.03.2010, 14:02
' schrieb:Dann braucht er aber auch nicht mehr den i-Anschluss, sondern, kann seinen Case auf True / False einstellen.
Nichtsdestotrotz gehört meiner Meinung nach (wie schon gesagt) immer eine Haupt-Whileschleife um ein Hauptprogramm.
Gruß Markus
Es handelt sich bei dem Programm um ein Sub VI

' schrieb:Dafür gibt es die Funktion "Erster Aufruf"
[attachment=53722:clip.png]
Hab mich wohl aufgrund von Unwissenheit falsch ausgedrückt.
Das Sub-Vi wird mit dem Hauptprogramm geladen.
Aus dem Hauptprogramm aus starte ich eine Case-Struktur, womit dann auch das Sub-VI durchlaufen wird. Somit klappt das mit "erster Aufruf" leider nicht. Das würde wohl nur klappen, wenn ich das VI immer wieder öffne und schließe? Macht aber irgendwie meinen Programmablauf träge.
Sprich das "reseten" der Hilfsvariablen müsste jdes mal geschehen, wenn ich den Schalter im Hauptprogramm drücke
Anbei noch mal ein Bild vom Hauptprogramm, wo der auslösende Schalter sowie das Sub VI zu sehen ist.
Hab den Hostcode auch noch mal geuppt, aber vorsicht, es ist FPGA Code enthalten!
Kurzer Nachtrag: hab natürlich auch versucht einfach ins SubVI eine boolsche Variable zu setzen, welche ich über den Startbutton des Hauptprogramms anschließe, aber dieser wird im Sub-Vi leider nicht zurückgesetzt


18.03.2010, 15:07
Schade, dass man hier nur kurzzeitig editieren kann.
Noch mal dazu: Ursache des ganzen ist es, dass der Schalter im Hauptprogramm sich erst nach Durchlauf des Rahmens zurücksetzt.
Aber alle Erkenntnis des Problems hilft mir noch nicht, dies zu lösen
Noch mal dazu: Ursache des ganzen ist es, dass der Schalter im Hauptprogramm sich erst nach Durchlauf des Rahmens zurücksetzt.
Aber alle Erkenntnis des Problems hilft mir noch nicht, dies zu lösen

18.03.2010, 15:10
Und ich hab' Dein Problem noch nicht mal verstanden.
Kannst Du mal ein vereinfachtes Bsp. mit Haupt- und SubVI machen?
Gruß Markus
Kannst Du mal ein vereinfachtes Bsp. mit Haupt- und SubVI machen?
Gruß Markus
18.03.2010, 15:35
' schrieb:Und ich hab' Dein Problem noch nicht mal verstanden.
Kannst Du mal ein vereinfachtes Bsp. mit Haupt- und SubVI machen?
Gruß Markus
Entschuldigen natürlich versuch ich es mit einem vereinfachten Beispiel.
Noch mal kurz zur Erklärung:
Der Inhalt des Rahmens "0" des Sub-VI soll nur einmal beim Drücken der "Start" Variable des Hauptprogramms ausgeführt werden.
Sprich beim Starten soll HILFS-Position=0 gesetzt werden, in den weiteren Schleifendurchläufen jeweils mit der SOLL-Position überschrieben.
Rahmen 2 des Sub-VIs ist ledeglich die Berechnungsvorschrift der Sollposition.
Die "START" Variable des Hauptprogramms ist zwar auf "latch beim Drücken" gestellt, wird allerdings erst nach Ende des Rahmens auf false zurückgesetzt, welches aber erst nach Laufende des Sub-VIs ist.
Bitte nachharken, falls man mein wirres Geschreibe noch nicht nachvollziehen kann

Gruß & Dank


18.03.2010, 16:31
19.03.2010, 09:41
' schrieb:Meinst Du so?
Hast du abgesehen von den Schieberegistern noch was geändert? Nur mit diesen funktioniert es auch noch nicht. Zum verrückt werden

Edit: Scheinbar scheint das Problem doch woanders zu liegen. Laut geschriebener Tabelle wird der True Case einmalig ausgeführt, danach aber nicht mehr. Dann muss der Fehler wohl doch im Sub-Vi liegen. Nur wo?

19.03.2010, 10:27
Das gleiche Problem tritt im Beispiel auch aus (siehe Tabelle im Sub VI zum Zeitpunkt t=0) (mindestens 2 mal durchlaufen lassen)

