多 sherlock(*.ivs)方式访问多相机方法说明
Jakit Zhang
Jakit.Zhang@TeledyneDalsa.com Tel. +86 15920287768(China)
Document Revision 1.0: 13 Oct 2014
Copyright © 2014, Teledyne DALSA Industrial Products, Inc.,
ALL RIGHTS RESERVED
多 sherlock(*.ivs)方式访问多相机方法说明
10/13/2014
1 / 7
行业中目前多相机应用越来越广泛,单个 sherlock 连接多相机时,sherlock 打开相机速度比较
慢,并且进行程序调整时,显得很是吃力。其实 sherlock 是支持多个 线程 IpeStudio.exe 方式打开
相机的。这样每个相机对应一个*.ivs 程序,方便调试,并且维护容易。我将整个方法进行归结。请
各位了解。
例如相机硬件及程序准备如下实现:
相机 1,相机 2 使用一个 sherlock 对象,相机 3 使用一个 sherlock 对象。首先我们要的是相机
配置,下面我会以 Gine 相机和最新的 PIC 相机分别进行配置:
第一步配置相机
Ginie 相机配置:
Gine 相机配置参数一般是使用 sherlock 自带的 Sapera Acquisition Wizard 软件进行配置的。其实
后台是调用 SaperaLTDrv.dll 实现的。我们在 sherlock 的安装需要修改配置文件 Drivers.ini
及 SaperaLTdrv.ini。其中两个文件修改为四个文件:
1.新建Drivers1.ini文件,内容如下:
[DRIVER1]
//驱动标识
NAME = Sapera LT
//驱动文件名称
FILE = SaperaLTDrv.dll
//dll文件
多 sherlock(*.ivs)方式访问多相机方法说明
10/13/2014
2 / 7
CONFIG = SaperaLTDrv1.ini //参数文件名称
ENABLED = 1 //驱动是否有效:1 表示有效;0 表示无效(无效则不会找相机)
2.新建Drivers2.ini文件,内容如下:
[DRIVER1]
//驱动标识
NAME = Sapera LT
//驱动文件名称
FILE = SaperaLTDrv.dll
//dll文件
CONFIG = SaperaLTDrv2.ini
//参数文件名称
ENABLED = 1
//驱动是否有效:1 表示有效;0 表示无效(无效则不会找相机)
3.新建SaperaLTDrv1.ini文件,内容如下:
[Server0] //相机1参数开始标识
ServerName=Genie_M1600_1 //相机1型号,根据不同相机不同名称
[Server0_Device0] //相机1驱动是否有效
Enable=1
DeviceName=S1007265 //相机1的SN编号
[Server1]
//相机2参数开始标识
ServerName=Genie_M1600_2 //相机2型号,根据不同相机不同名称
[Server1_Device0]
//相机2驱动是否有效
Enable=1
DeviceName=S9010044
//相机2的SN编号
4.新建SaperaLTDrv2.ini文件,内容如下:
[Server0]
//相机3的参数开始标识
ServerName=Genie_M1600_3 //相机3型号,根据不同相机不同名称
[Server0_Device0]
//相机3驱动是否有效
Enable=1
DeviceName=S9013274
//相机 3 的 SN 编号
多 sherlock(*.ivs)方式访问多相机方法说明
10/13/2014
3 / 7
备注:
1.相机 1 与相机 2 对应的是 Drivers1.ini 及 SaperaLTDrv1.ini 配置文件;
2. 相机 3 对应的是 Drivers2.ini 及 SaperaLTDrv2.ini 配置文件;
3. 红色字体仅仅为解释,不能出现在对应文件中;
PIC 相机配置:
PIC 相机配置配置采用 IfcDrv.dll 配置,其中相机配置方式可以参考我的《SherLock GUI 开
发函数详解》,其中涉及配置文件 IfcDrv.ini 及 gevtest.txt,我们配置文件如下:
1.新建IfcDrv1.ini文件,内容如下:
[GENERAL]
CONFIG=C:\Documents and Settings\All Users\Application Data\Teledyne
DALSA\Sherlock\Drivers\gevtest1.txt
2.新建IfcDrv2.ini文件,内容如下:
[GENERAL]
CONFIG=C:\Documents and Settings\All Users\Application Data\Teledyne
DALSA\Sherlock\Drivers\gevtest2.txt
3.新建gevtest1.txt文件,内容如下:
[GEV:0]
SerialNumber="14112303"
[CameraPort:0]
Name = "Kamera 1"
Camera_Structure =Create_Structure
多 sherlock(*.ivs)方式访问多相机方法说明
10/13/2014
4 / 7
TRIGGER_SRC= EXT0_TRIG
[GEV:1]
SerialNumber="14112302"
[CameraPort:1]
Name = "Kamera 1"
Camera_Structure =Create_Structure
TRIGGER_SRC= EXT0_TRIG
3.新建gevtest2.txt文件,内容如下:
[GEV:0]
SerialNumber="14112317"
[CameraPort:0]
Name = "Kamera 2"
Camera_Structure =Create_Structure
TRIGGER_SRC= EXT0_TRIG
第二步建立对应 sherlock 程序
创建两个 sherlock 程序,并保存为 1.ivs 和 2.ivs
第三步启动 IVS 方法:
编写两个 bat 文件,采用 bat 文件方式启动:
1.创建 1.bat ,代码如下:
start IpeStudio.exe -acq:Drivers1.ini -load:1.ivs
多 sherlock(*.ivs)方式访问多相机方法说明
10/13/2014
5 / 7
2. 创建 2.bat ,代码如下:
start IpeStudio.exe -acq:Drivers2.ini -load:2.ivs
备注:
1.必须注意添加 IpeStudio.exe 及 ivs 的对应路径。
2.调试可以采用此方法打开对应相机及程序。
3.路径中不能存在空格,存在空格的时候格式如下:
Start “” “C:\Program Files (x86)\Teledyne
DALSA\Sherlock\Bin\IpeStudio.exe" -acq:Drivers1.ini -load:simple31.ivs
第四步 VB or VC 实现 GUI code
以下为 VB 代码为例:
1.定义变量:
Dim WithEvents hDevice1 As IpeEngCtrlLib.Engine
Dim WithEvents hDevice2 As IpeEngCtrlLib.Engine
2.加载驱动文件
hDevice1 = CreateObject("IpeEngCtrl.Engine.2")
hDevice2 = CreateObject("IpeEngCtrl.Engine.2")
hDevice1.EngSetAcqIni("Drivers1.ini")
hDevice2.EngSetAcqIni("Drivers2.ini")
'initialize object
ErrCode = hDevice1.EngInitialize
ErrCode = hDevice2.EngInitialize
'connect display to engine
IpeDspCtrl1.ConnectEngine(hDevice1.GetEngineObj)
IpeDspCtrl2.ConnectEngine(hDevice2.GetEngineObj)
3.加载相机程序
'load investigation
ErrCode = hDevice1.InvLoad("1.ivs")
'connect VisionSystem Engine image window to the VB display control
多 sherlock(*.ivs)方式访问多相机方法说明
10/13/2014
6 / 7
IpeDspCtrl1.ConnectImgWindow("imgA")
IpeDspCtrl2.ConnectImgWindow("imgA_A")
'load investigation
ErrCode = hDevice2.InvLoad("2.ivs")
'connect VisionSystem Engine image window to the VB display control
IpeDspCtrl3.ConnectImgWindow("imgA")
4.其他代码可以借鉴 simaple 代码。
多 sherlock(*.ivs)方式访问多相机方法说明
10/13/2014
7 / 7