大华相机硬触发设置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大华相机硬触发设置相关的知识,希望对你有一定的参考价值。

大恒相机硬触发说明文档

相机硬触发是区别于软触发,利用IO或者光耦等外部控制信号触发相机快门的技术。

大恒相机有IO触发和光耦触发两种硬触发方式,其中光耦触发隔离了光电回路,对于相机更加安全,但是由于存在光电转换过程所以触发时间延迟了30us左右。硬触发方式只有单次触发,也就是说想要连续获得图片必须向相机发射多次发射方波信号。

硬触发只能通过回调函数获得图片,对于大恒相机只能通过已经定义的回调函数获得图片,回调的数据类型已经确定。

利用IO信号控制相机硬触发

在IO控制线中有line0,line1,line2,line3三根线,前两根是光耦触发线,后两根是IO输入/输出线。注意使用IO控制时还应连接IO地线GND。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2pAw5Fxg-1659436674790)(/home/houbosen/Pictures/Screenshot 2022-07-14 14:00:47.png)]

````
#include <iostream>
#include <string>
#include <vector>
#include <thread>
#include "time.h"
#include "opencv2/opencv.hpp"
#include "../libFSM/include/StateMachine.h"
#include "stdio.h"
#include "GxIAPI.h"

//定义全局变量,用来存图和计时
cv::Mat empty(1024, 1280, CV_8UC3, cv::Scalar::all(0));
timeval tv;
long time_end;
long time_start;
//图 像 回 调 处 理 函 数
//传回来的GX_FRAME_CALLBACK_PARAM *pFrame包含了图像所在指针,大小,长度等一系列信息,需要解码之后变成RGB图片
static void GX_STDC OnFrameCallbackFun(GX_FRAME_CALLBACK_PARAM *pFrame)

if (pFrame->status == 0)

gettimeofday(&tv, NULL);
time_end = tv.tv_sec * 1000000 + tv.tv_usec;
std::cout << 1000000 / (time_end - time_start) << "fps"
<< "get an image" << std::endl;
time_start = time_end;
void *rgb_buffer = malloc(3 * pFrame->nImgSize);
DxRaw8toRGB24((void *)pFrame->pImgBuf, rgb_buffer, pFrame->nWidth, pFrame->nHeight, RAW2RGB_NEIGHBOUR, BAYERRG, false);
cv::Mat result = cv::Mat(pFrame->nHeight, pFrame->nWidth, CV_8UC3, rgb_buffer);
result.copyTo(empty);

else

std::cout << "fuck,trigger is failed" << std::endl;

return;


//打开设备和打开库方式相同,关键在于设置触发
int main(int argc, char *argv[])

GX_STATUS status = GX_STATUS_SUCCESS;
GX_DEV_HANDLE hDevice = NULL;
GX_OPEN_PARAM stOpenParam;
uint32_t nDeviceNum = 0;
gettimeofday(&tv, NULL);
time_end = tv.tv_sec * 1000000 + tv.tv_usec;
time_start = tv.tv_sec * 1000000 + tv.tv_usec;
//初 始 化 库
status = GXInitLib();
//枚 举 设 备 列 表
status = GXUpdateDeviceList(&nDeviceNum, 1000);
if ((status != GX_STATUS_SUCCESS) || (nDeviceNum <= 0))

return 0;

//打 开 设 备
stOpenParam.accessMode = GX_ACCESS_EXCLUSIVE;
stOpenParam.openMode = GX_OPEN_INDEX;
stOpenParam.pszContent = "1";
status = GXOpenDevice(&stOpenParam, &hDevice);
if (status == GX_STATUS_SUCCESS)

