基于乐高积木原理的触发机制

我们对乐高积木都十分熟悉。这些彩色塑料积木上具有专利凸点,可形成接合系统,任您发挥无穷想象力,随意组合积木。乐高积木原理既简单又具独创性,而事实证明成功的秘诀即在于此。机器视觉则充分利用了这一原理。

背景

GenICam 是用于机器视觉领域的泛型编程接口,可将机器视觉相机的每个功能标准化和抽象化。标准功能命名约定 (SFNC) 为实现相机功能提供多种规则,因此,它为大量的机器视觉应用环境搭建了一个“彩色的积木系统”。丰富多样的连接方式为至今鲜为人涉足的机器视觉标准化实现增值。尤其是在触发图像采集方面,仍有许多可能性尚待挖掘。因此,IDS 相机上支持绝大部分标准触发功能,让用户尽情发挥想象力。

尚待挖掘的可能性

如今,相机触发信号的种类不止局限于硬件触发。在硬件触发模式下,只需数微秒的时间,触发信号即可在相机固件中启动图像采集。得益于 GenICam 和 SFNC,触发信号已演变为带有一个指定行为的抽象化的信号定义,具有很多优势。启动触发的信号(软件)与支持触发设备的输入信号(硬件)分开,从而使触发信号的应用类型更加丰富多样。此外,图

在发布的 Vision Firmware V1.5 中,IDS 相机为触发配置新增了许多功能,以此为触发源提供多种连接方式。

触发使用案例

定时器、计数器、PWM 或 UserOutput 等功能块也可以灵活互连。这为相机的图像采集控制提供了无限的可能性。以下使用案例演示了如何使用 IDS 视觉相机实现各种触发方式(截至 Vision Firmware V1.5)。您可在 IDS Vision Cockpit 中直接使用 GenICam 节点树重新构建这些触发方式。

非周期性图像采集

在传送带上传送着不同类型的部件。当传送带上的部件经过光栅时,触发图像采集,以读出部件条形码,从而对部件进行识别。

阅读更多 …

特征

  • 触发信号包括软件触发信号和硬件触发信号。
  • 当检测到不同的部件和距离时,会产生非周期性触发信号。
  • 收到触发信号后,相机会立即曝光并采集图像。
  • 要捕捉清晰的图像,需要预先根据照明条件和传送带速度设置曝光时间。
  • 每收到一个触发信号,相机会捕捉一张图像。
  • 在采集图像和读出的过程中,相机不再接收触发信号。

参数设置

AcquisitionMode   = Continuous
ExposureTime      = 15000
TriggerSelector   = ExposureStart
    TriggerMode   = On
    TriggerSource = Line0

AcquisitionStart 命令用于使系统准备好接收触发信号:

开始采集

Execute AcquisitionStart

如果将“Line0”设置为 TriggerSource,外部硬件触发源可以通过光栅或按钮等发出的信号立即启动曝光。

如果“Software”为 TriggerSource,则使用软件触发命令:

采集

TriggerSource = Software
    Execute TriggerSoftware

AcquisitionStop 命令用于结束采集模式:

停止采集

Execute AcquisitionStop

在执行 AcquisitionStop 命令之后,对于已开始采集的图像,相机会继续完成曝光并传输图像。

信号/时间图

图像采集延迟

在传送带系统中,如果由于结构方面的原因,触发传感器无法安设于相机旁边,则必须延迟图像采集。延迟时间取决于传送带速度。

阅读更多 …

特征

  • 触发信号包括软件触发信号和硬件触发信号。
  • 对于触发信号,相机会根据设定的延迟时间 (TriggerDelay) 以指定曝光时间开始图像采集。
  • 可对 TriggerDelay 的时间进行配置(范围为 0 至约 16 秒,以毫秒为单位)
  • 每接收一个触发信号,相机会捕捉一张图像。
  • 个别触发信号可能呈现非周期性特征。
  • 在 TriggerDelay 和采集过程中,相机不再接收触发信号。

参数设置

AcquisitionMode   = Continuous
ExposureTime      = 15000
TriggerSelector   = ExposureStart
    TriggerMode   = On
    TriggerSource = Line0
    TriggerDelay  = 500

采用以上触发设置时,仅当 Line0 触发信号发出 500 µs 后,相机才会启动曝光。

TriggerDelay 可与任何其他 TriggerSelector 或 TriggerSource 结合使用。

通过执行 AcquisitionStart 命令,使系统准备好接收触发信号。

开始采集

Execute AcquisitionStart

