LabVIEW reentrant VIs

Team 316 has discovered a very recent problem with our potentiometers. We use LabVIEW to program the robot and have two pots on the robot, one for our shooter angle, and one for our pickup arm. We are only concerned with the value of the shooter angle pot through. When we read those two values with two separate VIs, it pulls the same values. These values fluctuate wildly and I thought that I had found the solution, as described in this thread. However, when I tried the suggested solutions, it did not work. Even after making the VIs reentrant, I still made new copies of the code with a new name, which also did not work. The behavior of the values usually goes like this: 0 for a split second, two consecutive values that make sense (probably the actual values of the pots), and then 1 for a split second. Wash, rinse, repeat.
This greatly confuses our PID for the shooter angle and it merely moves back and forth eventually getting stuck in one position. (Usually fully forward, a position that wouldn’t even shoot the ball at all). I was wondering if the Delphi community had any other solutions. I have made copies, made the VIs reentrant, and even unplugged the pickup arm pot. However, the code still returns values as described above.
Thank you in advance.

Can you post the VI/Code? Also, are you choosing “Preallocated clone reentrant execution” or a different option?

I am choosing “Preallocated clone reentrant execution”. I’ll upload the code as soon as I can, should be late sometime tonight. I barely have enough time to post this now. Thanks!:slight_smile:

One thing to note when it comes to reentrant VIs on LabVIEW Real-Time (when deployed to roboRIO) is that none of the LabVIEW debugging tools are available, so you either need to make a copy or use a different method to debug. See the note here.

There should be no problem reading the pots with the non-reentrant VI. Setting it to reentrant will have no effect on the result, but will allow for the two calls to proceed in parallel - up to the point where there may be another reason for them to take turns.

What I’d suggest you do is to drop charts on the panel of your VI and wire the output of the pot to the charts. Run the VI and see if moving pot A affects the chart. See if moving pot B affects the chart. If you are receiving 0’s, they may be due to a wiring connection rather than reading the wrong pot.

While running, wiggle the wires and see if you can locate a connection issue anywhere along the cable.

Please let us know what you find.

Greg McKaskle

Thank you all very much for your replies. However, the issue turned out to be much more grave. The 5V analog in rail was only supplying a maximum of .3 volts :eek: :ahh: :confused: ! We tried our hardest to clean out the RoboRIO but the problem still persisted. Sadly, the mentors are thinking that this is a bad RIO. It went through two rough seasons, so it had to go eventually. (But it just had to die 2 days before a competition :ahh: ) We are borrowing a RIO from another team in the meantime. Again, thanks for all the help, and if you have any suggestions to bring a RoboRIO back from the dead, they’ll be greatly appreciated.


The most reliable way is to contact NI for repair/replacement. AndyMark may also be a good place to start if it was purchased there.

Greg McKaskle