Instrument Control (GPIB, Serial, VISA, IVI)

cancel
Showing results for 
Search instead for 
Did you mean: 

eppendorf femtojet

We have an eppendorf femtojet which can be controlled by a PC through the serial port.
We have successfully sent it commands with the hyperterminal program.
However we have not been able to get it to work with labview or NI MAX (measurement and automation explorer). With both of these programs the femtojet does not respond to any commands that are sent
to it. However whenever we close the connection the femtojet performs an inject (no matter what
command we were trying to send it before).

We are using labview 6.1 on a windows XP machine.
With labview we tried the example VI's that use the VISA serial routines.
We also tried using the old serial routines that do not use VISA.
Both behave similarly.

We have confirmed that the baud rate, parity (none), stop bits (1), data bits (8), and
flow control (none) are the same as those being used with the hyperterminal.

I assume that labview should be basically working the same as the hyperterminal program.
Are there any other parameters that should be checked?

Thank you for any suggestions.
0 Kudos
Message 1 of 11
(4,473 Views)
We tried adding line feed \r and carriage return \n to the end of the command as well
(being careful to put it in \code display)
This didn't help.

Also it seems that the problem is in the writing.
We try to send a command that will make the machine beep and don't try to read the
reply at all. It doesn't beep. If we do try to read a reply it times out.

thanks,
Alice
0 Kudos
Message 2 of 11
(4,461 Views)
Do you include termination characters in your commands when you are using the hyperterminal?

-Logan S.
0 Kudos
Message 3 of 11
(4,446 Views)
Can you post one of the example VIs that you're trying with the write string? Make sure you go to Operate>Make Current Values Default and then save it.
0 Kudos
Message 4 of 11
(4,444 Views)
Hello,

When I use the hyperterminal I do not add any termination characters, line feeds, or carriage returns
to the end of the command. However I found an earlier post that suggested the hyperterminal may do this
automatically when I hit return to enter the command.

I am attaching a copy of the example serial VI I have been using.
This VI was provided in the examples and I really haven't changed it.
I also made one of my own that used the old non-visa
serial routines but it made no difference 😞

the command C003=5 is supposed to make the instrument beep 5 times.

I have also tried C003=5\n C003=5\r C003=5\r\n C003=5\n\r (after putting the display mode
into code display and not normal display which it is set to in the one I am posting).

Thanks for the help 🙂

Alice
0 Kudos
Message 5 of 11
(4,441 Views)
Hyperterminal does automatically append a termination character when you hit enter which is why I wished you had attached the version with \ codes turned on and the command you sent with that. I don't know what else to try. Assuming you did have the \ codes display correct and the commands entered correctly, it should work just like Hyperterminal. I had a brief look at the programming section of the manual and I didn't see anything strange in there.
0 Kudos
Message 6 of 11
(4,435 Views)
Hello,

Thanks for the help. How can I find out what termination characters hyperterminal is appending
when I press enter? I guess it is some combination of \r and \n.
I am attaching version of code in which I tried attaching \r\n to the end of the command.
I also tried \n\r and \n and \r. None of them appeared to work. What else could I try?


Thanks again,

Alice
0 Kudos
Message 7 of 11
(4,396 Views)
Do you have the manual for your instrument? If so, take a look in here to see what termination character you need to send with the commands.

JenK
0 Kudos
Message 8 of 11
(4,366 Views)
Here's one idea to try. So Dennis clarified that the hyperterminal does not append any termination characters, and we're sure that you can communicate with your instrument via the hyperterminal, right? All we should need is to make sure that LabVIEW is allowing you to communicate with your instrument in the same manner that the hyperterminal communicates, i.e. with no termination characters being sent out.

In the example VI that you attached, you'll notice on the block diagram that you have two controls, Resource Name and Baud Rate (9600) as inputs to the VISA Configure Serial Port.vi. One optional input on the top of this VI is "Enable Termination Char (T)". The "T" in parentheses means that if you don't override this value with a constant or a control, then by default this "prepares the serial device to recognize termination char" (from right clicking on the VI and choosing "Help"), which by default is the \n character. So what you should try is to wire a false boolean constant into the "Enable Termination Char (T)" so that the serial device does not recognize termination characters.

Let me know if this works for you, and hopefully we can get LabVIEW working for you.

-Logan S.

Message Edited by LoganS on 03-29-2005 11:30 PM

0 Kudos
Message 9 of 11
(4,362 Views)
Hello,

I have managed to make some progress thanks to all of your help.
I am now using the VI supplied by TongY (shown below) which he used for a different instrument.
It's basically the same as the example VI's except the read asks for the bytes from the instrument with was very helpful.

Basically I found that I have to put a
0\n (in code format) after EVERY character I send.

For instance in hyperterminal I would write
C003=5
press enter
Then the instrument would beep five times and send the answer
A003
back.

In labview I have to write
C0\n00\n00\n30\n=0\n50\n
Then I press run once and it answers
C003=5 (with no beeps)
press run a second time get
C003=5 (no beeps)
press run a third time get
C003=5 (no beeps)
press run a fourth time get
C003=5 (AND FIVE BEEPS!!!)
press run a fifth time get
A003=5 (with no beeps).

If I keep pressing run it cycles over the above loop.

If I don't include the 0\n after EVERY character I get weird answers from it
for instance if I just enter
C003=5
it answers
C\8230\F3 (in code display)

It doesn't matter if I set the termination character recognition on the initialization
to true or false.

It seems I am getting close. Does this give anyone a clue as to what could be going on?

Thanks!!
Alice
0 Kudos
Message 10 of 11
(4,343 Views)