为了让您对 VisualApplets 有一个初步的了解,本章将为您简要介绍该工具。 其中将展示生成图像处理应用所需的所有步骤。 您将了解到实现应用的效率有多高,并且无需具备 FPGA 或任何其他硬件相关的专业知识,操作也是如此简便。
-
点击 Windows 菜单或桌面上的 VisualApplets 程序图标启动 VisualApplets。 首先将打开主窗口,此时尚未加载任何项目。
您现在可以立即开始实现您的第一个设计。 第一步是创建一个新项目。
-
点击 → ( Ctrl+N ) 或使用 文件 图标栏中的 新建 图标。 将打开一个 新建项目 窗口,允许您指定项目名称、目标硬件平台和目标运行时。 如果您在当前开发步骤中尚不清楚这些设置,只需为项目命名并使用默认设置即可。 您以后随时可以更改这些设置。
-
要按照我们这里的示例操作,只需使用以下设置:
-
项目名称:"helloWorld"
-
硬件平台:imaFlex CXP-12 Quad 采集卡
-
目标运行时:Microsoft Windows 64 位系统。
-
-
点击 确认您的设置。
VisualApplets 现在将启动一个新项目。 您将在程序窗口中央看到一个空白的设计窗口。 (如果您选择 microEnable 5 作为硬件平台,两个必不可少的控制算子 Applet Properties 和 Board Status 将自动插入到空设计中。) 在右侧的 Project Info 选项卡中,将显示有关当前项目的各种信息,如项目名称、目标硬件、目标平台等。
在 VisualApplets 中,图像处理操作由算子表示。 所有这些算子都可以在 VisualApplets 设计窗口右侧的算子库中找到。 通过拖放操作,您可以非常轻松地将算子放置到设计窗口中。设计中算子的实例称为模块。 算子可以具有输入端口和输出端口。 设计中的算子(即模块)可以使用这些端口进行连接。 模块之间的连接称为链接,在设计窗口中由箭头表示。 这些模块和链接构成了图像(或信号)处理流水线; 因此,操作的顺序由模块的顺序决定。
对于我们的第一个设计,我们需要以下三个算子:
-
来自 mE5-MA-VCL 库的算子 CameraGrayAreaBase
-
来自 Memory 库的算子 ImageBuffer
-
来自 mE5-MA-VCL 库的算子 DmaToPC
要在您的设计中使用这些算子:
-
在它们的库中找到这些算子,并将其拖放到您的设计窗口中,如下图所示:
下一步是通过链接连接您设计中的模块。
点击端口将启动一个新链接,通过第二次点击目标端口即可完成链接。
-
要将相机模块连接到缓冲区模块,请点击相机模块的输出端口,然后点击缓冲区模块的输入端口。
-
以相同方式将缓冲区模块与 DMA 模块连接起来。
保存您的设计。如果您是第一次保存设计,保存对话框将提供项目名称作为您的设计文件名称。
![]() |
文件名和项目名 |
|---|---|
|
如果您是第一次保存设计,或者使用了另存为...选项, 保存/另存为...对话框将提供项目名称作为您的设计文件名称。 |
现在您已完成第一个设计。 下一步,您必须指定各个模块和连接的设置 (否则,设计将使用预设的默认 Property)。
-
要对模块进行参数化,只需双击该模块。 将打开一个对话框窗口,其中列出了该模块的所有参数。
-
根据您的设计需求设置 Property。对于您现在正在设计的第一个示例 Applet,只需将 模块名称更改为“Camera”、“Buffer”和“DMA”。
-
点击。
-
点击关闭 Property 窗口。
-
保存您的设计。
![]() |
算子参数 |
|---|---|
|
参数始终是特定于算子的;因此,设置选项因算子而异。 |
下一步是编辑设计连接的 Property。 在您刚刚创建的示例 Applet 中,无需更改任何连接 Property。 您只需使用默认设置即可。
但是,每当您需要对设计的连接进行参数化时,都应按以下步骤操作:
-
双击您要参数化的连接。
-
输入所需的设置。
-
点击。
-
点击关闭 Property 窗口。
您现在已经完全实现了您的第一个应用程序,这是一个简单的图像采集。 接下来,使用 VisualApplets 的设计规则检查 (DRC) 功能检查您的设计是否存在错误。
-
点击 → ( Ctrl+F7 ) or使用构建图标栏中的图标 设计规则检查级别 1。
-
在右侧的项目信息窗口中,切换到DRC 日志选项卡。
在此处将显示 DRC 分析结果,如下图所示:
![]() |
重要提示 |
|---|---|
|
如果 DRC 检测到错误,您必须在继续下一步之前对其进行纠正。 检测到的错误以链接格式列出。 如果您点击列出的错误之一,设计窗口中相应的模块或连接将被高亮显示。 |
DRC 成功后,保存您的设计:
-
点击 → ( Ctrl+S ) 或使用 File 图标栏中的 Save 图标。
如果发生以下情况,您需要编辑构建设置:
-
您为 microEnable 5 marathon 平台创建设计。
-
您使用的是 Xilinx Vivado。
-
您使用的是高于 9.2 版本的 Xilinx ISE。
要为您的特定环境设置构建设置,请按以下步骤操作:
-
点击菜单 → 。
将打开 Build Settings 对话框。
-
点击 Add 按钮。
-
为这些构建设置选择目标硬件平台(采集卡),并点击 OK 确认。
-
为您刚刚创建的新建构建设置命名。
-
激活 Active configuration 选项(位于您输入名称的字段正下方)。
-
保持 Precondition Check 处于激活状态。
-
在 Xilinx Build Flow 下,选择您要使用的 Xilinx Tool(Xilinx ISE 或 Xilinx Vivado)。
-
禁用 Use system environment instead 选项。
-
从文件系统中选择一个 Xilinx 设置批处理文件。您可以在 Xilinx 安装文件夹中找到该批处理文件:
-
ISE: \Xilinx\<version_number>\ISE_DS\settings64.bat.
-
Vivado: \Xilinx\Vivado\<version_number>\settings64.bat.
在为 microEnable 5 平台开发小应用程序时,我们建议使用 64 位 Windows 操作系统。 请确保选择与您正在使用的操作系统相匹配的批处理文件, 例如针对 64 位 Windows 操作系统的 "settings64.bat" 文件。
-
-
保持所有其他设置不变。
-
点击 OK。
有关构建设置选项的更多详细信息,请参阅 'Build Settings' 节
最后一步是从您的设计中构建一个小应用程序。
![]() |
构建前提条件 |
|---|---|
|
只有正确安装 XILINX 工具后,才能执行构建过程。 有关 XILINX 工具安装的更多信息,请参阅 Installing the Xilinx Toolchain 节。 如果您为 microEnable 5 marathon 采集卡创建设计, 或者使用高于 9.2 版本的 Xilinx ISE, 您需要在继续之前定义构建设置,请参阅 'Configuring the Build Settings ' 节。 |
要创建位流(*.hap 文件):
-
点击 → ( F7 ) 或使用 Build 工具栏中的 Build 图标。
将打开 Build 对话框。
-
在 Xilinx configuration 下,选择您要使用的构建配置 (从您在 Build Settings 对话框中定义的配置中选择)。
-
点击 Start 即可正式开始生成比特流。
VisualApplets 现在将使用 Xilinx 工具把应用程序转换为 FPGA 比特流,即“程序” 或“applet”。
![]() |
构建时间可能会较长 |
|---|---|
|
布局布线(Place and Route)过程的持续时间取决于设计的复杂度。 高度复杂的设计的构建可能需要花费数小时。 |
构建成功后,applet 即已完全生成。
您的 applet 名称(*.hap 文件)与设计文件的名称(*.va)相同。 项目名称对 applet 名称(*.hap 文件)没有影响。
至此,您已完成在 VisualApplets 中的操作,可以在真实的 FPGA 硬件上使用该 applet。
有关如何在硬件上运行 VisualApplets 设计的说明,请参见 'Running Your Applet on Hardware' 一节。
![]() |
前提条件: |
|---|---|
|
How you get your applet running depends on the frame grabber generation you are using.
microEnable 5 marathon: 对于 microEnable 5 marathon 采集卡, 您必须先通过固件烧录工具将 *.hap 文件(applet)加载到采集卡上, 然后才能选择并启动 applet(请参见 'Flashing the Applet on the Frame Grabber (Only mE5)')。
imaFlex: 对于 imaFlex 平台,您可以直接从本地文件系统中选择 applet(*.hap 文件)并在 采集卡上启动它。
您可以
-
使用 microDiagnostics 工具(作为 Framegrabber SDK 的一部分提供)直接查看和测试 applet 的图像处理结果 (请参见 https://docs.baslerweb.com/frame-grabbers/managing-applets-micro-diagnostics)。
-
通过应用程序编程接口启动 applet(请参见 'Accessing the Applet via SDK')。
如果您使用的是 microEnable 5 marathon 采集卡,则需要使用新 applet 烧录您的采集卡。
如果您准备在 imaFlex 采集卡上使用新 applet,只需跳过本节即可。
要烧录您的采集卡:
-
Start the tool microDiagnostics.
-
选择您要使用的采集卡。
-
点击按钮 Flash Selected Board(s)。将打开一个新窗口。
-
转到存储在 VisualApplets 中创建的 *.hap 文件的目录,然后选择该文件。
-
点击 Open,然后点击 Yes 进行确认。
-
等待新固件完全安装。 您将在 microDiagnostics 中收到相应的消息。
-
按照消息中的说明操作。
有关如何烧录特定图像采集卡的详细信息,请参阅特定图像采集卡的用户手册 (将 Applet 烧录到 marathon Frame Grabbers 上)。
要测试您的 Applet 并设置一些初始参数,可以使用 microDisplay 工具:
-
将您在 VisualApplets 中创建的
*.hap文件保存到 Framegrabber SDK 安装目录中:[Framegrabber SDK installation directory]/Hardware Applets. -
启动 microDisplay 工具,可以直接从 VisualApplets 中点击 → ( F5 ),或者通过 Windows 开始菜单启动。
-
在对话框 I want to… 中,选择 Load Applet。
-
在 Load Hardware Applet 对话框中, 在 Board 下选择您要使用的图像采集卡。 所选采集卡可用的所有 Applet 将立即显示出来。
对于 microEnable 5,将仅提供一个 Applet(即用于烧录板卡的那一个)。
-
双击选择要使用的
*.hap要使用的文件。 -
点击 加载 按钮,将所选 Applet(
*.hap文件)加载到图像采集卡上。 -
关闭 Load Hardware Applet 对话框。
-
使用 microDisplay 程序窗口的参数面板配置图像采集卡。
当使用多台相机时,首先选择要配置的端口。 配置您正在使用的所有端口。
根据需要设置参数,例如图像高度和图像宽度。 为此,直接右键点击该值并选择 Edit。
配置要使用的特定操作模式(例如,触发设置)。
-
点击按钮 Grab and display an infinite number of frames,在图像采集卡上开始图像采集。
采集到的图像现在会显示在 microDisplay 中。
-
要停止采集,请点击 microDisplay 中的 Stop 按钮。
要在您自己的软件 (SDK) 中开始使用该 Applet:
-
在 Framegrabber API 中,使用调用
Fg_Init来启动 applet。指定存储以下内容的路径:
*.hap文件的存放路径。
![]() |
启动相机 |
|---|---|
|
根据相机接口类型的不同,启动 GenICam 资源管理器工具来控制相机可能会很有帮助。 有关详细信息,请参阅 Framegrabber SDK documentation。 |
您刚刚成功实现了您的第一个 VisualApplets 设计。 如果您有兴趣深入了解 VisualApplets 的分步介绍,我们建议阅读 Basics and Examples。
您还可以遵循 From Empty Design to Running Applet 教程主题, 或者从 Overview 教程主题开始。
如果您想了解有关该程序功能的更多信息,请继续阅读本用户手册中 Basic Functionality 的下一章。 在这里,您将找到详细解释的所有 VisualApplets 功能。在章节 The User Interface of VisualApplets 中,您可以熟悉 VisualApplets 的用户界面选项。
您也可以直接在 VisualApplets 中访问用户手册中提供的所有信息。 单击程序中的 按钮,您将被自动引导至用户手册中的相应解释。
如果您更喜欢有针对性的工具介绍,Basler 提供 VisualApplets 培训班和指导。 请随时通过 Basler Sales 与我们联系。




![[注意]](../common/images/admon/note.png)


![[重要]](../common/images/admon/important.png)

上一页

