03-04-2020 01:10 PM
Hello, I would appreciate some general advice on a problem I am facing. I am using labview 2018, windows 10 computer, a NI9149 chassis and a NI 9216 RTD module.
My issue is that on certain rare occasions the readings from the RTDs will remain fixed at some value in the software GUI, and become unresponsive, despite the elements returning to room temperature. I am reading the 16 RTDs each second, and storing them in a global array. This global is then read and displayed on the main screen.
I think it has something to do with a loss of connection, but it is going undetected. Is there any way to at least alert the user that this event took place? Rebooting the .exe will recover it and allow the live updates of the temps to continue. Any suggestions would be appreciated!
Solved! Go to Solution.
03-04-2020 01:18 PM
Can you post the actual VI instead of a description?
Or if the actual VI is not something you can post (company confidential or whatever), a screenshot of the areas of code that read and write to the array at the very least? Code is much, much better, though.
As for ways to detect it, it shouldn't be too hard to look at the last X number of readings and see if they are 100% identical, then alert off of that. The probability that 16 floating point numbers will be exactly equal to a previous set is incredibly low.
03-04-2020 01:19 PM
The NI-9149 is a cRIO chassis. So that leads to some questions.
Where are you reading the channels on the device itself? Within FPGA code, or real-time controller code? You mention Win10 PC, how is that communicating with the cRIO?
Do you see any errors? If you are losing communication, I would suspect you'd see errors coming out of one or more of the functions doing the communication.
03-04-2020 01:20 PM
Hi JD,
@JDPRI wrote:
My issue is that on certain rare occasions the readings from the RTDs will remain fixed at some value in the software GUI, and become unresponsive, despite the elements returning to room temperature. I am reading the 16 RTDs each second, and storing them in a global array. This global is then read and displayed on the main screen.
So there is a problem in your software: you need to debug it!
(Or attach it - the whole project would be best…)
@JDPRI wrote:
I think it has something to do with a loss of connection, but it is going undetected. Is there any way to at least alert the user that this event took place?
When there is a "loss of connection" then you should get an error. You do some error handling in your code, do you?
To alert the user you might check if the readings change over time or stay fixed for some time (like several seconds)…
03-04-2020 01:38 PM
Here is a pic of the reading code. The bool to the left is just for simulating the hardware if there is none present, it is true unless you manually change a setting.
Checking if the values are changing is pretty reasonable, I could make a seperate vi that looks at more decimal points than the main screen. Thanks for the suggestion
03-04-2020 01:42 PM
It is communicating with the PC with a crossover ethernet cable, the labview .exe is running on the PC which is reading the RTD channels.
I don't see any errors, but it is quite rare and hard to replicate, maybe around once every couple months.