(25.10.2013 16:02 )redhand schrieb: Zum Abschluss hier: Juhu ich habs
Ich hab das richtige Register gefunden und es geht, erstmal vielen Dank euch!!
Aha, das ist jetzt das erste Mal, dass du erwähnst, dass du eigentlich ein anderes Register als in der Doku auslesen willst. Und da wunderst du dich, dass du andere Werte als im Display des Jumo siehst.
Der Vollständigkeit halber, welche Register-Adresse fragst du ab?
(25.10.2013 16:02 )redhand schrieb: Jens, du benutzt zur Umwandlung 1D-Array dezimieren -> 1D-Array überführen -> TypeCast (siehe Bild)
Was machen (vorallem die ersten 2 Elemente) mit dem Array. Lesen sich die VI's intelligent genau die Teile des Antwortstrings heraus welche ausgewertet werden müssen oder wie muss ich mir das vorstellen?
Lies dir die Hilfe zu den "Array"-VIs durch. Das kaue ich jetzt nicht vor.
(25.10.2013 16:02 )redhand schrieb: Und wie bekomme ich die "Holding String"-Konstante über dem Umwandler hin?
Meinst du das "Single-Array" am Anschluß vom Typecast? Leeres Array anlegen. Dann eine Numeric-Konstante reinlegen. Dann Datentyp von Double auf Single ändern. Hast du schon die Links in Gerds Signatur gesehen?
(25.10.2013 16:02 )redhand schrieb: Das Register womit es jetzt funktioniert, funktioniert wie das Register mit der Adresse 0x3100 aus deiner Beispiellösung. Also 2 Werte sind aus dem Antwortstring zu entnehmen.
Logisch, ein FLOAT Wert muss in 2 Registern übertragen werden.
(25.10.2013 16:02 )redhand schrieb: Vergleiche ich den Antwortstring des Registers womit es jetzt funktioniert (Analogeingang) mit dem Register, mit dem ich die ganze Zeit gearbeitet habe (Istwert), bekomme ich den selben Hex-Code als Antwort. (In meinem VISA-VI, wo ich den Hex-Code "von Hand" auswerten muss)
Wieso bekomme ich, wenn ich den Teil des Strings, welcher mir meinen Wert liefert, via IEE754 in einen Dezimalwert übersetzte nicht den selben Wert wie du in deinem VI?
Mal schauen .... Mist,
Kugel kaputt, ich habe leider keine Ahnung, was du ausgelesen hast und was du übersetzt hast.
(25.10.2013 16:02 )redhand schrieb: Außerdem frage ich mich, warum das eine Register (mit dem es jetzt geht) in deinem VI richtig ausgelesen wird aber das andere, welches eigentlich die gleiche Hex-Antwort liefert nicht?
Beide Register sind Datentyp Float. Register mit dem es geht: Zugriff R/O; Anderes Register: Zugriff: W/O
s.oben, ich habe keine Ahnung, mit welchen Registern du rumgespielt hast. R/O = Read-Only, hier musst du also mit Function 3 oder 4 (Read Input oder Read Holding Register) arbeiten. W/O = Write-Only, das Register lässt sich nicht lesen, sondern kann nur per Funtion Code 6 (bzw. 10) (Write Multiple Register) geschrieben werden.
Gruß, Jens
P.S.: Es ist löblich, Fragen zu stellen und auch das Protokoll zu verstehen. Aber etwas Eigeninitiative beim Nachlesen, was LabVIEW-Funktionen machen und vollständige Fragestellungen sind ebenso löblich.