LimitationsCognex VisionPro

A limitation is behavior that is imposed on VisionPro by hardware, operating system software, product architecture, or other external constraints. Workarounds may exist for some limitations.

Categories:

3D-Locate

This section describes limitations in VisionPro 3D-Locate.

Image Coordinates Must Be Specified in Raw2D Coordinate Space

The VisionPro 3D-Locate API requires image coordinates to be specified in the Raw2D coordinate space. This is the 2D coordinate space of the acquired images used for camera calibration.

3D Coordinate Spaces Must be Right-Handed

The VisionPro 3D-Locate API requires all 3D coordinate spaces to be 3D right-handed spaces.

Acquisition

This section describes limitations concerning image acquisition.

Review the CCF File Associated with Your Camera

Some cameras require special settings or have limitations that you should be aware of. You can find information about settings and limitations in the hardware manual for your frame grabber or in the Camera Configuration Files (CCFs) for the video format you are using. The Camera Configuration Files are named according to camera manufacturer, camera model, size, and technology. The CCFs are regular text files, with the ccf extension. You can use any text editor to examine them. The contents and parameters inside the file may not be changed otherwise they will no longer function. The comment section at the beginning of each file describes the camera mode of operation, setup requirements, and cables needed.

By default, the VisionPro installation utility installs the CCF files in the directory C:\Program Files\Cognex\VisionPro\bin.

Only One Application Can Acquire Images

You cannot run simultaneously two or more applications that perform acquisitions or live video using the same Cognex hardware device. You can, however, write multi-threaded applications that use different acquisition FIFOs in different threads.

Also, once an application has attached to a given hardware device, it does not relinquish its connection until it terminates. This means, for example, that if you are using two frame grabbers boards with QuickBuild, if you switch from the first board to the second board using one instance of QuickBuild, no other instance of QuickBuild will be able to acquire images using either board until the first instance of QuickBuild terminates.

MVS-8600 Acquisition

Loading VPP File Using Camera Link Takes A Long Time

VisionPro takes more than a minute to load a VisionPro VPP file configured to use an MVS-8600/MVS-8600e Camera Link frame grabber.

Workaround:

Ensure that a camera is attached to improve the speed of loading the VPP file.

Sony XCL V500, X700 and U1000 Double Exposure Mode

The Sony XCL V500, X700 and U1000 cameras will operate in Double Exposure mode when they are over-triggered. This behavior defeats the ability of the MVS-8602e Rev4 board to detect missed triggers (with IgnoreMissedTigger property set to false) when any of these Sony cameras are in use.

Sony XCL Cameras

The Sony XCL camera models -V500, -X700, -U1000 cannot be operated in free-running trigger mode. There is no known workaround.

Acquisition on the 8602e

When using a Dalsa P2-4x-08k40 camera with an Automatic or Free Run trigger model on an 8602e, use an exposure setting of at least 60 microseconds to prevent acquisition failures and corrupted images. If you are using an Atmel M4CL 6007camera on an 8602e, use an exposure setting of at least 50 microseconds to prevent similar issues.

Some Combinations of Exposure and Strobe Delay May Cause Strobe to Fire Late

When using exposures of less than 150us with a Dalsa DS-21-02M30 camera, the strobe may fire too late and cause black images.

Workaround:

Use exposure values greater than 150us.

All Cameras Using MVS-8602 Share One Lookup Table

All of the cameras connected to an MVS-8602 use the same lookup table.

First Acquisition with Teli CSB4000 May Fail After PC Startup

The first acquisition with a Teli CSB4000 camera after starting the PC may fail. Subsequent acquisitions will succeed.

Camera Link Cameras Must Be Configured for Use with MVS-8600

Supported Camera Link cameras must be configured a certain way for use with the MVS-8600. Cognex provides the Camera Link Serial Communication Utility and one command set file (CLC file) for each supported camera.

