企业网站的建设规划,公司网站横幅如何做,枣强网站建设价格,网页游戏开服表大全于NI kb摘录
1.概述 对于NI RIO系列设备#xff08;CompactRIO、sbRIO、myRIO等#xff09;进行编程时#xff0c;需要注意有三个不同的组件。
人机界面 (HMI) 。有时称为“主机”#xff0c;为用户提供图形用户界面#xff08;GUI#xff09;#xff0c;用于监控系统…于NI kb摘录
1.概述 对于NI RIO系列设备CompactRIO、sbRIO、myRIO等进行编程时需要注意有三个不同的组件。
人机界面 (HMI) 。有时称为“主机”为用户提供图形用户界面GUI用于监控系统状态和设置操作参数。使用 HMI 是可选的因为 RIO 产品可以编程为无头运行并且有些产品可以直接连接到嵌入式用户界面但是当实施 HMI 时它们可以采用 Windows 台式计算机、平板电脑或触摸面板的形式以计算机为例。实时RT处理器RT 处理器运行主要的实时程序并且允许 RIO 可靠地执行具有特定时序要求的程序。现场壳编程门阵列FPGA是一种可重新编程的硅芯片是嵌入式系统的核心。FPGA 将机箱 I/O 直接连接到 RT 处理器无需通过总线与其他控制器架构相比系统响应的控制延迟非常低。由于 FPGA 通过 LabVIEW FPGA 模块在硬件而不是软件中运行其代码因此其速度和可靠性通常用于使用高速缓冲 I/O、快速控制循环或自定义信号过滤的应用。 HMI、RT 和 FPGA 在 LabVIEW 项目中都有自己独特的编程位置并且每个组件内部和组件之间的通信方法也不同。本白皮书阐述了这些方法及其差异。下图显示了这些组件如何交互假定 PC 用作 HMI。 2.调用IO 在深入研究不同的通信方法之前了解数据如何从 RIO 目标上的物理输入和输出端口传输到嵌入式系统组件非常重要。使用CompactRIO时可以通过三种方式访问I/O
对于实时NI-DAQmx模式数据通过处理器通过 NI-DAQmx VI 读取。对于实时扫描IO变量模式数据通过FPGA发送但最终通过将IO节点拖放到实时VI来在处理器上访问。对于LabVIEW FPGA模式通过将IO节点拖放到FPGA VI中可以直接从FPGA内部读取I/O。 编程模式由 LabVIEW 项目中模块旁边的文本指示。 下图显示了每种模式如何通过不重叠的唯一路径发送 I/O 数据。 请注意并非所有 CompactRIO 都支持使用 NI-DAQmx 进行编程。请参阅文档了解哪些型号的 CompactRIO 支持使用 NI-DAQmx 进行编程。
3.标签、流、消息 对 RIO 目标进行编程时了解三种通信范例非常重要 标签类型有时称为当前值类型用于传达最新值。标签的一个示例是操作员通过 HMI 给出的控制设定点。该标签不需要传达控制设定点的所有历史数据而只需传达操作员输入的最新值。此外由于不需要所有先前设定点的历史数据因此不能保证标签传输。无保证传输的这一方面有时被称为“有损”通信。 相比之下流类型使用缓冲来传输每个数据点其中吞吐量比延迟更重要。流通信的一种用例是通过 FPGA 将所有温度数据传输到 RT 处理器以记录到文件中。在这种情况下历史数据是必要的因此每个数据点的传输都得到保证。有保证的传输的这个方面被称为“无损”通信。 当需要保证信息的传递并且具有低延迟时使用最后一种通信类型即消息。紧急停止命令是消息通信类型的一个示例。在下表中通信选项将指定为标签、流或消息类型。在大多数情况下由于该选项的保证传递方面可以支持流类型的通信选项也将支持消息类型。下表总结了这些通信类型。
通讯类型基本特征可选功能表现标签仅当前值定期读取动态查找、分组管理低延迟、高通道数流缓冲、阻塞超时多层缓冲高吞吐量消息缓冲、阻塞超时确认数据传输低延迟 4.通信选型摘要 下表提供了 HMI、RT 处理器和 FPGA 之间不同通信选项的最高级别概述。适用时请参阅更详细的表格。单击各个链接可查找有关该通信选项的更多详细信息。
From\ToHMIRTFPGAHMI Tag Local VariableGlobal VariableNotifiersFunctional Global Variable (FGV)Stream QueuesChannel Wires (as of 2016)Message User Events详情看RT/HMI通信T用于 FPGA 和 RT 处理器之间通信的相同通信方法也可用于 FPGA 和 HMI 之间的通信。然而这种情况不太常见因为一旦通过以太网与 HMI 进行通信就无法保证确定性。 RT 详情看RT/HMI通信 详情看RT进程间通信 Tag Read/Write Control User Defined VariablesInterruptsStream DMA FIFOHost Memory BufferFPGA用于 FPGA 和 RT 处理器之间通信的相同通信方法也可用于 FPGA 和 HMI 之间的通信。然而这种情况不太常见因为一旦通过以太网与 HMI 进行通信就无法保证确定性 Tag Read/Write Control User Defined Variable InterruptsStream DMA FIFOHost Memory Buffer 详情查看FPGA进程间通信 RT进程间通信 下表概述了 RT 程序上不同进程之间进行通信时可用的通信选项。该表分为在确定性循环例如定时循环与非确定性循环之间通信或在非确定性循环与另一个非确定性循环之间通信时可用的选项。最佳实践是实时处理器上的每个内核仅运行一个确定性循环以避免优先级冲突。 通讯类型确定性循环到非确定性循环非确定性循环到非确定性循环标签 启用 RT FIFO 的单进程共享变量单个元素 单进程共享变量局部变量FGV通知者流、消息 RT 先进先出功能 尾巴用户事件仅限消息 RT/HMI 通讯 下表概述了实时程序与 Windows PC 上运行的 HMI 之间进行通信时可用的不同通信选项。该表还列出了通信选项是否支持一个或多个 RT 处理器或 HMI 之间的通信。值得注意的是我们的 CompactRIO 目标运行 64 位 NI Linux Real-Time 操作系统有一个嵌入式 UI 选项允许显示 Real-Time VI 的前面板。在这种情况下无需对 HMI 进行编程。 通讯类型通讯选项RT 目标数量HMI 数量标签网络发布的共享变量1:1、1:N、N:1TCP/IP1:1UDP协议1:N 或 N:1网页服务1:1、1:N流、消息网络流1:1TCP/IP仅消息1:1 FPGA 进程间通信 通讯类型通讯选项常用标签局部/全局变量分享最新数据记忆项目分享最新数据注册项目分享最新数据流、消息握手建立持续通信的参数FIFO触发器 传输缓冲数据 FIFO 100 字节 FIFO查找表 传输缓冲数据 100 字节 ≤ FIFO ≤ 300 字节 FIFO块存储器 传输缓冲数据 FIFO 300 字节 *可用块存储器的上限由FPGA目标指定 下表概述了 FPGA 上不同进程之间进行通信时可用的通信选项。有多种方法可以在两个不同的 FPGA 之间进行通信但这里不讨论这些选项。
5.RIO开发人员必备指南 此链接必看文档范例皆有RIO Developer Essentials Guide for Academia 6.FPGA、实时处理器和分布式系统之间的通信范例
Communicate Between FPGA, Real-Time Processor, and Distributed Systems - NI
其他 初学者可以先看一下NI对于每个工具包的说明文档这个对于知识盲区打开有一定的帮助。 LabVIEW Real Time Module 产品文档 - NI LabVIEW FPGA Module产品文档 - NI LabVIEW Real-Time和LabVIEW FPGA项目范例
嵌入式系统通常需要具有可靠性和确定性的架构。因此许多嵌入式应用需要专门处理系统状态监测、错误处理和看门狗定时器。针对CompactRIO和PXI RT DAQ的LabVIEW项目范例提供了推荐的软件架构可用于各种嵌入式控制与监控系统这是满足这些需求的最佳实践。这些项目范例还给出了数据通信、网络连接、控制例程、数据记录等的最佳实践。
为了在LabVIEW中查看这些模板您必须安装LabVIEW Real-Time和/或LabVIEW FPGA模块。
CompactRIO项目范例 CompactRIO的LabVIEW FPGA控制 此项目范例专为需要高性能控制和/或基于硬件的安全逻辑的应用程序而设计。控制通过FPGA架构实现而并非在软件中运行控制算法使控制循环速率能够达到10 kHz以上且抖动极小。FPGA VI还包含安全逻辑可在出现严重错误或者实时软件故障时立即将所有输出设置成安全状态从而更大限度地确保系统的可靠性。 参阅相关文档 | 参阅NI社区的详细指南 CompactRIO的LabVIEW Real-Time控制RIO扫描接口 此项目范例专为需要确定性控制性能的控制应用而设计其单点I/O速率不超过100 Hz。此项目范例不使用FPGA硬件而是使用确定性的实时处理器进行系统控制。此范例使用RIO扫描接口(RSI)在实时应用中获取I/O数据如同变量一样。 CompactRIO的LabVIEW FPGA波形采集与记录 此项目范例包含基于FPGA的可自定义高速模拟采集并可在满足触发条件时将采集到的数据记录至实时系统的磁盘。此项目范例可以自主运行或者连接到所提供的可选用户界面。 CompactRIO的LabVIEW Real-Time序列生成器 此项目范例可实现序列引擎可针对控制应用在LabVIEW Real-Time中执行用户自定义的序列或方法。它包括一个基于Windows的用户界面该界面能够生成用户定义的序列将此类序列部署到CompactRIO以及监测序列引擎状态。用户界面动态加载子面板展示了高效、响应流畅的用户界面架构。 查看视频教程
Real-Time项目范例使用DAQmx
LabVIEW Real-Time (NI-DAQmx)项目范例专为实时控制和/或波形采集与记录应用而设计。 LabVIEW Real-Time控制(NI-DAQmx) 实现基于软件的确定性设备控制。此项目范例采用NI-DAQmx并专为使用NI Real-Time PXI控制器和NI DAQ且需要确定性DAQ控制I/O的控制应用而设计。 参阅相关文档 LabVIEW Real-Time波形采集与记录(NI-DAQmx) 采集连续波形数据并将数据记录至磁盘。此项目范例采用NI-DAQmx包含模拟数据采集并在可满足触发条件时将采集到的数据记录至实时系统的磁盘。此项目范例可以自主运行或者连接到所提供的可选用户界面。此范例专为使用NI Real-Time PXI控制器和NI DAQ或者NI独立式CompactDAQ的应用而设计。 参阅相关文档