LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Communicating via RS 232 with a Chemyx N3000 Syringe Pump

Hello,

 

I am attempting to design a simple program to send commands to a Chemyx N3000 series syringe pump via serial. I am connected to the device using a usb -> serial converter, and have so far successfully communicated with the pump using hyperterminal but not LabView. The usb->serial converter appears in MAX and is stated to be working properly. I am basing my program off of the simple read / write serial example (essentially copy / paste).  I am attempting to send the command "enter standard" to the unit which causes the pump to enter a sub menu from the main menu. This command also results in the image on the pump's LCD screen changing (verified using hyperterminal), so it should serve as a good general indicator of successfuly communication. When I attempt to enter this command into the string input however, it is automatically modified to "enter\sstandard" and the program has no effect when run.

 

Does anyone have any potential solutions to this problem? Any help would be greatly appreciated.

 

I have attached pictures and a copy of the user manual.

 

Please note that I am an inexperienced LabView user / RS-232 device user, so please be patient. 

 

Thank you

0 Kudos
Message 1 of 12
(7,922 Views)

Do a search on syringe.

Many posts on this topic including http://forums.ni.com/t5/LabVIEW/Labview-Drivers-Chemyx-Syringe-Pump/m-p/1388794

 

 

0 Kudos
Message 2 of 12
(7,914 Views)

One thing that the manual does not state is what termination character is required at the end of each command. When you opened the basic example, what was at the end of the *IDN? command was a \n. This is a special code for a line feed. You see a \s because the string control is set for '\' Codes Display. This is a right click option. Try a command and add a \n, a \r (carriage return), or both.

 

p.s. Sending an image of a VI with nothing in the string to write is next to worthless.

0 Kudos
Message 3 of 12
(7,907 Views)

The conversion of "enter standard" to "enter\sstandard" is simply because your string control is configure to show slash codes.  Right-click on the string control and select "Normal Display" if you prefer not to see that.

 

Also, I notice in the user manual that "enter" and "enter standard" do not appear to be a valid commands as seen in the list on page 22 ... which is weird, because it obviously is a valid command because it works via Hyperterminal.

 

Try sending "restart" to see if that works.

 

http://www.medicollector.com
0 Kudos
Message 4 of 12
(7,899 Views)

The restart command does not work in LabView or in hyperterminal. For some reason the manual has an incorrect list of viable commands. 

 

Also, changing the termination character did not have an effect.

0 Kudos
Message 5 of 12
(7,891 Views)

Since you apparently were not sending any termination character at all, I have no idea what 'changing the termination character' means. If you want further help, provide actual details on what exactly you sent and how.

0 Kudos
Message 6 of 12
(7,884 Views)

I sent the commands "enter standard"; "enter standard\n"; "enter standard\r"; and "enter standard\n\r" to the device. None of these commands had an effect. I also changed the value in the termination char control on the front panel from 0 to A and then to D and attempted sending "enter standard"; "enter standard\n"; "enter standard\r" and "enter standard\n\r\" again with each of these.

0 Kudos
Message 7 of 12
(7,878 Views)

Perhaps you should read back what is in the serial port.  Try using this VI:

 

LabVIEW 2011\examples\instr\smplserl.llb\Advanced Serial Write and Read.vi

 

 

http://www.medicollector.com
0 Kudos
Message 8 of 12
(7,872 Views)

And Hyperterminal is closed, of course?  And you tried to reboot both devices? 

 

And you are not getting any error dialogs in your code, correct?

http://www.medicollector.com
0 Kudos
Message 9 of 12
(7,870 Views)

Setting the default termination character with the Boolean only sets it for a read. It does nothing for a write. The only combination that I see missing is \r\n. That is the default for Hypertterminal if I remember correctly.

0 Kudos
Message 10 of 12
(7,866 Views)