LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

-1073807343 Timeout Errors on LabVIEW with NE1000 Pumps

Hi

 

I am trying to connect two New Eras NE1000 pumps to my laptop so that I could program them to pump different amounts of fluids concurrently on LabVIEW. As I read from the instruction manual, it is possible to do so by setting the pump address and other parameters on the pump and on LabVIEW. I have also downloaded and used the instrument driver for the NE1000 pumps from National Instruction.

On the hard ware side, I have set the pump addresses 00 and 01 on the pumps I am using and on the soft ware side (LabVIEW), I have specified the visa resource name to the specific com port and the pump address in each blue block module. I have also validated the visa between the PC and the com port on NI MAX before using LabVIEW.

The program works perfectly fine whenever only one pump is switched on. Whenever two pumps are switched on, and when the settings are set correctly as mentioned in the previous paragraph, there will always be two types of problems that would occur:

One, there will be many pop-ups saying "Command is not currently applicable" and many steps of the progamme say "Inititalise", "Set Diameter", etc, would be skipped, giving "OK 1073807343" remarks at each of these step's block module. I noticed that when this happens, there are no little black triangles at the top left hand corner of the two pumps' display screens which signifies no proper connections to the PC (even though I have use NI MAX to validate the visa between the PC and the respective com port). The pumps perform none of the commands even though "OK 1073807343" is mentioned as shown in the attached screenshot.

Two, the most usual case, "-1073807343" timeout errors would occur at the blue modules, instead of "OK 1073807343" like in the previous case. The timeout error usually starts from the "Address" block and all the subsequent blocks would have the same errors. I have checked that the baud rate of 19200 is the same for the PC and the pumps.

Does anyone have any advice on this problem? Is this a hard or soft ware error? I did a trial and error test to find out which part of my system is the root of the problem. I have attached it here as well. Do take a look at it, it could be of much help.

I have been stuck at this problem for weeks. Please help me!

Thank you!

0 Kudos
Message 1 of 23
(4,391 Views)

Have you tried adding in little delays?  Not yet ready sounds like a delay could help out.

 

OK with a number is a warning code. You should look up the warning.

Message 2 of 23
(4,365 Views)

Looking at your block diagram, I see several problems:

  1. You have the driver VIs for these pumps. Why do you use the "VISA Configure serial port" low level VI at the beginning?? You have the proper "NE-50X Initialize.vi" from the driver! Only use this to init your device(s)!
  2. No proper error handling
  3. Get rid of these silly stacked sequence structures! Think of data flow. Learn how to program a proper state machine! (look at the Core 1-2 online course)

Do you use a USB-serial interface, and you connect the two pumps via serial cable to your computer? I am asking because I am a bit confused about the "Pump address" value. Hmm, I wonder whether you need to specify this or not, if you use two separate serial line...? But probably not relevant...

 

edit: so you use two RS232 cables, yes?

 

edit2: so could you try what happens, if you do not use at all the "NE-50X Configure Addresse.vi" in you code?

Message 3 of 23
(4,331 Views)

Dear Blokk

 

Thank you for your help! I will work on it after finishing this reply.

 

What do you mean by "No proper error handling"?

 

Thank you for your pointers 1 and 3!

 

