跳转到内容

网络配置 (blaze)#

本主题告诉您如何配置网络适配器和更改 Basler blaze 相机的 IP 配置。

本主题中特定于 Linux 的信息基于使用 Ubuntu 20.04 的默认桌面 GUI。有关更多详细信息,请参阅 Linux 发行版的文档,因为有多种方法可以在 Linux 下配置网络接口。

网络配置分步指南#

以下步骤将指导您完成在网络设置中建立 blaze 相机的流程。

  1. 确定如何为相机分配 IP 地址。需考虑以下事项:
    • 您打算使用几台相机?
    • 您在使用多少个网络适配器?是否每个相机都有专用适配器?
      有关更多信息,请参阅推荐的网络架构
    • 您有可用的 DHCP 服务器吗?
      如果您有 DHCP 服务器,请使用它。这使配置更加容易。
      如果没有 DHCP 服务器,则可以选择使用静态 IP 地址或自动获取 IP 地址:
      • 仅当您为使用“自动获取 IP 地址”所配置的网络适配器不超过一个时,才可以使用自动获取 IP 地址。为“自动获取 IP 地址”配置多个适配器会无法进行相机发现。
      • 如果您在使用具有静态地址的多个网络适配器,则每个适配器必须位于不同的子网中。
  2. 配置网络适配器的 IP 地址
  3. 使用 pylon IP Configurator 配置相机的 IP 地址。
  4. 检查 pylon IP Configurator 中的连接。

    1. 如果状态为 OK,则表明一切正常。
    2. 如果状态为无法访问,请检查以下内容:

      1. 确保没有其他应用程序访问相机。
      2. 确保适配器的子网掩码与相机的子网掩码相同。
      3. 确保适配器和相机的地址处于同一子网中。
        示例:如果子网掩码为 255.255.0.0,则 IP 地址的前两位代码块必须相同。
      4. 确保将所有其他网络适配器均配置为与相机连接的其他子网。
      5. 确保其他网络设备未与相机具有相同的地址。
    3. 如果未列出相机,请检查以下内容:

      1. 是否将相机物理连接到正确的网络适配器?
      2. 禁用与相机相连的适配器的防火墙。
    4. 调整性能设置
    5. 故障排除
      如果流式传输时出现丢帧或错误消息,则最有可能的原因是网络连接不稳定或性能不足。
    6. 检查是否可以进一步优化您的 WindowsLinux 系统的网络设置。
    7. 禁用与相机相连的适配器的防火墙

有两种规划网络的方法。下面列出了差异,以帮助您选择合适的设置。

对等网络架构#

一种选择是在相机与主机之间建立直接对等连接。

相机可以连接到单个 GigE 网络适配器或主机中的多端口适配器。

对等网络架构

  • 优点:每台相机都有与主机的单独连接。因此,每台相机都具有可用于传输采集到的图像的完整连接带宽。这意味着您可以使用全采集速率操作每台相机。
  • 缺点:可以连接到单台计算机的相机数量有限。

信息

在对等连接中,每个适配器都必须处于不同的子网中,并且每个相机都必须在该相机所连接的适配器的子网中具有 IP 地址。
示例:适配器的 IP 地址为 192.168.1.1、192.168.2.1、192.168.3.1 等,并将子网掩码设置为 255.255.255.0。然后,相机可以具有以下 IP 地址:192.168.1.100、192.168.2.100、192.169.3.100 等,其子网掩码设置为 255.255.255.0。

通过网络交换机连接#

或者,您可以通过网络交换机在相机与主机之间建立连接。

下面的示例展示了一个连接到 4 端口网络交换机的 1 端口 GigE 网络适配器。您也可以使用多端口网络适配器或多台交换机。

通过网络交换机连接

  • 优点:允许您将多台相机连接到一台主机。
  • 优点:由于各设备之间的线缆最长可达 100 米,因此可以延长线缆总长度。
  • 缺点:交换机仅通过一条 GigE 接线与计算机相连。相机必须共享这一条路径上的可用带宽。单路径上可用的带宽约为 125 MByte/s。

信息

当多台相机连接到一个交换机时,该交换机必须具有足够的缓冲容量。这样一来,当交换机在单条输出线上传输数据时,它就可以保留来自相机的输入数据。
所有相机都必须具有同一子网(即适配器的子网)中的地址。
示例:如果计算机地址为 192.168.1.1,则相机可以采用 192.168.1.100、192.168.1.101 等 IP 地址。

