跳转到内容
STAGING SERVER
DEVELOPMENT SERVER

网络带宽控制#

本主题介绍 blaze 相机流式传输图像和深度数据时用于控制网络带宽消耗的参数。

该功能的使用#

当多个设备通过公共链路连接到接收主机并且必须共享可用的网络带宽时,控制网络带宽消耗是必要的。为了确保稳定运行,您可能需要限制每部相机消耗的带宽。

示例:如果通过交换机将 2 部相机连接到接收计算机的千兆以太网适配器的网络端口,则两部相机的吞吐量之和不得超过最大吞吐量 1 GBit/s(125,000,000 字节/秒)。

减少相机使用带宽的另一个原因是接收主机无法跟上数据传输且必须丢弃数据包。

控制带宽消耗#

首先,通过读取 BslDeviceLinkCurrentThroughput 参数,确定相机在当前设置下可以产生的最大可能吞吐量。该参数指示相机处于自由运行模式(即未使用软件或硬件触发进行外部触发)时的带宽消耗。

获取此信息后,使用 DeviceLinkThroughputLimitMode 和 DeviceLinkThroughputLimit 参数为每个相机指定合理的吞吐量限制。共享同一链路的所有相机的吞吐量之和不得超过网卡的最高吞吐量。

为了达到指定的限制,相机会在各个网络数据包之间插入暂停。限制越低,停顿的次数越多,停顿的时间就越长。一个完整帧的传输时间和相关的延迟,即从生成图像到数据到达主机内存之间的时间,随着限制的降低而增加。

在一定程度上,这会影响您可以实现的帧率。读取 BslResultingAcquisitionFrameRate 参数以了解当前相机设置下的最大可能帧率。

指定吞吐量限制也称为分配网络带宽。

限制吞吐量:

  1. 设置 DeviceLinkThroughputLimitMode 参数至 On.
  2. 指定所需的 DeviceLinkThroughputLimit 参数值。
  3. 读取 BslResultingAcquisitionFrameRate 参数,以了解设备链路吞吐量限制如何影响帧率。

带宽预留#

流式传输协议基于 UDP 协议。UDP 不保证相机发送的数据包会被主机接收。

数据包可以由主机或相机与主机之间的网络设备丢弃。接收软件通常会检测到丢失的数据包并向相机发送适当的请求以重新发送丢失的数据。预留一定的带宽储备,以供这些分组重新发送和控制业务使用。如果此预留带宽用完,相机将无法再重新发送请求的数据包。

带宽预留由 GevSCBWR 和 GevSCBWRA 参数控制,这些参数在下表中进行了描述。

可用参数#

参数名称 显示名称 描述
DeviceLinkThroughputLimitMode 设备链路吞吐量限值模式 允许您限制用于数据传输的最大可用带宽。将此参数设置为 On 以启用该限制。最大带宽限制为 DeviceLinkThroughputLimit 参数值。
DeviceLinkThroughputLimit 设备链路吞吐量限值 指定用于数据传输的最大可用带宽,单位为字节/秒。若要启用此限制,请设置 DeviceLinkThroughputLimitMode 参数至 On.
BslDeviceLinkCurrentThroughput 当前设备链路吞吐量 相机在当前相机设置下用于传输数据的实际带宽(以每秒字节数为单位)。
BslResultingAcquisitionFrameRate 结果 Acquisition Frame Rate 当前相机设置下每秒可获取的最大帧数。
GevSCBWR 带宽预留 指定分配带宽中预留用于处理数据包重发和控制数据传输的部分。
该设置以分配带宽的百分比表示。
示例: 如果为相机分配了 30 MByte/s 的带宽,并且 GevSCBWR 参数设置为 5 %,则带宽预留将为 1.5 MByte/s。
GevSCBWRA 带宽预留累积 用于设置可保留在“累加器池 (accumulator pool)”中的最大重发次数的乘数。
您可以使用 GevSCBWRA 参数用于处理网络连接变得不稳定时的状况。在这些情况下,可能需要临时增加数据包重发次数来传输图像。带宽预留累加本质上是相机可以在异常情况下使用的额外重发池。
示例: 当前带宽预留设置足够大,允许在帧周期内进行最多 5 次数据包重发。带宽预留累加(GevSCBWRA 参数)设置为 3。使用这些设置,累加器池最多可以保存 5 x 3 = 15 次重发。
GevSCPSPacketSize 数据包大小 指定通过以太网传输的数据包的最大大小。该值的单位为字节。
对于 blaze 相机,唯一支持的值是 1500 字节。