//设 置 触 发 模 式 为 ON
status = GXSetEnum(hDevice, GX_ENUM_TRIGGER_MODE, GX_TRIGGER_MODE_ON);
//设 置 触 发 激 活 方 式 为 上 升 沿,还可以设置下降沿触发,指电平上升或下降时为一次触发
status = GXSetEnum(hDevice, GX_ENUM_TRIGGER_ACTIVATION, GX_TRIGGER_ACTIVATION_RISINGEDGE);
//设置触发开关为line2
status = GXSetEnum(hDevice, GX_ENUM_TRIGGER_SOURCE, GX_TRIGGER_SOURCE_LINE2);
//Selects the physical line (or pin) of the external device connector to configure,我也不知道是啥反正加去了
status = GXSetEnum(hDevice, GX_ENUM_LINE_SELECTOR, GX_ENUM_LINE_SELECTOR_LINE2);
//设置line2模式为input,同样可以设置为outpot,则可以通过相机控制外部设备
status = GXSetEnum(hDevice, GX_ENUM_LINE_MODE, GX_ENUM_LINE_MODE_INPUT);
// GX_ENUM_TRIGGER_MODE: 触发模式, 枚举值参考 GX_TRIGGER_MODE_ENTRY
// GX_COMMAND_TRIGGER_SOFTWARE : 软触发命令
// GX_ENUM_TRIGGER_ACTIVATION : 触发极性, 枚举值参考
// GX_TRIGGER_ACTIVATION_ENTRY GX_ENUM_TRIGGER_SWITCH : 外触发开关, 参考
// GX_TRIGGER_SWITCH_ENTRY GX_ENUM_TRIGGER_SOURCE : 触发源, 枚举值参考
// GX_TRIGGER_SOURCE_ENTRY GX_ENUM_TRIGGER_SELECTOR : 触发类型选择, 参考
// GX_TRIGGER_SELECTOR_ENTRY GX_FLOAT_TRIGGER_DELAY : 触发延迟
//设置曝光和增益等参数和原先在一致
status = GXSetFloat(hDevice, GX_FLOAT_EXPOSURE_TIME, (float)3000);
status = GXSetEnum(hDevice, GX_ENUM_BALANCE_RATIO_SELECTOR, GX_BALANCE_RATIO_SELECTOR_RED);
status = GXSetFloat(hDevice, GX_FLOAT_BALANCE_RATIO, 1.6484);
status = GXSetEnum(hDevice, GX_ENUM_BALANCE_RATIO_SELECTOR, GX_BALANCE_RATIO_SELECTOR_BLUE);
status = GXSetFloat(hDevice, GX_FLOAT_BALANCE_RATIO, 1.5664);
status = GXSetEnum(hDevice, GX_ENUM_BALANCE_RATIO_SELECTOR, GX_BALANCE_RATIO_SELECTOR_GREEN);
status = GXSetFloat(hDevice, GX_FLOAT_BALANCE_RATIO, 1.000);
status = GXSetEnum(hDevice, GX_ENUM_GAIN_SELECTOR, GX_GAIN_SELECTOR_ALL);
status = GXSetFloat(hDevice, GX_FLOAT_GAIN, 10.0);
//注 册 图 像 处 理 回 调 函 数,每次接受到一个电平变化就会回调
status = GXRegisterCaptureCallback(hDevice, NULL, OnFrameCallbackFun);
//发 送 开 采 命 令
status = GXSendCommand(hDevice, GX_COMMAND_ACQUISITION_START);

//所有引脚状态
int64_t nAllLineStatus = 0;
while (1)

cv::imshow("test", empty);
if (cv::waitKey(1) == 'a')


if (cv::waitKey(1) == 'b')

//输出所有引脚的电平,0xc默认是未触发状态,但是实际上0xe是未触发
GX_STATUS Status = GXGetInt(hDevice, GX_INT_LINE_STATUS_ALL, &nAllLineStatus);
std::cout
<< "line status:" << nAllLineStatus << std::endl;

if (cv::waitKey(1) == 'q')

//
//在 发 送 停 采 命 令 前 如 果 产 生 了 有 效 触 发 , 那 么 图 像
//会 通 过 OnFrameCallbackFun 接 口 返 给 用 户
//---------------------
//发 送 停 采 命 令
status = GXSendCommand(hDevice, GX_COMMAND_ACQUISITION_STOP);
//注 销 采 集 回 调
status = GXUnregisterCaptureCallback(hDevice);
status = GXCloseDevice(hDevice);
hDevice = NULL;
status = GXCloseLib();
std::cout << "end captrue" << std::endl;
return 0;



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
IO控制的电控代码

设置曝光为3000us,查看大恒的图像传输过程大概是300us,取一次传图的周期为5000us,即200hz,则也应设置电控发送200hz的IO变化电平,实际在视觉收到的图片速率也在200hz作有,有不到10hz的变化,这个挺简单的,我就不切系统复制了。

我设计的电控方案是摁一下摁建就会有回调函数触发,回调函数就会展示这张照片,如果没有摁摁建就不会有图片,不会触发。如有需要可以联系我

文章知识点与官方知识档案匹配
OpenCV技能树首页概览
9775 人正在系统学习中
点击阅读全文
打开CSDN,阅读体验更佳

