SFNC —— 采集控制(四)(中)

简介: SFNC —— 采集控制(四)

SFNC —— 采集控制(四)(上):https://developer.aliyun.com/article/1598541

5. 采集控制功能(Acquisition Control features)

    本节详细描述了所有与采集相关的特性。

(1)采集控制(AcquisitionControl)

  用于采集和触发控制特性的类别。

(2)采集模式(AcquisitionMode)

    设置设备的采集模式。它主要定义了在采集过程中要捕获的帧数以及采集停止的方式。可能的值是:

  • 单帧(SingleFrame):捕获一帧。
  • 多帧(MultiFrame):捕获由采集帧计数(AcquisitionFrameCount)所指定的帧数。
  • 连续(Continuous):连续捕获帧,直到使用采集停止(AcquisitionStop)命令停止。

  这一特性对于大多数传输层的发射机和收发器通常是必须具备的。

    <Enumeration NameSpace="Standard" Name="AcquisitionMode">
      <ToolTip>Sets the acquisition mode of the device.</ToolTip>
      <Description>Sets the acquisition mode of the device.</Description>
      <DisplayName>Acquisition Mode</DisplayName>
      <Visibility>Expert</Visibility>
      <Streamable>Yes</Streamable>
      <EnumEntry NameSpace="Standard" Name="Continuous">
        <pIsImplemented>AcqModeContinuousInq_Bit</pIsImplemented>
        <Value>2</Value>
      </EnumEntry>
      <EnumEntry NameSpace="Standard" Name="SingleFrame">
        <pIsImplemented>AcqModeSingleFrameInq_Bit</pIsImplemented>
        <Value>0</Value>
      </EnumEntry>
      <EnumEntry NameSpace="Standard" Name="MultiFrame">
        <pIsImplemented>AcqModeMultiFrameInq_Bit</pIsImplemented>
        <Value>1</Value>
      </EnumEntry>
      <pValue>AcquisitionMode_Reg</pValue>
    </Enumeration>

(3)开始采集(AcquisitionStart)

   开始采集该设备。捕获的帧数由采集模式(AcquisitionMode)指定。


   采集可能受到各种触发器的制约(参见触发器(Trigger)…特性)。在与采集相关的触发器生效之前,必须向设备发送采集启动命令。


   请注意,除非 AcquisitionArm 自上次特性更改后执行,否则在 AcquisitionStart 之前必须验证所有当前特性的一致性。除非设备中的特性被更改,否则不会在随后的采集中重复此验证。


   如果 AcquisitionStart 功能当前不可写(锁定),应用程序不能启动采集,并且必须避免使用该特性,直到功能再次成为可写。


   这一特性对于大多数传输层的发射机和收发器通常是必须具备的。

    <Command NameSpace="Standard" Name="AcquisitionStart">
      <ToolTip>Starts the Acquisition of the device.</ToolTip>
      <Description>Starts the Acquisition of the device.</Description>
      <DisplayName>Acquisition Start</DisplayName>
      <Visibility>Expert</Visibility>
      <pIsLocked>NOT_TLParamsLocked</pIsLocked>
      <ImposedAccessMode>WO</ImposedAccessMode>
      <pValue>AcquisitionStart_Reg</pValue>
      <CommandValue>1</CommandValue>
    </Command>
    <MaskedIntReg NameSpace="Custom" Name="AcquisitionStart_Reg">
      <pAddress>AcquisitionStart_RegAddr</pAddress>
      <Length>4</Length>
      <AccessMode>RW</AccessMode>
      <pPort>Device</pPort>
      <Bit>0</Bit>
      <Sign>Unsigned</Sign>
      <Endianess>BigEndian</Endianess>
    </MaskedIntReg>

