Up | Sony ZCL Driver | Unibrain 1394a and b drivers | Sony GigE Cameras | Pylon AreaScan | Matrox MIL9 Area Scan | AVT Prosilica GigE | AVT Firewire Cameras | PtGrey Flea2 Camera | GigeVision Camera support | SVS-VISTEK

Release Notes
 

  

 
Sony ZCL Driver

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 )	

Scorpion Vision Version XII : Build 646 - Date: 20170225
Scorpion Vision Software® is a registered trademark of Tordivel AS.
Copyright © 2000 - 2017 Tordivel AS.