当前位置: 首页 > news >正文

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

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

  • Baumer工业相机
  • Baumer工业相机NEOAPI SDK和硬件触发模式的技术背景
  • Baumer工业相机通过BGAPISDK设置硬件触发模式功能
    • 1.引用合适的类文件
    • 2.通过BGAPISDK在Line0上施加12V/24V电压信号实现硬件触发
    • 3.通过BGAPISDK在GPIO Line1 / Line2上施加5V的电压信号实现硬件触发
  • Baumer工业相机循设置硬件触发模式功能的优势
  • Baumer工业相机设置硬件触发模式功能的行业应用

Baumer工业相机

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

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

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

Baumer工业相机NEOAPI SDK是用于Baumer工业相机的一款最新的软件开发工具包(SDK)。它为开发人员提供了一系列API和工具,用于与Baumer工业相机进行通信和控制,控制方式极为便捷类似Halcon的相机助手类控制方式。​

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

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

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

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

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

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

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

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

1.引用合适的类文件

代码如下(示例):

#include <stdio.h>
#include <iostream>
#include "bgapi2_genicam/bgapi2_genicam.hpp"
using namespace BGAPI2;
#include <iostream>
#include <iostream>
#include "neoapi.hpp"

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

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

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

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

// 设置数字IO控制
camera.f().LineSelector.SetString("Line0");
camera.f().LineInverter.Set("false");// 设置防抖信号参数
// make sure only intended signals trigger the camera (ignore jitters on the line)
camera.f().LineDebouncerHighTimeAbs.Set(1.0); // in µsec
camera.f().LineDebouncerLowTimeAbs.Set(1.0); // in µsec// 设置触发采集控制
camera.f().TriggerMode.SetString("On");
camera.f().TriggerSource.SetString("Line0");
camera.f().TriggerActivation.SetString("RisingEdge");
camera.f().TriggerDelay.Set(0.0); // delay in µsec

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

相关文章:

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

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置硬件触发模式&#xff08;C&#xff09; Baumer工业相机Baumer工业相机NEOAPI SDK和硬件触发模式的技术背景Baumer工业相机通过BGAPISDK设置硬件触发模式功能1.引用合适的类文件2.通过BGAPISDK在Line0上施加12V/24V电压信号实…...

嵌入式培训机构四个月实训课程笔记(完整版)-Linux网络编程第二天-tcp编程练习(物联技术666)

点赞+关注,功德无量。更多配套资料,欢迎私信。 网盘链接:百度网盘 请输入提取码 WebServer编程: -------------------------------------- #include <stdio.h> #include <stdlib.h> #include <string.h> #i…...

【IC前端虚拟项目】MVU子模块DS文档编写与注意事项

【IC前端虚拟项目】数据搬运指令处理模块前端实现虚拟项目说明-CSDN博客 DS文档顾名思义就是Design Specification,设计规格文档,对应的就是我们实际一个模块的设计思路和细节: DS - Design Specification(设计规格):"DS" 表示设计规格,它是在架构规格之后,…...

Postgresql 12.2 + PostGIS 3.0.1 安装部署

参考文档&#xff1a; 按照该文档安装即可&#xff0c;如果遇到报错&#xff0c;可以参考下文&#xff1a; https://blog.csdn.net/weixin_41166785/article/details/127674169 所需的安装包 在资源里面&#xff08;我看下怎么可以不用积分下载&#xff09; 1、no acceptable…...

MAC iterm 显示git分支名

要在Mac上的iTerm中显示Git分支名&#xff0c;您需要使用一个名为“Oh My Zsh”的插件。Oh My Zsh是一个流行的Zsh框架&#xff0c;它提供了许多有用的功能和插件&#xff0c;包括在终端中显示Git分支名。 以下是在iTerm中显示Git分支名的步骤&#xff1a; 1、安装Oh My Zsh&…...

智慧公厕:利用物联网、云计算和人工智能实现智能化管理与控制

智慧公厕是指利用传感感知、物联网、互联网、大数据、云计算、自动化控制等先进技术&#xff0c;实现对公厕的智能化管理与控制。通过以上高精尖的信息技术手段&#xff0c;可以实时监测厕所内人体活动状态、人体存在状态、空气质量情况、环境变化情况、设施设备运行状态等信息…...

