Zane, Dennis,
let me jump in here, as I'm a German.
Zane,
using serial connections works the following way:
1. Open the serial port
2. Configure it (in your case set it to the setting that is used by the scale.
3. While not finished do
3a. Write some data to the device (if necessary)
3b. Check number of bytes at port
3c. Read that number of bytes, append the result to whatever was left over from the last reading
3d. Check your result for a complete answer. If an answer was found, it should be removed from the result string. React to this answer as necessary.
3e. Repeat with 3d until no complete answer is left in your answer string.
3f. Repeat with 3b until no more data are there on the serial port.
3g. Repeat with 3a if necessary.
While End
4. close port
One can, of course, capsulate these actions. One can, for example, read the responses until there are no new bytes for a given period. On can (and in more complex programs on even should) separate communication and data processing. So any complete answers of the device should be send via a named queue or so to an independent process that operates the data.
To come to your specific problem:
1. Do not close the VISA session until you are done. Accessing the port after you have closed it may work, as LabVIEW implicitely re-opens the port. But there are several pitfalls.
2. As the manual states, that the messages are plain text and that each message is finsihed by , you could use as termination character. This way you just have to read your 22 Bytes independently if they are there or not. You may set a timeout period of a little more than the delay between two consecutive messages of your scale.
3. Its up to you how to stop your loop reading the scale messages, but close yor port afterwards.
Using my typical signature you should be able to find my direct mail adress, in case you need some more detailled discussion, maybe in German.
Greetings from Germany!
--
Uwe