主要内容

同步NI帧采集和数据采集卡

这个例子展示了如何使用图像采集工具箱™,数据采集工具箱™和NI®RTSI功能设备同步图像和数据采集的开始。

经常需要使两个或多个采集板非常紧密地同步。例如,您可以从模拟传感器(如应变计)记录电压,以及在实验期间同步视频。对于同步/触发信号,您可以使用RTSI电缆在NI PCI-6229数据采集卡和pci -1430帧采集器之间进行可靠连接。

配置数据采集板

使用数据采集工具箱,创建模拟输入对象来记录应变计的电压,并设置采集参数。

创建对象。D = daq(“倪”);增加一个记录应变的通道。Ai = addinput(d,“Dev1”“ai0”“电压”);设置采样率为10,000 Hz。d.Rate = 10000;

接下来,使用RTSI1终端作为外部触发源,配置硬件触发采集的DataAcquisition对象。

addtrigger (d,“数字”“StartTrigger”“外部”“Dev1 / RTSI1”);d.DigitalTriggers(1)。条件=“RisingEdge”

配置镜像采集板

使用图像采集工具箱,创建视频输入对象来记录视频,并设置采集参数,并在采集开始时将RTSI1驱动到高。

创建对象。视频输入(“倪”2);%设置为每次触发获取大约一秒的帧。从视频。FramesPerTrigger = 30;

为了驱动数据采集卡的RTSI线,您需要在帧采集器上设置正确的线路和极性。此外,您需要确定哪个帧抓取事件将驱动RTSI线。你可以通过查看以“DriveLine”和“DrivePolarity”结尾的设备特定源属性来查看可用的事件列表:

获取当前选择的源。SRC = getselectedsource(vid);显示属性及其可能的设置。集(src)
一般设置:标签设备特定属性:AcquisitionDoneDriveLine:[{一}| external0 | rtsi0 | rtsi1 | rtsi2 | rtsi3 | rtsi4 | rtsi5 | rtsi6] AcquisitionDoneDrivePolarity: [{activeHigh} | activeLow] AcquisitionInProgressDriveLine:[{一}| external0 | rtsi0 | rtsi1 | rtsi2 | rtsi3 | rtsi4 | rtsi5 | rtsi6] AcquisitionInProgressDrivePolarity: [{activeHigh} | activeLow] ExternalTriggerLineFilter:[从| {}]FrameDoneDriveLine:[{一}| external0 | rtsi0 | rtsi1 | rtsi2 | rtsi3 | rtsi4 | rtsi5 | rtsi6] FrameDoneDrivePolarity: [{activeHigh} | activeLow] FrameStartDriveLine:[{一}| external0 | rtsi0 | rtsi1 | rtsi2 | rtsi3 | rtsi4 | rtsi5 | rtsi6] FrameStartDrivePolarity: [{activeHigh} | activeLow] HSyncDriveLine:[{一}| external0 | rtsi0 | rtsi1 | rtsi2 | rtsi3 | rtsi4 | rtsi5 | rtsi6] HSyncDrivePolarity: [{activeHigh} | activeLow] RTSITriggerLineFilter:[从| {}]VSyncDriveLine:[{none} | external0 | rtsi0 | rtsi1 | rtsi2 | rtsi3 | rtsi4 | rtsi5 | rtsi6] VSyncDrivePolarity: [{activeHigh} | activeLow]

在这种情况下,您希望在采集进行时将RTSI线路1驱动到高电平。这确保了一旦收购开始,就能将生产线推高。要做到这一点,你需要将正在进行的采集驱动器线设置为'rtsi1':

当采集开始时,将RTSI1设置为高。src。AcquisitionInProgressDriveLine =“rtsi1”

查看上面的输出,您可以看到正在进行的获取事件的极性已经设置为'activeHigh',因此您不需要设置它。

请注意,您可以驱动的最大行数取决于硬件,并且可能因设备而异。

此时,设置为在图像采集设备启动时从每个设备获取大约一秒钟的数据。

开始收购

现在可以启动模拟输入对象,该对象默认情况下获取一秒钟的数据。请注意,它正在等待硬件触发器。

(d) d.WaitingForDigitalTrigger开始
Ans =逻辑1

您现在可以显示视频输入对象的摘要,并看到它被设置为在启动时立即触发。

从视频
视频输入对象使用'PCIe-1430'的摘要。采集源:0通道可用。采集参数:'Channel 0'是当前选中的信号源。使用所选源每个触发器30帧。'img0_Port0'视频数据开始时要记录。抓取第一个每1帧(s)。在触发时将数据记录到“内存”。触发参数:启动时1个“立即”触发器。状态:等待启动。启动后获得0帧。 0 frames available for GETDATA.

当你启动视频输入对象时,它将立即被触发并开始获取。此时,帧采集器将通过RTSI线1向数据采集卡发送一个信号,这将导致数据采集几乎同步地开始。

开始(vid)等待两个对象,直到你完成获取。等待(vid),等待(d, 2)

显示收购摘要

如果您现在显示摘要,您将看到两个设备都已获得数据。

d.NumScansAcquired
Ans = 10000

和:

从视频
视频输入对象使用'PCIe-1430'的摘要。采集源:0通道可用。采集参数:'Channel 0'是当前选中的信号源。使用所选源每个触发器30帧。'img0_Port0'视频数据开始时要记录。抓取第一个每1帧(s)。在触发时将数据记录到“内存”。触发参数:启动时1个“立即”触发器。状态:等待启动。从开始到现在已经获得了30帧。 30 frames available for GETDATA.

清理物体

一旦不再需要视频输入和模拟输入对象,请删除它们并从工作区中清除对源的引用。

删除(vid)清晰从视频dsrc
Baidu
map