4.0 LabVIEW PROGRAMMING WITH THE DIAGNOSTICIAN

There are three different "modes" or approaches that you can use in integrating the Diagnostician with your LabVIEW application:

 

Diagnostician Control Mode -where the Diagnostician manages the flow and execution of tests.

 

Go/No-Go Control Mode - where a set of functional, or go/no-go tests are performed, the results are passed to the Diagnostician, and the Diagnostician subsequently takes control of the flow and execution of tests.

 

Mixed Control Mode - where the control of the flow and execution of tests can be passed between the Diagnostician and the test application.

 

Examples of the application of each mode are provided in the installation disk.

 

In the GO/NOGO Control Mode, your LabVIEW application will first execute all of the go/no-go (functional/performance) tests. If, at the end of the program, any of the tests failed, the LabVIEW application initiates the Diagnostician and passes to it all of the test results, using TELL_DOC. Next the ASK_DOC VI is executed to return either an ambiguity group call-out or an additional test to be executed. This mode is good for short GO/NOGO test programs where each test does not require a large amount of setup time or long testing sequences.

In the Diagnostician Control Mode, the Diagnostician is used to make all decisions on what tests are to be executed. In this mode, your LabVIEW application initiates the Diagnostician before any tests are executed. Then, using the ASK_DOC VI, your LabVIEW application will run only those tests the Diagnostician requests until an ambiguity mode is good for tests that require a large amount of setup time or where tests are lengthy. A diagnosis can be made using the least amount of tests and testing time. Only those tests with any diagnostic significance will be executed.

The Mixed Control Mode is a combination of the two previous test modes. Your LabVIEW application will start out in the Go/No-Go Control Mode. All Go/No-Go tests will be executed and if a failure occurs, the LabVIEW application will initiate the Diagnostician and perform as in the Diagnostician Control Mode. This mode can either stop at first failure in the go/no-go test or can run all go/no-go tests at once. The Mixed Control Mode is good for test programs with both short and long test sequences. The shorter tests can be executed at the top of the program. If they fail first, then the Diagnostician will reduce the number of tests and the testing time required to make a fault callout.

4.1 Go/No-Go Control Mode

 

Under this mode, your LabVIEW application will execute all the GO/NOGO tests. The results of each test will be reported to a file in the format defined in Section 3. All Go/No-Go tests will be executed. If a test fails, the results will be reported as failed, then the next test in the sequence will be run. Only after all tests have been run and a failure exists, will the Diagnostician be initiated. LabVIEW will open the results file and report them to the Diagnostician using the TELL_DOC VI. The ASK_DOC VI will be used to generate the fault callout. The ASK_DOC VI must be used to cause the Diagnostician to calculate the ambiguity group with the full list of reported test results. At this time LabVIEW can execute a series of remove/replace procedures generated by an Integrated Electronic Technical Manual Authoring system, such as AIMSS by Hughes or IADS from the Army. When this is complete then the CLOSE_DOC VI will be issued and the testing session ends.

DEMO2.VI illustrates this method. This demo uses the DAC.DKB knowledge base included with the installation disk. To run DEMO2.VI, start up LabVIEW and select DEMO2.VI from the FILE OPEN pull down menu.

4.2 Diagnostician Control Mode

 

The Diagnostician drives the test execution in this mode. LabVIEW will perform only those tests requested by the Diagnostician. The test results are reported directly to the Diagnostician. Test execution is complete only when the Diagnostician makes a fault call-out. Under this mode, the LabVIEW application will initialize the Diagnostician using the OPEN_DOC VI. Then a request for the NEXTSTEP will be issued using the ASK_DOC VI. The Diagnostician will return a value which may be either a test name or a repair call-out. The LabVIEW application will execute some test name arbitration routine (as shown in Figure 17) to determine if the returned value was a test and proceed to execute that test. The test procedure can report the test results directly to the Diagnostician or it can write them out to an ASCII file where a procedure, external to the test, can report them. The ASK_DOC VI will be used again, as in a loop, which will continue until the Diagnostician returns a fault call-out or ambiguity group.

 

