Baumer工业相机堡盟工业相机如何通过BGAPISDK设置硬件触发模式(C#)

简介: Baumer工业相机堡盟工业相机如何通过BGAPISDK设置硬件触发模式(C#)

Baumer工业相机

Baumer工业相机堡盟相机是一种高性能、高质量的工业相机,可用于各种应用场景,如物体检测、计数和识别、运动分析和图像处理。


Baumer的万兆网相机拥有出色的图像处理性能,可以实时传输高分辨率图像。此外,该相机还具有快速数据传输、低功耗、易于集成以及高度可扩展性等特点。

Baumer工业相机由于其性能和质量的优越和稳定,常用于高速同步采集领域,通常使用各种图像算法来提高其捕获的图像的质量。


Baumer工业相机BGAPISDK和硬件触发模式的技术背景

Baumer工业相机的BGAPI SDK是Baumer公司开发的针对其相机产品系列的一套软件开发工具包。该SDK提供了一组API,使开发人员可以编写专业应用程序,从而控制、捕获、处理和显示Baumer相机的图像和数据。BGAPI SDK支持多种编程语言,包括C++、C#、Visual Basic、LabVIEW、Matlab等,并提供了大量示例代码和文档,以帮助用户轻松上手,快速完成应用程序的开发。


BGAPI SDK提供了丰富的功能,可以控制Baumer相机的所有参数,包括曝光时间、增益、白平衡、触发模式等,以及支持各种数据格式,例如Raw、BMP、JPG等,同时还提供了实时显示、数据采集、图像处理等功能,为开发人员提供了高度定制化的解决方案。此外,BGAPI SDK还支持多相机系统的开发,并可支持各种计算机操作系统,如Windows、Linux、Mac OS等。


Baumer工业相机堡盟所有相机都支持硬件触发——通过Line0(光耦隔离输入输出)和/或Line1和Line2(GPIO通用输入输出)进行触发。如需了解相机的哪条线路可用于硬件触发,请查看相机《用户指南》的“过程接口”章节。堡盟相机的所有功能均根据EMVA标准功能命名约定(SFNC)第1.5.1版或更新版本命名。


本文介绍的通过集成BGAPI SDK设置硬件触发模式的功能。


有关于如何使用Camera Explorer软件进行Baumer工业相机VCX系列相机硬件触发流程和设置

如下所示:

Baumer工业相机VCX系列相机硬件触发流程和设置


Baumer工业相机通过BGAPISDK设置硬件触发模式功能

下面介绍在C#里Baumer工业相机如何通过BGAPISDK设置硬件触发模式。


1.引用合适的类文件

代码如下(示例):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Data;
using System.Globalization;
using System.Diagnostics;
using System.IO;

2.通过BGAPISDK在Line0上施加12V/24V电压信号实现硬件触发

Baumer工业相机在Line0上设置硬件触发模式功能核心代码如下所示:


Baumer工业相机堡盟相机提供符合行业标准的光耦隔离输入,其中0…4.5V表示低电压,11…30V表示高电压。因此,触发信号需介于11V和30V之间。在本例中,我们假设相机的Line0上有一条光耦隔离线路。


本例仅展示如何配置Baumer工业相机,并假定pDevice已与相机建立了有效的连接。按如下语言对相机进行设置,当Line0上的触发信号为“高”时,相机将开始采集单个图像,该图像可通过常见的BGAPI::DataStream::GetFilledBuffer()函数调取。

// 设置数字IO控制
mDevice.RemoteNodeList["LineSelector"].Value = "Line0";
mDevice.RemoteNodeList["LineInverter"].Value = false; // high means high
// 设置防抖信号参数
// make sure only intended signals trigger the camera (ignore jitters on the line)
mDevice.RemoteNodeList["LineDebouncerHighTimeAbs"].Value = (double)1.0; // in µsec
mDevice.RemoteNodeList["LineDebouncerLowTimeAbs"].Value = (double)1.0; // in µsec
// 设置触发采集控制
mDevice.RemoteNodeList["TriggerMode"].Value = "On";
mDevice.RemoteNodeList["TriggerSource"].Value = "Line0";
mDevice.RemoteNodeList["TriggerActivation"].Value = "RisingEdge";
mDevice.RemoteNodeList["TriggerDelay"].Value = (double)0.0; // in µsec

3.通过BGAPISDK在GPIO Line1 / Line2上施加5V的电压信号实现硬件触发

大部分Baumer堡盟相机也采用GPIO线路,这些非零电势通用输入输出需要2V或更高电压的触发信号(FPGA输入:0…0.8V为低电平,2.0…30V为高电平)。


Baumer工业相机在GPIO Line1 / Line2上设置硬件触发模式功能核心代码如下所示:

// 设置数字IO控制
mDevice.RemoteNodeList["LineSelector"].Value = "Line1"; // GPIO Line1
mDevice.RemoteNodeList["LineMode"].Value = "Input";
mDevice.RemoteNodeList["LineInverter"].Value = false;
// 设置防抖信号参数
// make sure only intended signals trigger the camera (ignore jitters on the line)
mDevice.RemoteNodeList["LineDebouncerHighTimeAbs"].Value = (double)1.0; // in µsec
mDevice.RemoteNodeList["LineDebouncerLowTimeAbs"].Value = (double)1.0; // in µsec
// 设置触发采集控制
mDevice.RemoteNodeList["TriggerMode"].Value = "On";
mDevice.RemoteNodeList["TriggerSource"].Value = "Line1";
mDevice.RemoteNodeList["TriggerActivation"].Value = "RisingEdge";
mDevice.RemoteNodeList["TriggerDelay"].Value = (double)0.0; // in µsec

Baumer工业相机循设置硬件触发模式功能的优势

工业相机的硬件触发模式功能具有以下优势:


稳定性:硬件触发模式通过外部触发信号控制相机采集,相较于软触发方法,它能避免软触发时系统延迟和软件处理速度的影响,实现稳定可靠的图像采集。


准确性:硬件触发模式使用外部触发器来触发相机捕获图像,这可以准确捕获物体在特定时间点的图像,尤其在对快速运动物体的拍摄时显得特别重要。


实时性:由于硬件触发模式依托外部触发器进行图像采集,因此在触发器到来的瞬间即可采集图像,从而达到实时采集的目的。这在许多高速自动化应用中具有重要价值,例如生产线上产品的缺陷检测和尺寸测量等。


同步性:硬件触发模式具有触发同步功能,当多台工业相机需要同时采集图像时,可以通过一个共同的触发器来实现同步采集。这可以确保多台相机获得的图像在同一时间点发生,有助于处理多相机系统中的数据融合和分析。


灵活性:硬件触发模式可以根据外部条件与需要灵活地设置触发方式,实现不同触发源下的图像采集。例如,可以通过激光传感器、光栅传感器或编码器等设备触发图像采集。


节省资源:硬件触发模式只在需要时触发图像采集,避免了不间断采集下产生的大量冗余数据。这有助于减少数据处理量,降低存储和计算资源需求,从而提高整个系统的运行效率。


总之,工业相机硬件触发模式功能具有稳定性、准确性、同步性等优势,适用于诸多工业自动化及机器视觉应用场景,可确保系统在各种工况下高效、可靠地运行。


Baumer工业相机设置硬件触发模式功能的行业应用

工业相机硬件触发模式功能广泛应用于各个行业,以下是一些典型的行业应用:


自动化检测:硬件触发模式可以用于生产线上的产品质量检测、缺陷检测和尺寸测量等应用,使图像采集与处理更加稳定和准确。


机器视觉:硬件触发模式可以为机器视觉系统提供准确的图像采集,从而提高工件定位、识别、追踪和检测等功能的精度。


交通监测与管理:借助硬件触发模式,可以准确捕获过往车辆的图像并进行车辆速度、车牌识别等分析,从而优化交通管理。


运动分析:硬件触发模式可以用于捕捉高速运动物体的连续图像,以便对其进行运动分析和研究,如体育科学研究和动画制作等。


安全监控:硬件触发模式可以提供实时、高分辨率的图像,用于实时监控设备、过程和环境的安全性,从而预防和发现潜在的事故和故障。


医学研究与诊断:利用硬件触发模式捕获高速连续图像,用于生物医学研究、临床诊断中血液流动、心电图、微创手术等方面的应用。


环境监测:硬件触发模式可以通过工业相机实现对环境的实时监测(如空气质量、水质、土壤污染、辐射等)。


科学研究:实验室和研究中心可以采用硬件触发模式来捕获高速、高分辨率图像,以支持材料科学、物理、化学等领域的实验和分析。


能源领域:可利用硬件触发模式进行组件检测、设备监控和能源管理等应用,如太阳能、风能、核能等领域。


以上仅列举了部分硬件触发模式在工业相机上的典型应用,实际上硬件触发模式在许多其他行业中也具有广泛的应用前景。这些应用符合硬件触发模式带来的稳定性、同步性和精确性等优点,可以提高整个系统的性能和效率。

目录
相关文章
|
6天前
|
JSON C# 数据格式
【Azure Function】C#独立工作模式下参数类型 ServiceBusReceivedMessage 无法正常工作
Cannot convert input parameter 'message' to type 'Azure.Messaging.ServiceBus.ServiceBusReceivedMessage' from type 'System.String'.
97 73
|
4月前
|
设计模式 开发框架 前端开发
MVC 模式在 C# 中的应用
MVC(Model-View-Controller)模式是广泛应用于Web应用程序开发的设计模式,将应用分为模型(存储数据及逻辑)、视图(展示数据给用户)和控制器(处理用户输入并控制模型与视图交互)三部分,有助于管理复杂应用并提高代码可读性和维护性。在C#中,ASP.NET MVC框架常用于构建基于MVC模式的Web应用,通过定义模型、控制器和视图,实现结构清晰且易维护的应用程序。
76 2
|
3月前
|
设计模式 程序员 C#
C# 使用 WinForm MDI 模式管理多个子窗体程序的详细步骤
WinForm MDI 模式就像是有超能力一般,让多个子窗体井然有序地排列在一个主窗体之下,既美观又实用。不过,也要小心管理好子窗体们的生命周期哦,否则一不小心就会出现一些意想不到的小bug
311 0
|
4月前
|
关系型数据库 数据库 PostgreSQL
在C#中获取与设置Windows的字符编码方式
通过以上步骤,你可以在Docker环境下有效地重启PostgreSQL服务。这对于维护数据库健康、应用更新或环境配置更改后确保数据库服务正常运行至关重要。根据你的具体需求和环境设置,选择合适的方法来执行重启操作。
28 0
|
5月前
|
前端开发 开发者 C#
深度解析 Uno Platform 中的 MVVM 模式:从理论到实践的全方位指南,助你轻松掌握通过 C# 与 XAML 构建高效可维护的跨平台应用秘籍
【8月更文挑战第31天】本文详细介绍如何在优秀的跨平台 UI 框架 Uno Platform 中实施 MVVM(Model-View-ViewModel)模式,通过一个简单的待办事项列表应用演示其实现过程。MVVM 模式有助于分离视图层与业务逻辑层,提升代码组织性、易测性和可维护性。Uno Platform 的数据绑定机制使视图与模型间的同步变得高效简便。文章通过构造 `TodoListViewModel` 类及其相关视图,展示了如何解耦视图与模型,实现动态数据绑定及命令处理,从而提高代码质量和开发效率。通过这一模式,开发者能更轻松地构建复杂的跨平台应用。
74 0
|
5月前
|
C#
WPF/C#:程序关闭的三种模式
WPF/C#:程序关闭的三种模式
125 0
|
5月前
|
设计模式 前端开发 C#
WPF/C#:理解与实现WPF中的MVVM模式
WPF/C#:理解与实现WPF中的MVVM模式
331 0
|
7月前
|
C#
WPF/C#:程序关闭的三种模式
WPF/C#:程序关闭的三种模式
110 3
|
8月前
|
C#
C# Dev解决gridview1_SelectionChanged和gridview1_RowCellClick事件触发两次等问题
C# Dev解决gridview1_SelectionChanged和gridview1_RowCellClick事件触发两次等问题
C# Dev解决gridview1_SelectionChanged和gridview1_RowCellClick事件触发两次等问题
|
2月前
|
C# 开发者
C# 一分钟浅谈:Code Contracts 与契约编程
【10月更文挑战第26天】本文介绍了 C# 中的 Code Contracts,这是一个强大的工具,用于通过契约编程增强代码的健壮性和可维护性。文章从基本概念入手,详细讲解了前置条件、后置条件和对象不变量的使用方法,并通过具体代码示例进行了说明。同时,文章还探讨了常见的问题和易错点,如忘记启用静态检查、过度依赖契约和性能影响,并提供了相应的解决建议。希望读者能通过本文更好地理解和应用 Code Contracts。
47 3