If you attempt to acquire images with an unconfigured camera left in its factory default condition, the consequences are as follows:

  • You can acquire images. That is, Prepare() does not fail, and Complete() does not hang.
  • Exposure control does not work correctly. Images are either too bright or too dark.
  • The motion of moving objects cannot be frozen, which leads to blurred images of moving objects.

Trigger Input Must Be Less Than +5V

The MVS-8600 only accepts trigger input voltage swings less than 5V. The 12V swing produced by some triggers does not trigger the MVS-8600. You can use a voltage divider circuit to reduce the output from 12V triggers to less than 5V.

This behavior is different from other Cognex frame grabbers.

Prepare() Can Succeed Even With Camera and Video Format Mismatch

When using the MVS-8600, the Prepare() function can return true even in cases where the current video format setting does not match the attached camera. However, image acquisition under these circumstances can time out and fail. This situation means that Prepare() cannot be relied on to detect the wrong camera attached for a vision processing application that is configured to expect a different camera.

Changing acquisition properties can take 200 to 300 msec

Changing acquisition properties on an MVS-8600 can take between 200 and 300 msec.

For linescan acquisition, trigger delay applies to each line

On the MVS-8600 frame grabbers using a line scan camera link camera the trigger delay property takes effect for every line instead of every frame like on area scan cameras. When using this property with line scan cameras it has a resolution of horizontal lines. This property may be used in conjunction with the built-in test encoder on the MVS-8600 to adjust the rate of acquisition of successive lines.

Vision Tool Edit Controls

This section describes limitations associated with edit controls in VisionPro 9.3 SR1.

Using Tool Edit Controls in Modal Dialogs Requires Extra Code

Unlike a COM application, a .NET application may call ShowDialog() multiple times for a modal form. This can cause problems if the modal form includes a VisionPro tool edit control. If you include a VisionPro tool edit control on a modal form, please observe the following coding guidelines:

  • Bracket calls to ShowDialog() with form create and dispose calls:

Form f = new Form();
f.ShowDialog();
f.dispose();

f = new Form();
f.ShowDialog();
f.dispose();

  • Set the Subject property of the tool edit control to null on the form's Closing event.

private void Form_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
  cogPMAlignEdit1.Subject = null;
}

Security Violations When Building the Sample Code

If you are observing a security violation when attempting to build the VisionPro Sample Code, it might be caused by the user currently logged not having write access privelges to the sample code output directories. One workaround is to change the security permissions for the user currently logged in. Right-click on C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\devenv.exe, select the Security tab and change the permissions for the affected user.

Display

This section describes limitations in displaying images.

Using 'Fade' Menu Effect Can Slow Live Video on Right Click

If you specify the 'fade effect' for menu transitions and tool tips using the Windows Display Properties control panel, then right-clicking in a live video display may slow the frame rate in that display dramatically.

Workaround:

You can prevent this problem from happening by not specifying the 'fade effect' for menu and tool tip transitions.

Direct Save of Large Images may Fail

Attempting to save an image from a VisionPro display control by right-clicking on the image and selecting Save Image To File... may fail for large images. If the message Error Saving Image: Unable to create the requested DIB section appears, the image is too large to be saved.

Documentation

This section describes limitations of the documentation in VisionPro 9.3 SR1.

Visual Studio Browser Text Misformatted

In some cases, the documentation displayed by Visual Studio's built-in code browser for VisionPro functions is improperly formatted. The properly formatted text is always present in the online documentation, which you can access directly from Visual Studio (with a single click if you have Dynamic Help enabled).

DS1000 Series

This section describes limitations of the DS1000 series sensor in VisionPro 9.3 SR1.

Display of Range With Grey Images Contains Height Data for Intensity Region

All z-height information displayed for the right half of Range With Grey Images acquired by a DS1000 series sensor should be ignored. The right half of such images contains intensity data, not height data.

DS900 Series

This section describes limitations of the DS900 series sensor in VisionPro 9.3 SR1.

Display of Range With Grey Images Contains Height Data for Intensity Region

