Hallo Zusammen,
ich bin neue hier und in Rahmen meine Masterthesis habe ich eine State-Maschine-Programm, das mit eine Chroma-Quelle
DC-Power Supply 62150H600S kommunizieren soll.
Ich muss alle Werte eine Rampe auf die Quelle schreiben. D.h jede werte soll vorher gelesen werden bevor sie übernommmen würde.
-der Erste Plateau dauert 300s
-die lineare Rampe 540s
-der zweite Plateau 360s
Wenn ich das Programm laufen lasse, kommt ein Fehler zur lin. Rampe wie aufs Bild.
zwischen Write-Instrument und Read-Instrument der Quelle ist eine Wartezeit für den
empfangenen Befehl zu verarbeiten und eine Antwort zu senden. Aber kommt immer Fehler.
Kann jemand mir helfen bitte?
Hallo Frakovik,
ich sehe nicht, wo in dem Programm "Instrument Handle" beschrieben wird, ist also leer.
Da kommt vermutlich der Fehler her.
Ein weiteres Problem ist:
Wenn beide (While Schleife und Sequenz) an ein Gerät (Chroma-Quelle) gehen, dann geht das so auch nicht.
Die While-schleife und die Sequenz werden parallel ausgeführt. D.h. beide wollen gleichzeitig an den Steuereingang der Chroma-Quelle.
Gruß
Freddy
Hallo Freddy
Ich glaube, die rot umrandete Sequenz ist der rot umrandete SubVI-Aufruf in dem Case Rampe. "Instrument Handle" wird also vor der While-Schleife initialisiert.
Im übrigen bin ich der Meinung, die Fehlermeldung meint genau das, was sie aussagt: Vom Instrument sind keine Daten angekommen. Der (automatische) Timeout der Lesefunktion ist abgelaufen, bevor Daten angekommen sind.
Kann es sein, dass Befehle, die zum Instrument gesendet werden, mit CR oder CRLF (oder sonstwie) abgeschlossen werden müssen?
Hallo alle,
@Freddy.
Die rote umrandete Sequenz-Struktur steht fürs SubVI (in rot), das in dem Case Rampe aufgerufen ist.
Instrument Handle ist ja schon vor der While-Schleife initialisiert.
(siehe Anhang neue Bilder)
@IchSelbst.
Ja stimmt. //die rot umrandete Sequenz ist der rot umrandete SubVI-Aufruf in dem Case Rampe. "Instrument Handle" wird also vor der While-Schleife initialisiert.//
//Vom Instrument sind keine Daten angekommen. Der Timeout der Lesefunktion ist abgelaufen, bevor Daten angekommen sind.//
Nein. Keine benutzte Befehle oder Kommando sind mit CR oder CRLF abgeschlossen. sind diese Zeilenendezeichen nötig?
Ich habe z.B. das SubVI mit wartender Zeit gleich 200ms,500ms, 1s versucht aber kommt immer der selbe Fehler.
Danke fürs Feedback.
(10.12.2017 01:21 )Frakovik schrieb: [ -> ]Nein. Keine benutzte Befehle oder Kommando sind mit CR oder CRLF abgeschlossen.
Zitat:sind diese Zeilenendezeichen nötig?
Ich weiß nicht, ob eine Terminierung notwendig ist. Du musst das wissen, weil: Du willst ja das Gerät fernsteuern.
Hast du mal die Dokumentationen gelesen (bzw. wenigstens angekuckt)? in "UM-62000H-dcsupply-v1.6-082017" steht was von Terminator LF (also dezimal 10) oder EOI (was keine mir geläufige ASCII-Bezeichnung für einen Terminator ist).
Ich denke, auch aus dem Sourecodes der vielen SubVIs für das Gerät geht hervor, dass der Anwender den Terminator selbst hinzufügen muss.
(10.12.2017 01:21 )Frakovik schrieb: [ -> ]Hast du mal die Dokumentationen gelesen (bzw. wenigstens angekuckt)? in "UM-62000H-dcsupply-v1.6-082017" steht was von Terminator LF (also dezimal 10) oder EOI (was keine mir geläufige ASCII-Bezeichnung für einen Terminator ist).
Ich denke, auch aus dem Sourecodes der vielen SubVIs für das Gerät geht hervor, dass der Anwender den Terminator selbst hinzufügen muss.
Ja ich habe die Dokumentation gelesen aber ich gucke die nochmal gründlich und versuche wenn es möglich ist, die Kommunikation mit dem Terminator.
Ich komme mit Endergebnis wieder.
Danke und bis dann.
Im SUB VI steht beim lesen ein Integer von 256. Ich gehe davon aus, es ist die Anzahl der zu lesenden Zeichen.
Kann es sein, dass keine 256 Zeichen ankommen und daher das Read VI den Timeout auslöst?
Gruß
Freddy
(11.12.2017 08:08 )Freddy schrieb: [ -> ]Im SUB VI steht beim lesen ein Integer von 256. Ich gehe davon aus, es ist die Anzahl der zu lesenden Zeichen.
Kann es sein, dass keine 256 Zeichen ankommen und daher das Read VI den Timeout auslöst?
Hallo Freddy,
Ja, 256 ist die maximale Anzahl der zu lesenden Bytes des ReadVI-Instruments.
Ich versuche mal Termination Charakter hinzuzufügen, bevor die angegebene Anzahl von Bytes empfangen wurde, und gucke mal was passiert wird.
Grüß