FTDI - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +---- Forum: Instrument IO & VISA (/Forum-Instrument-IO-VISA) +---- Thema: FTDI (/Thread-FTDI) Seiten: 1 2 |
FTDI - Otti - 24.09.2007 10:12 Zitat:Das geht natürlich schon und wohl noch eine ganze Weile auch mit mehr Schnittstellen. Aber!!!!!Ich denke mal das es kein Problem für mich ist...?! Meine Hauptschleife greift erst alle 200ms auf die Werte der lokalen Variablen zu und die 3 Leseschleifen machen ihre Sache ja fast as possible. Von daher meinte ich es sollte klappen. Oder wie denkst du? Zitat:Dein Instrument könnte ja ein ziemlicher dummer Schreier sein der einfach seine Daten wild hinausschreit ohne jeweils erst ein Kommando zu erwarten und für solche Instrumente ist die von Dir gemachte Entkopplung meist die Beste Sache.Von der Seite her sind meine 3 Module "dumme Schreier" da sie einfach permanent Werte Senden ohne ein Start oder Stop Kommando zu benötigen. Zitat:Lokale Variablen können Schlaufen entkoppeln, was prinzipiel gut ist aber man muss darauf achten dass die Schreiboperation völlig asynchron zur Leseoperation läuft das heisst, Du kannst in der Hauptschlaufe entweder 100 mal denselben Wert lesen weil die Leseschlaufe eben viel langsamer ist oder im anderen Extremfall liest Du nur jeden x hundersten Wert der von der Leseschlaufe produziert wird. Falls Du Deine Schlaufen doch irgendwie synchronisieren willst wird es komplizierter.An der Stelle weis ich nicht genau wie du das meinst. Wann oder besser in welchen Fall benötige ich beispielsweise eine Synchrone Abarbeitung? In meinem Programm werden von den 3 angeschlossenen Modulen nur Werte gelesen, zur Anzeige gebracht und gleichzeitig in ein Binary-File geschrieben... Mit besten Grüßen und Danke für die Anmerkungen (bin ja eher Anfänger) Thomas Otto FTDI - rolfk - 26.09.2007 08:16 ' schrieb:An der Stelle weis ich nicht genau wie du das meinst. Wann oder besser in welchen Fall benötige ich beispielsweise eine Synchrone Abarbeitung? Also Deine Eingangsschlaufen lesen beispielsweise alle 10 ms einen Wert, weil die Instrumente diese einfach so "herausschreien". Wenn Du in Deiner Hauptschlaufe nun alle diese Werte haben möchtest (etwa weil der dynamische Verlauf davon wichtig ist) dann musst Du synchronisieren (am Besten mit Queues oder auch LV2 Style Globals). Wenn es Dir aber nur darum geht ab und an den aktuellen Wert auf Disk zu schreiben und alle anderen Werte ohne Probleme verloren gehen können, dann ist die von Dir gemachte Entkopplung in Ordnung. Ein Problem solltest Du aber nicht vernachlässigen. So wie Du es jetzt getan hast merkt Deine Hauptschlaufe wohl nicht wenn plötzlich keine Daten mehr kommen, etwa weil das Kabel unterbrochen ist oder das Instrument keinen Strom mehr hat. Du loggst dann einfach stundenlang den letzten gemessenen Wert oder vielleicht 0 je nach dem wie Du die Leseschlaufe mit Dekodierung programmiert hast. Das würde ich dadurch lösen, dass ich im Falle eines Fehlers beim Lesen explizit einen Wert NaN (Not a Number) in die lokale Variable schreiben würde. Dann siehst Du im log automatisch wenn das Instrument nicht mehr arbeitete wie es sollte. Rolf Kalbermatter FTDI - Otti - 26.09.2007 17:56 Hallo Rolf, also nochmal zu der Synchronisierung. Ich lasse die Lese schleifen im Prinzip so schnell wie möglich laufen, dh. es wird wohl ca alle 1ms ein Wert gelesen und diese Werte schreibe ich dann in ein "Data Queue PtByPt ". Das "Data Queue PtByPt " sammelt dann 150 Werte,diese werden dann als summe ausgegeben und durch 150 geteilt. Damit bekomme ich einen gleitenden Mittelwert über 150 Werte. Die Hauptschleife wiederum soll nun alle 200ms (also 5mal pro sek) einen Wert nehmen und den an die Anzeige übergeben. Ich denke nun, da die Hauptschleife ja nur alle 200ms einen Wert liest und die anderen im Prinzip weg schmeißt, brauche ich keine Synchronisation. Oder was meinst du? Wegen der zweiten Sache - dass ist für mich eher kein Problem - da dass Programm nicht alleine läuft sondern unter ständiger Aufsicht arbeitet und ich dann selbst bemerken würde wenn das Sensorgerät einen Fehler hätte. Grüße aus Leipzig Thomas Otto |