All z-height information displayed for the right half of Range With Grey Images acquired by a DS900 series sensor should be ignored. The right half of such images contains intensity data, not height data.

Development Framework

This section describes limitations of the VisionPro development environment.

Precautions Required on Application Shutdown

Because of how System.Windows.Forms.Control.Dispose() is implemented, a WinForms VisionPro application may experience errors when it tries to shut down. This typically happens if the application uses any controls derived from System.Windows.Forms.AxHost. Many VisionPro controls derive from this base class. The errors are typically unhandled exceptions of type System.Reflection.TargetInvocationException or System.Runtime.InteropServices.InvalidComObjectException.

You can prevent these errors from happening by following these two steps:

Call Dispose on all controls that are contained within your controls before calling Dispose on your base class.

There are several ways to accomplish this. You can call Dispose inside your form’s Closing event, or you can do it inside the Dispose method. The following VB.NET sample code shows how to modify the Dispose method. The standard Dispose code has been augmented with an explicit call to Dispose for a contained CogDisplay control.

'Form overrides dispose to clean up the component list.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
    If disposing Then
        If Not (components Is Nothing) Then
            components.Dispose()
        End If
        CogDisplay1.Dispose()  ‘ Explicit call to Dispose for contained CogDisplay
    End If
    MyBase.Dispose(disposing)
End Sub

The equivalent C# code is:

protected override void Dispose( bool disposing )
{
  if( disposing )
  {
    if (components != null) 
      components.Dispose();

    cogDisplay1.Dispose();  // Explicit call to Dispose for contained CogDisplay
  }
  base.Dispose( disposing );
}

You should be sure to call Dispose for all contained VisionPro controls and for any contained controls that may themselves contain VisionPro controls. You should take this action inside your controls, inside your forms, and inside any other class of yours that is derived from System.Windows.Forms.Control.

Avoid accessing any control derived from System.Windows.Forms.AxHost inside your Dispose method.

