相机光源触发极性异常

文章描述了在使用康视达光源控制器时遇到的问题,包括因多次发送TH#TL#指令导致的光源极性异常,以及Halcon相机帧率跳动异常,这可能是由于相机驱动未正确安装。解决方案是调试后发送TL#指令关闭光源,并确保安装正确的相机驱动。文中还展示了Halcon的GigEVision图像采集代码片段,用于设置触发模式、增益和颜色空间,并进行图像抓取与保存。
摘要由CSDN通过智能技术生成
康视达光源控制器

多次发送TH# TL# 指令导致相机光源极性异常

解决办法:调试完后发送TL#指令关闭光源。

调试后相机帧率跳动异常。

解决中。

原因是halcon的相机驱动没装。

.:
相机自己的驱动也会生效

.:
你连的时候调用的应该是相机自己的驱动

​​​​​​​
 

 

目前状态

* Image Acquisition 01: Code generated by Image Acquisition 01
open_framegrabber ('GigEVision', 0, 0, 0, 0, 0, 0, 'default', -1, 'default', -1, 'false', 'default', 'cam4', 0, -1, AcqHandle)
set_framegrabber_param (AcqHandle, 'grab_timeout', 6000)
set_framegrabber_param (AcqHandle, 'TriggerMode', 'On')
set_framegrabber_param (AcqHandle, 'TriggerSource', 'Software')
get_framegrabber_param (AcqHandle, 'device', Value)
get_framegrabber_param (AcqHandle, 'DeviceID', ValueID)
*info_framegrabber ('GigEVision', 'device', Information, ValueList)
info_framegrabber ('GigEVision', 'info_boards', Information, ValueList)
*info_framegrabber('GigEVision','info_boards',Information,ValueList)   
tuple_length(ValueList,lenght_aquipment)
device_list := [  ]
id_list := [  ]
for index:=0 to lenght_aquipment-1 by 1
   tuple_split(ValueList[index], '|', Substrings)
   tuple_regexp_select(Substrings,'device', Matches_device)
   tuple_regexp_select(Substrings,'serial', Matches_device_id)
   tuple_split(Matches_device_id, ':', Substrings_id)
   tuple_regexp_replace(Substrings_id[1], ['\\s*', 'replace_all'],'',Result_device_id)
   tuple_split(Matches_device, ':', Substrings_device)
   tuple_regexp_replace(Substrings_device[1], ['\\s*', 'replace_all'],'',Result_device)
   id_list[index] := Result_device_id
   device_list[index] := Result_device
endfor
set_framegrabber_param (AcqHandle, 'Gain', 17.9887)
*set_framegrabber_param (AcqHandle, 'color_space', 'rgb')
grab_image_start (AcqHandle, -1)
while (true)
    set_framegrabber_param (AcqHandle, 'TriggerSoftware', '1')
    grab_image_async (Image, AcqHandle, -1)
    get_image_time (Image, MSecond, Second, Minute, Hour, Day, YDay, Month, Year)
    *时间格式:年_月_日_时_分_秒_毫秒
     DayString := Year$'4d' +'_'+ Month$'02d' + '_'+Day$'02d'+'_'
    TimeString := Hour$'02d' +'_'+ Minute$'02d' + '_'+Second$'02d'+'_'+MSecond$'03d'
     write_image (Image, 'jpeg', 0, 'C:/Users/Administrator/Desktop/Test/'+DayString+TimeString+'.jpeg')
     wait_seconds (2)
endwhile
close_framegrabber (AcqHandle)

要在 Basler 相机中实现触发光源同步,您需要使用相机的硬件触发功能,并将光源触发信号与相机触发输入端口进行连接。以下是一个示例代码片段,演示如何配置相机光源进行触发光源同步: ```python from pypylon import pylon # 连接相机 camera = pylon.InstantCamera(pylon.TlFactory.GetInstance().CreateFirstDevice()) camera.Open() # 配置相机为外部触发模式 camera.TriggerMode.SetValue('On') # 打开触发模式 camera.TriggerSource.SetValue('Line1') # 设置触发源为 Line1 输入端口 # 配置光源为外部触发模式 # 根据光源的具体硬件和通信方式,设置光源触发方式和参数 # 例如,如果光源通过串口通信,您可能需要使用 pyserial 等库来与光源进行通信 # 开始采集图像 camera.StartGrabbing(pylon.GrabStrategy_LatestImageOnly) # 发送触发信号给光源 # 根据光源的具体通信方式,发送相应的触发信号给光源 # 等待图像采集完成 while camera.IsGrabbing(): grab_result = camera.RetrieveResult(5000, pylon.TimeoutHandling_ThrowException) if grab_result.GrabSucceeded(): # 处理图像 image = grab_result.Array # 显示图像等其他操作 grab_result.Release() # 停止采集并断开连接 camera.StopGrabbing() camera.Close() ``` 请注意,具体的光源触发方式和参数取决于您使用的光源设备。您可能需要参考光源的硬件和通信协议文档,以确定正确的触发方式和参数。同时,您还需要根据实际情况修改示例代码中的触发源和触发方式。 另外,确保您已经正确连接了相机光源,并将它们的触发输入端口和触发输出端口相连。请参考相机光源的硬件手册以获取更详细的配置和连接说明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值