网络配置 (blaze)#
本主题中特定于 Linux 的信息基于使用 Ubuntu 20.04 的默认桌面 GUI。有关更多详细信息,请参阅 Linux 发行版的文档,因为有多种方法可以在 Linux 下配置网络接口。
网络配置分步指南#
以下步骤将指导您完成在网络设置中建立 blaze 相机的流程。
- 确定如何为相机分配 IP 地址。需考虑以下事项:
- 您打算使用几台相机?
- 您在使用多少个网络适配器?是否每个相机都有专用适配器?
有关更多信息,请参阅推荐的网络架构。 - 您有可用的 DHCP 服务器吗?
如果您有 DHCP 服务器,请使用它。这使配置更加容易。
如果没有 DHCP 服务器,则可以选择使用静态 IP 地址或自动获取 IP 地址:- 仅当您为使用“自动获取 IP 地址”所配置的网络适配器不超过一个时,才可以使用自动获取 IP 地址。为“自动获取 IP 地址”配置多个适配器会无法进行相机发现。
- 如果您在使用具有静态地址的多个网络适配器,则每个适配器必须位于不同的子网中。
- 配置网络适配器的 IP 地址。
- 使用 pylon IP Configurator 配置相机的 IP 地址。
-
检查 pylon IP Configurator 中的连接。
- 如果状态为 OK,则表明一切正常。
-
如果状态为无法访问,请检查以下内容:
- 确保没有其他应用程序访问相机。
- 确保适配器的子网掩码与相机的子网掩码相同。
- 确保适配器和相机的地址处于同一子网中。
示例:如果子网掩码为 255.255.0.0,则 IP 地址的前两位代码块必须相同。 - 确保将所有其他网络适配器均配置为与相机连接的其他子网。
- 确保其他网络设备未与相机具有相同的地址。
-
如果未列出相机,请检查以下内容:
- 是否将相机物理连接到正确的网络适配器?
- 禁用与相机相连的适配器的防火墙。
- 调整性能设置。
- 故障排除
如果流式传输时出现丢帧或错误消息,则最有可能的原因是网络连接不稳定或性能不足。 - 检查是否可以进一步优化您的 Windows 或 Linux 系统的网络设置。
- 禁用与相机相连的适配器的防火墙。
推荐的网络架构#
有两种规划网络的方法。下面列出了差异,以帮助您选择合适的设置。
对等网络架构#
一种选择是在相机与主机之间建立直接对等连接。
相机可以连接到单个 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 地址的两种最常用的方法:
Windows#
分配固定 IP 地址#
要将固定的 IP 地址分配给网络适配器,请执行以下操作:
- Open the Network Connections window in the Windows Control Panel.
For quick access, press Win+R, typencpa.cpl
, and press Enter. - 右键单击相机使用的网络适配器连接,然后单击属性。
此时将打开属性窗口。 - 双击互联网协议版本 4 (TCP/IPv4)。
这将打开互联网协议版本 4 (TCP/IPv4) 属性窗口。 - 单击使用以下 IP 地址。
- 在IP 地址、子网掩码和默认网关字段中,键入 IP 地址、子网掩码和默认网关地址。
-
在首选 DNS 服务器和备用 DNS 服务器字段中,键入主要和辅助 DNS 服务器地址。(通常不需要域名服务器。)
-
对所有适用的网络适配器重复步骤 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 地址,请执行以下操作:
- Open the Network Connections window in the Windows Control Panel.
For quick access, press Win+R, typencpa.cpl
, and press Enter. - 右键单击相机使用的网络适配器连接,然后单击属性。
此时将打开属性窗口。 - 双击互联网协议版本 4 (TCP/IPv4)。
这将打开互联网协议版本 4 (TCP/IPv4) 属性窗口。 - 确保已选择“自动获取 IP 地址”。
这使适配器检查 DHCP 服务器成为首选。 - 单击“备用配置”选项卡。
如果未找到 DHCP 服务器,则使用此选项卡上的设置配置适配器将使用的自动 IP 地址分配。 -
确保选择了自动专用 IP 地址。
Linux#
要配置网络适配器:
- 通过显示应用程序或右上角的图标打开设置应用。
-
在网络选项卡上,单击相机所连接的网络适配器旁边的齿轮图标。
-
单击 IPv4 选项卡。
- 对于 DHCP,将 IPv4 方法设置为自动 (DHCP)。
- 对于静态地址分配,将 IPv4 方法设置为手动,然后在地址区域中输入地址、网络掩码以及网关(如果需要)。
- 对于自动地址分配,将 IPv4 方法设置为仅本地链接。
-
单击应用以保存设置。
相机 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 防火墙是一种极端的措施,通常不建议这样做。但是,在某些情况下,为了修复性能问题,可能需要这样做。
在选定网络适配器上关闭防火墙:
- 按 Win+R,键入 wf.msc 并按 Enter 键。
高级安全 Windows 防火墙窗口随即打开。 -
单击 Windows 防火墙属性。
此时将打开本地计算机属性上的高级安全 Windows 防火墙…窗口。
-
单击您要关闭防火墙保护的配置文件的选项卡。
通常,这将是公共配置文件选项卡。但如果使用专用网卡,Basler 建议还要为其他配置文件禁用防火墙保护。 -
单击自定义。
公共配置文件的受保护网络连接窗口将打开。该窗口列出了已开启防火墙的连接。
-
清除连接相机的连接。这将关闭其防火墙保护。
- 对要关闭防火墙保护的所有配置文件重复步骤 3 至 5。
Linux#
必须为连接相机的网络适配器禁用防火墙。否则,可能无法进行设备发现和从相机接收数据流。
要禁用防火墙,请输入:
性能优化#
Windows#
From a performance point of view, there are two relevant drivers available in the pylon Software Suite:
- GigE Vision 过滤驱动程序
- 性能驱动程序
要找出已安装的驱动程序:
- 打开 pylon IP Configurator。
- 选择您的适配器。
适配器的相关信息将显示在对话框的右下区域。如果该区域显示“Basler GigE Vision Adapter”,则表明安装了 Performance 驱动程序。
要调整设置,您可以单击该区域中的链接,该链接将直接带您进入 Windows ...属性对话框。
性能驱动程序#
如果您使用的是性能驱动程序,则无需进行优化。驱动程序会自动选择最佳设置。
GigE Vision 过滤驱动程序#
如果您的网络适配器不支持性能驱动程序,则默认情况下会安装过滤驱动程序。在这种情况下,必须先配置网络适配器,然后才能将其用于相机。
首先,Basler 建议禁用某些可能会干扰过滤驱动程序的协议或服务。
要禁用协议或服务:
- Open the Network Connections window in the Windows Control Panel.
For quick access, press Win+R , typencpa.cpl
, and press Enter. - 右键单击相机使用的网络适配器连接,然后单击属性。
此时将打开属性窗口。 -
清除所有复选框,除了 pylon GigE Vision 驱动程序和互联网协议版本 4 (TCP/IPv4) 复选框:
-
对所有适用的网络适配器重复步骤 2 和 3。
其次,Basler 建议优化某些适配器属性。
要优化适配器属性:
- Open the Network Connections window in the Windows Control Panel.
For quick access, press Win+R , typencpa.cpl
, and press Enter. - 右键单击相机使用的网络适配器连接,然后单击属性。
此时将打开属性窗口。 - 单击配置。
随即打开网络驱动程序的配置窗口。 - 单击高级。
- 调整以下属性(请参见下文注释):
- 选择与接收描述符的数量有关的参数(例如接收描述符),并将其设置为最大值。
- 选择与 CPU 中断数有关的参数(例如中断调节率),并将其设置为一个较小的值,例如 1000。设置 CPU 中断次数的方法可能因网络适配器而异。您可能必须使用单独的参数来启用中断调节。
- 选择与速度和双工模式相关的参数(例如速度和双工模式),并将其设置为自动(例如自动协商)。
- 对所有适用的网络适配器重复步骤 2 至 5。
Linux#
防止数据包丢失的第一件事是增加 UDP 接收缓冲区的大小。如果您已完成此操作,但仍然遇到数据包丢失的问题,请尝试调整实时优先级、环形缓冲区大小和中断调整率。
增加 UDP 接收缓冲区大小#
为了使用 blaze 相机进行稳定的图像采集,Basler 建议增加系统的最大 UDP 接收缓冲区大小,以确保稳定的图像采集。建议最大大小至少为 4 MB。
要增加最大 UDP 接收缓冲区大小,请输入:
要使此设置持久化,可以将 net.core.rmem_max 设置添加到 /etc/sysctl.conf 文件中。
设置实时优先级#
pylon SDK 使用线程来接收图像数据。它尝试将接收线程的线程优先级设置为实时线程优先级,以最大程度地减少抖动和数据包丢失。这通常需要特殊权限。
但是,对于具有 Linux 内核 2.6.13 或更高版本的系统,可以允许没有 root 权限的进程设置实时调度策略。在 Ubuntu 系统上,您可以通过 /etc/security/limits.conf 文件为每个用户或组控制非授权进程的最大实时优先级。
例如,将以下行添加到 /etc/security/limits.conf 以允许所有用户启动将线程优先级设置为实时优先级的应用程序:
更改 /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:
信息
您的网络适配器可能不支持上述配置。如果 ethtool 返回错误,请跳过此优化。
配置中断调整率#
中断调整率 (IMR) 定义了延迟和性能之间的权衡。IMR 控制中断调节率 (ITR),即控制器调整中断的速率。ITR 越低,驱动程序响应越快,但 CPU 负载也就越高,因为将产生更多的中断。另一方面,ITR 越高,处理中断的延迟就越高,但 CPU 负载越低。因此,对于大多数应用程序,Basler 建议为 IMR 使用较高的值,例如 Extreme 或 3600。如果需要较低的延迟,请使用较低的值。
要使用 ethtool 命令配置中断调整率:
示例: To apply the recommended settings for the eth0
network interface, enter:
信息
您的网络适配器可能不支持上述配置。如果 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 地址与相机所连接的网络适配器不在同一子网中,则可能会发生这种情况。
要检查是否打开了过滤,请运行以下命令:
在输出中,查找以下行:
其中 eth1 是相机所连接的网络适配器。net.ipv4.conf.all.rp_filter 是必须关闭的全局开关。net.ipv4.conf.eth1.rp_filter 显示是否为指定的网络适配器启用了过滤。要禁用过滤,必须首先关闭所有和特定网络适配器的过滤(在此示例 eth1 中)。使用以下命令在运行时更改过滤行为:
重新启动您的应用程序,并检查是否检测到相机。重新配置相机,然后使用写入配置使更改持久化。您可以通过执行相同的命令来重新启用过滤,但是将值设置为 1。如果要永久关闭过滤,可以在 /etc/sysctl.conf 中编辑相同的值。
从 Linux 内核 2.6.32 版开始,rp_filter 设置允许进行严格和宽松的过滤。要接受非对称路由的数据包,请修改 /etc/sysctl.conf:
错误代码 0x81010014
问题:抓取图像会导致错误,错误代码为 0x81010014。此错误代码表示计算机接收的图像不完整,即网络数据包已被丢弃。
解决方案 1:将最大 UDP 接收缓冲区大小增加到足够大的值。这允许 pylon SDK 将套接字缓冲区的大小增加到 2 MB,以确保稳定的图像采集。
解决方案 2:确保应用程序具有所需的权限,以将接收线程的优先级设置为实时线程优先级。
解决方案 3:检查线缆。对于 GigE,建议使用 Cat 5e 线缆。不良的线缆质量或损坏的线缆会导致无法恢复的传输错误。
没有图像显示
问题:我的应用程序似乎获取了图像,但没有显示图像。
解决方案 1:从命令行启动您的应用程序,查看它是否显示任何消息。
解决方案 2:您的应用程序仅接收不完整的帧。在这种情况下,将显示错误消息,例如“无法抓取图像:GX 状态 0x81010014”。请参阅上一个问题,获取有关如何解决此问题的提示。
解决方案 3:由于其他原因,抓取图像失败。请将您的应用程序显示的错误消息报告给 Basler 技术支持。
后续步骤#
您的相机现在可以使用了。有关如何开始使用的信息,请参阅使用 blaze 相机。