做阿里巴巴网站店铺装修费用,机房建设网站模板,淄博企业建网站,wordpress 黑体对于可管理规模的 LabVIEW 程序#xff0c;分析现有程序或设计新程序的方法通常是从整体到具体#xff0c;即从高级到低级的分析和设计。从一开始就直接深入细节可能会效率较低。 在设计阶段#xff0c;开发人员首先将程序垂直划分为几个层级。从最顶层开始#xff0c;他们… 对于可管理规模的 LabVIEW 程序分析现有程序或设计新程序的方法通常是从整体到具体即从高级到低级的分析和设计。从一开始就直接深入细节可能会效率较低。 在设计阶段开发人员首先将程序垂直划分为几个层级。从最顶层开始他们考虑如何根据程序的功能以及各部分之间的相互关系将这一最高层划分为各个部分。然后针对这一最顶层的每个部分再考虑下一层根据各自的任务将其进一步划分为更详细的功能模块。这种分层方法一直延续到下方。 根据程序的规模和复杂程度程序可以分为不同的层次结构。最简单的程序可能只包含一个层次用一个 VI 实现。中等复杂的程序可能包含两个层次由一个主 VI 和多个子 VI 组成。对于更复杂的程序层次数量可能会增加。 数据采集参考设计提供了一个框架您可以在此框架上构建和扩展自定义应用程序。参考设计的核心功能包括配置数据采集、获取数据、将数据记录到磁盘以及显示数据。它建立在其他 LabVIEW 软件组件之上以最大限度地提高软件重用率。它并非设计为功能齐全的应用程序而是自定义的起点而不是空白的框图。为了满足您的需求需要进行一些自定义。
软件架构 这些框架执行这样的任务
用户界面控制循环 和 主要事件处理循环处理来自前面板的所有的GUI事件这是因为大部分程序并不是直接运行就开始采集的比如需要一些用户登录、权限限制、读取配置文件保存配置等等。数据采集循环数据采集模块从配置的数据源获取数据。这通常是硬件数据采集设备但也可以是来自文件的数据甚至是模拟数据。此模块必须能够以无损方式获取数据并将其发送到其他进程以记录到磁盘、进行信号处理或显示。 数据流盘循环数据记录模块将时间域数据保存到磁盘。数据通过队列从数据采集过程接收。队列是一种缓冲机制可确保数据路径无损但如果数据记录过程无法足够快地将数据写入磁盘则队列中的缓冲区将继续增长并占用内存。应该考虑如何处理这种情况例如限制队列大小、监控队列积压、自动停止采集并通知用户等。数据显示循环可以检查数据的连续性以及做数据处理例如FFT、RMS等。一些数据采集设备的采样率极高可以在很短的时间内捕获数百万甚至数十亿个数据点。将所有这些数据直接显示在波形图上并不实际。由于要呈现的数据量很大因此非常耗时。因此可以选择使用重采样或者截取信号周期的一段进行显示。 假设要编写一个应用程序该应用程序在接受数据的同时还要按照接收顺序处理数据。由于这些数据的排队生产速度比实际处理消费速度高出很多因此生产者/消费者设计模式最适合此类应用程序。通过这种方法消费者循环可以按自己的速率处理数据同时生产者循环也可以让额外的数据排队。 进程之间传递的数据类型有两种命令和数据。所有命令都通过 AMC 发送。时域数据通过无损机制队列和有损机制通知程序发送。设计决定是为了保证将数据传送到记录过程同时可能牺牲向显示模块的传送。如果 PC 有足够的资源队列和通知程序都将以无损方式运行。如果 PC 无法处理请求的内容队列将缓冲数据而通知程序将丢弃数据。