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:
This section describes limitations in VisionPro 3D-Locate.
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.
The VisionPro 3D-Locate API requires all 3D coordinate spaces to be 3D right-handed spaces.
This section describes limitations concerning image acquisition.
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.
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.
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.
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.
The Sony XCL camera models -V500, -X700, -U1000 cannot be operated in free-running trigger mode. There is no known workaround.
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.
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 of the cameras connected to an MVS-8602 use the same lookup table.
The first acquisition with a Teli CSB4000 camera after starting the PC may fail. Subsequent acquisitions will succeed.
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.
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.
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 on an MVS-8600 can take between 200 and 300 msec.
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.
This section describes limitations associated with edit controls in VisionPro 9.3 SR1.
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; }
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.
This section describes limitations in displaying images.
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.
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.
This section describes limitations of the documentation in VisionPro 9.3 SR1.
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).
This section describes limitations of the DS1000 series sensor in VisionPro 9.3 SR1.
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.
This section describes limitations of the DS900 series sensor in VisionPro 9.3 SR1.
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.
This section describes limitations of the VisionPro development environment.
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 SubThe 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 SubThe 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.
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.
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 .
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.
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.
This section describes limitations concerning GigE Vision image acquisition.
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.
This section describes limitations in graphics.
Whenever you add a graphic object as the child of another graphic object, you must specify "$" for the child object's coordinate space name.
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.
This section describes limitations of the Image and Mask Editor in VisionPro 9.3 SR1.
This release does not support launching the Cognex Image and Mask Editor when launched from the IDB Editor on 64-bit operating systems.
This describes limitations you should be aware of when installing VisionPro.
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.
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.
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.
This section describes miscellaneous limitations in VisionPro 9.3 SR1.
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.
VisionPro does not support changing languages while your vision application is running.
Workaround:
Exit VisionPro, change the language you are using, then restart VisionPro.
This section describes Model Maker limitations in VisionPro 9.3 SR1.
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.
This section describes limitations of discrete I/O in VisionPro 9.3 SR1.
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 = Truethe 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.
This section describes limitations of QuickBuild in VisionPro 9.3 SR1.
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).
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.
This section describes limitations of sample code in VisionPro 9.3 SR1.
Sample applications containing the following functionality are not supported on the 64-bit operating systems:
- Model Maker
- CogAcqFifoEdit
- OCV
- OCV Font Editor
This section describes miscellaneous vision tool limitations in VisionPro 9.3 SR1.
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.
This section describes limitations of the OCV tool in VisionPro 9.3 SR1.
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.
The OCV tool edit control and OCV Font Editor are not supported on 64-bit operating systems.
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.
This section describes limitations of the PatMax tool in VisionPro 9.3 SR1.
PMAlign tool error strings always appear in current operating system regardless of what language you have configured QuickBuild to use.