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!
Hall Forum,
sorry das ich schon wieder frage, aber heute will es einfach nicht laufen
ich habe 2 verschiedene VI's die unabhängig voneinander auch funktionieren. In einem wird eine Temperatur ausgewertet, im anderen ein Weg. Auch das dokumentieren in jeweils einer txt-Datei funktioniert.
Ziel ist es, alle halbe Sekunde beide Werte so parallel wie möglich in einer txt-Datei zu dokumentieren.
Ich habe jetzt schon x Versuche unternommen mit Schleifen an unterschiedlichen Orten etc...
Hat hierzu vlt jemand eine Idee?
Anbei beide VI's.
Anzeige
29.11.2013, 15:13 (Dieser Beitrag wurde zuletzt bearbeitet: 29.11.2013 15:35 von jg.)
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
RE: 2 VIs verknüpfen
Wie wäre es mit synchronisierten Schleifen?
Gruß Markus
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Bei der "Wegmessung" hast du gelernt, nicht dauernd die COM-Schnittstelle zu öffnen und zu schließen.
Wieso machst du das immer noch in der Temp-Messung.
Was soll das hier?
Wieso machst du bei der Wegmessung noch mit Split-Array rum, ich habe dir den einfacheren Weg per Array-Index gezeigt.
Bei der Kanal-Auswahl habe ich dir auch etwas anderes gezeigt/programmiert. Dein Ansatz funktioniert jetzt nur, wenn du von deiner Gegenstelle immer nur Kanal 1 zurückbekommst, ansonsten nicht.
Wieso bei der Temp-Messung derselbe "Quatsch" mit Split-Array? Wenn du nur 1 Wert (aus 2 Registern) abfragst, dann brauchst du nicht mit Arrays zu hantieren.
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
(29.11.2013 15:34 )jg schrieb: Bei der Wegmessung hast du gelernt, nicht dauernd die COM-Schnittstelle zu öffnen und zu schließen.
Wieso machst du das immer noch in der Temp-Messung.
Übersehen von mir Danke!
(29.11.2013 15:34 )jg schrieb: Was soll das hier?
Zum vergessen, ich dachte irgendwie "Warten" braucht auf der rechten Seite auch eine Verbindung.
(29.11.2013 15:34 )jg schrieb: Wieso bei der Temp-Messung derselbe "Quatsch" mit Split-Array? Wenn du nur 1 Wert (aus 2 Registern) abfragst, dann brauchst du nicht mit Arrays zu hantieren.
Ich übersehe eindeutig zu viel
(29.11.2013 15:34 )jg schrieb: Wieso machst du bei der Wegmessung noch mit Split-Array rum, ich habe dir den einfacheren Weg per Array-Index gezeigt.
Bei der Kanal-Auswahl habe ich dir auch etwas anderes gezeigt/programmiert. Dein Ansatz funktioniert jetzt nur, wenn du von deiner Gegenstelle immer nur Kanal 1 zurückbekommst, ansonsten nicht.
Meinst du das "Array dezimieren" nach der ersten Case-Struktur? Funktioniert das nicht?
Ist das mit der Kanal-Auswahl an mir vorbeigegangen?!
Ich habe es versucht wenn ich einen von Hand eingegebenen String sende, dann ging es.
Und um auf meine Anfangsfrage zurückzukommen, wie mache ich eine synchronisierte Schleife? :/
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
RE: 2 VIs verknüpfen
...und dann schließt Du es einfach an eine Forschleife an.
Du weißt schon, dass man da die Anzahl der Durchläufe anschließt?
Gruß Markus
(29.11.2013 16:01 )redhand schrieb: Zum vergessen, ich dachte irgendwie "Warten" braucht auf der rechten Seite auch eine Verbindung.
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Anzeige
29.11.2013, 16:34 (Dieser Beitrag wurde zuletzt bearbeitet: 29.11.2013 16:38 von jg.)
(29.11.2013 16:21 )Y-P schrieb: ...und dann schließt Du es einfach an eine Forschleife an.
Du weißt schon, dass man da die Anzahl der Durchläufe anschließt?
Und dass die Ausgabe von "Wait [ms]" die Anzahl des computer-internen Millisekunden-Counters ist? x-Milliarden mal lässt du somit eine leere For-Schleife durchlaufen.
Wenn du die Abfrage alle 500 ms laufen lassen willst, langt auch ein paralleles Wait.
Zwecks Wegmessung, Zitat aus deinem anderen Thread:
Zitat:Die Signale kommen folgendermaßen:
Ich bekomme immer 2 Byte, wobei die ersten 4 Bit des ersten Bytes die Information der Kanalnummer beinhaltet (0001 für Kanal 1; 0010 für Kanal 2 etc.).
Was ist, wenn deine Gegenstelle mehrere Kanäle überträgt und du beim Start der Kommunikation nicht Kanal 1 erwischst? Dann geht deine Wahl der "Nullsetzung" schief.
Gruß, Jens
--
Und jetzt noch ein konstruktiver Vorschlag: Du könntest per Queues immer einen Cluster "Zeitstempel + Wert" aus deinen beiden VIs an eine dritte parallele Schleife übertragen. Dort werden die ankommenden Werte (inkl. Timestamp) analysiert und dann zusammengesetzt.
Gaaaanz einfache Variante:
Akt. Werte der beiden Schleife in lokale Anzeige schreiben, und parallel das Speichern im 500 ms Takt, wobei immer der zuletzt ausgelesene Wert gespeichert wird. Ist zwar leicht asynchron, aber die Asynchronität hast du schon durch Abfrage 2er Messgeräte per RS-232-Schnittstelle.
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
(29.11.2013 19:23 )jg schrieb: Hier eine Quick&Dirty Umsetzung mit lokalen Variablen. Ich geb's zu, nicht sonderlich schön, aber zum ersten Probieren sollte es reichen.
Gruß, Jens
Danke für die Idee mit den lokalen Variablen. Genau nach sowas habe ich zum ersten Probieren auch gesucht.
Problem ist, dass die beiden Schlaufen zu Weg- bzw. Temperaturmessung nicht parallel laufen :/
Stichwort synchronisierte Schleifen klingt gut, wie man so etwas umsetzt komm ich einfach nicht voran
Im Idealfall sollte im zuletzt hochgeladenen VI von jg ("Temperaturmessung.vi") die beiden While-Schleifen parallel laufen.
Ist das möglich?
(02.12.2013 10:03 )redhand schrieb: Stichwort synchronisierte Schleifen klingt gut, wie man so etwas umsetzt komm ich einfach nicht voran
Hallo Redhand,
2 Schleifen parallel laufen zu lassen ist z.B. über Rendezvous umsetzbar oder im einfacheren Fall auch über die Funktion warte vielfache ms, wobei hier sichergestellt sein muss, dass der vorher/hinterher auszuführende Code innerhalb der Wartezeit ausgeführt werden kann.