跳转到内容
STAGING SERVER
DEVELOPMENT SERVER

在 Linux 上以多实例启动基于 pylon 的应用程序时可能遇到的问题#

在某些罕见的使用场景中,您可能需要运行应用程序的多个实例来管理多台相机。

如果所有相机都是同一型号、使用相同的固件版本,并且应用程序的所有实例同时启动,GenICam 将由于文件访问冲突而抛出异常。

原因在于,当使用相同的相机型号和固件时,将会使用相同的 GenICam 缓存文件名。

Windows 版 pylon 中使用的 GenICam 版本已对此进行了保护,但 Linux 版本则没有。

解决方法 1#

首先以单实例启动应用程序,将相机的 XML 缓存文件写入磁盘。一旦特定相机的 GenICam 缓存文件已存在于硬盘上,将只授予读取权限,并且不应再引发异常。

解决方法 2#

如果操作系统安装在 ROM 上,上述解决方法将无效,因为系统在重启后会丢失 XML 缓存文件。

在这种情况下,为每个应用程序实例分配一个单独的 GenICam 缓存目录将解决此问题,例如:

  • GENICAM_CACHE_V2_3=/home/$username/Genicam_cache1 ./Grab
  • GENICAM_CACHE_V2_3=/home/$username/Genicam_cache2 ./Grab

信息

使用 GENICAM_CACHE_V2_3 对于 pylon 4,以及 GENICAM_CACHE_V3_0 对于 pylon 5 或更高版本。请确保目标目录存在,并且用户拥有写入权限。

返回知识库文章