10-29-2010 05:56 AM
In fact can you access fault information for all PXI cards? How do i detect that there is a fault with a board from within the software so i can report this to a higher level application?
Thanks
Martin
11-01-2010 06:08 AM - edited 11-01-2010 06:08 AM
Hi Martin
It is possible to self test a module using the tools in LabVIEW. The DAQmx pallet has DAQmx self test device function that will perform a brief test of device resources. Any errors which are found can be passed through the program, as the errors are reported in the form of Boolean, string and a I32 error code outputs.
Through the DAQmx pallet it is also possible to programmatically perform self calibration.
11-01-2010 06:52 AM
Hi Roger,
Thanks for your reply. I'm using Labwindows/CVI for the development and the system is going to be running headless on the ETS Pharlap RTOS. I can't find a relevant self test function under Labwindows for the hardware. What we want to do is report back to the customer via Ethernet the status of the hardware if possible - we have a number of modules that we need to perform BIT on during normal operation of the system.
Thanks
Martin
11-01-2010 07:00 AM
Hi Martin
What self tests functions are you looking for? Exactly what information are you looking to gather?
11-01-2010 07:11 AM
Hi Roger,
Just simple high level information like overall health status of the board would suffice so we know that the board is OK. In the event of a board failure we need to shutdown the system/inform the customers software that there is a problem. That way they can simply replace the broken board with one of the spares they have purchased. The customer does not have access to NI MAX etc.
Thanks
Martin
11-01-2010 08:33 AM
Hi Martin
It is still possible to call the labVIEW functions that are in DAQmx using C. So it is still possible to call the DAQmx device configuration self test function. This function will give you a high level overview you are looking for.
11-02-2010 10:08 AM
Hi Roger,
It would appear that later versions of NI-DAQ have a C function called DAQmxSelfTestDevice which will provide this functionality. Thanks for your suggestions.
Martin
11-03-2010 05:01 AM
Hi Roger,
Have you any idea exactly what a "self test" does (it must be device specific?) and which error codes it could potentially return (again device specific?) ? The help reference for the function DAQmxSelfTestDevice just says "a positive value indicates a warning. A negative value indicates an error". There are almost 2000 warning and error codes listed in NIDAQmx.h - obviously not all of these can be returned by this function call. Interestingly the help files for NIDAQ do not mention all of these error/warning codes either so how am I to know what they mean without first knowing they exist??
Thanks
Martin
11-03-2010 09:28 AM
Hi Martin
Essentially the self test function tests to see if the pc can communicate with the device.
As far as the error codes that can be generated this is a broad spectrum for this reason it is a factor that must be taken into consideration of the architecture of your program. It is possible to pass the error throughout an application and use another function to explain the error by using an error handler.
11-03-2010 10:06 AM
Hi Robert,
So in essence what you're saying is that if a component on the device fails there is no way to know this as long as the device is still communicating with the PC? It would appear that the Self Test function is a bit of a misnomer - it doesnt actually do what it says on the tin.
So which of the 2000 errors can actually be returned by this function call? I appreciate that there are a broad range of errors but I would like to know which one(s) can in reality be returned by this function. I need to somehow categorise the errors into whether or not the device is healthy so i can communicate this to our customers software (wo have no knowledge of internal NI error codes) so they can decide whether the board needs replacing. Of the 2000 error codes which of these could potentially relate to a hardware failure of some sort as opposed to a software configuration error.
I have found this thread which details some error codes on a NI 446X device (is there something like this for all errors on all devices?):
http://digital.ni.com/public.nsf/allkb/95328C2FAF9DA99A862576E200785C11?OpenDocument
Lastly where in the NI DAQ help references are the list of error codes and meanings as listed in NIDAQmx.h. For instance what does DAQmxErrorPALThreadControllerIsNotThreadCreator actually mean? I don't want to wait for the error to occur in my system before I get information on what it means - it would be useful to know and understand before I write the software what errors may occur on each device.
Thanks
Martin