如果将“Line0”设置为 TriggerSource,外部硬件触发源可以通过光栅或按钮等发出的信号立即启动曝光。

AcquisitionStop 命令用于结束采集模式:

停止采集

Execute AcquisitionStop

在执行 AcquisitionStop 命令之后,对于已开始采集的图像,相机会继续完成曝光并传输图像。

信号/时间图

扩展触发

IDS 相机在线阵扫描模式下捕捉打印卷筒的图像。编码器可指定采集周期,以便于使图像采集与设备速度保持同步,并确保像素大小相同。但是编码器频率与线扫描频率并不相同,这意味着必须使用触发预分频器来缩短采集周期。

阅读更多 …

特征

  • 相机通过软件或硬件触发接收输入信号。
  • 对于每次图像采集,触发信号会启动相机以指定的曝光时间来曝光。
  • 每接收一个触发信号,相机会捕捉一张图像。
  • 每第 x 次触发信号可由 TriggerDivider 进行处理。

ExposureStart 配置开始信号,以便相机每接收到第四个信号时仅在 Line0 处捕捉一张图像。

参数设置

AcquisitionMode    = Continuous
ExposureTime       = 15000
TriggerSelector    = ExposureStart
    TriggerMode    = On
    TriggerSource  = Line0
    TriggerDivider = 4

若手动启动采集,系统即准备好接收触发信号。

开始采集

Execute AcquisitionStart

如果将“Line0”设置为 TriggerSource,则外部硬件触发源(例如:打印卷筒编码器)可以启动曝光。

AcquisitionStop 命令用于结束采集模式:

停止采集

Execute AcquisitionStop

在执行 AcquisitionStop 命令之后,对于已开始采集的图像,相机会继续完成曝光并传输图像。

信号/时间图

触发采集周期

使用案例:观察水滴滴落的过程。水滴在进入图像采集区时会被光栅检测到,此时相机会开始图像采集,捕捉图像,记录水滴在下落的过程中表面的运动情况。当水滴离开图像采集区时,位于底部边缘的光栅会立即结束采集过程。

阅读更多 …

特征

  • 在触发信号的活跃相位,相机会持续捕捉图像。
  • 帧率和曝光时间是固定的。
  • 捕捉图像的数量取决于信号活跃相位的持续时间和设置的帧率。

采集配置

AcquisitionMode        = Continuous
AcquisitionFrameRate   = 30
ExposureTime           = 1000
TriggerSelector        = AcquisitionStart
    TriggerMode        = On
    TriggerSource      = Line0
    TriggerActiviation = RisingEdge
TriggerSelector        = AcquisitionStop
    TriggerMode        = On
    TriggerSource      = Line0
    TriggerActiviation = FallingEdge

通过执行 AcquisitionStart 命令,使系统准备好接收触发信号。

开始采集

Execute AcquisitionStart

如果将“Line0”设置为 TriggerSource(上升沿),则开始进行连续采集。如果触发信号的边缘在“Line0”上,则停止连续采集。

在执行 AcquisitionStop 命令之后,对于已开始采集的图像,相机会继续完成曝光并传输图像。

信号/时间图

周期性触发

使用案例:该功能可以用于通过延时图像采集的方式记录某个物体的运动过程。将曝光时间设置为指定时长。

阅读更多 …

特征

  • 使用定时器或 PWM(脉冲宽度调制)信号可生成周期性触发信号。
    • 对于高频信号(最高 100 kHz),最好使用 PWM 信号。
    • 对于低频信号(如 1 帧/分钟),则使用带有可选触发信号的定时器。
  • 可以使用额外的可调信号强度(如 UserOutput)按照固定时间间隔重新启动定时器。
  • 对于每次图像采集,触发信号会启动相机以指定的曝光时间来曝光。
  • 每接收一个触发信号,相机会捕捉一张图像。

参数设置

AcquisitionMode    = Continuous
ExposureTime       = 15000
TriggerSelector    = ExposureStart
    TriggerMode    = On
    TriggerSource  = Timer0Start
    TriggerDivider = 6

Timer0 设为 10 秒 (10,000,000 µs)。如果 UserOutput0 的信号电平设置为“LevelHigh”,则 Timer0 会不断地重新启动。与分频器触发结合使用时,定时器仅会在第六次启动时触发图像采集。

定时器设置

TimerSelector              = Timer0
    TimerDuration          = 10000000
    TimerTriggerSource     = UserOutput0
    TimerTriggerActivation = LevelHigh

若手动启动采集,系统即准备好接收触发信号。但在定时器开始运行前,相机不会开始采集图像。

开始采集

