【问题标题】:Labview Saving multiple segments into one fileLabview 将多个片段保存到一个文件中
【发布时间】:2019-03-21 16:27:54
【问题描述】:

我正在转换一家数据采集卡公司提供的 SDK vi 以满足我的需要。原来的vi在卡内存中记录了多个数据段,并在前面板上以波形图的形式显示,没有任何保存到文件功能。我可以输入“记录数”来设置我想要获取多少段(波形)。采集结束后,我可以点击“segment”(前面板上的“控件”输入一个数字)查看第n个segment。为了将所有数据段保存到一个文件中,我将“Write Delimited Spreadsheet VI”放入该VI,并带有附加到文件和转置功能。

我的问题是,一旦我添加了保存文件功能,如果“运行”设置为“False”,VI只会保存一个段,然后单击箭头在“段”控件中添加一个前面板,下一段数据将保存在同一文件中,并附加在上一段之后。或者如果“运行”设置为“真”,VI将继续保存数据而不会停止。我想要的是当我将“记录数”设置为X(整数)时,文件将保存X段。我试图添加一个计数器以每次自动添加一个并替换“Segment”输入但不起作用。

我觉得我已经非常接近我想要的了,但一周后我决定寻求帮助。欢迎任何 cmets 和建议。谢谢。

【问题讨论】:

    标签: for-loop while-loop save labview


    【解决方案1】:
    1. 需要一个计数器。将其添加到 While 循环(不是 For 循环!)的移位寄存器。
    2. 将数据保存添加到 While 循环(将其从 For 循环中移出)。
    3. 增加计数器(在 While 循环中),并保存数据,直到计数器达到 Segment 的值。

    我也给一个建议:尝试将当前的实现更改为更灵活的设计模式(例如状态机或生产者-消费者)。目前,您的代码非常混乱、耦合等 - 因此调试它或添加新功能可能是一个挑战。通过查看项目模板(在您创建新项目时可用),可以进一步探索提到的两种模式。

    【讨论】:

    • 我同意 KHHMD12 需要一个计数器。是否有某些原因无法将 While 循环的 [i] 终端用作计数器?为什么需要移位寄存器?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-21
    • 1970-01-01
    • 2014-12-17
    相关资源
    最近更新 更多