(4)采集停止(AcquisitionStop)

    在当前帧的末端停止设备的采集。它主要用于连续采集模式,但可用于任何采集模式。

  如果相机正在等待触发器,待定的帧将被取消。如果没有正在进行的采集,则会忽略该命令。

    这一特性对于大多数传输层的发射机和收发器通常是必须具备的。

    <Command NameSpace="Custom" Name="AcquisitionStop">
      <ToolTip>Stops the acquisition of the device at the end of the current frame.</ToolTip>
      <Description>Stops the acquisition of the device at the end of the current frame.</Description>
      <DisplayName>Acquisition Stop</DisplayName>
      <Visibility>Expert</Visibility>
      <ImposedAccessMode>WO</ImposedAccessMode>
      <pValue>AcquisitionStop_Reg</pValue>
      <CommandValue>0</CommandValue>
    </Command>
    <MaskedIntReg NameSpace="Custom" Name="AcquisitionStop_Reg">
      <pAddress>AcquisitionStop_RegAddr</pAddress>
      <Length>4</Length>
      <AccessMode>RW</AccessMode>
      <pPort>Device</pPort>
      <Bit>0</Bit>
      <Sign>Unsigned</Sign>
      <Endianess>BigEndian</Endianess>
    </MaskedIntReg>

(5)采集停止模式(AcquisitionStopMode)

Name(名称) AcquisitionStopMode
Category(分类) AcquisitionControl
Level(级别) Optional
Interface(接口) IEnum
Access(访问) Read/Write
Unit (单位) -
Visibility(可见性) Expert
Values Complete
Immediate(立即)
ImmediateWithPadding

   控制采集停止(AcquisitionStop)命令和采集如何停止使用触发器(例如采集活动(AcquisitionActive)、帧突发活动(FrameBurstActive)、帧活动(FrameActive)或帧结束(FrameEnd)触发器),结束正在进行的帧。该特性主要用于线性扫描(Linescan)设备,其中一帧中的每一行都是按顺序采集的。


完成(Complete):在帧期间停止时,设备将继续采集行,直到达到指定的高度,以提供完整的默认大小帧。请注意,如果每行都从外部源触发,并且此行触发停止,则不交付帧,并且需要采集中止。

立即(Immediate):即使在一帧期间,采集也会立即停止,只有在当时采集的线路才会被交付。

立即填充(ImmediateWithPadding):即使在一帧内,采集也会立即停止,但帧的其余部分将被数据填充起来,以提供一个完整的默认高度帧。注意:接收方如何知道哪些数据是有效的,这超出了此特性的范围,例如,它可以使用块信息来完成。

(6)采集中止(AcquisitionAbort)

(7)AcquisitionArm

(8)采集帧计数(AcquisitionFrameCount)

    在多帧采集模式下要采集的帧数。

    <Integer NameSpace="Standard" Name="AcquisitionFrameCount">
      <ToolTip>Number of frames to acquire in multi-frame acquisition mode.</ToolTip>
      <Description>Number of frames to acquire in multi-frame acquisition mode.</Description>
      <DisplayName>Acquisition Frame Count</DisplayName>
      <Visibility>Expert</Visibility>
      <pIsImplemented>AcqModeMultiFrameInq_Bit</pIsImplemented>
      <pIsAvailable>AcquisitionFrameCountAvailableInq_Int</pIsAvailable>
      <pIsLocked>TLParamsLocked</pIsLocked>
      <Streamable>Yes</Streamable>
      <pValue>AcquisitionFrameCount_Reg</pValue>
      <pMin>AcqFrameCountMinInq_Reg</pMin>
      <pMax>AcqFrameCountMaxInq_Reg</pMax>
      <Inc>1</Inc>
    </Integer>
    <IntReg NameSpace="Custom" Name="AcquisitionFrameCount_Reg">
      <pAddress>AcquisitionFrameCount_RegAddr</pAddress>
      <Length>4</Length>
      <AccessMode>RW</AccessMode>
      <pPort>Device</pPort>
      <pInvalidator>UserSetLoad_Reg</pInvalidator>
      <Sign>Unsigned</Sign>
      <Endianess>BigEndian</Endianess>
    </IntReg>
    <IntReg NameSpace="Custom" Name="AcqFrameCountMinInq_Reg">
      <pAddress>AcqFrameCountMinInq_RegAddr</pAddress>
      <Length>4</Length>
      <AccessMode>RO</AccessMode>
      <pPort>Device</pPort>
      <Sign>Unsigned</Sign>
      <Endianess>BigEndian</Endianess>
    </IntReg>
    <IntReg NameSpace="Custom" Name="AcqFrameCountMaxInq_Reg">
      <pAddress>AcqFrameCountMaxInq_RegAddr</pAddress>
      <Length>4</Length>
      <AccessMode>RO</AccessMode>
      <pPort>Device</pPort>
      <Sign>Unsigned</Sign>
      <Endianess>BigEndian</Endianess>
    </IntReg>

