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!
29.06.2016, 14:42 (Dieser Beitrag wurde zuletzt bearbeitet: 29.06.2016 14:43 von Freddy.)
Zitat:2) Die Pause welche ich mit einer Sequenz und einer Wartezeit gebaut habe, ist wirkungslos.
Die Pause wird auch nie ausgewählt.
Erfassung Gewicht springt auf Erfassung Gewicht 2.
Erfassung Gewicht 2 springt auf Erfassung Gewicht.
Wie soll das den auf Pause springen?
Die Pause hat zwei Timer, die meiner Meinung nach parallel laufen da kann man sich einen sparen.
Zitat:1) Beim ersten Messdurchlauf fehlt mir Gewicht 1
Logisch muss ja fehlen. Du schiebst beim ersten Durchgang eine 0 durch die If Anweisung. Erst beim zweiten Durchgang stehen dann zwei Werte in dem Array.
Zum Zählen der Durchgänge kannst Du auch das "I" von der While Schleife verwenden.
Mit dem PauseCase hast du recht.
Im Eifer hab ich die Auswahl vergessen anzupassen.
In der Pausensequenz habe ich jetzt nur noch einen Timer drin.
Jedoch macht er komische Sachen. Die Sekunden werden eingehalten, nur nicht an der richtigen Stelle. Im Array werden dann aber 3 Zeilen (Messreihen) mit einmal ausgegeben.
Die Nummerierung habe ich mit der Iteration der While-Schleife verbunden. Das funktioniert jetzt auch.
Das Problem mit dem Befüllen und dem Schieberegister bleibt aber bestehen.
Wie kann ich es ermöglichen, dass in so einem Ablauf, schon die erste Messung voll aufgezeichnet wird?
Verbinden die Iteration der While Schleife mit einer If Anweisung in der die Array Daten zusammengesetzt werden.
Wenn Iteration <=1 dann wird nichts in das Array eingefügt.
Den Zähler habe ich mal einfach gelassen. Ist natürlich so unschön.
Hallo Freddy,
Danke für deinen Vorschlag.
Die Idee hatte ich auch, jedoch verworfen.
Das wird ja ein Prüfstand. Da kann ich doch nicht erst 2 Nullrunden fahren.
Die ersten Messungen sollten passen.
Und warum klappt das mit den zeitlich versetzten Messungen nicht?
Mfg
Steffen
Zitat:Das wird ja ein Prüfstand. Da kann ich doch nicht erst 2 Nullrunden fahren.
Das wäre eine Null Runde, da die erste eine Pause ist. Bei jeder Pause wird auch ein Datensatz erstellt. Soll das so sein?
Wenn man per While Schleife im Wechsel zwei Messungen aufnimmt, wird es immer eine Null Runde geben.
Daher würde ich eine If Anweisung mit der Iteration "bei 0 mache zwei Messungen" und dann weiter.
Zitat:Und warum klappt das mit den zeitlich versetzten Messungen nicht?
Nach der Zweiten Messung springst Du direkt in die erste Messung. Da ist keine Pause.
ich habe weiter experimentiert und bin soweit zufrieden.
Es gab jetzt noch kleine Änderungen/Ergänzungen.
Ich habe jetzt eine Messagebox drin.--->entweder Verwerfen der Ergebnisse oder in einer Textdatei speichern und im Array anzeigen. Die Nummerierung habe ich weggelassen und durch einen Zeitstempel ergänzt.
Mir wurde jetzt gesagt, dass ich vor jeder Messung Nullen soll.
Gemäss Waagenanleitung ist dafür ein "R" fürs Nullen und ein "Q" fürs Messen nötig. Im Hyperterminal funktioniert es. Im Labview erhalte ich Timeoutfehler.
Mein Gedanke war, dass zwischen den Befehlen etwas zeitlicher Abstand sein muß. Dies brachte aber keine Änderung.
Ich vermute es liegt an den 1000 Zeichen beim Read der Schnittstelle. Da keine 1000 Zeichen kommen wird eine Error Meldung 'Timeout' ausgegeben. Wenn Du nach dem Read ein Clear Errors setzt läuft es bestimmt.
Man kann den Timeoutfehler auch explizit´löschen in dem man bei Clear Errors die Fehlernummer angibt.
ich habe die nur hochgesetzt, weil ich dachte es wird eventuell mehr mitgeschickt. Vorher hatte ich immer 10 drin stehen. Selbst wenn ich eine 1 reinschreibe, kommt nix mehr an.
Setz ich aber 2x "Q" (unabhängig vom Sinn) läuft das Programm durch.
Edit: Ich habe die Fehlerausgabe der Waage aktiviert.
EC,E02: The balance received a Qcommand while processing a re-zero command.
Adjust the delay time to transmit a command
Ich habe es weiter probiert und zwischen Nullung und Messung 1,1Sekunden Pause gesetzt. Dann funktioniert es.
Da ich hier jetzt aber ein Genauigkeitsproblem habe, mache ich hier erstmal zu. Das Grundproblem ist ja soweit gelöst.
Danke