4. 驱动与SDK安装:厂商驱动安装与常见问题排查

驱动和SDK,说白了就是相机和电脑之间的“翻译官”。驱动让系统认出设备,SDK让你能写代码控制它。这一步搞不定,后面全是白搭。我见过不少项目,硬件接线没问题,最后卡在驱动安装上,一卡就是半天。

咱们直接进入正题,看看三大主流厂商——Basler、海康机器人(Hikrobot)、大恒(Daheng)的驱动怎么装,SDK怎么配,以及那些让人头疼的坑怎么绕过去。

驱动与SDK安装知识体系 驱动与SDK安装 Basler (Pylon) Hikrobot (MVS) Daheng (Galaxy) 驱动安装 SDK配置 驱动安装 SDK配置 驱动安装 SDK配置 常见安装问题排查

4.1 Basler 相机驱动与SDK安装

Basler 的驱动叫 Pylon。我个人习惯,不管用哪个版本,都去官网下最新的 Pylon 64-bit 安装包。别图省事用光盘里的老版本,容易出兼容性问题。

安装步骤:

  1. 关闭杀毒软件——这一步很重要。Windows Defender 有时候会拦截驱动签名,导致安装到一半卡住。
  2. 双击运行 pylon-x.x.x.x-win64.exe,一路 Next。
  3. 安装类型选 Complete,别选 Typical。Complete 会把 GigE Vision、USB3 Vision 的驱动都带上。
  4. 安装完成后,插上相机。打开 Pylon Viewer,如果能搜到相机,说明驱动装好了。
小技巧: 如果 Pylon Viewer 搜不到相机,先检查防火墙。GigE 相机用的是 UDP 广播,防火墙经常拦这个。我遇到过好几次,关了防火墙立马就出来了。

SDK环境配置:

Pylon 安装完,SDK 其实已经在了。你需要在 Visual Studio 里配置包含目录和库目录。

// 包含目录(以 Pylon 6.3 为例)
C:\Program Files\Basler\pylon 6\Development\Include

// 库目录
C:\Program Files\Basler\pylon 6\Development\Lib\x64

// 附加依赖项
pylonbase.lib
pylonutility.lib

嗯,这里要注意:如果你用的是 C#,直接添加引用 Basler.Pylon.dll 就行,路径在 Development\Bin\ 下。

4.2 海康机器人(Hikrobot)驱动与SDK安装

海康的 SDK 叫 MVS(Machine Vision Software)。我建议直接去海康机器人官网下载 MVS_STD_xxx.exe。这个安装包集成了驱动和SDK,一步到位。

安装步骤:

  1. 运行 MVS 安装包,选择安装路径。注意:路径不要有中文,否则后面编译会报错。
  2. 安装过程中会自动安装 USB3 Vision 和 GigE Vision 驱动。
  3. 装完后打开 MVS Viewer,插上相机,应该能看到设备列表。
避坑指南: 我曾经遇到过海康相机在 MVS Viewer 里显示“设备连接失败”。后来发现是 USB3 线缆质量不行,换了一根带屏蔽的线就好了。USB3 对线缆要求很高,别用那种几块钱的线。

SDK环境配置:

MVS 安装后,SDK 在安装目录下的 Development 文件夹里。配置 VS 项目时,注意区分 Win32 和 x64,别搞混了。

// 包含目录
C:\Program Files (x86)\MVS\Development\Includes

// 库目录(x64 版本)
C:\Program Files (x86)\MVS\Development\Libraries\win64

// 附加依赖项
MvCameraControl.lib

海康的 SDK 文档写得挺详细,每个函数都有示例代码。我建议你先把 GrabImage 这个例程跑通,后面改起来就快了。

4.3 大恒(Daheng)相机驱动与SDK安装

大恒的 SDK 叫 Galaxy。安装包在官网下载,名字一般是 GalaxySDK_xxx.exe。大恒的驱动安装有个特点——它依赖 DirectShow 框架,所以装完 SDK 后,最好再装一个 Galaxy Viewer 来验证。

安装步骤:

  1. 运行 GalaxySDK 安装包,选择完整安装。
  2. 安装过程中会弹出驱动安装提示,点“始终信任”就行。
  3. 装完后打开 Galaxy Viewer,连接相机。如果相机指示灯亮了,说明驱动正常。
关键点: 大恒的相机在 Win10/Win11 上有时需要手动禁用驱动签名强制。方法是:重启电脑 -> 按 F8 -> 选择“禁用驱动程序签名强制”。装完驱动后再正常启动。

SDK环境配置:

// 包含目录
C:\Program Files\Daheng Imaging\GalaxySDK\include

// 库目录
C:\Program Files\Daheng Imaging\GalaxySDK\lib\win64

// 附加依赖项
GxIAPI.lib

大恒的 SDK 里有个 GxIAPI.h 头文件,里面定义了所有接口。我习惯把 GxIAPI.lib 和 GxIAPI.dll 直接放到项目目录下,省得配路径。

4.4 常见安装问题排查

这部分是重点。我这些年踩过的坑,基本都在这了。

问题现象 可能原因 解决方案
相机在 Viewer 中搜不到 防火墙拦截 / 驱动未正确安装 关闭防火墙;重新安装驱动;检查网卡设置(GigE 相机需开启巨型帧)
相机连接后图像卡顿 带宽不足 / 线缆问题 USB3 换线;GigE 检查网卡速率;减少同时连接的相机数量
SDK 编译报错 LNK2019 库文件未正确链接 检查附加依赖项;确认平台是 x64 还是 Win32
运行时提示找不到 DLL 环境变量未配置 将 SDK 的 Bin 目录添加到系统 PATH 中
相机指示灯亮但无法采集 触发模式设置错误 在 Viewer 中将触发模式改为“连续采集”
避坑指南: 我曾经在调试一台 Basler 相机时,怎么都连不上。折腾了两小时,最后发现是网卡驱动版本太老,不支持巨型帧。更新网卡驱动后,问题解决。所以,先更新网卡驱动,这是排查网络相机问题的第一步。

环境变量配置(通用):

不管你用哪家的 SDK,建议都把 Bin 目录加到系统 PATH 里。这样运行时不会报“找不到 DLL”的错误。

// 以 Basler 为例,添加到 PATH
C:\Program Files\Basler\pylon 6\Development\Bin\x64

// 以海康为例
C:\Program Files (x86)\MVS\Development\Bin\win64

// 以大恒为例
C:\Program Files\Daheng Imaging\GalaxySDK\bin\win64

配置完 PATH 后,记得重启 Visual Studio,否则环境变量不生效。

个人经验: 我习惯在项目里写一个 InitCamera() 函数,里面包含驱动加载、设备枚举、连接相机三步。每次换相机型号,只需要改枚举的 IP 或序列号,不用动其他代码。这样调试起来快很多。

好了,驱动和SDK这块就这些。记住一句话:先装驱动,再装SDK,最后配环境变量。顺序别搞反,不然容易出幺蛾子。