项目场景
Baumer工业相机堡盟相机是一种高性能、高质量的工业相机,可用于各种应用场景,如物体检测、计数和识别、运动分析和图像处理。
Baumer的万兆网相机拥有出色的图像处理性能,可以实时传输高分辨率图像。此外,该相机还具有快速数据传输、低功耗、易于集成以及高度可扩展性等特点。
工业视觉检测中有时需要使用相机的多播功能。相机的组播是一个允许多个摄像机连接在一起以创建一个单一网络的功能。这个网络允许相机机相互通信并共享信息,使检查和分析工业过程更加容易
技术背景
由于GigE视觉标准是一个真正的网络标准,它可以用来从一台服务器(Baumer GigE相机)向许多客户机提供数据,所以这个特性称为多播。
有些应用程序要求相机将图像流传输到多个设备。这可能是一个用一个自动化系统监控的过程应用,并且需要一个独立的系统来进行人为观察。Baumer GAPI和Baumer相机支持这种多播模式。多播也可能是一个有趣的特性,可以将工作分发给许多客户机。在这个用例中,许多接收客户机可以在一个图像上并行工作,并只将结果返回到一个中央系统,因此减少了复杂机器视觉分析任务的必要时间。
在多播场景中,服务器(例如Baumer-Gige相机)将向网络中的许多设备提供数据流。重要的是要了解只有一个设备可以打开和配置相机,所有其他接收设备可以读取但不能更改配置,并且只能按原样接收数据流。
多播还可以用于在一个系统(PC)上同时运行的两个独立应用程序。
网口相机的多播功能可以实现多个PC对同一个相机同时进行访问。
简单直白的说,就是电脑A、电脑B、电脑C,可以同时获取一个相机的图像数据,电脑A的软件可以进行图像处理,而电脑B、C的软件可以进行录像监控等等
注意:
相机和接收客户端的IP地址必须在同一本地子网上才能启用多播。请确保所有网络组件都支持多播模式,因为如果配置不正确,多播将导致网络上大量不必要的流量。
多播功能SDK接口调用实现
Baumer工业相机SDK示例中103_multicast.cpp详细介绍了如何配置摄像头以使用多播功能。
软件SDK示例地址如下所示:
Baumer_GAPI_SDK_2.12.0_win_x86_64_cpp\examples\src\1_GigE\103_Multicast
代码整体结构相对简单,在Device->open后进行设置多播功能,部分核心代码如下:
if (devIterator->GetAccessStatus() == "RW") { devIterator->Open(); //enable multicast devIterator->GetNode("MulticastStream")->SetBool(true); devIterator->GetNode("MulticastMessage")->SetBool(true); bMaster = true; } else { devIterator->OpenReadOnly(); bMaster = false; // WARNING ACCESS IS NOT THREAD SAVE - YOU SHOULD ALWAYS USE A LOCK (LIKE MUTEX) // TO ACCESS THEM FROM DIFFERENT THREADS // This example does not use std::mutex to support old compiler without C++11 bOutput = false; }
在编译示例后,您可以启动应用程序一次,它将成为控制实例,具有对相机的读写访问权。
因此,应用程序将继续进行并配置相机,以允许多播、设置所有其他参数并启动图像流。
同时可以通过Baumer相机软件Camera Explorer软件通过以下特征可控制Baumer相机的多播:
如下图,
“MulticastStream”为图像流启用多播,如果设置为“true”,它还将设置多播IP地址。
“StreamChannelDestinationAdress,提供指定多播的IP地址。
“MulticastMessage”为相机事件启用多播。如果设置为“true”,它还将设置多播IP地址。
“MessageChannelDestinationAdress” 提供指定多播事件的IP地址。
现在您可以再次启动该示例,这次它将识别出相机处于只读模式,并将开始作为从属应用程序接收图像。
注意要点
多播功能有什么限制条件?
1、需要使用千兆网交换机进行数据分流,转包。
2、同一个相机只能被一台电脑进行控制(参数设置:曝光修改等),其余的电脑只能进行图像数据接收。
3、Baumer的Gige网口相机支持多播功能。
多播功能优点
1、它允许同时向多个客户端电脑传输图像或者视频,使其更容易同时处理。
2、减少了网络流量,提高了可扩展性,因为图像只发送一次,然后分发给每个接收者。
3、多播相机的功能是安全可靠的,使其成为远程监控的理想选择。