暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

LabVIEW文件操作使用For循环时的一个典型错误解析

进行LabVIEW文件操作编程时,相信不少同学遇到过如下错误:

图1 文件操作使用For循环时的典型错误

那么这是什么错误呢?我们先来看看LabVIEW给出的错误提示:

图2 错误提示框

从提示可以看出,错误的原因是将不同数据类型的端口连接在一起了,更具体一点是将数组类型与它里面的元素的类型的端口连接在一起了。要解决这个问题,要从For循环的数据通道说起。从For循环内往循环外传送数据,需要通过数据通道,且只在循环运行完后才进行数据的传递。以上面的程序为例,循环运行了5次,那么文件写节点Write File也会被运行5次,那么其输出端口dup refnum和err out也会各自输出5个数据。在默认情况下,For循环的数据通道将会以数组的形式输出所有这些数据,即以2个数组的形式分别输出5个数据,此时数据通道的外观展示为一个中心放置着数组索引框[]的正方形,非常形象,也就是图1展示数据通道的形式。但是,接收这两个数据通道的关闭文件节点Close File的输入端口refnum和err in所对应的数据类型并不是数组类型,而是这2个数组的元素的数据类型,这就是错误提示框提示的错误信息:You have connected an array data type to its element data type.
那么,应该如何解决这个错误呢?解决错误的方法非常简单,就是用鼠标右键单击数据通道,在弹出的菜单中选择菜单项“Disabled Indexing”,如图3所示。此操作将把数据通道的类型修改为不能索引,设置后数据通道的外观将变为一个实心的正方形。此时,数据通道不再是以数组的形式输出所有在循环中产生的数据,而只是输出最后一次循环时产生的那个数据,且此数据的类型与关闭文件节点Close File的输入端口的数据类型是一致的,此数据也正是对应的输入端口需要的数据。因此,通过此设置可解决程序的错误问题。

图3 数据通道类型修改

解决错误后的正确程序如下图所示:

图4 正确的程序
另外,还有一个知识点需要强调,就是For循环的数据通道的类型是可以按需要随意切换的,对设置为不能索引的数据通道(只输出最后一次循环产生的一个数据),可以再次设置为索引有效(以数组的形式输出所有循环产生的多个数据),方法就是用鼠标右键单击数据通道,在弹出的菜单中选择菜单项“Enable Indexing”,如图5所示。

图5 数据通道类型设置
好了,这个问题就解析到这里。同学们阅读后掌握到相关知识了吗?
文章转载自虚拟仪器技术及应用,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论