LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

How do I programmatically determine if a device supports external calibration?

I'm writing a vi to determine the current state of a system with about 6 devices connected, consisting of two cDaq chassis with 9229 and 9269 modules and a few PXI cards. I want the vi to monitor when the devices were last calibrated and issue a warning if the device hasn't been calibrated within the accepted window. I can get the program to work as long as the device I'm polling supports external calibration, but naturally I get an error if it doesn't. I can't seem to find a property node or the like to determine this. Any help would be great.

 

This is a gross simplification of what I'm trying to accomplish:

0 Kudos
Message 1 of 7
(2,571 Views)

Hello TannerBlair,

thanks for using our discussion forum.

You can use the property 'SlefCal.Supported' in a similar way that you are doing, but using a case structure.

Take a look at the image attached. This is not the complete solution but it is just to give you an idea.

Mr.O
Applications Engineer
National Instruments
0 Kudos
Message 2 of 7
(2,538 Views)

Thank you for your reply.

 

External Calibration and self-calibration are different. Self-Cal is when the device uses internal voltages, and is not as accurate. External is when you ship the unit off to have it calibrated using precise known voltages. MAX keeps track of calibration data, but I can't seem to find the property node for it.

 

-Tanner

0 Kudos
Message 3 of 7
(2,531 Views)

Hello TannerBlair,

 

I couldn't find any document about devices that don't support External Calibration, so that makes me think

you can do an External Calibration to all cards. But you can't always use self calibration.

I couldn't find a way node to know if the device supports external calibration.

Are trying to calibrate specific cards?

 

Mr.O
Applications Engineer
National Instruments
0 Kudos
Message 4 of 7
(2,516 Views)

Well, the trick is that while all of the C modules may be calibratable, the chassis is not. For example, if I have a cDAQ-9178 with 3 9269 units and 5 9229s and I query the system for devices it returns an array with 9 elements because the chassis is detected. If I then loop through those array elements in a for loop and query the last calibration date, I get the error:

Error -200197 occurred at Property Node DAQmx Calibration Info (arg 2) in Untitled 3

Possible reason(s):

Device does not support this property.

Property: ExtCal.LastDate/Time

 

Short of clearing the error and moving on, I don't know how to get around this. I've attached a new snippet in the hopes that it will better illustrate what I'm attempting.

 

Thanks again for your help,

Tanner Blair

0 Kudos
Message 5 of 7
(2,503 Views)

TannerBlair,

 

it seems that there is no function like that. Something you can try is delete programmatically that element

of the array using array VI's.

 

Mr.O
Applications Engineer
National Instruments
0 Kudos
Message 6 of 7
(2,491 Views)

I am trying to use these functions to get my device calibration date, but that property does not show up in my DAQmx Calibration Info property node.  All I get is 'Active Device' and 'Self Calibration --> Is Supported'.  Is there a reason the 'External Calibration' option does not show up?  Thanks in advance.

0 Kudos
Message 7 of 7
(2,452 Views)