【漏洞复现】Apache Tomcat AJP文件包含漏洞(CVE-2020-1938)

Nx01 产品简介 Apache Tomcat 是一个免费的开源 Web 应用服务器&#xff0c;在中小型企业和个人开发用户中有着广泛的应用。 Nx02 漏洞描述 默认情况下&#xff0c;Apache Tomcat会开启AJP连接器&#xff0c;由于AJP服务&#xff08;8009端口&#xff09;存在文件包含缺陷&…...

[渗透测试学习] Hospital - HackTheBox

文章目录 信息搜集getshell提权信息搜集 nmap扫描一下端口 发现8080端口和443端口有http服务 然后发现3389端口是启用了ms-wbt-server服务 在对443端口的扫描没有收获,并且只有邮箱登录界面无法注册 接着看向8080端口,我们随便注册用户登录后发现有文件上传功能 getshell …...

C技能树-学习笔记(1-2)C语言概述和数据类型

参考&#xff1a;https://edu.csdn.net/skill/c 1、输出 “Hello, World!” 字符串&#xff0c;请选出错误答案。 2、错误的print函数。 for … in …&#xff1a;是python的语法&#xff0c;C语言的写法是for (;&#x1f609; 3、C标准 没有C19标准。 4、了解C编译管道 …...

设计模式入门

0. 类图 1. 设计原则 1.单一职责原则&#xff1a;每个类只有一个功能 2.开放封闭原则&#xff1a;模块和函数应该对扩展开放(对提供方)&#xff0c;对修改关闭(对使用方) 3.里氏代换原则&#xff1a;子类拥有父类的所有方法和属性&#xff0c;从而可以减少创建类的工作量 4.依…...

EasyExcel下载EXCEL文件,后台通过流形式输出到前端浏览器下载方式输出

前端代码&#xff08;参考&#xff09;&#xff1a;$("#import").on(click, function(){var createDate$("#createdDate").val();var key1$("#key1").val();if(createDatenull||createDate""){layer.msg("请选择创建时间段&#…...

Pandas实战100例 | 案例 56: 创建多重索引

案例 56: 创建多重索引 知识点讲解 在 Pandas 中&#xff0c;多重索引&#xff08;或层次化索引&#xff09;提供了在 DataFrame 中表示多维数据的方式。这使得数据分析在多个级别上更加灵活和强大。 创建多重索引: 通过使用 set_index 方法并传入多个列名&#xff0c;可以在…...

解决“nacos默认secret.key配置不当权限绕过漏洞“

一、前言 nacos 2.2.0.1以下版本会有一个nacos默认secret.key配置不当权限绕过漏洞&#xff0c;等级为高危。形成原因是nacos的配置文件中存在这么一个secret.key默认配置&#xff1a; nacos.core.auth.plugin.nacos.token.secret.keySecretKey01234567890123456789012345678…...

一款好用的开源思维导图软件 docker部署教程

目录 Simple mind map简介 Simple mind map特点 1.拉取镜像 2.创建并启动容器 方式1&#xff1a;docker启动 方式2&#xff1a;docker compose启动 3.使用 4.源码地址 Simple mind map简介 .一个 Web 思维导图&#xff0c;基于思维导图库、Vue2.x、ElementUI 开发&#…...

Jenkins之pipeline

