Instrument Control (GPIB, Serial, VISA, IVI)

cancel
Showing results for 
Search instead for 
Did you mean: 

How can I automatically send a series of commands and values to a TC-36-25 temperature controller?

Solved!
Go to solution

Hi I’m trying to use some VIs I downloaded from the national instruments website to control a TC-36-25 temperature controller. Here’s the link to the VIs:

 

http://sine.ni.com/apps/utf8/niid_web_display.download_page?p_id_guid=6A33C4F0E27013AFE04400144F1EF8...

 

I’m trying to use “RS-232 Communication.vi”. I can use this VI to send one command at a time to the TC-36-25 through the “TEC CMD” vi terminal. But I’d like to send a series of commands to the controller automatically to initialize and automate the instrument. I think this can be done by sending a series of commands to the “TEC CMD” vi terminal and a series of values to the “Input Value” terminal but I’m not sure how to do this.  I was thinking I could load the commands and values into an array and use a loop to send them into “RS-232 Communication.vi” But I’m not sure how to write such a loop; and even if I did, the “TEC CMD” terminal only seems to accept a specific set of commands of a special user defined type which I don’t know how to use/modify.

 

I appreciate any help you can give me.

 

Thanks,

0 Kudos
Message 1 of 6
(3,698 Views)

You are pretty much correct. You'd need to use a loop. The designer(s) of that driver chose to use an enumeration for the command to send. Lucky for you it was made into a typedef. This means commands can be added, and then the "RS-232 Communication" VI would need to be modified to support the new command. There is a hidden front panel control on that VI that contains the hex values for the commands.

 

It sounds like your problem is really rooted in not knowing how to use LabVIEW. Have you done any of the tutorials? Read any of the Help?

 

To learn more about LabVIEW it is recommended that you go through the introduction material, tutorial(s), and other material in the NI Developer Zone's Learning Center which provides links to other materials and other tutorials. You can also take the online courses for free.

0 Kudos
Message 2 of 6
(3,692 Views)

Yeah, I am a labview newbie. Thanks for your help, I'll dig into the control and type def stuff a little deeper.

0 Kudos
Message 3 of 6
(3,687 Views)

I figured out how to create arrays of these commands and corresponding input values and send them to the controller. But I'd like to

load these commands and values automatically when I run the program. At this point I have to put them in manually every time I start the

program.

 

Do you know how I can save these commands/values to memory or load them from a text file? Or is there another better way to load these commands/values?

 

I've attached a copy of the VI I'm modifying. You can see the loop I made under the "init" case.

 

Thanks for your help.

0 Kudos
Message 4 of 6
(3,668 Views)
Solution
Accepted by topic author edCubed

If you want to leave those arrays on the front panel you can right-click on the array and select Data Operations -> Make Current Value Default. This will save the array's values with the VI. For the loop you should use auto-indexing rather than hard-wiring a value and then indexing out the array. Also, for the push buttons with latch action you will want to put the control terminals inside the event case so that LabVIEW will reset the control automatically. See attached mod that does has these small changes as well as some minor cleanup.

 

You started out with a state machine construct, which is an excellent place to start, and given that you're new with LabVIEW I think you've done a pretty good job so far. It's clear the code is still being flushed out (such as how to handle errors), but it seems to be a really good start.

Message 5 of 6
(3,660 Views)

Thanks, that was really helpful.Smiley Happy

0 Kudos
Message 6 of 6
(3,657 Views)