User Guide


Scorpion Vision Software supports the complete range of AVT Prosilica and AVT GigE cameras using the

  • PVGrab.dll - Scorpion Camera Driver, standard mode
  • PVGrabNoBroadcast.dll - Scorpion Camera Driver, initializes in no-broadcast mode only
  • PVAPI.dll - Prosilica API dll

Standard or No Broadcast mode driver - which one to choose

In standard mode broadcast messages are sent periodically over the network in order to discover new cameras. The advantage is that in Scorpion user can choose camera from a list of names. The broadcast messages are not affecting image grabbing efficiency and are not visible, unless user is monitoring network traffic. However if broadcast messages are annoying to the user, there is an alternative driver version PVGrabNoBroadcast.dll, which does not send any broadcast messages. As a consequence, Scorpion cannot present camera list, so the user has to specify cameras by their IP addresses in the camera name field. Other than that, the two drivers are identical.


  • Please specify cameras by their IP addresses when using PVGrabNoBroadcast.dll
  • IP addresses (instead of camera names) can be used with PVGrab.dll as well.

Installing Scorpion camera driver

Scorpion driver PVGrab.dll or PVGrabNoBroadcast.dll require Prosilica API library PVAPI.dll.

Usually all ddl’s are installed together with Scorpion.

However if another driver version is required, please make sure both PVGrab.dll and Prosilica’s PVAPI.dll are copied into Scorpion folder.

See Release notes for download links.


  • The camera must answer a ping.
  • If the camera is on a different subnet, it will not hear the ping, and so will not answer.
  • In order for the Prosilica Viewer to see a camera, the camera and the NIC must talk on the same subnet and the subnet mask must be set properly too.
  • The Prosilica Viewer only sees cameras that are on the local subnet.
    • The GigEIPConfig utility however sees beyond the subnet and will list every camera on the local network without regard to subnet.
  • Use the GigEIPConfig program to manage / configure the ip-address of a connected camera
  • Use the Prosilica Viewer to test a configured and connected camera

See the Prosilica documentation for more details on camera installation.

More information about Prosilica -

More information about ethernet ->

Selecting the Prosilica Camera driver

Perform the following steps to select Prosilica camera driver in Scorpion:

  • Activate the Service.Camera tab
  • Right-click mouse over the Camera Settings menu
  • Select Cameradriver
  • Select the PVGrab.dll

Camera Settings


  • Important: When switching between PVGrab.dll and PVGrabNoBroadcast.dll please first remove all cameras from Scorpion camera list and then restart Scorpion.
  • After that you can select another driver and start selecting/adding cameras. You may need to recreate image which is removed along with camera removal.
  • If more than one Prosilica camera is used in a Scorpion profile, only one type of Scorpion Prosilica drivers can be used in the same profile.

Camera visibility

Prosilica cameras are visible to the driver only if they are connected to the same subnet as the computer and they are not blocked by the computer firewall. Normally cameras can be selected using the browse button (marked as ‘...’).



To access cameras on different subnets you can type the IP address (e.g. in the Camera field of the Camera Settings dialog.

Prosilica GigE Property Pages

Below are the property pages explained.

The camera setup dialog allows the user to set the most common properties of the camera.

To access other properties use the Scorpion commands described in the command section or by the Python interface.

General Page


Supported Image formats

  • Mono8
  • Bayer8
  • Rgb24
  • Y411
  • Y422
  • Y444

Trigger mode

  • Freerun - continuous video stream.
    • This option reduces the acquisition time but increases the Ethernet load.
  • SyncIn1..4 - hardware triggered. Triggered due to the Trigger event settings
  • FixedRate - acquires images at a fixed rate set by the frame rate value
  • Software - a trigger command is sent to the camera for each image request. This option reduces the Ethernet load to a minimum but increases the acquisition time.


  • Freerun is a fast streaming mode using bandwidth continously
  • Software Trigger is slower but uses less bandwidth

Trigger Event

  • Applies to Trigger mode SyncIn1..4 only. See actual camera documentation for event settings.


  • Applies to Trigger mode FixedRate only.
  • Defines number of frames per second (fps)
  • The framerate maximum depends of physical Ethernet capacity, GigE settings and image size.

Controls Page

Sets the most common controls for the camera. See the camera specification for actual camera for further information.


LUT Page

Apply lookup table. Lookup table must follow some rules, see lookup table example.


LUT File

  • The File Name of LUT file.


  • In drop down list choose column to use.

Generate LUT Table

  • Logarithmic LUT generation.

GigE Page



This parameter determines the Ethernet packet size. Generally speaking this number should be set to as large as the network adapter will allow. If this number is reduced, then CPU loading will increase. These large packet sizes are called Jumbo Packets in Ethernet terminology. If your Gigabit Ethernet - 1000baseT network adaptor does not support Jumbo Packets of at least 9 Kbytes, then you will need to reduce PacketSize parameter of the camera to match the maximum Jumbo packet size supported by your Gigabit Ethernet inteface. The default value for GigE is 8332.


  • Use 1500 as packetsize for fast ethernet - 100baseT
  • Make sure network adapter and camera driver have the same packet size specified


  • This control is very useful. This control can be used to moderate the data rate of the camera.
  • This is particularly useful for slowing the camera down so that it can operate over slower links such as Fast Ethernet - 100 MBit or wireless networks.
  • It is also an important control for multicamera situations. When multiple cameras are connected to a single Gigabit Ethernet port (usually through a switch), StreamBytesPerSecond for each camera needs to be set to a value so that the sum of each cameras StreamBytesPerSecond parameter does not exceed the data rate of the GigE port.


  • Setting this number to 994952 = 8 MBit is good for 100baseT.
  • On 1000baseT a value corresponding to 80 to 100 MBit.
  • One byte is 8 bits. The practical capacity on a 100BaseT is 60 - 80 - 100 MBit.

Attributes Page


The Attribute Page lists all available camera properties:

  • Attribute - attribute name, this is the name to be used in get/set property commands
  • Type
    • C - command
    • E - enumeration
    • S - string
    • I - integer
    • F - float
  • Flags
    • R - readable
    • W - writable
    • C - constant
    • V - volatile (camera controlled value)
  • Value - current value
  • Range - attribute range
  • Category - the attribute category

For detailed attribute information see

Setting properties using Python

Use the following python interface to read and modify camera properties:

  • long values:
    • setProperty (‘propertyName’, value)
    • getProperty (‘propertyName’)
  • float or text values:
    • executeCmd(‘set’, ‘propertyName=value’)
    • executeCmd(‘get’, ‘propertyName’)


  • Obtain Property name from Attributes page
  • Property names are case sensitive

Example 1: Setting white balance from Central script

Set long value.

def SetWhiteBalance(red,blue):
  cam=GetCamera("0") #equals cam=GetCameras().getCamera(0)
  #verify set ok
  print 'red',red,cam.getProperty('WhitebalValueRed')
  print 'blue',blue,cam.getProperty('WhitebalValueBlue')

Example 2: Setting trigger event

Set enumeration value, which is set the same way as text values.

def SetTriggerEvent():
  cam.executeCmd('set', 'FrameStartTriggerEvent=EdgeRising')
  print 'new trigger event=', cam.executeCmd('get', 'FrameStartTriggerEvent')

Example 3: Setting framerate

Set float value.

def SetFramerate():
  cam.executeCmd('set', 'FrameRate=3.4')
  print 'new framerate=',cam.executeCmd('get', 'FrameRate')