LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Help, simple Watlow F4 Control using Labview

Hey guys! So I have this temperature chamber that is being controlled by a Watlow F4 controller. I would like to program a way in labview for me to adjust to set point on the fly.

 

I'm not too experienced with MODBUS (I think that is how it communicates according to the manual I have for Watlow), but I have been able to find Watlow F4 drivers for labview and it looks like it's able to communicate through serial?

 

However, I've been searching around the forums looking for a similar problem but it seems like most of the questions are related to running profiles. I assume my problem is much easier since all I want to adjust is the set point.

 

To clarify on my exact use of this, I have a ton of samples that I want to test their performance at low temperatures. Initially the test is ran at -40C, and if after X time the sample isn't performing as it should, I want to raise the set point until it does perform. Learning to do this will also help me upload temperature profiles from other sources and allow me to change the temperature remotely through labview without having to physically adjust it on the controller.

 

I have a feeling I may be able to do this by programming a ton of simple profiles (soak at X temp for infinite amount of times, then switch the another profile), but if this is the only way, how do I got about terminating a profile in labview and switching to another one?? 

 

If anyone has any experience with this controller and labview please let me know! Any advice will be greatly appreciated!

0 Kudos
Message 1 of 11
(9,432 Views)

I used a few F4 and modbus several years ago so I am confident it will work.  There are free modbus libraries that work well, I do remembet that the default Baud rate on the F4 was not the same as the default on the modbus library.

 

Essentially when you have the library, you will just need to initialize communication, write to a modbus register (holding register for the SP) and repete as often as needed, then close communication.  The regusters and format of the command is in the watlow manual.  (It has been over five years since I used that controller though).

 

Paul Falkenstein
Coleman Technologies Inc.
CLA, CPI, AIA-Vision
Labview 4.0- 2013, RT, Vision, FPGA
0 Kudos
Message 3 of 11
(9,421 Views)

Awesome! Got the labview code to be able to adjust its set point value and I'm able to read the oven temperature as well!

 

Now I have a new problem, I am unable to write negative values to the oven, it seems like I'm limited from zero onwards. It seems like it would be an easy fix, but can anyone take a look at my code to help me out?

 

 

0 Kudos
Message 4 of 11
(9,385 Views)

You need to read the programming manual to see how you are supposed to send negative values.

 

Right now you are taking the value of a double, building that into a single element 1-D double array.  That is then being coerced to a U16 array.  That is why you can't get it to be negative.  Anything less than zero will be coerced to zero.

 

Generally, the programming manual for the device will tell you how to pass the data.  If you have fractional data, sometimes the register will be the value x 10.  If it is negative, it might be a matter of typecasting an I16 value in your code, to a U16 value that the device will then understand to be a negative value.

 

Why are you intializing your serial port and closing the serial port on every iteration of the while loop.  That code should be outside of the loop.

0 Kudos
Message 5 of 11
(9,372 Views)

Hi DDang,

 

how you managed to adjust the set point value on fly? do you mind sharing your vi to do this please?

 

i can read the oven temperature now, but i don't know how to adjust the set point value. can you help?

 

 

Kind Regards

Kumar

0 Kudos
Message 6 of 11
(8,978 Views)

Hi Kumar,

 

You'll need to write to the appropriate register for the set point. Based on DDang's code and the programming manual, it looks like Modbus register 300. I didn't browse the entire manual, but once you open a Modbus serial connection to the controller you should be able to write to the register at your desired rate. DDang's code is a good starting point keeping in mind RavensFan's last suggestion that the initialization and closing of the serial port should be done outside the while loop.

 

If you have any additional specific questions, I would recommend creating a new thread so your post doesn't get lost in older threads.

 

Best Regards,

Matthew B.
Offering Manager
NI
0 Kudos
Message 7 of 11
(8,941 Views)

If anyone is able to, could they resave the labview sample DDang attached to Labview 2009 version? Unfortunately I can't upgrade at the moment, but I am working on a similar issue and would like to see his resolution.

 

Thanks!

0 Kudos
Message 8 of 11
(7,566 Views)

Here you go.

 

 

Message 9 of 11
(7,549 Views)

Thanks!

0 Kudos
Message 10 of 11
(7,542 Views)