为了获得最佳性能和可靠性,Basler 建议使用 Intel PRO 1000、I210、I340 和 I350 系列适配器。

网络适配器 IP 配置#

这是配置网络适配器 IP 地址的两种最常用的方法:

  • 分配一个固定(也称为“静态”或“持久”)地址
  • 通过 DHCP(动态主机配置协议)或自动 IP(基于链路本地地址 (LLA) 的自动专用 IP 寻址)配置自动寻址。

Windows#

分配固定 IP 地址#

要将固定的 IP 地址分配给网络适配器,请执行以下操作:

  1. Open the Network Connections window in the Windows Control Panel.
    For quick access, press Win+R, type ncpa.cpl, and press Enter.
  2. 右键单击相机使用的网络适配器连接,然后单击属性
    此时将打开属性窗口。
  3. 双击互联网协议版本 4 (TCP/IPv4)
    这将打开互联网协议版本 4 (TCP/IPv4) 属性窗口。
  4. 单击使用以下 IP 地址
  5. IP 地址子网掩码默认网关字段中,键入 IP 地址、子网掩码和默认网关地址。
  6. 首选 DNS 服务器备用 DNS 服务器字段中,键入主要和辅助 DNS 服务器地址。(通常不需要域名服务器。)

    互联网协议版本 4 属性

  7. 对所有适用的网络适配器重复步骤 2 至 6。

信息

在相机设计期间,您可以使用以下设置非常快速地建立网络连接:

  • 在子网掩码为 255.255.0.0 的自动 IP 地址范围(169.254.0.1 至 169.254.255.254)中为网络适配器配置一个固定地址。
  • 为相机配置自动 IP 地址分配。
  • 如果您的计算机具有多个网络适配器,则每个适配器必须位于不同的子网中。
  • 固定 IP 地址的建议范围是从 172.16.0.1 到 172.32.255.254,子网掩码为 255.255.0.0;此外还可以选择 192.168.0.1 到 192.168.255.254 的范围,以及 255.255.255.0 的子网掩码。这些地址范围已根据 IP 标准保留以供专用。
  • 如果要为相机分配固定的 IP 地址,请记住,要使相机与网络适配器正确通信,它必须与所连接的适配器位于同一子网中。

通过 DHCP/自动 IP 分配 IP 地址#

如果将适配器配置为通过 DHCP/自动 IP 接收其 IP 地址,其工作原理如下:

  • 适配器尝试从 DHCP 服务器获取 IP 地址。如果 DHCP 服务器可用,它将从服务器接收 IP 地址并使用该地址。
  • 如果没有可用的 DHCP 服务器,则适配器将使用“自动 IP”例程为自己分配 IP 地址。

大多数网络适配器的默认设置为 DHCP/自动 IP。大多数情况下,与相机一起使用的适配器将没有 DHCP 服务器可用。因此,使用默认设置时,适配器最终将使用自动 IP 寻址为其自身分配 IP 地址。

信息

只能将一个适配器设置为使用自动 IP。如果在多个适配器上配置了 DHCP/自动 IP,则自动 IP 分配将无法正常工作,并且相机将无法通过自动 IP 连接到网络。

如果您的计算机中有多个网络适配器,Basler 建议在网络中安装 DHCP 服务器或为适配器和相机分配静态 IP 地址。

要使用 DHCP/自动 IP 分配 IP 地址,请执行以下操作:

  1. Open the Network Connections window in the Windows Control Panel.
    For quick access, press Win+R, type ncpa.cpl, and press Enter.
  2. 右键单击相机使用的网络适配器连接,然后单击属性
    此时将打开属性窗口。
  3. 双击互联网协议版本 4 (TCP/IPv4)
    这将打开互联网协议版本 4 (TCP/IPv4) 属性窗口。
  4. 确保已选择“自动获取 IP 地址”。
    这使适配器检查 DHCP 服务器成为首选。
  5. 单击“备用配置”选项卡。
    如果未找到 DHCP 服务器,则使用此选项卡上的设置配置适配器将使用的自动 IP 地址分配。
  6. 确保选择了自动专用 IP 地址

    互联网协议版本 4 属性(备用配置)

Linux#