相机触发模式_物随心转的博客
软触发有着更大的柔性,但系统整体速度和测量精度一般不如内触发,特别是有着复杂信号处理模块的时候软件触发模式, 3.2 硬触发 就是相机有硬件触发出入接口,收到外部现场的触发信号,相机拍照,然后送出图像数据,送出图像数据的反应时间按照...
Basler 相机硬触发(line1外部触发)接线与输出Out1_Zachary Zheng的博客...
一、接线根据官网6pin针角说明,2外部触发正,5为外部触发接地, 外部触发0-24VDC均可,不要超过30VDC。1和6 为相机电源24V即可。数据线对应6根线,笔者数据线型号为CS-6003-5M, 1和6已经接220V转24V电源的适配器了,只需要接2红线和...
大恒相机二次开发 单次触发
在MFC的环境下,大恒相机二次开发,相机采集,单次触发............................................
硬触发控制相机拍照matlab代码,海康相机连续不断硬触发拍照代码
整了两天终于搞定了,还未优化,投影仪500帧/s投编码图案,触发相机拍照,连续不断拍,实现动态三维重建。代码还未整理,先记录一下#include #include #include #include "MvCameraControl.h"#include #include "bmpLoader.h"int nRet = MV_OK;void* handle = NULL;int expose1 =...
继续访问
工业相机常用类型详述_人狮子的博客_工业相机的分类
此类相机采用 CCD 或 CMOS 芯片,像素区间在30万-1.5亿,接口为USB,GIGE,Camera Link, CoaXPress等,触发方式有三种:支持硬触发、软触发及自由运行模式,支持对增益、曝光时间、白平衡、Gamma 校正、LUT、Binning 等进行调节。 2.工业线阵...
海康相机软硬触发方式修改_*Major*的博客
海康相机软硬触发方式修改 海 康 相 机 软 硬 触 发 方 式 修 改 海康相机软硬触发方式修改海康相机软硬触发方式修改
最新发布 大恒相机sdk二次开发 _c#从0开始新建winform窗体实现相机基础采集功能
大恒相机sdk二次开发 _c#从0开始新建winform窗体实现相机基础采集功能
继续访问

海康相机的触发模式
一、图像采集模式分类 相机的图像采集模式分为内触发模式与外触发模式。其中内触发模式包含连续采集、单帧采集两种形式;外触发模式包含软件触发、硬件外触发。本文以海康相机的软件平台作介绍,该软件去海康机器人官网下载。 内触发模式与外触发模式可以通过 Acquisition Control 下的 Trigger Mode 参数进行设置 Trigger Mode 选择 On 则为外触发模式, Trigger Mode 选择 Off 则为内触发模式。如图 二、内触发模式 ...
继续访问

大恒水星系列Gige数字相机外触发接线
PLC或机器人输出IO作为相机的触发信号 大恒水星系类Gige数字相机外触发线接到台达PLC或者雅马哈机器人IO输出端,作为触发信号的接线方法。 手册里提供的接线图如下 转换为接线图如下图 注意:此电路中要在PLC或机器人的对应输出IO上接相应的上拉电阻,一般串进去2KΩ的电阻。 ...
继续访问

相机的硬触发接线
1.需要要懂得一点继电器的原理,继电器就是通过给线圈通电,使触点动作,由常开变成常闭。 2.在接线的时候,我们需要根据我们的信号输入的是高电平还是低电平。 3.下面的例子信号输入是低电平信号,所以线圈需要接收24V ...
继续访问
线阵相机的软触发与硬触发详解
如果了解过线阵相机的工作原理后,就会想要知道如何触发线阵相机拍照。 无论何种触发方式,要保证线阵相机拍出的图片不压缩也不拉长,就要保证横向精度与纵向精度相等。 这样每个像素的宽与高对应的世界尺寸是一样的。 Ⅰ,在软触发下, 以下面的公式开篇: 横向精度=纵向精度 横向精度=FOV(mm) / 线阵相机像元尺寸(无量纲常量) 横向精度就是一个像素的宽对应世界范围的尺寸。 线阵相机像元尺寸就是这个相机多少K的,一般分为16384, 8192 , 4096 等等。 FOV 为视野范围,要和相机搭载的镜头一起考虑。
继续访问
相机硬触发接线与程序详解
前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 二、使用步骤 1.引入库 代码如下(示例): import numpy as np import pandas as pd import matplotlib.pyplot a
继续访问

相机软硬触发(相机电源线多出的两根线头是什么?)
有很多人刚接触工业相机时会好奇相机电源线多出的两根线头是什么,不懂的还以为是线断了。其实它是相机触发模式中的一种 --- 外部触发开关。 如何打开相机的外部触发? 可以在连接相机的软件中找到 AcquisitionTrigger属性目录,将目录下的TriggerSource属性改为Line1 (Software是软触发),然后将TriggerMode设为On。此时原本连续采集的图像不再连...
继续访问

