海康线扫相机使用

目录

1、调试方式-竖线清晰视为对焦完成

2、线扫相机接编码器使用,接线方式为图6-14,无需下拉电阻,需要注意的是一端悬空

3、线扫相机MVS设置出图,编码器转一圈出一张图,小编这里图像高度设置为1440

4、代码设置


本次使用的线扫相机型号为,MV-CL043-A1GM-V2,MVS版本为V4.6.3

1、调试方式-竖线清晰视为对焦完成

触发选择器-帧触发开始-触发模式->关闭

触发选择器-行触发-触发模式->关闭

2、线扫相机接编码器使用,接线方式为图6-14,无需下拉电阻,需要注意的是一端悬空

3、线扫相机MVS设置出图,编码器转一圈出一张图,小编这里图像高度设置为1440

(1)触发选择器->帧触发->触发模式->关闭

(2)触发选择器->行触发->触发模式->打开->触发源选择分频器

(3)变频器控制->输入源选编码器->乘法器设置4倍

(4)编码器控制->第2步接线的时候有一端悬空的所以这里编码器源B设置为N/A为空->因为编码器计数模式是忽略方向的双向计数,所以编码器计数器计数结果是720,实际接收的脉冲是360(可以接到PLC上接收脉冲数调试),360乘4倍乘法器=1440的图像高度

(5)IO控制->线路选择0->IO类型设置为单端->线路防抖设置为1000ns

按照以上方法设置后,编码器转一圈发送360个脉冲给线扫相机,线扫相机接收360*4=1440,满足图像的行高,就会出来一张图

4、代码设置

如果出现了下面这种情况,新来的帧没有完全覆盖掉上一帧的图,甚至越拉越长,需要设置帧触发开始 行触发结束,用代码设置即可解决

cpp 复制代码
MV_CC_SetEnumValue(handle, "AcquisitionLineRate", 1440); // 采集行频 图像的高度
MV_CC_SetEnumValue(handle, "TriggerSelector", 9);        // 触发选择器 行开始
MV_CC_SetEnumValue(handle, "TriggerMode", 1);            // 触发模式 打开
MV_CC_SetEnumValue(handle, "TriggerSource", 8);          // 触发源 分频器
MV_CC_SetEnumValue(handle, "PreDivider", 1);             // 预分频器
MV_CC_SetEnumValue(handle, "Multiplier", 4);             // 乘法器
MV_CC_SetEnumValue(handle, "PostDivider", 1);            // 后分频器

MV_CC_SetEnumValue(handle, "TriggerSelector", 6);        // 触发选择器 帧触发开始
MV_CC_SetEnumValue(handle, "TriggerMode", 1);            // 触发模式 打开
MV_CC_SetEnumValue(handle, "TriggerSource", 7);          // 触发源 软触发
nRet = MV_CC_StartGrabbing(handle);                      // 开始取流
相关推荐
汉克老师2 小时前
GESP2026年3月认证C++八级( 第三部分编程题(2、子图最短路)精讲
c++·最短路·floyd·gesp8级
十五年专注C++开发3 小时前
C++设计一个函数来求容器元素绝对值之和的平均值
c++·模板·accumulate
SilentSlot3 小时前
【C/C++】手写 DPDK 协议栈(十一):基于 PPS、SYN 比例和源 IP 熵的 DDoS 检测
c语言·c++·tcp/ip
王老师青少年编程4 小时前
csp信奥赛C++高频考点专项训练:【排序算法】案例9:成绩排序
c++·排序算法·csp·高频考点·信奥赛·成绩排序
程序喵大人4 小时前
【C++进阶】STL容器与迭代器 - 05 map 和 set 为什么按键保持有序
开发语言·c++·容器·迭代器·stl
库克克5 小时前
【C++】 unordered_map 与unordered_set
开发语言·c++
李迟6 小时前
一种轻量级C++ CSV文件读写库的实现方案
开发语言·c++
学无止境_永不停歇6 小时前
9. 缓冲区
linux·服务器·c++
古道青阳7 小时前
Duilib 技术全景剖析
c++·windows