belowdabridge Posted December 13, 2022 Share Posted December 13, 2022 I've got an USB-2416-4AO, using DAQAmi, if I feed it 13v, it reads 13v. In my program, I'm getting 9.999.. v when I feed it 13v. My program initializes the unit with short[] channels = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }; MccDaq.Range[] ranges = { MccDaq.Range.Bip1Volts, MccDaq.Range.Bip1Volts, MccDaq.Range.Bip1Volts, MccDaq.Range.Bip1Volts, MccDaq.Range.BipPt078Volts, MccDaq.Range.BipPt078Volts, MccDaq.Range.BipPt078Volts, MccDaq.Range.BipPt078Volts, MccDaq.Range.Bip20Volts, MccDaq.Range.Bip20Volts, MccDaq.Range.Bip20Volts, MccDaq.Range.Bip20Volts, MccDaq.Range.BipPt1Volts, MccDaq.Range.BipPt1Volts, MccDaq.Range.BipPt1Volts, MccDaq.Range.BipPt1Volts }; ULStat = Globals.DaqBoardAnalog.ALoadQueue(channels, ranges, 16); I get sane readings for the other channels, but when I have 13v on channel 8, it's read as 9.999... . Which makes sense for a 10v range. What am I missing? Thanks, dave Link to comment Share on other sites More sharing options...
1 Jeffrey Posted December 13, 2022 Share Posted December 13, 2022 I recommend you run a single channel scan for just channel 8 and see if that works correctly. Also, you can use one of our examples such as ulai01 or vin01 as a test just to see how that particular channel responds. Link to comment Share on other sites More sharing options...
0 belowdabridge Posted December 14, 2022 Author Share Posted December 14, 2022 Jeffery, Thanks, ( sorta ) got me looking in the right place. I have a "sorta working" program. ( Visual C# 2019 ) After checking that my boards are attached, I run: Globals.AIMhandle = MccDaq.MccService.ScaledWinBufAllocEx(Globals.AINumPoints); // Globals.AINumPoints is 16 for my 16 channels in. then AInOptions = MccDaq.ScanOptions.ScaleData; short[] channels = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }; MccDaq.Range[] ranges = { MccDaq.Range.Bip1Volts, MccDaq.Range.Bip1Volts, MccDaq.Range.Bip1Volts, MccDaq.Range.Bip1Volts, MccDaq.Range.BipPt078Volts, MccDaq.Range.BipPt078Volts, MccDaq.Range.BipPt078Volts, MccDaq.Range.BipPt078Volts, MccDaq.Range.Bip20Volts, MccDaq.Range.Bip20Volts, MccDaq.Range.Bip20Volts, MccDaq.Range.Bip20Volts, MccDaq.Range.BipPt625Volts, MccDaq.Range.BipPt625Volts, MccDaq.Range.BipPt625Volts, MccDaq.Range.BipPt625Volts }; ULStat = Globals.DaqBoardAnalog.ALoadQueue(channels, ranges, 16); then ( which happens once a second usually ) int Rate = 10; ULStat = Globals.DaqBoardAnalog.AInScan(lowChan: Globals.LowChannelNumber, highChan: Globals.HighChannelNumber, numPoints: Globals.AINumPoints, rate: ref Rate, range: Globals.ChRange, memHandle: Globals.AIMhandle, options: AInOptions); // I had a problem here, Globals.ChRange was set to MccDaq.Range.Bip10Volts, and that caused the clipping. ( ?? As I read the doc, the queue should dominate ?? ) then numpoints = Globals.AINumPoints; ADDataV = new double[numpoints]; AIFirstPoint = 0; ULStat = MccDaq.MccService.ScaledWinBufToArray(Globals.AIMhandle, ADDataV, AIFirstPoint, numpoints); to bring the data into an array. This seems to work, but, if the queue setting doesn't get some channels read at the higher resolution I may be hurt on accuracy. ( Tho I can probably live with 1mV errors. ) My problems now, ( attached file ) under current I'm reporting volts across a 0.002 Ohm resistor, so nearly 90A, temp readings are thermocouples in air. volts readings are OK to start, Ground resistance is unconverted ( my bug ) voltage across a series sense resistor. This shows one of 4 test nests. The other 3 were not powered. Readings here and on the other nests were good until the ground resistance dropped ( checking with my meter, it seems it really did, from 40+ MOhms to ~ 1 KOhm. ) this sent the voltage across the sense resistor too high. I unplugged the connector for those channels. ( about line 43 ) then things got weird. The voltage readings went down - I still saw 13V with my meter at the connector, the voltage readings on the other nests went up to several volts ( they were 0 ) , temperature readings went up ( my meter showed ~ 70 F ) . Can the open channels ( as I unplugged to not put 24V on the inputs ) cause other channels to read wrong?. Thanks, dave dataTK_test_2022-12-13T16-55-49_Nest_1.csv Link to comment Share on other sites More sharing options...
0 Jeffrey Posted December 14, 2022 Share Posted December 14, 2022 1 hour ago, belowdabridge said: Can the open channels ( as I unplugged to not put 24V on the inputs ) cause other channels to read wrong? no, open channels will not affect terminated channels, but terminated channels will show ghost data on open or unterminated channels. The USB-2416 is a multiplexed device, so it is possible to damage one input or input pair and the others still work. You may need to unwire the inputs of the USB-2416 and connect them to some other, simple signal like the output of a programmable power supply. Or you can use the 5V output as your test signal, or just ground the inputs and see if it reads 0V. For TCs, shorting the input high and input low together will effectively allow you to read the CJC sensor ie ambient. just to make sure you configured your USB-2416 correctly, In InstaCal, your temperature channels should have the DataRate parameter set to 60 Hz. anything at a higher rate will show you abnormally high temperatures by either a few degrees or more. Link to comment Share on other sites More sharing options...
Question
belowdabridge
I've got an USB-2416-4AO, using DAQAmi, if I feed it 13v, it reads 13v. In my program, I'm getting 9.999.. v when I feed it 13v.
My program initializes the unit with
short[] channels = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 };
MccDaq.Range[] ranges = { MccDaq.Range.Bip1Volts, MccDaq.Range.Bip1Volts, MccDaq.Range.Bip1Volts, MccDaq.Range.Bip1Volts,
MccDaq.Range.BipPt078Volts, MccDaq.Range.BipPt078Volts, MccDaq.Range.BipPt078Volts, MccDaq.Range.BipPt078Volts,
MccDaq.Range.Bip20Volts, MccDaq.Range.Bip20Volts, MccDaq.Range.Bip20Volts, MccDaq.Range.Bip20Volts,
MccDaq.Range.BipPt1Volts, MccDaq.Range.BipPt1Volts, MccDaq.Range.BipPt1Volts, MccDaq.Range.BipPt1Volts
};
ULStat = Globals.DaqBoardAnalog.ALoadQueue(channels, ranges, 16);
I get sane readings for the other channels, but when I have 13v on channel 8, it's read as 9.999... . Which makes sense for a 10v range.
What am I missing?
Thanks,
dave
Link to comment
Share on other sites
3 answers to this question
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now