(9)AcquisitionBurstFrameCount

    为每个 FrameBurstStart 触发器要采集的帧数。

    只有在启用 FrameBurstStart 触发器并禁用 FrameBurstEnd 触发器时,才使用此功能。请注意,如果采集模式为多帧,则捕获的帧总数也受采集帧数的限制,如果采集模式为单帧,则忽略。

    <Integer NameSpace="Standard" Name="AcquisitionBurstFrameCount">
      <ToolTip>Number of frames to acquire for each FrameBurstStart trigger.</ToolTip>
      <Description>Number of frames to acquire for each FrameBurstStart trigger.</Description>
      <DisplayName>Acquisition Burst Frame Count</DisplayName>
      <Visibility>Expert</Visibility>
      <pIsAvailable>AcquisitionBurstFrameCountAvailableInq_Int</pIsAvailable>
      <pIsLocked>TLParamsLocked</pIsLocked>
      <Streamable>Yes</Streamable>
      <pValue>AcquisitionBurstFrameCount_Reg</pValue>
      <pMin>AcqBurstFrameCountMinInq_Reg</pMin>
      <pMax>AcqBurstFrameCountMaxInq_Reg</pMax>
      <Inc>1</Inc>
    </Integer>
    <IntReg NameSpace="Custom" Name="AcquisitionBurstFrameCount_Reg">
      <pAddress>AcquisitionBurstFrameCount_RegAddr</pAddress>
      <Length>4</Length>
      <AccessMode>RW</AccessMode>
      <pPort>Device</pPort>
      <pInvalidator>UserSetLoad_Reg</pInvalidator>
      <Sign>Unsigned</Sign>
      <Endianess>BigEndian</Endianess>
    </IntReg>
    <IntReg NameSpace="Custom" Name="AcqBurstFrameCountMinInq_Reg">
      <pAddress>AcqBurstFrameCountMinInq_RegAddr</pAddress>
      <Length>4</Length>
      <AccessMode>RO</AccessMode>
      <pPort>Device</pPort>
      <Sign>Unsigned</Sign>
      <Endianess>BigEndian</Endianess>
    </IntReg>
    <IntReg NameSpace="Custom" Name="AcqBurstFrameCountMaxInq_Reg">
      <pAddress>AcqBurstFrameCountMaxInq_RegAddr</pAddress>
      <Length>4</Length>
      <AccessMode>RO</AccessMode>
      <pPort>Device</pPort>
      <Sign>Unsigned</Sign>
      <Endianess>BigEndian</Endianess>
    </IntReg>

(10)AcquisitionFrameRate(采集帧速率)

    控制捕获帧时的采集速率(以赫兹为单位)。

    帧触发器的触发模式(TriggerMode)必须关闭。

11)AcquisitionFrameRateEnable(采集帧速率启用)

    控制采集帧速率特性是否可写并用于控制采集速率。否则,采集率是由其他功能的组合,如曝光时间等。

    <Boolean Name="AcquisitionFrameRateEnable">
      <ToolTip>Enables manual control of the camera frame rate.</ToolTip>
      <Description>Enables manual control of the camera frame rate.</Description>
      <DisplayName>Acquisition Frame Rate Control Enable</DisplayName>
      <Visibility>Beginner</Visibility>
      <pIsImplemented>AcqFrameRateEnInq_Bit</pIsImplemented>
      <Streamable>Yes</Streamable>
      <pValue>AcqFrameRateEnCtrlVal_Reg</pValue>
      <OnValue>1</OnValue>
      <OffValue>0</OffValue>
    </Boolean>

(12)AcquisitionLineRate(采集线路速率)

Name(名称) AcquisitionLineRate
Category(分类) AcquisitionControl
Level(级别) Recommended
Interface(接口) IFloat
Access(访问) Read/Write
Unit (单位) Hz
Visibility(可见性) Beginner
Values Device-specific

    控制捕获一帧中的线的速率(单位为赫兹)。

    线路触发器(Line trigger)的触发模式(TriggerMode)必须已关闭。这通常只适用于线扫描相机。

