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.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Long Term Stability of Heater using PID Controller VI

Solved!
Go to solution

Dear LabView Community,

 

first, I would like to say hello because I'm new to the community!

I'm desparately trying to create a temperture controller using the basic PID Controller vi that is able to keep the temperature stable over several days.

I used the controller tutorial as template (https://zone.ni.com/reference/de-XX/help/371361R-0113/lvpidmain/fault_protection/) and really tried a lot of options of the parameters but it doesn't work.

At first, everything works very fine but after approx. 1 hour the output value of the PID-vi drops to zero, accordingly the temperature drops and it takes a few seconds for the process to get stable again (please see attached screenshot). Afterwards this occurs every few minutes.

I can't see that the system ressources get insufficient with increasing time or something like this. I monitored RAM and CPU and can see no correlation. Also, there is no difference if I activate data logging or not. If you need any more information, I will try to provide them. Thank you very much!

My System is

  • Windows 10 64 Bit
  • Labview 17 32 Bit
  • CPU: Intel i7 3 GHz
  • 16 GB RAM

 

Download All
0 Kudos
Message 1 of 3
(993 Views)
Solution
Accepted by topic author thermomanager

Hi Thermomanager,

 


@thermomanager wrote:

I'm desparately trying to create a temperture controller using the basic PID Controller vi that is able to keep the temperature stable over several days.


When you want to run a program on 24/7 then you need to create that program to be able to run 24/7!

 

This means:

  • Obey "THINK DATAFLOW!"
  • Don't use local variables to implement data communication.
  • Implement your program using basic programming schemes like state machines and/or producer/consumer.
  • Don't use ExpressVIs or DDT wires! Why do you need to convert a waveform into a DDT wires just to get a single sample from your waveform?
  • Use reasonable datatypes at all! No need for SGL for such simple calculations on a default Windows computer…

When you learn from the example VIs coming with LabVIEW you will create your VI similar to this:

 

Btw. don't use BMP for images when you can use PNG (or JPG)! Using PNG the filesize is just 3% of the BMP filesize…

Best regards,
GerdW


using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019
Download All
Message 2 of 3
(984 Views)

Hi GerdW,

 

thank you very much for your very quick and constructive reply. My knowledge is obviously too small and I was already too stuck to realize that the express-vi signal splitter is the problem. Actually, my first approach was all together in one while loop, but because it didn't work out I read about 10 times faster controlling than reading and parallel processing a.s.o. and then dangerous half-knowledge made everything worse. So thank you for the reminder to think about the basics first.

Also sorry for the .BMP faux pas, I'll pay more attention next time.

0 Kudos
Message 3 of 3
(952 Views)