软触发和硬触发的区别
转自: 什么是硬件触发和软件触发 硬件触发:数据采集卡被动等待触发信号,接收到信号后才进行数据采集;触发信号可由某个仪器在一定状态下发出。如有的自动测量系统中的高速数据卡就接收position controller发出的触发信号。而有的则依靠矢量网络分析仪接收外部触发信号。之所以能接收触发信号,和仪器的工作模式有关。硬件触发与数据采集卡有关。 软件触发:通过软件主动查询信号或仪器当...
继续访问
热门推荐 Basler相机硬触发的接线方法
笔者在工作中接触到Basler相机与NPN型光电开关配合完成相机外触发功能的实现,现将方式记录如下: 首先 相机的航空电源线以颜色来区分功能,一般只要熟悉颜色就可以接好线。 相机端需要连接4根线:红(电源+)、黑(电源-)、棕(信号线)、绿(信号线) NPN传感器需要3根线:棕(电源+)、蓝(电源-)、黑(信号线) 相机一般供电...
继续访问
大恒双相机开发-C#.zip
界面做了优化,采用多线程技术,做了显示帧率的显示与采集帧率的显示,内有 帧率计算方法,时间计算方法,并行,多线程,绘图方法,托管与非托管内存转换技术等
大恒相机Python版Qt界面(一)
大恒相机、python、PyQt界面开发
继续访问

大恒相机开发实践(3)——参数设置
这篇文章涉及到的内容主要是你该如何生成那个节点而已,以后关于那个有机会再出一篇文章,但那是后话了。
继续访问
工业相机,大恒,面振相机8脚电源线和I/O触发接口线,颜色和接法说明和触发软件设定
上图: 说明一下,工业相机有TTL逻辑电平触发,也有光耦触发等。 这里一般我们用电路板驱动,就用GPIO触发模式, 这里,准备了两个GPIO触发模式,为LINE2,LINE3都可以选择,然后有一个GPIO_GND 如果,你只有一个触发接口,那么如图,选两个就好了。 实际接法如图。 ...
继续访问

海康相机硬触发接线 -6pin
海康相机硬触发接线 -6pin
继续访问

Basler ace 相机软件设置、 硬件连接、软件触发,程序硬件触发全套详细资料
一、触发使用说明书 https://wenku.baidu.com/view/4a9fe5e4f78a6529657d5356.html?fr=search-1 二、BASLAR相机触发说明PPT课件 https://wenku.baidu.com/view/dcc580e579563c1ec4da7168.html 三、BASLAR相机软件套装下载 https://www.baslerweb.com/cn/sales-support/downloads/software-downloads/py
继续访问

工业相机的触发模式
什么是触发:被动的输出模式,实时性要求高,比如抓拍运动的物体。触发信号可以由软件产生,也可以由传感器/机械开关产生,叫软/硬触发。 工业相机的触发 相机SDK中有专门的接口触发信号,还可以设置帧数。不同的工业相机提供不同的编程接口(SDK),尽管不同接口不同相机间编程接口各不相同,他们实际的API结构和编程模型很相似,了解了这些再对工业相机编程就很简单了。DMA技术,DMA控制器,进行高速传输操作,不经过CPU处理。 相机的触发方式的选择 1)连续采集模式:对静态检测可选择,产品连续...
继续访问
大恒水星相机硬触发测试
大恒水星相机硬触发测试,c++实现。
继续访问
关于相机飞拍和IO板卡触发拍照
项目至今为止,在使用海康相机进行飞拍和IO板卡硬触发拍照时,会出现取图失败的情况。 所以总结一下: 飞拍需要加入重拍,这个重拍机制需要自动化配合,与自动化进行通信,实现重拍 IO板卡进行触发拍照时,出现取图失败,不能确定时IO板卡的问题,还是相机问题,所以需要通过控制IO板卡实现重拍 ...
继续访问
相机硬触发和软触发的区别
opencv
人工智能
写评论

2

5

点赞



分享
打开CSDN APP阅读体验更佳×
参考技术A

大华工业相机的触发设置可以参照该工业相机的产品手册。触发是被动的输出模式,实时性要求高,比如抓拍运动的物体。触发信号可以由软件产生,也可以由传感器/机械开关产生,叫软/硬触发。

关于如何设置,你可以登录机器视觉产品资料查询平台,输入相应的工业相机型号,打开用户手册按照步骤操作即可。

相机IO硬件输入输出

工作那么久了不怎么用硬件触发,今天恶补一下。
干什么用的?通过IO输入来触发相机拍照,或者通过相机的IO输出来触发光源
来一波参考网页:
1、Basler相机硬触发的接线方法
2、PNP/NPN与PLC,你还在傻傻分不清楚吗?
3、BASLAR相机触发说明
4、相机的硬触发接线
5、怎么控制光耦?控制光耦的原理是什么?

其实实现硬件触发的原理就是4个字(输入输出都是一样):形成回路
简易原理图

接线方法:参考1-2
给个海康相机的demo

其他没什么了,就是控制NPN/PNP型光电开关来形成回路,有机会尝试一下。

以上是关于大华相机硬触发设置的主要内容,如果未能解决你的问题,请参考以下文章

大华工业相机图像采集Python代码实现

巴斯勒工业相机怎么设置中文

MediaCodec 硬编码

海康工业相机支持web集成吗

halcon外触发采集保存图片

halcon外触发采集保存图片