要配置网络适配器:

  1. 通过显示应用程序或右上角的图标打开设置应用。
  2. 网络选项卡上,单击相机所连接的网络适配器旁边的齿轮图标。

    设置应用

  3. 单击 IPv4 选项卡。

    网络适配器设置

    • 对于 DHCP,将 IPv4 方法设置为自动 (DHCP)
    • 对于静态地址分配,将 IPv4 方法设置为手动,然后在地址区域中输入地址网络掩码以及网关(如果需要)。
    • 对于自动地址分配,将 IPv4 方法设置为仅本地链接
  4. 单击应用以保存设置。

相机 IP 地址配置#

要更改相机的 IP 配置,请使用 pylon IP Configurator

  • Windows:单击开始 > Basler > pylon IP Configurator
  • Linux:发出以下命令:/opt/pylon/bin/ipconfigurator

信息

有关更多信息,请参阅本文档中的 pylon IP Configurator 联机帮助(仅限 Windows)或 pylon IP Configurator 部分。
自动 IP (LLA):此选项不可用。但是,如果将相机配置为通过 DHCP 服务器分配 IP 地址,但未找到 DHCP 服务器,则相机会退回到“自动获取 IP 地址”以使用 IP 地址进行自动配置。相反,如果要使用“自动获取 IP 地址”,请选择 DHCP 选项而不提供 DHCP 服务器。

防火墙配置#

Windows#

禁用 Windows 防火墙是一种极端的措施,通常不建议这样做。但是,在某些情况下,为了修复性能问题,可能需要这样做。

选定网络适配器上关闭防火墙:

  1. Win+R,键入 wf.msc 并按 Enter 键。
    高级安全 Windows 防火墙窗口随即打开。
  2. 单击 Windows 防火墙属性

    “高级安全 Windows 防火墙”窗口

    此时将打开本地计算机属性上的高级安全 Windows 防火墙…窗口。

  3. 单击您要关闭防火墙保护的配置文件的选项卡。
    通常,这将是公共配置文件选项卡。但如果使用专用网卡,Basler 建议还要为其他配置文件禁用防火墙保护。

  4. 单击自定义

    高级安全 Windows 防火墙设置

    公共配置文件的受保护网络连接窗口将打开。该窗口列出了已开启防火墙的连接。

    “受保护的网络连接”窗口

  5. 清除连接相机的连接。这将关闭其防火墙保护。

  6. 对要关闭防火墙保护的所有配置文件重复步骤 3 至 5。

Linux#

必须为连接相机的网络适配器禁用防火墙。否则,可能无法进行设备发现和从相机接收数据流。

要禁用防火墙,请输入:

sudo ufw disable

性能优化#

Windows#

From a performance point of view, there are two relevant drivers available in the pylon Software Suite:

  • GigE Vision 过滤驱动程序
  • 性能驱动程序

要找出已安装的驱动程序:

  1. 打开 pylon IP Configurator。
  2. 选择您的适配器。
    适配器的相关信息将显示在对话框的右下区域。如果该区域显示“Basler GigE Vision Adapter”,则表明安装了 Performance 驱动程序。
    要调整设置,您可以单击该区域中的链接,该链接将直接带您进入 Windows ...属性对话框。

性能驱动程序#

如果您使用的是性能驱动程序,则无需进行优化。驱动程序会自动选择最佳设置。

GigE Vision 过滤驱动程序#

如果您的网络适配器不支持性能驱动程序,则默认情况下会安装过滤驱动程序。在这种情况下,必须先配置网络适配器,然后才能将其用于相机。

首先,Basler 建议禁用某些可能会干扰过滤驱动程序的协议或服务。

要禁用协议或服务:

  1. Open the Network Connections window in the Windows Control Panel.
    For quick access, press Win+R , type ncpa.cpl, and press Enter.
  2. 右键单击相机使用的网络适配器连接,然后单击属性
    此时将打开属性窗口。
  3. 清除所有复选框,除了 pylon GigE Vision 驱动程序互联网协议版本 4 (TCP/IPv4) 复选框:

    “网络适配器属性”窗口

  4. 对所有适用的网络适配器重复步骤 2 和 3。

其次,Basler 建议优化某些适配器属性。

