27.02.2006, 16:00
wunderschönen Tag allerseits,
ein 24 Bit Zahlen-Parameter mit dem Wertebereich von +/- 2 hoch 22 soll vorzeichenrichtig, byteweise an eine serielle Schnittstelle RS232 übegeben werden.
Dazu würde ich den Wert gern in ein ByteArray aus 3 Elementen schreiben und als String an VISA übergeben.
Ich hab schon die unterschiedlichsten Wege ausprobiert. Aber als lausiger LabVIEW-Anfänger krieg ich es einfach nicht hin, dass sowohl negative als auch positive Parameter von meiner Schrittmotorensteuerung an der RS232 richtig interpretiert werden.
Wenn ich einen Integer oder Double in einen Hex-String konvertiere, um den String dann zu zerlegen, wird warscheinlich zwischen dem Vorzeichen und dem high-Byte noch ein vietes Byte mit dem Wert 00 eingefügt, da ein Integer ja nur 1,2 oder 4 Byte groß sein kann. So genau kann ich das aber auch noch nicht nachvollziehen. Der String kann außerdem so nicht an VISA-Write übergeben werden, da die Zahlen im String-Format nun als Zeichen und nicht mehr als Zahlenwert gedeutet werden.
Jedenfalls kommen die Parameter nicht so am Gerät an, wie sie sollen, damit die Motorensteuerung richtig reagiert.
Das zweite Problem ist, dass die Parameter, die danach von der Schrittmotorensteuerung zurückgegeben werden sollen, nie richtig bei VISA-Read ankommen, sonder immer nur Fehlermeldungen.
Wenn mir jemand in diesen Problemen helfen könnte, wer ich sehr dankbar.
mfG.
Stefan
ein 24 Bit Zahlen-Parameter mit dem Wertebereich von +/- 2 hoch 22 soll vorzeichenrichtig, byteweise an eine serielle Schnittstelle RS232 übegeben werden.
Dazu würde ich den Wert gern in ein ByteArray aus 3 Elementen schreiben und als String an VISA übergeben.
Ich hab schon die unterschiedlichsten Wege ausprobiert. Aber als lausiger LabVIEW-Anfänger krieg ich es einfach nicht hin, dass sowohl negative als auch positive Parameter von meiner Schrittmotorensteuerung an der RS232 richtig interpretiert werden.
Wenn ich einen Integer oder Double in einen Hex-String konvertiere, um den String dann zu zerlegen, wird warscheinlich zwischen dem Vorzeichen und dem high-Byte noch ein vietes Byte mit dem Wert 00 eingefügt, da ein Integer ja nur 1,2 oder 4 Byte groß sein kann. So genau kann ich das aber auch noch nicht nachvollziehen. Der String kann außerdem so nicht an VISA-Write übergeben werden, da die Zahlen im String-Format nun als Zeichen und nicht mehr als Zahlenwert gedeutet werden.
Jedenfalls kommen die Parameter nicht so am Gerät an, wie sie sollen, damit die Motorensteuerung richtig reagiert.
Das zweite Problem ist, dass die Parameter, die danach von der Schrittmotorensteuerung zurückgegeben werden sollen, nie richtig bei VISA-Read ankommen, sonder immer nur Fehlermeldungen.
Wenn mir jemand in diesen Problemen helfen könnte, wer ich sehr dankbar.
mfG.
Stefan