(13)AcquisitionLineRateEnable(采集线路速率启用)


    控制采集线速率特性是否可写并用于控制采集速率。否则,采集率是由其他功能的组合,如曝光时间等。

(14)AcquisitionStatusSelector(采集状态选择器)

Name(名称) AcquisitionStatusSelector
Category(分类) AcquisitionControl
Level(级别) Recommended
Interface(接口) IEnumeration
Access(访问) Read/Write
Unit (单位) -
Visibility(可见性) Expert

image.png

  选择使用采集状态来读取的内部采集信号。具体情况见图 5-1 和图 5-3 。可能的值包括:

  • 采集触发器等待(AcquisitionTriggerWait):设备目前正在等待捕获一个或多个帧的触发器。
  • 采集活动(AcquisitionActive ):设备目前正在采集一个或多个帧。
  • 采集传输(AcquisitionTransfer):设备目前正在传输一个或多个帧的采集。
  • 帧触发器等待(FrameTriggerWait):设备当前正在等待帧启动触发器。
  • 帧活动(FrameActive):设备当前正在捕获一个帧。
  • 曝光活动(ExposureActive):设备正在曝光一个帧。
  • 帧传输(不用):请参见传输状态。

(15)AcquisitionStatus(采集状态)

    读取使用 AcquisitionStatusSelector 所选择的内部采集信号的状态。

6. 触发控制功能(Trigger Control features)

    触发器控制部分描述了使用触发器(s)与图像采集相关的所有特征。

   可以使用一个或多个触发器(Triggers)来控制采集(Acquisition)(图 5-1) 、突发帧爆发(Burst of Frames)(图 5-2) 、单个帧(图 5-3 ) 或设备每一行帧(Line of a Frame)(图5-4) 的开始。触发器还可以用于控制在帧开始时的曝光持续时间。


   TriggerSelector 用于选择要配置的触发器类型。标准触发类型是:AcquisitionStart, AcquisitionEnd, AcquisitionActive, FrameBurstStart, FrameBurstEnd, FrameBurstActive, FrameStart, FrameEnd, FrameActive, LineStart, ExposureStart, ExposureEnd 和 ExposureActive 。


   TriggerMode 激活/停用触发器操作。它可以是 On 或 Off 。


   TriggerSource 指定要用于选定触发器的物理输入线或内部信号。标准触发源是:Software, Line0, Line1, …, UserOutput0, UserOutput1, …, Counter0Start, Counter0End, …, Timer0Start, Timer0End , …, Encoder0, Encoder1, …, LogicBlock0, LogicBlock1, …, Action0, Action1, … , LinkTrigger0, LinkTrigger1, …。


   通过软件触发源,TriggerSoftware 命令可以被应用程序用来生成内部触发信号。


   对于硬件触发器源,TriggerActivation 指定了触发器的激活模式。这可以是 RisingEdge, FallingEdge, AnyEdge, LevelHigh 或 LevelLow 。


   TriggerOverlap 指定允许与前一帧/行重叠的触发器重叠的类型。这定义何时为新帧/行接受(或锁定)有效触发器。这可以关闭以使没有重叠,读出在曝光周期后立即接受触发器,或前帧/前行接受(锁存)在前一帧/行开始后的任何时间发生的触发器。如果基于触发器重叠控制和当前传感器状态丢弃一个触发器,则它将成为一个丢失的触发器。这表示一种过度触发的情况,通常被认为是一个可以连接到一个事件的错误。(TriggerOverlap specifies the type of trigger overlap permitted with the previous frame/ line. This defines when a valid trigger will be accepted (or latched) for a new frame/line. This can be Off for no overlap, ReadOut to accept a trigger immediately after the exposure period or PreviousFrame/PreviousLine to accept (latch) a trigger that happened at any time after the start of the previous frame/Line. If a trigger is discarded based on the trigger overlap control and the current sensor state, it becomes a missed trigger. This represents an over triggering situation and is typically considered as an error which can be connected to an Event.)


   TriggerDelay 指定在触发信号接收后有效激活前应用的延迟。


   TriggerDivider 和 TriggerMultiplier 用于控制被接受的触发器的比例。


   注意,在 Dividers, Multipliers, Delay,… 之后,一个触发器被认为是有效的。


   例如,为了设置硬件触发采集,将在来自物理 Line 1 的信号的上升边缘开始捕获每个帧,可以使用以下伪代码:

  Camera.TriggerSelector = FrameStart;
  Camera.TriggerMode = On;
  Camera.TriggerActivation = RisingEdge;
  Camera.TriggerSource = Line1;

  下图显示了 SFNC 中触发器生成的函数模型。

    它显示了在外部线路上接收的输入信号可以通过成为有效触发器(例如:FrameTrigger)。


       图 5-16 :触发器生成函数模型。


