CONNECT NEWSLETTER

Issue Home

 

TECHNICAL DOCUMENTS

Boundary scan helps EMS companies
cut test costs and increase revenues

Test Tips - Automation in ScanWorks
3.3 increases user
productivity

ScanWorks for the Agilent 3070 completes successful assessment at Jabil Circuit

Using boundary scan to link design and manufacturing test

 

asset-intertech.com

ScanWorks®

EDFT Services

Customer Support

ASSET University

Success Stories

Global Contacts

 

TEST DATA OUT

How Process Automation Scripting
Cuts Test Development Time From
Days To Minutes
by Dave Bonnett
ScanWorks Technical Marketing Manager

ASSET has always provided ScanWorks with powerful APIs for developing boundary scan tests and migrating them from a development environment to manufacturing and subsequently to field service. We began with the Scan Function Library which is based on C++ and continued with ScanPort and later with ScanWorksAPI. Each of these APIs has unique features that are needed for specific applications. Now, Process Automation Scripting combines all of the features of these APIs into one and offers additional capabilities as well.

Process Automation Scripting grew out of a customer request, which was, “I want to write a Tcl program to automate the process of creating all of the ScanWorks Actions needed to test my board.” This board included more than 40 memory devices and each device required its own Memory Access Verification (MAV) action. Process Automation Scripting reduced MAV test generation time from 1½ days to about 24 minutes (15 minutes to create the Tcl program and 9 minutes to run it.)

Process Automation Scripting makes ScanWorks features available through some of the most common languages that are familiar to test engineers. Whether using an interpreted language like Tcl, Perl, of Visual Basic, or a compiled language like C# or C++, you can create and control software objects through the Process Automation Scripting interface. Process Automation Scripting uses Microsoft’s Component Object Model (COM) to make objects available to any language that supports COM.

The process automation scripting feature consists of a set of objects, each encapsulating both data and functionality. The way these objects are organized, together with the way the data and functionality is allocated to each object, is called the ScanWorks object model.

The object model is a hierarchy of objects rooted in a single top-level object called the API object. The API object contains all the other objects in the object model. Objects in the ScanWorks object model are named according to the portion of the ScanWorks application they represent. For example, the Project object represents a ScanWorks project. You can access objects in the ScanWorks object model only when the API object exists (that is, when ScanWorks is running).

The ScanWorks object model provides high-level access to your projects, design descriptions, and actions. For ScanWorks manufacturing stations, a subset of the object properties and methods is available.

The ScanWorks object model contains a number of collection objects. Similar objects are grouped into collections. By convention, all collection objects are given the plural form of the name of the object it contains. For example, the Projects collection object contains Project objects, one for each project currently known to ScanWorks. Similarly, the Designs collection contains Design objects, one for each design description in a project.

To access the data contained in an object, you use the properties of that object. In all instances, properties can be used to get data from an object. In some instances, properties can also be used to change (or set) data in an object. Properties are referred to as read-only if they only support getting the data. Properties that allow data to be changed are referred to as read-write properties. For example, the Count property of the Projects object is read-only (you can’t create new projects or delete existing projects simply by changing the number of known projects). On the other hand, the Name property of the Project object is read-write. You can use this property to get a project’s name, but you can also use it to change the project’s name (rename it).

To access functionality contained in an object, you use the methods of that object. Methods initiate some kind of action on an object. For example, the Run method of the Action object causes ScanWorks to run the action.

Process automation scripting allows you to use an .INI file to specify more than one action at once using the CreateActions method of the Projects object. You can check the creation results using the CreateActionsResult object.

For example, the following .INI file includes one project (AGDM), one design description (GDM), one scan path verify action (SPV), and three Memory Access Verification Actions MAV1, MAV2, MAV3).

[Project]
Name=AGDM
Designs=GDM

[GDM]
Actions=SPV,MAV1,MAV2,MAV3

[SPV]
ActionType=ScanPathVerify
Options=0001000

[MAV1]
ActionType=MemoryAccess
Devices=U36
Model=c:\scanworks\libraries\asset\MemoryModels\CY6264_so.mem

[MAV2]
ActionType= MemoryAccess
Devices=U42,U43
Model=c:\scanworks\libraries\asset\MemoryModels\Micron_MT46V16M8.mem

[MAV3]
ActionType= MemoryAccess
Devices=U21
Model=c:\scanworks\libraries\asset\MemoryModels\CY7C128A.mem

What else can I do with Process Automation Scripting?

The ultimate goal of Process Automation Scripting is to allow users to do anything through scripting that could be done through the ScanWorks user interface. Process Automation Scripting works best when used in a structured environment, where board design data, test data and test results are stored in well defined locations. This enables a test engineer to easily write a script to retrieve the design description data, prepare it for use by ScanWorks, and then create and manage the ScanWorks projects, designs and actions. In most cases, some manual intervention may be needed to optimize test coverage and resolve test constraints, but if design-for-test is emphasized from the outset of a development project, manual intervention can be minimized.

With Process Automation Scripting, custom tests that provide access to boundary-scan cells, registers, pins, nets or groups of nets (buses) can be written. You can specify logic values to be driven or expected.

Once your actions and tests are ready, a custom user interface for manufacturing tests can be created with Process Automation Scripting. Boundary-scan tests can easily be integrated into the same test executives used for other test technologies, creating a unified test process.

After tests have been applied, the results can be managed easily by storing them in specific networked locations. Later, a Process Automation Scripting program can parse the results files to gather failure data for analysis.

Where do I find out more about Process Automation Scripting?

Process Automation Scripting is well documented in the on-line Help files of ScanWorks. Open ScanWorks Help and click on the Index tab. Type “process” in the search box. Next, select Process Automation Scripting Overview. Extensive examples, including scripts written in C++, C#, J#, Tcl, Perl, Visual Basic, Excel Spreadsheet macros (VBA), and Visual Basic Script, also are provided in the ScanWorks/examples/scripting directory.

Process Automation Scripting is included with ScanWorks Test Development Stations, Flash And PLD Programming Stations, and Diagnostic and Repair Stations. It is optional with Interconnect Development Stations and Interconnect Repair Stations. Applications created with Process Automation Scripting can be run on any ScanWorks Manufacturing Station.