From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Digital I/O

cancel
Showing results for 
Search instead for 
Did you mean: 

Plug and Play Drivers: Instrument Identification Error (Harvard PHD Ultra Pumps)

Solved!
Go to solution

Hello everyone! I'm using LabView drivers to control a Harvard Apparatus 70-3007 pump, and running into some issues. (I'm controlling via USB).

 

Driver:

http://sine.ni.com/apps/utf8/niid_web_display.model_page?p_model_id=16026

 

Plug and Play site:

http://www.ni.com/white-paper/3271/en/

 

So I downloaded and installed the drivers, and ensured that I have ALL of the necessary software (USB virtual COM and VISA) installed. I then used teraterm (serial port communication software) to ensure that my computer could communicate with the pump. It could.

 

I then moved into labview, to ensure that my computer could control the pump. It could not. As soon as I try any of the VIs attached with the drivers I get an error. The very first step in each VI is to call an Initialize.VI that does an "Instrumentation Identification" step, that always throws an error. It tells me that either I have set the COM port incorrectly (I assure you, I have not) or that the instrument drivers are not up to date. Hm.

 

Any ideas? I know obviously probably no one here has used this series of pumps before, so if there's any additional information/VIs I can attach, please let me know.

0 Kudos
Message 1 of 14
(7,412 Views)

What is the exact error code? The Initialize function issues the ver query. What do you get with teraterm?

0 Kudos
Message 2 of 14
(7,399 Views)

Hello Dennis, thanks for your response.

 

The exact LabVIEW Error Code is:

Error -1074003951 occurred at Harvard Apparatus PHD Ultra Series.lvlib:Initialize.vi

Possible reason(s):

The ID Query failed.  This may mean that you selected the wrong instrument or your instrument did not respond.  You may also be using a model that is not officially supported by this driver.  If you are sure that you have selected the correct instrument and it is responding, try disabling the ID Query.


Complete call chain:
     Harvard Apparatus PHD Ultra Series.lvlib:Initialize.vi
     Harvard Apparatus PHD Ultra Series Push Button.vi

 

 

 

In TeraTerm, I'm able to use the serial commands given in the pump manual to order the pump to withdraw or infuse, and to set the withdrawal or infusal rates, etc, without difficulty.

0 Kudos
Message 3 of 14
(7,383 Views)
But what does the instrument actually return? The LabVIEW code is also able to communicate to the instrument. The difference is that it is returning something unexpected. You can look at the block diagram to see what is expected and either use a probe or teraterm to see what is actually read. You also have the option of skipping the id query.
0 Kudos
Message 4 of 14
(7,380 Views)

I don't think the instrument is actually returning anything in teraterm when I send commands to it (like ordering it to infuse, withdraw, change rates, etc.) For example, if the command for "start infusing" is irun, then typing irun and pressing enter just moves teraterm to the next line, there is no returned output. it just immediately starts running at the flowrate that it is either defaulted to, or was set by a previous command.

 

But anyways, seeing as these serial port commands are working, I figure I might as well try to just use labview to do serial port communication instead of messing with the Initialize Vi?

0 Kudos
Message 5 of 14
(7,378 Views)

You did not read my first post or the manual carefully. I said that the initialize function issues the ver query. Type ver into teraterm and see what comes back. Or, as I said, place a probe on the VISA read string output in the initialize function.

 

Did you even try disabling the id query? It's a simple Boolean you wire to the 'ID Query' input where the initialize function is called (do NOT change the initialize function itself).

 

These are basic LabVIEW operations. If you do not know how to do these, then you should take one of the several free tutorials. You probably would have little success using the low level VISA functions to read/write if you can't use the simple driver and haven't taken a tutorial.

0 Kudos
Message 6 of 14
(7,375 Views)

When I type "ver" into teraterm, it returns:

 

PHD ULTRA 2.0.3

 

Sorry about that. I thought you were just asking if the device was returning something from other commands.

 

I did actually try disabling the ID query last night, and when I did that it did not return an error, but it didn't work either. I appreciate you responding to my request for help, and I do certainly know how to wire a boolean to the input terminal. Just not too much else.

 

---

I just wrote the attached VI to (successfully) command the pumps to do what I want them to do. When I command the pumps to infuse or withdraw, they do as told. Which is good. But now what I'm trying to do is get the read functionality working. I changed the command sent through the serial port to "address".

 

When I enter "address" into teraterm, the response is "Pump address is 0."

 

I have labview set to read 100 bytes worth of output back from the pump. This is utterly arbitrary, and when I run the VI the string output of what's read is blank (there is no error). (Again, the VI functions as I want it to when simply commanding the pump to do things. its just reading output back that I'm having an issue with.)

 

I played around with some different numbers of bytes to read (random integers between 1 and 100, to no avail). I'd appreciate any ideas.

 

Thanks for bearing with me Dennis.

0 Kudos
Message 7 of 14
(7,371 Views)

EDIT: Double Post.

Download All
0 Kudos
Message 8 of 14
(7,370 Views)

Your VI is appending a carriage return. The VIs in the driver append a carriage return/line feed. teraterm is almost certainly doing the same thing.

 

Please try the ver command manually. The initialize function should really be made to work.

0 Kudos
Message 9 of 14
(7,361 Views)
Just to make sure that I'm reading you carefully, what exactly do you mean by trying the ver command manually?

I mentioned in my above post that I did try the ver command in teraterm, and the response was PHD ULTRA 2.0.3. Am I misunderstanding?
0 Kudos
Message 10 of 14
(7,356 Views)