Execute AcquisitionStart

如果将 UserOutput0 设置为 True (=LevelHigh),则定时器会启动,且相机会立即捕捉第一帧图像。建议首先执行 TimerReset 命令,以确保即使是第一个时间间隔也可以重置为完整时长。

停止采集

TimerSelector = Timer0
    Execute TimerReset
 
UserOutput0   = True

使用以上设置,相机会每分钟捕捉一张图像,直到执行 AcquisitionStop 命令或将 UserOutput0 设置为False (=LevelLow) 为止。

停止采集

UserOutput0   = False
Execute AcquisitionStop

在执行 AcquisitionStop 命令之后,对于已开始采集的图像,相机会继续完成曝光并传输图像。

信号/时间图

触发曝光时间

使用案例: 相机发送经直接处理和评估的图像。还可确定图像是否曝光过度或曝光不足。可使用脉冲发生器动态调整下次图像采集的曝光时间,而无需更改相机参数。

阅读更多 …

这种图像采集类型也称为“电平控制曝光”或“Bulb 模式”。

特征

  • 触发脉冲宽度决定了曝光时间。
    • 触发信号产生后,相机会立即开始曝光(此案例中:Line0 为上升沿)。
    • 曝光持续时间等于触发信号设置的时间。
    • 曝光持续时间不短于 TriggerControlledExposureTimeMin 设置的时间。
    • 曝光最迟在 TriggerControlledExposureTimeMax 之后结束。
  • 每接收一个触发信号,相机会捕捉一张图像。

采集配置

AcquisitionMode   = Continuous
TriggerSelector   = ExposureStart
    TriggerMode       = On
    TriggerSource     = Line0
    TriggerActivation = RisingEdge
TriggerSelector   = ExposureEnd
    TriggerMode       = On
    TriggerSource     = Line0
    TriggerActivation = FallingEdge
TriggerControlledExposureTimeMin = 500
TriggerControlledExposureTimeMax = 1000000

可根据具体的应用场景,通过 TriggerControlledExposureTimeMinTriggerControlledExposureTimeMax 参数将曝光时间限制在合适的范围内,从而避免曝光时间过短或过长。

通过执行 AcquisitionStart 命令,使系统准备好接收触发信号。

开始采集

Execute AcquisitionStart

如果将“Line0”设置为 TriggerSource,则外部脉冲发生器可用于控制图像采集的曝光时间。

AcquisitionStop 命令用于结束采集模式:

停止采集

Execute AcquisitionStop

执行 AcquisitionStop 命令之后,相机仍会传输所有已启动的采集。

隔行扫描图像采集

触发信号控制的曝光时间也可以是“交错的”(隔行扫描图像采集),具体取决于相机所用的传感器型号。在读出期间,传感器启动为下次采集做好准备,如此可实现最大帧率。TriggerControlledExposureTimeMin 参数也决定了隔行扫描的程度。其规律如下:

  • TriggerControlledExposureTimeMin 值越高,允许的隔行扫描次数越多。
  • 如果 TriggerControlledExposureTimeMin 值大于读出时间,则隔行扫描范围不会增加。

信号/时间图

以最快速度获取计数图像序列

使用案例:相机捕捉传送带上送检零部件的图像。由于技术原因,无法使光源保持稳定,通常是以不同的曝光时间快速连续捕捉三张图像。系统会对曝光最好的图像进行分析。

阅读更多 …

特征

  • 每接收一个触发信号,相机会快速连续捕捉多张图像(“脉冲串”)。
  • 触发信号包括软件触发信号和硬件触发信号。
  • 曝光时间是预先设定的。
  • 以传感器支持的最快速度捕捉图像序列。
  • 计数器用来对采集的图像系列进行计数,当图像达到所需数量后会自动终止采集。
  • 当计数器处于启用状态时,不会处理触发信号。

配置采集参数,使相机在计数器正在计数(即“启用”)时捕捉图像。必须预先设置曝光时间!

参数设置

AcquisitionMode   = Continuous
ExposureTime      = 15000
TriggerSelector   = ExposureStart
    TriggerMode       = On
    TriggerSource     = Counter0Active
    TriggerActivation = LevelHigh

通过外部硬件信号 (Line0) 触发计数器。其终止值 (Duration) 设置为需要采集的图像数量。计数器基于 ExposureStart 事件进行计数。开始信号 (CounterTrigger) 同时还会重置计数器。(计数器重置)。

参数设置

CounterSelector      = Counter0
    CounterTriggerSource = Line0
    CounterResetSource   = CounterTrigger
    CounterEventSource   = ExposureStart
    CounterDuration      = 3

