|
Custom Software
Development
Support
Technical Support
System Integrators, Dealers, &OEM's
Training
Software for
Graduate Students
What's New
About FSI Automation
Home
| |
|
|
Solving your
application with XCaliper involves four basic steps:
- CONFIGURE THE IMAGE INPUT using XCaliper’s
ImageDevice
- DESIGN THE INSPECTION using
XCaliper’s analysis tools
- WRITE CONTROL LOGIC using tool
properties, methods, and events.
- COMPILE & USE the application
|
|
Step-1
Configure Image Input
In this view, an ImageDevice has been placed on a new Visual Basic
form and a template image has been loaded. The Image Device property
page is open and the properties of the scene are being set.
|
XCaliper’s
ImageDevice component organizes your application on the basis of
‘scenes.’ Each scene is comprised of everything you need to analyze
an image, including: a camera interface, a template image, a connection
to an input channel of the frame grabber or camera, a set of tools to
analyze each image, and memory buffers to perform inspections and store
results.
The unique design of the ImageDevice allows you to control every
aspect of image acquisition, display, and management without writing a
line of code—you simply declare the number of scenes and set their
properties using the ImageDevice property pages, shown below.

|
| Step-2
Design the Inspection
In this view, several Caliper and Edge- Locator tools have been set
to find the position of the chip and to measure the spacing and length
of the pins. The property page shows the property settings for the
caliper along the top row of pins.
|
For each scene,
you design the inspection by dragging and dropping XCaliper’s
inspection tools onto the ImageDevice. Each tool has a viewport, a
graphical object used to draw and position the tool. When a tool is
placed or moved, it automatically executes, updates its display viewport,
and fills its result properties.
Each tool also has a property page, which allows for custom
configuration. You can change the behavior of a tool by adjusting its
properties. When you adjust the properties, the tool’s results change
instantly. This unique capability enables you to configure and modify
tools and preview how the tools will behave during application run-time,
without writing a line of code.

|
| Step-3
Control Logic
|
Next, you code the inspection
logic of the program. In most XCaliper applications, the bulk of the
processing is done inside the tools. Thus, the main inspection loop
simply defines properties of the tools, calls methods supplied by the
tools, determines the order in which the tools are executed, and
processes the inspection results.
Following is an example, written in VB,
from an application used to inspect the leads on an integrated circuit.
It begins with the main inspection loop of the program that contains the
image acquisition code.
|
| The main
control loop contains the image acquisition code. The application first
enters processing mode and requests an image to start acquisition.
Upon entering the main loop, a second image is requested to create a
queue, then the system waits for an image.
The InspChip line calls a subroutine to apply several XCaliper tools
to inspect the leads on a chip.
After the inspection is complete, the active inspection buffer is
optionally displayed and then released to the queue to be used for the
next available image.
|
Private
Sub Inspect_Click()
'enter
processing mode
ImageDevice1.RunMode = "Processing"
'request one image
ImageDevice1.StartSingleGrab 0, "Scene1", 0
Do
'request
another image to create a pingpong queue
ImageDevice1.StartSingleGrab 0,
"Scene1", 0
'wait until the image is in the inspection buffer
ImageDevice1.WaitGrab
'call a subroutine to inspect the IC pins
InspChip
'if the display menu is checked then show the image
If mnuDisplay.Checked Then _
ImageDevice1.DisplayInspBuffer 0
'release the inspection buffer back into the queue
ImageDevice1.ReleaseInspBuffer 0
'check for Windows events
DoEvents
Loop Until bStop
'do a wait then
release for the last image request
ImageDevice1.WaitGrab
ImageDevice1.ReleaseInspBuffer 0
'change back to
interactive mode
ImageDevice1.RunMode = "Interactive"
End Sub
|
| Step-3
Control Logic (continued)
|
Each image
acquired during the main inspection loop is in turn inspected by the
tools. You control the tools by setting properties and applying methods.
In this example, the inspection code has been placed in a subroutine.
The following code fragments demonstrate how you construct your program
to execute tools, examine tool results via properties, and
operate on tools using methods.
|
| These commands
execute two tools, automatically filling their results properties. Note
that tools can have descriptive names.
These commands demonstrate the syntax for retrieving and evaluating
results properties that are filled when a tool is executed.
This command demonstrates the syntax for calling a method of a tool.
Notice that parameters are passed to this method in terms of the results
properties of other tools.
|
'execute
the upper and lower legs tools
UpperLegs.Exec
LowerLegs.Exec
'loop through the legs found on the chip
For j% = 0 To UpperLegs.NumResults - 1
'Set the resultindex to the selected lead
UpperLegs.ResultIndex = j%
'add the size result to the aveuppersize var.
AveUpperSize = AveUpperSize + UpperLegs.Size
'track the max and min lead width size
If UpperLegs.Size > MaxUpSize Then _
MaxUpSize = UpperLegs.Size
If UpperLegs.Size < MinUpSize Then _
MinUpSize = UpperLegs.Size
'move the tool to the next inspection location
UpperTip.MoveTool UpperLegs.X, UpperLegs.Y - 15, _
"absolute"
'execute the uppertip tool
UpperTip.Exec
'calculate the height of the lead
If UpperTip.NumResults > 0 Then
UTLength = UpperTipLengths
UTAveLength = UTAveLength + UTLength
End If
Next j%
|
| Step-4
Compile & Use
|
Once an XCaliper
application is designed, you may compile it as a stand-alone executable
and deploy it in a process control environment. Completed applications
are highly portable and can be deployed on any Windows-based PC running
NT.
As inspection requirements change, XCaliper applications can be
easily adapted or refined. In many situations, it is possible to address
new requirements through the use of an additional tool, changing an
existing tool’s parameters, or using a new camera or frame grabber.
All of these can be done rapidly with little or no impact to the
existing application.
|
|