INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Doppelpuls Signal über CSV in Digitaldaten Tabelle und als Output schalten



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

18.02.2021, 16:19 (Dieser Beitrag wurde zuletzt bearbeitet: 18.02.2021 16:24 von GerdW.)
Beitrag #31

GerdW Offline
______________
LVF-Team

Beiträge: 17.427
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Doppelpuls Signal über CSV in Digitaldaten Tabelle und als Output schalten
Hallo Lucky.,

Zitat:Wie kann ich durch das beenden des VI, alle Ausgänge der Module in einen sicheren Zustand übergehen lassen. Also alle Ausgänge bzw. die die ich als relevant betrachte auf 0V schalten?
Bisher sieht meine Lösung hierzu so aus.
Und das sieht verkehrt aus!
1. Du hast da eine RaceCondition! (Ist in der LabVIEW-Hilfe erklärt!)
2. Wenn du Werte in Ausgänge schreiben willst, dann solltest du das auch machen! Irgendwelche Controls "auf Default setzen" ist jedenfalls etwas anderes…

Antwort: THINK DATAFLOW!
Eine Lösung lautet: Wenn dein VI vor dem Beenden bestimmte Werte in die Ausgänge schreiben soll, dann musst du das nach der Schleife machen.
Eine andere Lösung lautet: Erstelle eine saubere Statemachine-Architektur. Der letzte State vor dem finalen "EXIT" lautet dann "Ausgänge auf Null setzen"…

Zitat:wieso kann ich die Stopp Bedingungen bei mehreren Schleifen nicht per Verbindung zwischen zwei Schleifen tunneln? Das funktioniert irgendwie nicht, stattdessen musste ich eine lokale Variable hierfür anlegen, damit ich mit den Button "Programm beende" alle relevanten Schleifen beenden kann und das VI stopp.
Antwort: THINK DATAFLOW!
Das ist quasi das "42!" in der LabVIEW-Programmierung! Das musst du immer LAUT aufsagen, wenn du in LabVIEW programmierst…
In der LabVIEW-Hilfe gibt es dazu einen eigenen Eintrag! (Du hast alle Links in meiner Signatur beachtet!?)

Zitat:wie man ebenfalls eleganter Analoge Werte nur alle 250ms auslesen kann, so wie ich es jetzt in der einer Schleifen getan habe. Hier hatte ich einige Schwierigkeiten, wenn die Analogauslese Schleife in der Hauptschleife drinne ist. Dann funktionierte garnichts mehr, da ja wahrscheinlich die Unterschleife nur alle 250ms wieder in die Hauptschleife springt, richtig?
Zum letzten Satz mit dem "wahrscheinlich": die Antwort lautet THINK DATAFLOW!
Es ist vollkommen ok, zwei Schleifen parallel laufen zu lassen. Ich würde das Blockdiagramm nur besser aufräumen, Stichwort StyleGuide (auch in der LabVIEW-Hilfe)!

Wieso verwendest du DecimateArray+IndexArray in dieser Schleife? Entweder du bekommst exakt 4 Werte vom FPGA, dann reicht ein einziges IndexArray aus. Oder du bekommst pro Kanal mehrere Samples, dann solltest du auch alle Samples pro Kanal verwenden und nicht nur das erste!
Und warum die CoercionDots an den Anzeigen?

Und mal ehrlich: um anzuzeigen, dass dein VI läuft, musst du den VI-Status im 1ms-Takt per PropertyNode abfragen? Würde es nicht ausreichen, eine LED-Anzeige vor der Schleife auf TRUE und nach der Schleife auf FALSE zu setzen??? Hmm Da sind wir schon wieder bei THINK DATAFLOW!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
Antwort schreiben 


Nachrichten in diesem Thema
RE: Doppelpuls Signal über CSV in Digitaldaten Tabelle und als Output schalten - GerdW - 18.02.2021 16:19

Gehe zu: