' schrieb:So, kurz vor dem verfrühten Feierabend:
Doch, hast Du, hab zwar manchmal eine blühende Phantasie, aber so sehr...;)VI Rampenfahrt, untere Sequenz, Rahmen 0.
Du hast recht.
Ich kanns mir nicht erklären und ich muss gestehen, ich weiß oft nicht genau, was bei LV abgeht, aber mit dieser Einstellung läuft das Programm wie es soll
' schrieb:Also, ohne Dein VI so ganz genau angeschaut zu haben: Du hast verschiedene Berechnungen für eigentlich nur zwei oder vier Variablen, die du wieder ausgibst. Die Berechnungsmethode variiert je nach Wert von einzelnen Variablen. Das hast Du mit Case-Strukturen gelöst (was prinzipiell vielleicht nicht so geschickt, aber doch machbar ist). Was Du jetzt aber machst, ist in jeder Case Struktur alle Variablen, mit denen Du rechnest, per lokaler Variable zu lesen. Jeder andere hätte die Controls auf der linken seite des Blockdiagramms und dann von da mit Drähten in die Case-Strukturen gezogen. Das gibt die kleinen Knubbel am Rand und da kann man dann auf die Werte zugreifen. Da LabVIEW-Knoten immer dann abgearbeitet werden, wenn alle Eingänge mit Werten belegt sind, bekommt man damit auch keine Race-Conditions.
Beispiel aus dem Rampenfahrt-VI: In der oberen Sequenz berechnest Du in Rahmen 1 zwei Variablen, die von den Ergebnissen aus Rahmen 0 abhängen. Die Sequenz brauchst Du nicht, einfach die Ausgänge aus Rahmen 0 mit den Eingängen der Funktionen, die in Rahmen 1 sind verbinden. Spart insgesamt vier Frontpanelzugriffe (OK, auf RT-Targets nicht so wichtig, aber generell schon) und lässt das ganze auf jeden Fall sehr viel übersichtlicher aussehen.
Danke für den super Tipp. Hab das Sub VI komplett überarbeitet.
Und deine Mutmaßung war richtig, ich habe inzwischen alle lok. Variablen und einiges an Cases rauswerfen können
' schrieb:Ja, NI sollte mal das Feature einführen, dass man Express-VIs erst dann verwenden darf, wenn man sich deren Blockdiagramm angesehen hat... Dann merkt man doch relativ schnell, dass die Dinger zwar fst alles können, aber das halt auch kostet. Und leider können Sie meist das nicht, was man gerade braucht. Da lob ich mir doch, mit Version 7 angefangen zu haben, wo's sowas noch nicht gab...
Ich muss sagen, hab die Dateispeicherung nach wie vor nicht wie gewollt hinbekommen. Die richtige Einstellung von "Datei öffnen/ schreiben/ schließen" gelingt mir nicht.
Im Endeffekt will ich für jeden neuen Durchgang des 9. Rahmens eine neue Datei, am liebsten mit vortlaufenden Nummern, die mir die Soll- & Istposition, eventuell die verstichene Zeit, als Tabdatei oder ähnliche speichert. klappt aber nicht
' schrieb:Ja, z.B. Ein Loop-Timer wäre noch besser, weiß aber nicht, ob das auf dem RT-Target unterstützt wird, ich kenns nur vom FPGA (hab aber auch kein RT). Wert wäre entweder von Dir zu bestimmen (wenn Du eine Update-Rate von 1 kHz haben willst, entsprechend 1ms, bei 50 kHz halt 20µs) oder ist Durch die Hardware vorgegeben: Wenn das Output-Modul nur z.B. 10 kHz kann, wird auch die Schleife maximal so schnell laufen (mal davon ausgehend, dass Du das ganze optimal aufgebaut hast und alle Prozesse parallel laufen. Atlernativ: Pipelining. Dazu weiß aber auch NI was.
Den Loop-Timer hab ich eingesetzt.
Das eigentliche Problem ist aber leider nicht behoben. Das ganze läuft subjekt gesehen etwas flüssiger, aber nicht mit dem gewünschten Resultat
Woran kann es noch liegen, wo sollte ich noch mal Hand anlegen?
Am Sub-Vi ist glaube nicht mehr wirklich was zu verbessern, am Hauptgrogramm weiß ich nicht wo ich ansetzen sollte.
HILFE
Hab das verbesserte SUB-Vi samt Host-VI noch mal angehängt...