要优化适配器属性:

  1. Open the Network Connections window in the Windows Control Panel.
    For quick access, press Win+R , type ncpa.cpl, and press Enter.
  2. 右键单击相机使用的网络适配器连接,然后单击属性
    此时将打开属性窗口。
  3. 单击配置
    随即打开网络驱动程序的配置窗口。
  4. 单击高级
  5. 调整以下属性(请参见下文注释):
    1. 选择与接收描述符的数量有关的参数(例如接收描述符),并将其设置为最大值。
    2. 选择与 CPU 中断数有关的参数(例如中断调节率),并将其设置为一个较小的值,例如 1000。设置 CPU 中断次数的方法可能因网络适配器而异。您可能必须使用单独的参数来启用中断调节。
    3. 选择与速度和双工模式相关的参数(例如速度和双工模式),并将其设置为自动(例如自动协商)。
  6. 对所有适用的网络适配器重复步骤 2 至 5。

Linux#

防止数据包丢失的第一件事是增加 UDP 接收缓冲区的大小。如果您已完成此操作,但仍然遇到数据包丢失的问题,请尝试调整实时优先级环形缓冲区大小中断调整率

增加 UDP 接收缓冲区大小#

为了使用 blaze 相机进行稳定的图像采集,Basler 建议增加系统的最大 UDP 接收缓冲区大小,以确保稳定的图像采集。建议最大大小至少为 4 MB。

要增加最大 UDP 接收缓冲区大小,请输入:

sudo sysctl net.core.rmem_max=4194304

要使此设置持久化,可以将 net.core.rmem_max 设置添加到 /etc/sysctl.conf 文件中。

设置实时优先级#

pylon SDK 使用线程来接收图像数据。它尝试将接收线程的线程优先级设置为实时线程优先级,以最大程度地减少抖动和数据包丢失。这通常需要特殊权限。

但是,对于具有 Linux 内核 2.6.13 或更高版本的系统,可以允许没有 root 权限的进程设置实时调度策略。在 Ubuntu 系统上,您可以通过 /etc/security/limits.conf 文件为每个用户或组控制非授权进程的最大实时优先级。

例如,将以下行添加到 /etc/security/limits.conf 以允许所有用户启动将线程优先级设置为实时优先级的应用程序:

*      -      rtprio      99

更改 /etc/security/limits.conf 需要 root 权限。

更改 /etc/security/limits.conf 文件后,必须注销然后再次登录。有关 /etc/security/limits.conf 文件的更多详细信息,请参阅 limits.conf 手册页。

Basler 建议为将启动 pylon 基于 SDK 应用程序的所有用户指定最大实时优先级 ≥1。

对于内核 2.6.12 或更低版本,Basler 建议以 root 权限启动 pylon 基于 SDK 的应用程序,或者设置基于 pylon 的应用程序的 SUID 位。

信息

当设置了应用程序的 SUID 位时,运行时链接程序将在启动该应用程序时忽略 LD_LIBRARY_PATH 变量的值。

您可以使用 blaze Viewer 检查 GigE 库是否具有设置实时线程优先级所需的权限。启动 blaze Viewer 后,从设备列表中打开相机设备。在功能窗格中,展开数据流参数节点。ReceiveThreadPriority 参数指示接收线程的线程优先级。如果该值为零,则该库没有设置实时线程优先级所需的权限。值大于零表示使用实时线程优先级调度线程。

增加环形缓冲区大小#

接收 (Rx) 环形缓冲区定义了 NIC 驱动程序用来接收和处理从相机接收的图像数据的缓冲区的数量。通常,环形缓冲区设置得很小,在接收大量网络流量的系统上可能需要增加环形缓冲区。

要使用 ethtool 命令增加环形缓冲区的大小:

示例: To set the receive (Rx) and transmission (Tx) ring buffer size for the eth0 network interface to 4096, enter:

sudo ethtool -G eth0 rx 4096 tx 4096

信息

您的网络适配器可能不支持上述配置。如果 ethtool 返回错误,请跳过此优化。

配置中断调整率#

中断调整率 (IMR) 定义了延迟和性能之间的权衡。IMR 控制中断调节率 (ITR),即控制器调整中断的速率。ITR 越低,驱动程序响应越快,但 CPU 负载也就越高,因为将产生更多的中断。另一方面,ITR 越高,处理中断的延迟就越高,但 CPU 负载越低。因此,对于大多数应用程序,Basler 建议为 IMR 使用较高的值,例如 Extreme 或 3600。如果需要较低的延迟,请使用较低的值。

要使用 ethtool 命令配置中断调整率:

示例: To apply the recommended settings for the eth0 network interface, enter:

sudo ethtool -C eth0 adaptive-rx off adaptive-tx off rx-usecs 62 tx-usecs 62

