Acquiring with Line Scan Cameras
Some Cognex vision boards and video modules, such as the MVS-8120/CVM11 (which is not supported any longer), MVS-8600, and MVS-8600e support line scan cameras. These cameras acquire a single row of pixels at a time, building a complete image as the subject passes in front of the camera on a stage or conveyor. An encoder keeps track of the position of the subject as it travels in front of the camera, and communicates this information to the video module to let it know when to start and stop acquisitions. (Detailed information on the MVS-8600 and MVS-8600e frame grabbers can be found in Acquiring with Camera Link Cameras).
The major difference between line scan acquisition and area scan (normal) acquisition in CVL is that you need to specify line scan-specific properties, such as the number of encoder steps that correspond to a single image line.
There are significant differences between the use of line scan cameras with MVS-8120/CVM11, and with the MVS-8600 and MVS-8600e frame grabbers, as outlined in the table below.
|
|
MVS-8120/CVM11 |
MVS-8600/MVS-8600e |
|
Maximum image size |
32 megapixels |
Limited by available memory. |
|
Maximum lines per image |
8192 |
64000 |
|
Supports continuous line scan |
No |
Yes (FreeRun trigger model only) |
|
Supports strobed acquisition |
Yes (not tested) |
No |
|
Supports encoder-triggered acquisition |
Yes |
MVS-8601/MVS-8602: No MVS-8602e: Yes |
|
Steps-per-line setting for test encoder |
Settable |
Ignored. Camera free runs at maximum rate allowed by exposure setting. |
|
Directional test encoder |
Yes |
No |
|
Supports fractional steps-per-line |
Yes |
No |
|
Encoder types supported |
RS-422 |
RS-422, LVDS or TTL (open collector) |
|
Uses positiveAcquireDirection() setting |
At start of acquisition. |
For every line |
|
Supports useSingleChannel() |
No |
Yes (useful when direction of motion is irrelevant) |
|
Encoder count behavior |
Continuous |
Available only when acquisition is in progress |
|
Supports zeroCounter() |
Yes |
Yes (only to reset backwards count) |
|
Supports zeroCounterWhenTriggered() |
Yes |
No |
|
Supports currentEncoderCount() |
Returns instantaneous encoder counter value. |
Only valid during acquisition; returns estimated value relative to start of acquire, based on currently acquiring line number. |
|
Supports encoderPort() |
Yes |
Yes |
|
How to offset first acquired line from trigger |
zeroCounterWhenTriggered()
|
Not available |
|
Selectable encoder resolution |
No. Fixed encoderResolution of 4x |
Fixed encoderResolution of 1x for MVS-8601/MVS-8602. Selectable encoderResolution of 1x, 2x, or 4x for MVS-8602e |
|
Encoder overruns |
Always reported |
Never reported |
|
Ignoring backward motion between acquires |
Use zeroCounterWhenTriggered() |
Use zeroCounter() |
- To understand how the two platforms use the positiveAcquireDirection() setting, see Detecting Encoder Direction.
- To understand line scan acquisition with MVS-8120/CVM11, see positiveAcquireDirection() with the MVS-8600 and MVS-8600e.
- To understand line scan acquisition with MVS-8600 and MVS-8600e, see Line Scan Acquisition with MVS-8600 and MVS-8600e.