安装插件 Pipeline Pipeline: Stage View Plugin 创建任务 配置 demo 开始实践 拉取git仓库代码 checkout scmGit(branches: [[name: */main]], extensions: [], userRemoteConfigs: [[url: http://178.119.30.133:8929/root/mytest.git]])通过SonarQube做质量检测 sh …...

创意交融:集成自定义报表和仪表盘设计器,实现图标替换

前言 在现代数据分析领域&#xff0c;随着对报表和数据分析的需求不断增长&#xff0c;市场上涌现了许多嵌入式报表工具。这些工具能够与企业现有的OA、ERP、MES、CRM等应用系统深度集成&#xff0c;实现对业务数据的自助式分析。然而&#xff0c;在实际应用中&#xff0c;不同…...

Mybatis 40_resultMap基础和@Results注解

40_resultMap基础和Results注解 resultType和resultMap<resultMap.../>元素项目0501resultMap Results注解项目0502resultMap注解&#xff08;Results) 【总结】 resultType和resultMap resultType指定结果集每条记录要映射的对象类型。resultMap表明使用自定义的映射规…...

【蓝桥杯选拔赛真题31】C++数位求和 第十三届蓝桥杯青少年创意编程大赛C++编程选拔赛真题解析

目录 C/C++数位求和 一、题目要求 1、编程实现 2、输入输出...

牛客网-css继承属性

3.当元素的一个继承属性没有指定值时&#xff0c;则取父元素的同属性的计算值&#xff0c;以下哪些不是 CSS 中的继承属性&#xff1f; A. color B.display C.border-style D.text-align 答案&#xff1a;BC 解析&#xff1a;不可继承&#xff1a;display&#xff0c;mar…...

OpenCV-19图像的仿射变换

放射变换是图像旋转&#xff0c;缩放&#xff0c;平移的总称&#xff0c;具体的做法是通过一个矩阵和原图片坐标进行计算&#xff0c;得到新的坐标&#xff0c;完成变换&#xff0c;所以关键就是这个矩阵。 一、仿射变换之图像平移 使用API------warpAffine&#xff08;src &…...

Android Wi-Fi 连接失败日志分析

1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分&#xff1a; 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析&#xff1a; CTR…...

Java 二维码

Java 二维码 **技术&#xff1a;**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)

船舶制造装配管理现状&#xff1a;装配工作依赖人工经验&#xff0c;装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书&#xff0c;但在实际执行中&#xff0c;工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...

LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf

FTP 客服管理系统 实现kefu123登录&#xff0c;不允许匿名访问&#xff0c;kefu只能访问/data/kefu目录&#xff0c;不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...

云原生周刊:k0s 成为 CNCF 沙箱项目

开源项目推荐 HAMi HAMi&#xff08;原名 k8s‑vGPU‑scheduler&#xff09;是一款 CNCF Sandbox 级别的开源 K8s 中间件&#xff0c;通过虚拟化 GPU/NPU 等异构设备并支持内存、计算核心时间片隔离及共享调度&#xff0c;为容器提供统一接口&#xff0c;实现细粒度资源配额…...

从物理机到云原生:全面解析计算虚拟化技术的演进与应用

前言&#xff1a;我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM&#xff08;Java Virtual Machine&#xff09;让"一次编写&#xff0c;到处运行"成为可能。这个软件层面的虚拟化让我着迷&#xff0c;但直到后来接触VMware和Doc…...

2.3 物理层设备

在这个视频中&#xff0c;我们要学习工作在物理层的两种网络设备&#xff0c;分别是中继器和集线器。首先来看中继器。在计算机网络中两个节点之间&#xff0c;需要通过物理传输媒体或者说物理传输介质进行连接。像同轴电缆、双绞线就是典型的传输介质&#xff0c;假设A节点要给…...

写一个shell脚本,把局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里

写一个shell脚本&#xff0c;把局域网内&#xff0c;把能ping通的IP和不能ping通的IP分类&#xff0c;并保存到两个文本文件里 脚本1 #!/bin/bash #定义变量 ip10.1.1 #循环去ping主机的IP for ((i1;i<10;i)) doping -c1 $ip.$i &>/dev/null[ $? -eq 0 ] &&am…...

leetcode_69.x的平方根

题目如下 &#xff1a; 看到题 &#xff0c;我们最原始的想法就是暴力解决: for(long long i 0;i<INT_MAX;i){if(i*ix){return i;}else if((i*i>x)&&((i-1)*(i-1)<x)){return i-1;}}我们直接开始遍历&#xff0c;我们是整数的平方根&#xff0c;所以我们分两…...

网页端 js 读取发票里的二维码信息(图片和PDF格式)

起因 为了实现在报销流程中&#xff0c;发票不能重用的限制&#xff0c;发票上传后&#xff0c;希望能读出发票号&#xff0c;并记录发票号已用&#xff0c;下次不再可用于报销。 基于上面的需求&#xff0c;研究了OCR 的方式和读PDF的方式&#xff0c;实际是可行的&#xff…...