Ja manchmal brauch ich ein paar mal den selben Denkanstoß um
es mir dann entgültig zu merken
Also das mit der Wiederholungsrate funktioniert jetzt super, aber dadurch ist ein anderes
Problem entstanden
Wenn ich jetzt eine While-Schleife um die DAQ-Bausteine mache habe ich keine Endliche
Anzahl von Sprüngen mehr da er ja die z.B. 5 eingestellten Sprünge sofort wiederholt.
Soll ich das jetzt auch in ein Event bauen? So das nach dem Senden der 5 Elemente das
Event verlassen wird und erst wieder aufgerufen wird sobald sich ein Parameter oder die Widerholungsrate ändert?
Wie mache ich das dann? Beide Events in eine While schleife?
Die Events hängen von den gleichen Parametern ab dürfen aber trotzdem nicht
gleichzeitig ablaufen
Mit einer stacked Sequenz funktioniert das ganze auch, ist aber in der Praxis unpraktisch da
ich eine kleine Pause habe zwischen nach z.B. 5 Sprüngen wenn dann die neuen Parameter eingelesen werden für die nächsten Sprünge............habe ich schon probiert.
Naja ich mach erst mal Feierabend, vielleicht träum ich ja heute vom richtigen
Datenflow und morgen gehts dann
gerade funktioniert Denken jedenfalls nicht mehr
Gruß Domi
Habe leider noch ein kleines Problem in meinem Pulsgenerator festgestellt. Habe es mal hochgeladen und die "problem"-Parameter auf "current values default" gestellt.
Wie man sehen kann wird bei zu kurzer Abfallszeit und/oder keiner Nachlaufzeit der restliche graph einfach abgeschnitten, obwohl das bei mehreren widerholungen des Graphen scheinbar nicht passiert bzw. dort auch nur bei dem letzten.
Habt ihr eine Ahnung woran das liegen könnte? Oder besser noch wie man das beheben kann? Liegt wohl irgendwie an dem Rampenbaustein, im Context Help steht irgendwas von "less then 2 Samples......error...." aber ich verstehe nicht wieso es dann bei mehreren Signalen richtig angezeigt wird
Gruß
Domi
Hallo Domi,
Zitat:Habt ihr eine Ahnung woran das liegen könnte?
Ja...
- Die Mathefunktionen der Signalgenerierung haben alle einen Fehlerausgang rechts unten. Hast du dir die Fehlernummer schon mal angeschaut? Steht in der Kontexthilfe, die du doch sicher offen hast und liest...
- Man kann sich die VIs der Signalgenerierung auch anschauen. Wenn du das tätest, würdest du eine sehr ausführliche Fehlerbeschreibung lesen können, z.B. bei der Funktion, mit der du den "Abfall" generieren willst...
Merke: Ein Programm sollte immer eine ordentliche Fehlerbehandlung aufweisen...
Das ist an sich ein super Vorschlag, aber keine Ahnung ob ich zu Blöd dazu bin, ich finde nichts wo man zu einem Fehlercode eine direkte Erklärung bekommt
.
Das Ramp Pattern das ich verwende gibt mir als I32 Fehlercode nur eine 0 aus.
Wenn ich mir den I32 error Baustein in der Context Help ansehe wird mir gesagt ich solle das mit einem "Error Cluster From Error Code" verbinden. Wenn ich das mache und einen error out anhänge wird mir im FP das klassische error out Fenster angezeigt bei dem aber der Status einen grünen Hacken hat und nichts in der source steht.
Wenn ich auf das Detailed Help des Error Codes gehe komme ich nur zur Labview Help die mir eine allgemeine Seite zu "Front Panel Controls and Indicators" anzeigt.
Bei dem Detailed Help des Ramp Pattern wird nur der Baustein näher erklärt. Die einzigen Baustein die mir einen Fehlercode ausgeben sind die die ich für den Vor-und Nachlauf verwendet habe, doch auch wenn ich diese entferne funktioniert das VI hat aber immernoch den Fehler den ich versuche zu behandeln.
Ich hoffe ich stelle mich gerade nicht total blöd an aber ich finde einfach nicht was du meinst
.
Gruß Domi
Hallo Domi,
wenn man dein letztes VI mit den Voreinstellungen laufen lässt, dann meldet das "Signalerzeugung über Zeit" für den "Nachlauf" einen Fehler "-20061". Wenn man sich das Blockdiagramm dieses VIs anschaut, denn sieht man:
[
attachment=46883]
Das ist doch eine sehr eindeutige Fehlerbeschreibung! Was willst du mehr?
Der Rest ist doch alles in Ordnung. Schau dir an, wie der einzelne Waveform aussieht. Eben dieser wird mehrfach aneinander gehängt...
Hilfreich zum Verständnis ist es auch, wenn man im unteren Graph den Plot auf Punktanzeige umstellst (statt Liniendarstellung). Dann sieht man alle Datenpunkt - und versteht, warum wo welche Rampen angezeigt werden...
Ok jetzt verstehe ich was du meinst scheinbar wurde dort die Nyguist Frequenz verletzt.
Doch der Nachlauf ist eigentliche nicht das was mir Probleme bereitet, mit ihm wollte ich nur, auf eine warscheinliche eher unsaubere Art, eine Gerade nach der Rampe definieren was auch funktioniert.
Ich habe das VI noch einmal ohne die Bausteine für Vor-und Nachlauf hochgeladen, so funktioniert es auch doch der Fehler besteht immernoch.
Wenn man es betrachtet sieht man das der Anstieg bei einer Anstiegszeit von einem Sample von 0 bis zu dem Belastungswert steigt.
Das gleiche möchte ich auch mit der Abfallszeit auf den Endwert erreichen.
Doch das macht das Ramp Pattern VI scheinbar bei abfallenden Rampen nicht, allerdings beim aneinanderhänger der Rampen scheinbar schon..........bis auf die letzte Rampe die nicht auf 0 zurück geht. Aber wieso?
mir ist klar das eine Rampe eig durch zwei Punkte also mindestens 2 Samples für start und ende definiert sein muss, doch selbst wenn ich bei der Abfallszeit 2 einstelle geht die letzte Rampe nicht mehr bis auf 0.
Oder ist das einfach ein Anzeigefehler und wenn ich das ans Oszi schicke geht es doch wieder runter? komischerweise ist die Duration der Output Rampen nämlich immer länger als die angezeigten Rampen.
Bin echt am verzweifeln, möglicherweise eignet sich der Ramp Pattern Baustein einfach nicht um so etwas zu generieren, das hieße allerdings das ich nicht nur das Sub-Vi sondern auch das übergeordnete VI komplett umschreiben müsste
Gruß Domi
Hallo Domi,
Zitat:Wenn man es betrachtet sieht man das der Anstieg bei einer Anstiegszeit von einem Sample von 0 bis zu dem Belastungswert steigt.
Falsch, du hast nicht
genau genug betrachtet!
Bei einem
einzigen Sample gibt dir die Rampe nur den Anfangswert aus. Sieht man sehr schön, wenn man mit Sonden etwas Debugging betreibt. Hatte ich sowas ("Debugging mit Highlighting und Sonden") schon einmal empfohlen? Ich glaube schon...
Noch einmal: stelle die Plotanzeige von Linie auf Punkte um. Dann wird man nicht von irgendwelchen Rampen, die der Graph zwischen zwei Punkten malt, verwirrt!
So ich konnte das Problem nun endlich Lösen.
Dank dem Debuggen mit Highlighting und Sonden habe ich endlich das Problem verstanden, nämlich das der Anfangswert (0) eines Sprungs auch gleichzeitig der Endwert des vorherigen Sprungs war. Dashalb war der letzte Sprung immer fehlerhaft da ihm der Endwert bzw der Anfangswert des nächsten Sprunges gefehlt hatte um wieder auf 0 zu kommen.
Ich habe das Problem gelöst indem ich ein Impule Pattern, also einen Wert am ende aller Lastsprungwiederholungen angehängt habe der immer so hoch ist wie das ende von jeweils einem Lastsprung.
Danke für die Hilfe
!
Gruß
Domi
Mein VI vom Anfang des Threads auf Wunsch eines Users für LV8.5...
Hallo Domi,
hast du noch dein VI, wo du die Trapezpulse in das DAQmx eingebaut hast?
Ich habe gerade eine ähnliche Aufgabe und verstehe noch nicht genau wie ich es am besten umsetzen soll. Dein VI würde mir sehr helfen.
Ich würde mich über eine Rückmeldung freuen.
Schöne Grüße
Lea