可通过手动启用采集使系统做好准备。然而,在计数器处于启用状态时,相机不会开始图像采集。

开始采集

Execute AcquisitionStart

可使用硬件触发信号 (Line0) 捕捉图像序列。当计数器达到预设的终止值时,采集会自动停止。

AcquisitionStop 命令用于结束采集模式:

停止采集

Execute AcquisitionStop

在执行 AcquisitionStop 命令之后,对于已开始采集的图像,相机会继续完成曝光并传输图像。

信号/时间图

以固定帧率采集指定数量的图像序列

使用案例:在交通信号灯处,使用相机记录司机在红灯亮起时越过停止线的行为。通过以合适的帧率采集一系列图像,我们可对车速、刹车行为或换向进行判断。这样就可以区分哪些司机不慎越过停止线并停车,而哪些是违章行驶。

阅读更多 …

特征

  • 每接收一个触发信号,相机会捕捉固定数量的图像。
  • 触发信号包括软件触发信号和硬件触发信号。
  • 曝光时间是预先设定的。
  • 相机以指定帧率捕捉图像序列。
  • 计数器用来对采集的图像系列进行计数,当图像达到所需数量后会自动终止采集。
  • 当计数器处于启用状态时,不会处理触发信号。

配置采集参数,使相机在计数器正在计数(即“启用”)时捕捉图像。必须预先设置曝光时间和帧率。

通过硬件触发 (Line0) 启动记录图像序列。当 Counter0 达到终止值时,此过程会自动终止。

参数设置

AcquisitionMode      = Continuous
AcquisitionFrameRate = 30
ExposureTime         = 30000
TriggerSelector = AcquisitionStart
    TriggerMode     = On
    TriggerSource   = Line0
TriggerSelector = AcquisitionStop
    TriggerMode     = On
    TriggerSource   = Counter0End

计数器终止值 (Duration) 设置为所需的图像序列数。计算器基于 FrameStart 事件进行计数。开始信号 (CounterTrigger) 同时还会重置计数器。(计数器重置)。

参数设置

CounterSelector      = Counter0
    CounterTriggerSource = AcquisitionStart
    CounterResetSource   = CounterTrigger
    CounterEventSource   = FrameStart
    CounterDuration      = 3

可通过手动启用采集使系统做好准备。

开始采集

Execute AcquisitionStart

通过硬件触发 (Line0) 开始采集图像序列。

AcquisitionStop 命令用于结束采集模式:

停止采集

Execute AcquisitionStop

在执行 AcquisitionStop 命令之后,对于已开始采集的图像,相机会继续完成曝光并传输图像。

信号/时间图

以最快速度定时捕捉图像序列

使用案例:想要观察液体滴在不同物体表面的效果?要实现这一目标,必须在液体进入图像采集区时便触发图像采集。在该案例中,相机需在一定时间内以最大帧率持续采集图像,以便记录整个效果发生过程。

阅读更多 …

特征

  • 每接收一个触发信号,相机会快速连续捕捉多张图像(“脉冲串”)。
  • 触发信号包括软件触发信号和硬件触发信号。
  • 曝光时间是预先设定的。
  • 以传感器支持的最快速度捕捉图像序列。
  • 定时器用于对图像采集进行定时,可在设定的时间结束后自动停止采集图像。
  • 当定时器处于启用状态时,相机不再处理触发信号。

传输速率可能会超过数据接口的最大带宽,具体取决于“脉冲串”的速度和数据量!因此,需要检查相机能否保持传输该种脉冲串,若可以保持,确认保持时长以及两个脉冲串之间需要时间间隔。

配置采集参数,使相机在 Timer0 运行(即处于“启用”状态)时开始捕捉图像。也就是说,采集完毕后,只要传感器再次准备就绪,相机便立即开始下一轮采集。

采集配置

AcquisitionMode   = Continuous
ExposureTime      = 15000
TriggerSelector   = ExposureStart
    TriggerMode       = On
    TriggerSource     = Timer0Active
    TriggerActivation = LevelHigh

定时器由外部硬件信号的上升沿触发 (Line0)。其持续时间 (TimerDuration) 精确至秒 (1 s = 1000000 µs)。

定时器配置

TimerSelector          = Timer0
    TimerDuration          = 1000000
    TimerTriggerSource     = Line0
    TimerTriggerActivation = RisingEdge

若手动启动采集,系统即准备好接收触发信号。

停止采集

Execute AcquisitionStart