输入信号(Input Signal)表示在外部线路上接收到的电信号或内部信号。

线路I/O控制(Line I/O Control)表示如图 6-1 所示的线路控制块。

触发模式/激活(Trigger Mode/Activation)表示触发器模式和触发器激活功能的效果。

触发除法器/乘法器(Trigger Divider/Multiplier)表示触发除法器和触发乘法器特性的效果。

触发延迟(Trigger Delay)表示触发延迟特性的效果

触发重叠控制(Trigger Overlap Control)表示触发器重叠特性的效果。

有效触发器(Valid Trigger)表示传入信号成为有效触发器。

错过触发器(Missed Trigger)表示传入信号没有成为有效的触发器。

(1)TriggerSelector(触发器选择器)

    选择要配置的触发器的类型。具体情况见图 5-1 和图 5-3 。可能的值包括:

AcquisitionStart:根据采集模式(AcquisitionMode)选择启动一个或多个帧的触发器。

AcquisitionEnd:根据采集模式(AcquisitionMode)选择结束采集一个或多个帧的触发器。

AcquisitionActive:选择一个触发器,控制一个或多个帧的采集持续时间。

当触发信号变为活动时,采集被激活,当它返回到非活动状态时,采集被终止。

FrameStart:选择一个触发器来开始捕获一个帧。

FrameEnd:选择一个触发器来结束对一帧的捕获(主要用于线扫描模式)。

FrameActive:选择一个触发器来控制一帧的持续时间(主要用于线扫描模式)。

FrameBurstStart:选择一个触发器,来开始捕获采集中的帧突发。当 FrameBurstEnd 触发器激活时,AcquisitionBurstFrameCount 控制每个突发的长度 。如果采集模式是多帧的,则捕获的帧数总数也受到采集帧数的制约。

FrameBurstEnd:选择一个触发器,来结束捕获采集中的帧突发。

FrameBurstActive:选择一个触发器来控制采集中帧突发捕获的持续时间。

LineStart:选择一个触发器,开始捕获一个帧中的一行(主要用于线扫描模式)。

ExposureStart:选择一个触发器来控制一帧(或线)的曝光开始。

ExposureEnd:选择一个触发器来控制一个帧(或线)的曝光结束。

ExposureActive:选择一个触发器来控制一帧(或线)的曝光时间。

MultiSlopeExposureLimit1:选择个触发器来控制多坡曝光的第一个持续时间。根据预定义的多坡度设置继续曝光。

(2)TriggerMode(触发模式)

    控制所选的触发器是否处于活动状态。可能的值是:

  • Off:禁用所选的触发器。
  • 开启:启用所选的触发器。
    <Enumeration Name="TriggerMode" NameSpace="Standard">
      <!-- Recommended element -->
      <ToolTip>Controls if the selected trigger is active.</ToolTip>
      <Description>Controls if the selected trigger is active.</Description>
      <DisplayName>Trigger Mode</DisplayName>
      <Visibility>Beginner</Visibility>
      <ImposedAccessMode>RW</ImposedAccessMode>
      <EnumEntry Name="Off" NameSpace="Standard">
        <ToolTip>Disables the selected trigger.</ToolTip>
        <Description>Disables the selected trigger.</Description>
        <DisplayName>Off</DisplayName>
        <Value>0</Value>
      </EnumEntry>
      <EnumEntry Name="On" NameSpace="Standard">
        <ToolTip>Enable the selected trigger.</ToolTip>
        <Description>Enable the selected trigger.</Description>
        <DisplayName>On</DisplayName>
        <Value>1</Value>
      </EnumEntry>
      <Value>0</Value>
    </Enumeration>


