厦门巴斯勒工业相机维修 piA1600-35gm
浏览次数:4次
- 产品规格:
- 发货地:江苏省苏州吴中区
关键词
厦门巴斯勒工业相机维修
详细说明
有无图像没图像
是否黑屏黑屏,白屏,花屏
是否亮灯亮红灯
是否开机不开机
故障设备找不到相机
需要说明如下几点:1.这里的初始队列为1-10,都是初始分配为DMA队列的,这个内存分配和释放过程有的SDK是自己负责的,有的则需要用户自己分配和释放,SDK只负责托管使用。
2.一般开始注册一个中断处理函数,当“准备队列”填充完成会自动跳转到中断函数中,借此完成同步操作。也可以是用户自己维护同步结构体,使用查询和等待的方式判断“准备队列”头是否填充完成,是否该用户程序获取数据和处理了。
3.如果用户处理任务非常简单,可以去掉“处理队列”,每次直接GetFrame->处理->PutFrame。如果用户处理任务比较复杂而不希望出现丢帧的现象,则需要用户使用“处理队列”来保存所有可用的Buffer。
4.这里队列也只是能够解决处理速度比采集速度慢少许的情况,主要是对不同处理速度做平均来保证采集和处理同步。如果每一帧的处理时间太长,这时候“DMA队列” Buffer全部转移到“处理队列” Buffer,就会出现异常情况,这时不同的相机会有不同的处理方法。
编程模型和流程
对于相机来说,常见编程时我们关注三个对象——相机对象、采集对象、参数对象。
相机对象(Camera Object):负责相机的连接、断开等工作。
采集对象(Grab Streamer):负责相机的采集队列分配、相机单帧、连续采集。
参数对象(Parameter Object):负责相机参数的设置。
不同的SDK可能安排不一样,一般来说要不是三种对象的功能合并到“相机对象”中,要不是分为三种对象,其实采集对象和参数对象都是在“相机对象”上封装而来。
工业相机SDK接口使用总结
相机调用 :
我们利用相机采集图像,先要对相机进行相关参数设置及控制,这需要对相机的SDK包比较了解,一般相机厂家都会提供相机SDK,其中包含用户手册和调用Demo,这些都大大降低了调用门槛,提高了二次开发用户的效率。目前用过Balser、海康、大华等相机,其实都是一个套路,都是按照下面几个步骤进行的。
1)枚举设备
2)创建句柄
3)打开设备
4)开始抓图
5)获取一帧并保存图像
6)停止抓图
7)关闭设备
8)销毁句柄
相机同步:
若是开发过程中用到双目或者多目的话,则需要外接同步触发器或者外部触发信号,通过相机同步触发线来实现同步问题。以实际应用过的Basler acA1300-200uc为例,其相机同步触发线具体类型如下:
1 -—— +12 VDC 红
2 —— I/O Input 1 黄
3 —— VCC(加电阻) 蓝
4 —— I/O Out 1 绿
6 —— DCcam Power GND 黑
0000—— I/O GND 白
可以看到相机编程需要做三方面工作:
1.初始化操作
先初始化相机驱动Com环境,然后遍历得到当前的相机列表,根据相机ID或List 编号选择对应相机。
之后连接相机,先设置本次采集的相机参数(帧速、图像大小、缩放比等),然后是分配和注册当前DMA队列,这里有的是用户完成,有的是SDK完成。
之后先开启DMA逻辑等待相机采图,然后使相机开始工作采图,整个系统就按照之前工作流程运作起来了,许多SDK将“开启DMA”和“相机开始工作”合并为“开始采集”。
2.结束操作
先停止相机工作再关闭DMA逻辑,许多SDK将“开启DMA”和“相机开始工作”合并为“结束采集”。
然后清理DMA队列,和分配时对应,这里有的是用户完成,有的是SDK完成。
后断开相机并清理工作环境。
m.jaso.b2b168.com