可使用硬件触发信号 (Line0) 捕捉图像序列。当定时器的预设时间结束时,图像采集自动停止。

AcquisitionStop 命令用于结束采集模式:

停止采集

Execute AcquisitionStop

在执行 AcquisitionStop 命令之后,对于已开始采集的图像,相机会继续完成曝光并传输图像。

信号/时间图

受时间控制且帧率固定的图像序列

使用案例:发生特定事件时,要对测试物体的反应(如反应时间、行为、决策)进行分析和测试。要实现这一目标,相机必须在收到外部触发信号时便立即启动图像采集。在预定的时间段内,按照合适的帧率捕捉图像,以便记录反应情况。

阅读更多 …

特征

  • 在设定时间内相机会捕捉几张图像。
  • 触发信号包括软件触发信号和硬件触发信号。
  • 曝光时间是预先设定的。
  • 相机以指定帧率捕捉图像序列。
  • 定时器用于对图像采集进行定时,可在设定的时间结束后自动停止采集图像。
  • 当定时器处于启用状态时,相机不再处理触发信号。

相机接收到外部触发信号 (Line0) 时,会开始持续进行图像采集(10 帧/秒),并在 Timer0 结束后停止进行图像采集。

采集配置

AcquisitionMode   = Continuous
ExposureTime      = 15000
AcquisitionFrameRate = 10
TriggerSelector   = AcquisitionStart
    TriggerMode       = On
    TriggerSource     = Line0
    TriggerActivation = RisingEdge
TriggerSelector   = AcquisitionEnd
    TriggerMode       = On
    TriggerSource     = Timer0End
    TriggerActivation = RisingEdge

当图像采集启动 (AcquisitionStart) 时,相机会触发定时器并将其设置为 1 秒(1 s = 1000000 µs)。

定时器配置

TimerSelector          = Timer0
    TimerDuration          = 1000000
    TimerTriggerSource     = AcquisitionStart
    TimerTriggerActivation = RisingEdge

若手动启动采集,系统即准备好接收触发信号。

停止采集

Execute AcquisitionStart

可使用硬件触发信号 (Line0) 捕捉图像序列。当定时器的预设时间结束时,图像采集自动停止。相机每次收到硬件触发信号时,都会启动采集新的图像序列。

AcquisitionStop 命令用于结束采集模式:

停止采集

Execute AcquisitionStop

在执行 AcquisitionStop 命令之后,对于已开始采集的图像,相机会继续完成曝光并传输图像。

信号/时间图

触发技巧

下列技巧和说明可帮助您避免错误并更好地了解触发功能的行为:

  • 可能会多次出现缩进参数,而且各父节点的值可能不尽相同。
  • 必须将不需要使用的触发源设为停用 (“OFF”)。
  • 对于已开始采集的图像,相机始终会继续完成曝光并传输图像,即使控制信号已停止。
  • 要配置触发参数,必须停止图像采集 (AcquisitionStop)!之后如果需要使用配置的触发,则必须重新启动图像采集 (AcquisitionStart)!
  • 若触发模式已启用 (TriggerMode = ON),AcquisitionStart 命令只用于将图像采集设为“就绪”状态。对于已配置的 TriggerSource,只有在收到指定的触发信号时,相机才会启动图像采集。
  • 如果要连续触发图像采集,通常情况下,可以将 AcquisitionMode 设为 Continuous。否则,相机会在捕捉一张图像 (Single Frame) 或 X 张图像 (Multi Frame) 后自动停止图像采集。
  • 您可以使用“UserOutputs”轻松模拟外部触发信号。
阅读更多 …

模拟外部触发信号

如果想要测试复杂的触发应用程序却苦于无任何可用的硬件信号,您可以使用模拟外部触发信号功能。要使用这一功能,将 UserOutput 设置在(硬件输入)线路,并将其设置为输出。然后就可使用 UserOutput 启用或禁用该线路,就如同存在硬件信号一样。

示例:在 Line2 上模拟硬件触发

ExposureStart 触发设置在 Line2 上:

采集配置

TriggerSource = Line2

UserOutput0 设置为信号源,将 Line2 设置为输出线路:

线路配置

LineSelector = Line2
LineMode     = Output
LineSource   = UserOutput0

一启动图像采集,系统即准备好接收触发信号:

开始采集

Execute AcquisitionStart

现在可通过开启和关闭 UserOutput0Line2 上启用触发信号并触发您的应用程序。启用 UserOutputValue 后会立即产生信号。

开始采集

UserOutputSelector = UserOutput0
UserOutputValue    = true
UserOutputValue    = false