信息

您的网络适配器可能不支持上述配置。如果 ethtool 返回错误,请跳过此优化。

故障排除#

抓取时出错

问题:尝试从多台相机抓取图像时,显示错误消息“设备的 PrepareGrab (StartStreaming) 失败”或“系统资源不足,无法完成 API”。

解决方案: 当可用的打开文件描述符的数量用完时,可能会发生这种情况。通常可以使用以下命令为当前进程提高限制:ulimit -n

相机未显示

问题:即使等待一分钟以上,我也无法在应用程序中看到相机。
根据相机和适配器的 IP 配置,最多可能需要一分钟才能为相机分配有效的 IP 地址。

解决方案:如果 pylon IP Configurator 可用,请启动 pylon IP Configurator (/opt/pylon/bin/ipconfigurator)。相机是否显示在 IP Configurator 中?

  • 如果相机的状态为 无法访问,请检查相机的 IP 地址和适配器的 IP 地址。相机和网络适配器都必须使用同一子网内的 IP 地址。请参阅上面的网络适配器 IP 配置部分。
  • 如果相机未显示在 IP Configurator 中,最可能的原因是启用了防火墙。为将要连接相机的网络适配器禁用防火墙。如果没有防火墙,则在内核中启用反向路径过滤可能会阻止检测相机。有关更多详细信息,请参阅下一个问题描述。

无法配置相机

问题:我的应用程序看不到我的相机。我无法重新配置相机以使其再次可见。

解决方案:首先,请确保您未在与相机连接的网络适配器上启用防火墙。
如果仍然看不到相机,则内核中的反向路径过滤可能会阻止您的应用程序检测到相机。如果相机的 IP 地址与相机所连接的网络适配器不在同一子网中,则可能会发生这种情况。
要检查是否打开了过滤,请运行以下命令:

sysctl -a 2>/dev/null | grep '\.rp_filter'

在输出中,查找以下行:

net.ipv4.conf.all.rp_filter=1
net.ipv4.conf.eth1.rp_filter=1

其中 eth1 是相机所连接的网络适配器。net.ipv4.conf.all.rp_filter 是必须关闭的全局开关。net.ipv4.conf.eth1.rp_filter 显示是否为指定的网络适配器启用了过滤。要禁用过滤,必须首先关闭所有和特定网络适配器的过滤(在此示例 eth1 中)。使用以下命令在运行时更改过滤行为:

sudo sysctl net.ipv4.conf.all.rp_filter=0
sudo sysctl net.ipv4.conf.eth1.rp_filter=0

重新启动您的应用程序,并检查是否检测到相机。重新配置相机,然后使用写入配置使更改持久化。您可以通过执行相同的命令来重新启用过滤,但是将值设置为 1。如果要永久关闭过滤,可以在 /etc/sysctl.conf 中编辑相同的值。

从 Linux 内核 2.6.32 版开始,rp_filter 设置允许进行严格和宽松的过滤。要接受非对称路由的数据包,请修改 /etc/sysctl.conf

net.ipv4.conf.default.rp_filter = 2
net.ipv4.conf.all.rp_filter = 2

错误代码 0x81010014

问题:抓取图像会导致错误,错误代码为 0x81010014。此错误代码表示计算机接收的图像不完整,即网络数据包已被丢弃。

解决方案 1:将最大 UDP 接收缓冲区大小增加到足够大的值。这允许 pylon SDK 将套接字缓冲区的大小增加到 2 MB,以确保稳定的图像采集。

解决方案 2:确保应用程序具有所需的权限,以将接收线程的优先级设置为实时线程优先级。

解决方案 3:检查线缆。对于 GigE,建议使用 Cat 5e 线缆。不良的线缆质量或损坏的线缆会导致无法恢复的传输错误。

没有图像显示

问题:我的应用程序似乎获取了图像,但没有显示图像。

解决方案 1:从命令行启动您的应用程序,查看它是否显示任何消息。

解决方案 2:您的应用程序仅接收不完整的帧。在这种情况下,将显示错误消息,例如“无法抓取图像:GX 状态 0x81010014”。请参阅上一个问题,获取有关如何解决此问题的提示。

解决方案 3:由于其他原因,抓取图像失败。请将您的应用程序显示的错误消息报告给 Basler 技术支持。

后续步骤#

您的相机现在可以使用了。有关如何开始使用的信息,请参阅使用 blaze 相机