Ich habe ein PREMA 5017 Multimeter, mit dessen Hilfe ich Temperaturen an einem Testaufbau auslesen möchte, und diese in eine Datei abspeichern. Die Temperatursteuerung wird ebenfalls mit Hilfe dieser Sensoren bewerkstelligt.
Das Lesen der einzelnen Meßkanäle über RS232 geht ganz gut, das Umschalten der Meßkanäle bringe ich bis jetzt nur das Frontpanel hin, soll aber automatisch erfolgen.
Ich will, gesteuert durch ein Zeitintervall, oder durch ein Ereignis die Zahlen 1 bis 5 (oder mehr) erzeugen. Diese dann an einen anderen Programmteil weitergeben, und zusätzlich ein Steuersignal erzeugen, welches an eine Case-Struktur übergeben wird.
Ich schreibe "Mxx" für die Kanalwahl, und "RD?", um das Multimeter zur Ausgabe des Meßwertes zu veranlassen.
Eine For-Schleife erzeugt zwar die Zahlen, gibt diese aber nicht direkt weiter. Gibt es eine Lösung?
Danke für die Hilfe
Wolfgang
' schrieb:Anregung:
[attachment=42201:Image01.png]
Gruß, Jens
Vielen Dank für die Mühe. Der Vorschlag zeigt nur die Konvertierung und das Einfügen des Zustandes der For-Schleife in den String. Ich möchte aber den Wert außerhalb der For-Schleife weiterverwenden. Dieser wird in der Schleife indiziert, und wenn ich das Auto-Indizieren abschalte, bin ich genauso naß wie vorher: Es funktioniert nicht! Ich habe hier ein Beispiel angefügt: schleife.vi
Unter einer Programmiersprache ist die Lösung simpel in einer For-Schleife zu lösen:
for n=1 to 5 (5 als Beispiel)
n in den Write-String einfügen (hier M01 bis M05)
Write-String in die serielle Schnittstelle schreiben
Lesebefehl abschicken (RD?)
übertragenen Wert aus Schnittstelle in Datei schreiben
Abfrage ob Schnittstelle einen String geliefert hat
end
Vielleicht kann sinnvollerweise auch ein Script eingefügt werden, der die Arbeit erledigt? Nur wo finde ich eine Beschreibung (tutorial) der Script-Sprache?
Gruß
Wolfgang
' schrieb:for n=1 to 5 (5 als Beispiel)
n in den Write-String einfügen (hier M01 bis M05)
Write-String in die serielle Schnittstelle schreiben
Lesebefehl abschicken (RD?)
übertragenen Wert aus Schnittstelle in Datei schreiben
Abfrage ob Schnittstelle einen String geliefert hat
end
So, den rot dargestellten Teil hast du in LV erstellt. Jetzt machste noch deine For-Schleife a weng größer und packst den Rest auch rein. Fertig. Wozu soll man da eine Script-Sprache brauchen?
Und wenn du alle 5 Strings für später brauchst, dann lass dir ein Array of Strings erstellen, indem du Auto-Indexing (Rechtsklick auf die Verdrahtung am Rand der Schleife) aktivierst.
Gruß, Jens
' schrieb:So, den rot dargestellten Teil hast du in LV erstellt. Jetzt machste noch deine For-Schleife a weng größer und packst den Rest auch rein. Fertig. Wozu soll man da eine Script-Sprache brauchen?
Und wenn du alle 5 Strings für später brauchst, dann lass dir ein Array of Strings erstellen, indem du Auto-Indexing (Rechtsklick auf die Verdrahtung am Rand der Schleife) aktivierst.
Gruß, Jens
Das ist ja das Problem, ich brauche die 5 Strings sofort, wenn sie in der Schleife anstehen. Ich bekomme erst Ergebnisse, wenn die FOR-Schleife abgelaufen ist. Dann ist aber alles zu spät. Oder gibt es eine Möglichkeit, eine entsprechende Schleife "zu Fuß" aufzubauen? Ich dachte, ein Script könnte eine Lösung sein.
Ich muß immer: 2 x String senden - Lesen - warten - geänderten String senden - etc. Die Änderung des Strings erfolgt mit der Gesetzmäßigkeit einer FOR-Schleife, so wie Jens es gezeigt hatte (meine Lösung funktionierte ähnlich).
Ich habe auch versucht, die RS232-Teile in die FOR-Schleife einzubringen. Das funktionierte auch nicht.
Ich bin hier recht ratlos.
Wolfgang
Lad doch mal deinen Versuch hoch!
' schrieb:Lad doch mal deinen Versuch hoch!
Ich hoffe, es hilft der Problemlösung.
Leider weiß ich nicht, wie ich eine Abbildung des Blockschaltbildes direkt einfüge
' schrieb:Ich hoffe, es hilft der Problemlösung.
Leider weiß ich nicht, wie ich eine Abbildung des Blockschaltbildes direkt einfüge
Hast du dir das so vergestellt?
' schrieb:
Schon mal hier gelesen: http://www.LabVIEWforum.de/Tutorial-Upload...hots-t5907.html
Und bitte LV-Version bei VI-Uploads angeben.
Ist alles in den LVF-Regeln verlinkt.
Gruß, Jens
Hmm, die Links hatte ich so direkt nicht gefunden -_-
Jedenfalls: Vielen Dank!
das hat mir sehr geholfen!
Einen ähnlichen Aufbau hatte ich schon einmal, aber ich kann nicht mehr nachvollziehen, warum er nicht funktionierte.
Jetzt ist mir auch klar, daß die Ausgabe der FOR-Schleife als Array sinnvoll ist. Diese wird ja verwendet, um eine Sammlung von Daten zu produzieren, und diese steht am Ende am Ausgang der Schleife als Array!
Das war eigentlich nur der erste Schritt: Jetzt muß ich aus dem Array einen Wert, oder mehrer auswählen, um damit die Temperatur zu regeln. Dazu werde ich aber neu posten.
Nebenbei, für Mitleser:
Zum Einfügen des Schleifenwertes hatte ich die Funktion "String Konvertieren" verwendet. Jetzt heißt es, die Zahl der angezeigten Werte soll zweistellig sein. Diese Funktion liefert aber führende Leerzeichen bei mehrstelliger Ausgabe. Wie Jens vorher im Beispiel zeigte, ist die Funktion "Wert Formatieren" angesagt. Hier bekomme ich die führenden Nullen, wie ich sie zur Steuerung des Digital-Multimeters benötige.
Die Eigenschft dieser Funktionen ist in den Hilfetexten nicht so deutlich zu erkennen. Auch daß der Integer aus der Schleife anschließend als String erscheinen soll, unter "formatieren" und nicht unter "konvertieren" zu finden ist. Aber zum Glück gibt es dieses Forum!
Jetzt noch das Ergebnis zum Auslesen eines PREMA 5017 über RS232:
Wolfgang