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!
Ich moechte gerne eine Date test.txt wiederholt einlesen. Ist der erste Charakter eine Null oder Eins, soll die Boolean Lampe an- oder ausgehen.
Koenntet ihr mit bitte Feedback geben, ob das so okay ist? Oder mir Verbesserungsvorschlaege unterbreiten?
Was ist der Unterschied zwischen dem Metronom und der Uhr? Ich habe jetzt 200ms angeschlossen. Ist das zu lange?
Ich moechte spaeter ein Geraet automatisch damit steuern, aber erstmal kleine Kekse backen.
Danke.
Gruss
blue
Welchen Sinn macht es, die gleiche Datei immerwieder an der gleichen Stelle auszulesen?
Davon abgesehen, kannst du die Cas-Struktur ersetzen durch einen Vergleich mit 0. Oder einen Vergleich ungleich 0. Jenachdem was du möchtest.
Die Wartezeit spielt keine große Rolle. es bedeutet nur, dass deine While-Schleife nicht mit maximaler CPU-Last ausgeführt wird. In deinem Fall wird in jedem Schleifendurchlauf 200 ms gewartet. Der Unterschied zum Metronom ist, dass hier eine fixe Anzahl an ms gewartet wird. Beim Metronom wird gewartet, bis der Timer des Systems ein Vielfaches von 200 ms erreicht hat. Die tatsächlich Wartezeit kann also zwischen 0 und 199 ms betragen.
Grüße,
Totti
"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" (Konrad Zuse)
Einen besonderen Sinn kann ich in dem VI auch nicht kennen. Was tut denn z.B. Deine Lampe, wenn die Zahl weder 0 noch 1 ist?
Die Umwandlung String in Zahl könntest Du dir sparen:
Weitere Unterschiede Metronom/Wait:
Wenn eine Berechnung in einer Schleife 210 ms braucht, denn ist die Gesamtzeit für einen Scheifendurchlauf
Mit Wait 200ms: 210 ms
Mit Metronom 200 ms: 400 ms (nächstes Vielfaches von 200ms)
Bei parallelen Scheifen mit Wait/Metronom mit gleichen Zeiten:
Metronom: Die Schleifen laufen synchron und "in Phase"
Wait: Nicht synchron und nicht in Phase.
31.05.2011, 16:28 (Dieser Beitrag wurde zuletzt bearbeitet: 31.05.2011 16:35 von bluesaturn.)
(31.05.2011 14:26 )TSchAC schrieb: Welchen Sinn macht es, die gleiche Datei immerwieder an der gleichen Stelle auszulesen?
Ein anderes Programm soll spaeter eine Eigenschaft kontrollieren. Sagen wir mal, sie heisst X (genaugenommen handelt es sich u die Probentransmission bei einem Roentgenversuch). Sobald X einen Grenzwert ueberschreitet, sol die Datei von 0 auf 1 springen oder anders herum. Das programmiert aber jemand in einer Sprache. Wir haben und darauf geeinigt, dass wir via einer Datei, in der 0 oder 1 steht, kommunizieren koennen.
Die einzulesende Datei wird also immer mal wieder ihren Wert veraendern. Das wird fuer mein Geraet ein Start und Stop-Signal sein. Solange z.B. in der Datei 1 steht, soll mein Geraet laufen. Ist es 0, soll es anhalten. Deswegen muss ich immer wieder die Datei einlesen.
Macht das nun mehr Sinn?
Die Datei, die ich einlese, ist sozusagen ein Trigger zum Starten oder Stoppen meines Geraetes.
TSchAC schrieb:Davon abgesehen, kannst du die Cas-Struktur ersetzen durch einen Vergleich mit 0. Oder einen Vergleich ungleich 0. Jenachdem was du möchtest.
In Ordnung.
TSchAC schrieb:Die Wartezeit spielt keine große Rolle. es bedeutet nur, dass deine While-Schleife nicht mit maximaler CPU-Last ausgeführt wird. In deinem Fall wird in jedem Schleifendurchlauf 200 ms gewartet. Der Unterschied zum Metronom ist, dass hier eine fixe Anzahl an ms gewartet wird. Beim Metronom wird gewartet, bis der Timer des Systems ein Vielfaches von 200 ms erreicht hat. Die tatsächlich Wartezeit kann also zwischen 0 und 199 ms betragen.
Danke fuer die Erklaerung und fuer dein Feedback.
Gruss
Blue
(31.05.2011 15:59 )Lucki schrieb: Einen besonderen Sinn kann ich in dem VI auch nicht kennen. Was tut denn z.B. Deine Lampe, wenn die Zahl weder 0 noch 1 ist?
Die Umwandlung String in Zahl könntest Du dir sparen:
Weitere Unterschiede Metronom/Wait:
Wenn eine Berechnung in einer Schleife 210 ms braucht, denn ist die Gesamtzeit für einen Scheifendurchlauf
Mit Wait 200ms: 210 ms
Mit Metronom 200 ms: 400 ms (nächstes Vielfaches von 200ms)
Bei parallelen Scheifen mit Wait/Metronom mit gleichen Zeiten:
Metronom: Die Schleifen laufen synchron und "in Phase"
Wait: Nicht synchron und nicht in Phase.
Hallo Lucki,
den Sinn habe ich gerade im Post zuvor erklaert. Soweit ich verstanden habe, gibt es nur 0 oder 1. Das war zumindest der Plan.
Metronom/Wait:
Spaeter moechte ich dieses Programm in mein Hauptprogramm integrieren. Dieses hat auch eine Schleife.
Die Schleifen werden aber nicht in Phase und auch nicht synchron laufen. Ich glaube, daher ist es egal ob ich in diesem Programm hier Metronom oder Wait habe, richtig?
Abgesehen davon, dass ich die Schnittstelle "Datei" nicht gerade optimal finde, könnte es dabei sehr schnell zu Konflikten bezüglich des Dateizugriffs kommen.
Lösungsansatz:
anstatt immer die Datei auszulesen, vergleiche das Änderungsdatum der Datei. Wenn es sich gegenüber dem ersten Einlesen geändert hat, dann wurde der Inhalt angepasst.
Grüße,
Totti
"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" (Konrad Zuse)
(31.05.2011 16:37 )TSchAC schrieb: Abgesehen davon, dass ich die Schnittstelle "Datei" nicht gerade optimal finde, könnte es dabei sehr schnell zu Konflikten bezüglich des Dateizugriffs kommen.
Lösungsansatz:
anstatt immer die Datei auszulesen, vergleiche das Änderungsdatum der Datei. Wenn es sich gegenüber dem ersten Einlesen geändert hat, dann wurde der Inhalt angepasst.
Grüße,
Totti
Hallo Totti,
okay, es ist ein schmutzige Loesung, aber ich habe deren Software nicht zum testen hier. Wenn ich mit meinem Geraet anreise, bleibt kaum Zeit vor Ort, es zu programmieren. Ausserdem bin ich kein LabView-Guru!
Wie vergleicht man bitte das Aenderungsdatum der Datei bitte?
Danke schoen und vielel Gruesse
Blue
Hallo TSchAC,
vielen Dank dafuer.
Mir ist gestern noch aufgefallen, dass Labview nicht gemeckert hat, als es staendig meine Datei einlesen sollte, obwohl diese offen war und ich sie,waehrend Labview lief, veraendert habe.
Warum sollte es dann zu Dateikonflikten kommen?
Anscheinend besteht noch die Moeglichkeit, dass das andere Program staendig Signal via UPD schickt und Labview lauschen koennte.
Wuerde das besser sein, wenn ich das hinbekomme?