Scorpion Vision Software supports Sony ZCL Driver:
- XCG-5005E
- XCG-U100E
- XCG-SX99E
- XCG-SX97E
- XCG-V60E
- XCG-H280E
Cameras using the
- SonyZCLCamera.dll - Scorpion Camera Driver
The driver is designed by Sony for 32 and 64
bit Windows-7.
It has been tested under Windows XP, Windows 7 - 32bit and 64bit.
Prerequisites
- Scorpion Vision Software version 7 or higher
- ZCL-software package installed.
- Cameras are configured and detected by ZCL-Software
Note
- Sony ZCL driver uses dedicated network interface. It is possible, that Windows operating system's network manager will show "Network cable unplugged".
- Do not set log levels higher then 1 when running in production.
- Driver and software is available under Release Notes
or in the latest Scorpion Installer.
- The ZCL driver behaves differently
that other GigE stacks and
doesn't rely on fixed IP for the communication with the
cameras. It comes with its own internal DHCP server that
manages the IP configuration automatically.
- Both ZCL and
XCG driver can be
installed on the same PC but only one filter driver can be
active at the same time.
- Simply uncheck either the Sony
Filter Driver or ZCL Filter Driver from the
adapter's properties window to
enable/disable one or the other.
Property page - Camera Settings
Note:
- Width
Image width in pixels. Must be multiple of 8.
- Height
Image height in pixels. Must be multiple of 4.
- OffsetX
Horizontal offset in pixels.
- OffsetY
Vertical offset in pixels.
- Vertical Binning
This mode increases sensitivity and frame rate by combining vertically adjacent pixel data from the CCD.
Binning mode approximately doubles sensitivity by combining vertical signals on alternate pairs of adjacent lines.
However, because the frame rate is also doubled, available exposure time is consequently halved. Setting a shorter
exposure time enhances the effect, and sensitivity is further increased. Consider the effect on exposure time when using
the Binning mode.
- Trigger Mode
Trigger Mode defines if the selected trigger is active.
- Trigger Source
Trigger Source specifies the internal signal (Software) or physical
input Line (Hardware) to use as the trigger source for the selected
trigger when Trigger Mode is On.
- Trigger Inhibit
This function disables the camera’s trigger input.
When multiple cameras are connected, use this to
disable triggering for only specified cameras at specific
times.
- Trigger Activation
This function selects whether triggering occurs at the
rising, falling edge of the trigger signal, high level or low level.
- Trigger Delay
This function applies a trigger delay within the camera.
Use it to synchronize trigger timing when the trigger
signal is offset from the desired object exposure timing.
- Gain
This feature controls the selected gain as a raw integer value (in step).
- Black Level
This feature controls the digital black level as a raw integer value (in 14 bits).
- Gamma
This feature is used to perform gamma correction of pixel intensity.
- Frame Rate
Configure the frame rate. However, you
cannot increase the frame rate beyond the fastest
setting. In addition, if the exposure time is longer than
the configured frame period, the frame rate will be
reduced in proportion to the exposure time.
- Exposure Time
This feature used to set the Exposure time (in us).
- Log Level
- Level 1 issues error and warning messages.
- Levels 2,3 issue diagnostic messages.
Property page - Input/Output
Note:
- Active GPO
Selects active output line.
- Line Source
This feature is used to select output Line Source: Exposure or Strobe.
- Line Inverter
This feature controls if the electrical output signal on selected line is inverted.
- Strobe Duration
If output line source is strobe - this parameter is using for define electrical output signal duration time.
- Strobe Delay
This function delays strobe after camera trigger. Use it to synchronize strobe with camera's trigger signal.
Properties available from Python
The following named properties can be dynamically accessed with the 'setProperty' and 'getProperty' commands:
- 'continuous'
- Enter or leave continuous grabbing mode. This parameter cannot be set via gui page.
- The continuous mode is normally set when using the command in
hardware trigger. Setting continuous mode removes the need for arming the
camera with a Grab command.
- SoftwareTrigger
- AcquisitionFrameRate
- TriggerMode
- TriggerSource
- ExposureTime
- Gain
- BlackLevel
- LogLevel
- DebugView
- LogIntoFile
Example 1: Start Continuous grabbing
cam = GetCamera('0')
cam.SetProperty('continuous', 1)
Example 2: Stop Continuous grabbing
cam = GetCamera('0')
cam.setProperty('continuous', 0)
Example 4: Set Exposure Time
cam = GetCamera('0')
cam.setProperty('ExposureTime', 500)
Example 5: Enable triggering
cam = GetCamera('0')
cam.setProperty('TriggerMode', 1)
Example 6:
Software Trigger
Go to camera properties dialog and configure the following:
-
Set 'Trigger' to 'ON'
-
Set 'TriggerInhibit' to 'OFF'
-
Select 'TriggerSource' value 'Software'
In Scorpion profile:
cam = GetCamera('0')
cam.setProperty('SoftwareTrigger', 1)
Example 7: SetCameraBlackLevel()
def SetCameraBlackLevel(CamString='0',l1,l2,l3):
cam = GetCamera(CamString)
cam.setProperty('0xA0002038', l1) #pedastal level 0-2047
cam.setProperty('0xA0002000', l2) #Clamp Level L 0-1027
cam.setProperty('0xA0002004', l3) #Clamp Level R 0-1027
Example 8:
SetCameraLUTformat()
def SetCameraLUTformat(CamString='0',lutFormat
= 0):
lutFormatText = {}
lutFormatText[0] = 'linear'
lutFormatText[1] = 'reverse'
lutFormatText[2] = 'binarization'
lutFormatText[3] = 'gamma curve'
lutFormatText[4] = 'user table'
cam = GetCamera(CamString)
oldLutFormat = cam.getProperty('0xA000205C')
print 'lutFormat', oldLutFormat, lutFormatText[oldLutFormat], 'changed
to', lutFormat, lutFormatText[lutFormat]
cam.setProperty('0xA000205C', lutFormat)
Example 9:
SetCameraLUTtable()
def SetCameraLUTtable(CamString='0'):
def CreateLogTable():
import math, array
UINT16_MAX = ((1 <<
16) - 1)
VALUE_MAX = ((1 << 12)
- 1)
almostMax =
float(VALUE_MAX + 1) - 0.001
floatMax =
float(VALUE_MAX + 1)
logTable = []
f = almostMax /
(math.log((UINT16_MAX / floatMax) + 1))
ix = 0
for ix in range(0,
UINT16_MAX + 1):
value = f
* math.log((ix / floatMax) + 1)
logTable.append(value)
return logTable
cam =
GetCamera(CamString)
lutTable = CreateLogTable()
print 'SetCameraLUTtable:'
print ' lutTable created, length',
len(lutTable)
print ' sending table to camera -
may take 2 minutes or so'
for ix in range(0, 4096):
regAddr = 0xA0010000 +
ix * 4
value = lutTable[ix *
16 + 8]
cam.setProperty('0x%X'
% regAddr, int(value))
Example 10: SetCameraTrigMode(mode)
def SetCameraTrigMode(mode,continous=-1):
acquisitionMode = 1
triggerSource = 0
triggerMode = 0
if mode.lower() == 'hardware':
acquisitionMode = 1 # mode = single frame
triggerSource = 0 # source = hardware
triggerMode = 1 # trigger to ON
if continous == -1:
bContinous = 1
elif :
bContinous = continous
elif mode.lower() == 'software':
acquisitionMode = 1 # mode = free run
triggerSource = 1 # source = software
triggerMode = 1 # trigger to ON
if continous == -1:
bContinous = 0
elif :
bContinous = continous
elif mode.lower() == 'freerun':
acquisitionMode = 1 # mode = free run
triggerSource = 1 # source = software
triggerMode = 0 # trigger to OFF
if continous == -1:
bContinous = 0
elif :
bContinous = continous
else:
print 'SetCameraTrigMode - invalid parameter', mode
print 'Accepted parameters: hardware | software | freerun'
return
print 'SetCameraTrigMode', mode
cameras = GetCameras()
if cameras <> None:
n = cameras.count
for i in range(n):
cam = cameras.getCamera(i)
if cam <> None:
cam.setProperty('0xA0000200', acquisitionMode)
cam.setProperty('0xA0002098', triggerSource)
cam.setProperty('0xA0002044', triggerMode)
cam.setProperty('continuous', bContinous )
|