SFNC —— 采集控制(四)(下):https://developer.aliyun.com/article/1598548

目录
相关文章
|
4月前
|
传感器
SFNC —— 采集控制(四)(上)
SFNC —— 采集控制(四)
84 3
|
4月前
|
算法 索引
SFNC —— 采集控制(四)(下)
SFNC —— 采集控制(四)
76 2
|
5月前
|
消息中间件 存储 数据采集
基于Modbus实现的工业采集数据项目(包含led的开关)
1.首先应该实现一个基于Modbus实现对一个设备的数据采集以及控制,我这边是通过Modbus_tcp实现的。 2.因为要实现采集控制程序和网页服务器的通信我这边采用的是共享内粗你和消息队列,传输存储的数据就用共享内存,操作开关就用消息队列 3.写网页服务器和一个网页,需要让其两个可以正常通信,就是让网页服务器上的东西可以发到网页上 4.然后将采集的数据通过共享内存去分享给网页服务器,让网页服务器传给网页即可,控制开关同理,反过来。
105 1
|
7月前
|
数据采集 网络架构
LabVIEW控制DO通道输出一个精确定时的数字波形
LabVIEW控制DO通道输出一个精确定时的数字波形
92 4
|
存储 算法 搜索推荐
pacs系统源码,医学图像信息的快速采集、传输、存储、显示和后处理
PACS系统以实现医学影像数字化存储、诊断为核心任务,从医学影像设备(如CT、CR、DR、MR、DSA、RF等)获取影像,集中存储、综合管理医学影像及病人相关信息,建立数字化工作流程。 系统可实现检查预约、病人信息登记、计算机阅片、电子报告书写、胶片打印、数据备份等一系列满足影像科室日常工作的功能,并且由于影像数字化存储,用户可利用影像处理与测量技术辅助诊断、方便快捷地查找资料或利用网络将资料传输至临床科室
|
传感器 编解码
开发振弦采集模块的注意事项
振弦采集模块是一种常见的传感器模块,它可以测量物体的振动情况以及振动频率等参数。在很多领域中都有广泛的应用,比如机械制造、地震监测、汽车安全等。因此,开发振弦采集模块是非常重要的工作。
开发振弦采集模块的注意事项
|
传感器 存储
VM系列振弦采集模块的信号检测与分析计算
振弦传感器钢弦起振后,信号强度在短时间内迅速达到最大,然后在钢弦张力及空气阻力作用下逐渐恢复静止。我们可将整个振动过程分为起振、调整、稳定、消失几个阶段,上述几个阶段中,起振和调整阶段的振动又叫做强迫振动,稳定与消失阶段合称为自主振动。
298 66
VM系列振弦采集模块的信号检测与分析计算
|
传感器
振弦采集模块配置工具VMTool 扩展功能指令生成器与实时曲线
指令生成器可根据需要生成符合 MODBUS 和 AABB 通讯协议的读取和控制指令。 通过点击串口调试工具内的【 指令生成器】 按钮,可打开指令生成器窗口,如下图示。 在指令生成器窗口中, 输入需要修改或读取的寄存器地址、寄存器值,点击【 生成指令】 按钮,即可在界面底部的文本框生成 16 进制指令, 点击【 复制到剪切板】 按钮可将当前显示的指令内容复制到剪切板。
振弦采集模块配置工具VMTool 扩展功能指令生成器与实时曲线
LabVIEW控制Arduino采集光敏电阻数值(基础篇—14)
利用光敏电阻和LIAT中的光敏函数库,通过Arduino Uno控制板的模拟端口采集与光敏电阻串联电阻的分压值上传给LabVIEW软件,并除以光照系数以获得光照值,实现一个光强计的功能。
|
传感器
LabVIEW控制Arduino采集多路DS18B20温度数值(进阶篇—3)
本篇博文将实现LabVIEW控制Arduino采集多路DS18B20温度数值,关于LabVIEW控制Arduino在基础篇已经讲解过很多种类温度传感器的采集方法。