If you must access such a control, you should make sure that it is still valid before using it. You can do this efficiently by testing that GetOcx doesn’t return ‘Nothing’ (or null, in C#). You must do this because the attached ocx will sometimes be destroyed before your Dispose method is called.

Here is a VB.NET example:

'Form overrides dispose to clean up the component list.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
    If disposing Then
        If Not (components Is Nothing) Then
            components.Dispose()
        End If
        If Not (CogDisplay1.GetOcx() Is Nothing) Then
            Params.LastZoom = CogDisplay1.Zoom  ‘ Save the last Zoom setting
        EndIf
        CogDisplay1.Dispose()  ‘ Explicit call to Dispose for contained CogDisplay
    End If
    MyBase.Dispose(disposing)
End Sub

The equivalent C# code is:

protected override void Dispose( bool disposing )
{
  if( disposing )
  {
    if( components != null )
      components.Dispose();

    if (cogDisplay1.GetOcx() != null)
      Params.LastZoom = cogDisplay1.Zoom;  // Save the last Zoom setting
    cogDisplay1.Dispose();  // Explicit call to Dispose for contained CogDisplay
  }
  base.Dispose( disposing );
}

Notice that you do not need to check GetOcx if you only intend to call Dispose on the AxHost-derived control.

Saving Tools That Reference Large Images May Result in Out of Memory Exceptions

If you save a tool that references a large image (around 200 MB or more) you may get an out of memory exception. This exception may occur when you are using the VisionPro API, or QuickBuild.

VisionPro Does not Support the /3GB Switch

Windows XP supports a boot.ini flag (/3GB) that can be used to expand the amount of virtual memory available to processes. Executables that support this expansion must be marked with the "LARGEADDRESSAWARE" flag, which can be done either with a linker flag or with the editbin utility.

VisionPro does not support this mode of operation. VisionPro applications must not be marked as LARGEADDRESSAWARE. However, VisionPro applications should have no problem running on a system that has the /3GB flag enabled as long as the they are not marked as LARGEADDRESSAWARE.

For more information on this Windows feature, see the Microsoft article Memory Support and Windows Operating Systems .

Practical Limit on Image Size on 32-Bit OS

Microsoft 32-bit OS's have a limitation of 2 GB of virtual address space per application and this limit can be easily reached when using large images in a VisionPro application. Refer to Technical Bulletin 07-001 if you are experiencing a System Out of Memory exception on a 32-bit operating system. Alternatively, use a 64-bit operating system where this limitation does not exist.

Some event handlers may be invoked unexpectedly

Whenever you create an event handler for a VisionPro event, you need to be aware that if the job whose events you are handling is being run by QuickBuild, the events may be fired at times that you do not expect. For example, QuickBuild enables and disables triggers internally, so the Changed event is fired. Any event handler that you write, especially if you are writing it as part of a script, must be prepared to handle unexpected events.

GigE Vision

This section describes limitations concerning GigE Vision image acquisition.

Network Interface Cards

Whenever a driver is replaced on a network interface card (NIC), the NIC configuration is returned to its default setting, established either by the manufacturer or the operating system. This is expected behavior.

Graphics

This section describes limitations in graphics.

Child Shapes Do Not Appear in Composite Shapes

Whenever you add a graphic object as the child of another graphic object, you must specify "$" for the child object's coordinate space name.

Composite Graphics May Scale in Unexpected Ways

When you use a scale handle to interactively resize a composite graphic, VisionPro uses the minimum of the new x- or y-scale, which means that if you make the enclosing rectangle narrower in one direction, the entire image will get smaller.

Image and Mask Editor

This section describes limitations of the Image and Mask Editor in VisionPro 9.3 SR1.

Image and Mask Editor Fails to Load from IDB Editor

This release does not support launching the Cognex Image and Mask Editor when launched from the IDB Editor on 64-bit operating systems.

Installation

This describes limitations you should be aware of when installing VisionPro.

Installing the 32-bit Version of VisionPro on a 64-bit Operating System

Cognex does not support the installation of the 32-bit version of VisionPro on any 64-bit operating system, although the VisionPro installer does not prevent this.

Not Compatible with acuReader III and FiberInspect

Because Cognex acuReader III Version 1.2 (and all previous versions), Cognex FiberInspect Version 1.3.2 (and all previous versions), and Cognex Font Editor Version 1.1 are built on older versions of VisionPro, this release of VisionPro cannot coexist with these software products on the same PC. If they are installed in your system, you must uninstall acuReader III, FiberInspect, and Cognex Font Editor before you install VisionPro. You must uninstall VisionPro before you can install acuReader III, FiberInspect, or Cognex Font Editor on the same machine.

Not Compatible with All CVL Versions

VisionPro can be installed on the same system as CVL versions 6.0 and newer. VisionPro may not work correctly if installed on systems with older CVL versions. Additionally, versions of CVL earlier than 5.5.1 may not work correctly on systems that have VisionPro installed.

Miscellaneous

This section describes miscellaneous limitations in VisionPro 9.3 SR1.

Virus Scanners May Decrease Performance

Virus scanning software that scans your PC memory and disk in the background may decrease the performance of your VisionPro-based application.

Workaround:

Disable background virus scanning or quit the virus scanning software while the VisionPro-based application is running.

On-the-Fly Language Switching Not Supported

VisionPro does not support changing languages while your vision application is running.

Workaround:

Exit VisionPro, change the language you are using, then restart VisionPro.

Model Maker

This section describes Model Maker limitations in VisionPro 9.3 SR1.

Composing Certain Contours May be Difficult

When you use Model Maker's Compose Contour feature, you cannot change the direction of a line segment or elliptical arc as you add it to the contour. This means, for example, that attempting to compose an L-shaped contour from a line segment that goes from (10,10) to (30,10) and a line segment that goes from (10,10) to (10,30) is not possible.

Workaround:

You can work around this problem by manually re-ordering the end points of the segment before adding it to the contour.

Discrete I/O

This section describes limitations of discrete I/O in VisionPro 9.3 SR1.

Actual Pulse Width Can Be Shorter than Specified

In some cases, the actual pulse signal can be shorter than the PulseDuration. For example, if you specify a 500 ms pulse duration, as shown below:

OutputLine.PulseDuration = 500 
OutputLine.PulseMode = CogOutputLinePulseModeConstants.High
OutputLine.Value = True

the resulting pulse may actually be as short as 490 ms in duration.

This behavior is a known limitation of operating system timers, and affects all Cognex hardware platforms that support the property. This problem is also known to occur more frequently when sending output pulses on multiple lines.

Workaround:

If your application requires an absolute minimum expected pulse duration, the workaround for this problem is to specify a value that is 1 ms longer than the actual desired pulse width. This will bump actual the pulse width to the next interval that matches the granularity of the multimedia timer.

In addition, reducing the multimedia timer period to 1 ms using the Microsoft Win32 API call timeBeginPeriod(1) can improve pulse accuracy. However, if you use this method, be aware that modifying the timer will affect overall system performance because this will result in timer interrupts needing to be serviced more frequently.

QuickBuild

This section describes limitations of QuickBuild in VisionPro 9.3 SR1.

Property Browser Supports Adding Properties and Not Methods

Adding items into Posted Items using the Property Browser supports adding Properties but not Methods. Even though Methods are shown in the Property Browser (i.e. CogBlobTool.Region.CogPolygon.GetVertexX) and the browser allows the item to be added, no value will be returned when user result is available (see UserResultAvailable event handler).

May need to reset the size of the Posted Items list and of the I/O Queue

If you load a QuickBuild application created with a version of QuickBuild prior to VisionPro 4.1, the I/O queue size or the Posted Items list size may have been reset to the default.

Sample Code

This section describes limitations of sample code in VisionPro 9.3 SR1.

Samples Not Supported on 64-bit Operating Systems

Sample applications containing the following functionality are not supported on the 64-bit operating systems:

  • Model Maker
  • CogAcqFifoEdit
  • OCV
  • OCV Font Editor

Miscellaneous Vision Tools

This section describes miscellaneous vision tool limitations in VisionPro 9.3 SR1.

OCV Character Positions Reported with Whole-Pixel Accuracy

The GetPose and GetPoseWithRespectToPattern functions return the location of a character verified by the OCV tool. The results returned by these functions are accurate to the nearest whole pixel in both the x- and y-direction. You cannot use the OCV tool to obtain sub-pixel character locations in the run-time image.

OCV Tool

This section describes limitations of the OCV tool in VisionPro 9.3 SR1.

Edit Control Help for OCV Tool Does Not Work

Clicking the "?" button in the OCV tool edit control will display a message that VisionPro is unable to locate the online help and that re-installing the product might resolve the issue. The OCV tool edit control, however, does not support access to the online documentation supported by most other tool edit controls. Re-installing VisionPro will not resolve the issue.

OCV Edit Control and OCV Font Editor Not Supported on 64-bit operating systems

The OCV tool edit control and OCV Font Editor are not supported on 64-bit operating systems.

Some OCV .VPP Files from Earlier VisionPro Versions Cannot Be Loaded

Any .vpp file containing an OCV tool that was saved without images and results (which happens if you specify CogSerializationOptionsConstants when calling SaveObjectToFile or if you specify "Save the tool without images and results" when saving a tool using QuickBuild or the tool edit control), cannot be reloaded, if that file was saved using a version of VisionPro before 3.4.

There is no workaround for this problem. Files saved under these conditions cannot be reloaded by any version of VisionPro. Files saved with VisionPro version 3.4 can be reloaded.

PatMax

This section describes limitations of the PatMax tool in VisionPro 9.3 SR1.

PMAlign Error Messages

PMAlign tool error strings always appear in current operating system regardless of what language you have configured QuickBuild to use.