I connected the pumps in series configuration according to the NE 1000 Pumps manual (http://www.syringepump.com/download/NE-1000%20Syringe%20Pump%20User%20Manual.pdf) in this way:

 

Step 1: From the PC, I would use a USB- Serial converter, RS 232 and RJ 11 (this RS 232 and RJ 11 are provided by the pump's company to be used when connecting the pump to the PC) to connect to Pump 1 via its "To Computer"  RJ 11 Socket.

 

Step 2: To connect to Pump 2, I would use the RJ 11 again provided by the pump's company to connect Pump 1's "To Network" RJ 11 Socket to Pump 2's "To Computer" RJ 11 socket. The exact instructions are on page 31 of the pump manual.

 

If I were to connect the pumps in parallel configution, I would connect both the pumps to two different usb ports of the PC via two USB-serial converter, 2 RS 232 and 2 RJ 11 as descibed in Step 1 above.

0 Kudos
Message 4 of 23
(4,315 Views)

Error handling means, you have an error wire going through your code. Not in your case. Also, you need to do something in case of error, at least report/indicate it. Anyway, in this very case this is not the source of the problem. Another thing: your screenshot shows you run your code in highlight execution mode. I guess you normally run your code without highlight execution, as it should, yes??

 

Ok, I have looked at the manual. Now this address VI makes sense. So you use a single RS232 line between one pump and the computer. You use a second cable to connect one pump to the other pump, thus creating a pump network. If you did it exactly as described in the specification, it should work.

Looking at your Filtration Pump.vi again:

  1. Since you use only one RS232 connection toward the PC, you can use a single "VISA Resource Name" control, and connect it to both of the Initialize VIs.
  2. In your Filtration Pump.vi, the "Pump Address (0)" and "Pump Address (1)" have the same value set: 0. When you run your VI, you set these for example: 1 and 2, yes? Did you also manually set two DIFFERENT network addresses for the two pumps via their keypad? Set address value 1 for one pump, and 2 for the other for example. Did you perform these steps?
Message 5 of 23
(4,298 Views)

@ Blokk The Pumps can daisy chain a single RS-232


 

 

The comunication protocol is "Antique" to say the least. and the manual was possibly written by a group of lepers outraged at the outside world with every intent to frustrate their most hated human subclass "Engineers attempting to dispense injections without human contact"

 

That being said, Volume applies to the currently selected progam phase.  no program phase has been selected prior to issuing a volumn command and the error begins to make sense.

 

I strongly recommend contacting NE technical support to assist in decoding that abomination of a user's manual.

 

I also suspect the developer of that driver has never even thought of looking for the style guide.  With error and VISA terminal placement like those.... well who known where the internally break error flow.

 

I'm sure my eyes would bleed if I opened those vis. I dare not go looking for themSmiley Tongue 


"Should be" isn't "Is" -Jay
Message 6 of 23
(4,289 Views)

Since you use one single RS232 toward the PC, you have to manually set the addresses of the two pumps, set one to value 1 and the other to value 2 for example. Also set the default baud rate if it was changed.

 

Second: the "NE-50X Configure Addresse.vi" is for setting the address for a pump. Since you do it manually, you do not need to use this VI. Just use a single initialize VI, and use the two predefined network addresses in your block diagram. I have attached a mod of your VI, please try it, I am not sure but i hope it will work...

 

Filtration Pump_mod1_BD.png

Message 7 of 23
(4,279 Views)

@JÞB wrote:

@ Blokk The Pumps can daisy chain a single RS-232


Thanks for pointing out 🙂 I have never used RS232 chain before, but good to keep in mind, before a future project, not to buy 10 pieces of USB-RS232 converters, if a chain is possible, haha 😄
Message 8 of 23
(4,258 Views)

Dear Blokk

 

Thank you so much for your help once again! (Any of your message here outbeats the amount of help I received from the tech support from the pump's company!)

 

1. I typically run my code in highlight execution mode recently because the code hasn't been working and I want to see what is wrong. Is it always better not to run it in this mode?

 

2. Yes, this pump network work before. I ran an basic example code from the instruction drive (as attached) before. When no address is specified on the pump's keypad (on the hardware side, externally; not on LabVIEW), both pumps perform whatever commands I send using this example VI. I believe that this example VI's code does not contain any option for the user to edit or choose the pump address; it works on the assumption that only one pump is connected to the PC. However, whenever I try connecting and switching two pumps on and applying any of my codes to them, errors would occur.

 

Hence I think that the pump network is right and pumps are able to function individually if I were to be able to set the parameter correctly on both the hard and soft wares.

 

3. Ok I will try having a single "VISA Resource Name" Control!

 

4. The ones I have attached in the original post are set to the value 0. Don't worry. Whenever I run my VIs, I would set the pump address to 00 and 01 in my VI and I would also manually set the pump address on both my pumps as 00 and 01 (as instructed in sections 6, 8 and 10 in the pump's manual).

 

0 Kudos
Message 9 of 23
(4,250 Views)

@hqwoon wrote:

1. I typically run my code in highlight execution mode recently because the code hasn't been working and I want to see what is wrong. Is it always better not to run it in this mode?

ONLY use execution highlight mode for debugging!  It impacts performances a LOT, and changes other things too!

 

3. Ok I will try having a single "VISA Resource Name" Control!

Try it, and skip the Addresse.VIs !

 

4. The ones I have attached in the original post are set to the value 0. Don't worry. Whenever I run my VIs, I would set the pump address to 00 and 01 in my VI and I would also manually set the pump address on both my pumps as 00 and 01 (as instructed in sections 6, 8 and 10 in the pump's manual).

So this setup looks good to me!

 

 

 


 

Message 10 of 23
(4,242 Views)