02-09-2024 09:24 AM
I'm encountering error -201363 in both MAX and Labview where I'm being told that the minimum and maximum values for a sensor do not match the min/max values in its scale. However, they do match, and the error message shows the matching values.
This is a strain gauge based load cell connected to an NI 9237 module installed in an NI 9178 CompactDAQ chassis, and is set up as strain gauge force sensor in a global virtual channel.
If I create a duplicate of this global virtual channel in MAX, then change the min/max of both signal input range and scale to a different number, for example +/- 40,000 lbs, then the error goes away. If I change the min/max values back to +/- 30k in the duplicate channel, the error returns.
As a workaround in MAX, I can set the signal input range to +/-29,999. However, if I try to start a DAQmx task in Labview with this workaround, I get the same error reporting a 30k min/max on both the signal range and the scale rather than the updated values of 29,999 lbs. This error persists in Labview even after rebooting the PC. Does Labview have something like a cache of global virtual channel settings that I can manually clear?
Attached are pictures of the error, showing the matching values, as well as the configuration of the global virtual channel and its scale.
02-11-2024 09:36 AM
While I am not familiar with your setup, this is not really a LabVIEW problem and probably belongs elsewhere. (Maybe here?)
I assume that your table values are internally used to do a linear fit over the full range and you are running into limitations of floating point values. The extrapolated value at 30k could be be higher by one bit in the mantissa.
02-19-2024 07:49 AM
I don't know that I'd call the problem solved, but I at least found a workaround for it.
The problem I was encountering in MAX was fixed by setting the signal input range to 29,999. I can only assume that the error is caused by an internal rounding error or data type limitation.
The problem I was encountering in LABView where it looked like the values in MAX weren't taking effect was a little more interesting. Long story short, my VI does some stuff that allows users to select a global virtual channel and connect the sensor for it to any suitable input type, not just the input that it's configured for in MAX. Part of that process uses the DAQmx channel property node AI.min and AI.max values. I had assumed that those values were the signal input range in MAX, but they are actually the maximum and minimum values from the physical units column of the table scale. The workaround was to take those values and multiply them by 0.999999 before sending them along to the next step.