At this time LabVIEW can execute a series of remove/replace procedures generated by an Interactive Electronic Technical Manual. When this is complete then the CLOSE_DOC VI will be issued and the testing session ends.

DEMO1.VI illustrates this method. This demo uses the DAC.DKB knowledge base included with the installation disk. To run DEMO1.VI start up LabVIEW and select DEMO1.VI from the FILE OPEN pull down menu.

4.3 Mixed Control Mode

 

Under this mode, your LabVIEW application will execute all the GO/NOGO tests. The Diagnostician will be initiated using the OPEN_DOC VI and the test results for all of the Go/Nogo tests will be reported to the Diagnostician using the TELL_DOC VI. The ASK_DOC VI will be issued to determine the NEXT_STEP. If a test is requested then LabVIEW will use a test arbitration routine to determine what test to execute. The test name returned will be a test defined using the Diagnostic Designer tools. The test will be run and the results will be reported to the Diagnostician using the TELL_DOC VI. The test procedure can report the test results directly to the Diagnostician or it can write them out to a file where a procedure, external to the test, can report them. The test results must be reported in the format defined in Section 3. This process of requesting the NEXTSTEP, executing the requested test and reporting the test results will continue as in a loop until all tests with diagnostic significance are executed. Your LabVIEW application will use the ambiguity group returned in the final execution of ASK_DOC as the fault callout. At this time, your LabVIEW application can execute a series of remove/replace procedures generated by an Integrated Electronic Technical Manual or can simply present the fault call-out to the operator. When this is complete, then the CLOSE_DOC VI will be issued and the testing session ends.

 

DEMO3.VI illustrates this method. This demo uses the DAC.DKB knowledge base included with the installation disk. To run DEMO3.VI, start up LabVIEW and select DEMO3.VI from the FILE OPEN pull down menu.

 

A variation of this mode is to have your LabVIEW application execute all the GO/NOGO tests until the first failure occurs, initiate the Diagnistician (OPEN_DOC), report the test results information (TELL_DOC), and continue on with ASK_DOC as defined above.

 

DEMO4.VI illustrates this method. This demo uses the DAC.DKB knowledge base included with the installation disk. To run DEMO4.VI, start up LabVIEW and select DEMO4.VI from the FILE OPEN pull down menu.

4.4 Reporting Test Results to the Diagnostician

 

Test results can be reported to the Diagnostician directly or through a test results file. The above examples uses Results VI to report results with the file method. Results.vi is included with the demonstration package. This VI can be modified to report test results directly.

 

The Results VI uses the TELL_DOC VI to report the test results. The LabVIEW programmer can build the text string that TELL_DOC needs and write the results directly to the Diagnostician. The need for file I/O would be eliminated. To help the LabVIEW programmer, the Results VI will be explained.

 

Results VI requires a filename and the DDE reference number as an input. The VI will open the supplied file and read it one line at a time. After each line is read, it will use the DDE reference number and DDE poke to send the ASCII line to the Diagnostician. This will continue until the end of file indicator has been reached.

The test results file is structured such that each line contains one peice of information that the Diagnostician requires. The following is an example of a test results file:

 


     [HIGH]
     IESRU.P3_6=P;
     IESRU.P3_18=F;
     IESRU.P3_10=P;

The word surrounded by braces is the test name as defined in the Diagnostic Profiler. This was the name placed in the "executable" field, during the test definition phase. The next three lines contain the test locations associated with the test. In this case they are edge pins. They could also be probing locations for guided probing.

 

If the LabVIEW programmer wanted to report the results directly to the diagnostician, they would build each ASCII string and use TELL_DOC four times. If there was only one test location associated with the aforementioned test, then the TELL_DOC VI would have to be called twice. Once for the testname and once for the test location results.

 

Send mail to webmaster@giordano.com with questions or comments about this web site.
Last modified: December 27, 2001