Basler相机外部触发设置
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{
// MessageBox.Show(ex.Message);//显示错误
return -1;
}
}
IntPtr
ptr
=
Marshal.GetFunctionPointerForDelegate(delegateCallback);// 取 回 调
函数的地址
IntPtr
ptr1
=
GБайду номын сангаасHandle.Alloc(test,
Basler 相机外部触发设置
一、相机硬件接线图 2 号引脚接传感器的触发信号引脚,5 号与传感器共地连接。
二、pylon 软件设置
三、halcon 软触发相机拍照 Halcon 采集助手设置软触发:
1.set_framegrabber_param (AcqHandle, 'TriggerMode', 'On') 2.set_framegrabber_param (AcqHandle, 'TriggerSource', 'Software') 还有注意就是,软触发不要设置 grab_timeout 采集超时,否则会一直 卡住 Halcon 的,硬触发可以开启! 那么怎么触发呢?点击下面红色方框里面的 TriggerSoftWare 就可以 触发采集了!
不能在 Halcon 里面用代码实现触发采集,因为采集图像是同步进行 的。 可 以 使 用 C# 联 合 Halcon 开 发 , 在 C# 里 面 利 用 set_framegrabber_callback 设置回调方式进行,Halcon 里面是不支持 的!
四、C#联合 Halcon 实现外部触发回调函数采集图像 C#
HalconDotNet.HalconAPI.HFramegrabberCallback delegateCallback; //定义回调函数委托
//开启相机 HOperatorSet.OpenFramegrabber("GigEVision2", 0, 0, 0, 0, 0, 0, "progressive", -1, "default", -1, "false", "default", "Devin", 0, -1, out hv_AcqHandle); //下面开启硬触发 HOperatorSet.SetFramegrabberParam(hv_AcqHandle, "TriggerMode", "On"); HOperatorSet.SetFramegrabberParam(hv_AcqHandle, "TriggerSource", "Line1"); //下面设置连续采集,上升沿触发,曝光模式等 HOperatorSet.SetFramegrabberParam(hv_AcqHandle, "AcquisitionMode", "Continuous"); HOperatorSet.SetFramegrabberParam(hv_AcqHandle, "TriggerSelector", "FrameStart"); HOperatorSet.SetFramegrabberParam(hv_AcqHandle,
try
{
HOperatorSet.GrabImage(out img, hv_AcqHandle);
if (this.hWindowControl1.InvokeRequired)//线程亲和性判定
{
this.Invoke(new
MethodInvoker(()
=>
{ HOperatorSet.DispObj(img, this.hWindowControl1.HalconWindow);
GCHandleType.Pinned).AddrOfPinnedObject();//取 test 变量的地址
HOperatorSet.SetFramegrabberCallback(hv_AcqHandle, "LineStatus",
ptr, ptr1);//注册回调函数
private int test = 1;//随便定义的一个变量,后面会取其地址带入回调 函数的 user_context
//回调函数 public int MyCallbackFunction(IntPtr handle, IntPtr context, IntPtr user_context) {
img.Dispose(); }));//把图像显示出来(这里是委托方式显示)
}
else
{
HOperatorSet.DispObj(img,
this.hWindowControl1.HalconWindow);//把图像显示出来
img.Dispose();
}
return 0;
}
catch (Exception ex)
"TriggerActivation", "RisingEdge"); HOperatorSet.SetFramegrabberParam(hv_AcqHandle, "ExposureMode", "Timed"); //设置曝光时间 HOperatorSet.SetFramegrabberParam(hv_AcqHandle, "ExposureTime", 80000.0); //下面为设置用不超时 HOperatorSet.SetFramegrabberParam(hv_AcqHandle, "grab_timeout", -1); //给委托绑定 delegateCallback = MyCallbackFunction;