在LabVIEW cRIO中读取CSV文件,需通过文件传输、路径配置、数据解析等步骤实现。本文详细说明如何通过代码读取本地存储的CSV文件,并探讨直接通过对话框选择文件的可行性及替代方案。
步骤:
打开NI MAX(Measurement & Automation Explorer)。
连接目标cRIO设备,进入 “文件” 选项卡。
选择路径(如/c/),点击 “上传” 按钮,将本地CSV文件(如sample.csv)传输至指定目录(如/c/data/sample.csv)。
步骤:
使用FileZilla等FTP客户端,连接cRIO的IP地址(端口21)。
登录后,将文件上传至目标路径(如/c/data/)。
优势:支持批量上传,适合大型文件或多文件场景。

前面板控件:
输入:文件路径(如/c/data/sample.csv)。
输出:二维数组(数据内容)、错误信息。
程序框图步骤:
路径构建:
使用 Build Path.vi(路径:Programming -> File I/O -> Advanced File -> Build Path),输入基路径(如/c/)和子路径(如data/sample.csv),生成完整路径。
打开文件:
使用 Open/Create/Replace File.vi(路径:Programming -> File I/O -> Open/Create/Replace File),模式设为open existing,权限设为read-only。
读取数据:
方法1(完整读取):
使用 Read Delimited Spreadsheet.vi(路径:Programming -> File I/O -> Read Delimited Spreadsheet),设置分隔符为逗号(,),格式字符串为%f(数值)或%s(字符串),输出二维数组。
方法2(逐行读取):
在While循环中结合 Read From Text File.vi 和 Spreadsheet String To Array.vi,分块处理大型文件。
关闭文件:
使用 Close File.vi 释放资源。
错误处理:
串联错误簇,通过 Simple Error Handler.vi 显示具体错误(如文件不存在、权限不足)。
Read Delimited Spreadsheet.vi:
delimiter:,
format string:%f(数值类型)
number of rows:-1(读取全部行)
实时系统无图形界面:cRIO运行LabVIEW Real-Time系统,不支持直接弹出文件对话框。
替代方案:
主机端选择+传输:在PC端LabVIEW程序中通过 File Dialog 控件选择文件,再通过FTP或网络共享传输至cRIO。
预定义路径+动态加载:在cRIO中固定文件存储路径,通过程序逻辑动态加载最新文件。
步骤:
在PC端LabVIEW程序中使用 File Dialog 控件(路径:Programming -> Dialog & User Interface -> File Dialog),设置文件类型过滤为.csv。
将选中文件通过FTP上传至cRIO的/c/data/目录。
cRIO程序读取该路径下的文件。
需求:cRIO启动时自动加载校准参数文件(/c/calibration/calib_params.csv)。
实现:
使用 Read Delimited Spreadsheet.vi 读取CSV文件。
将二维数组传递至校准算法VI。
优势:参数修改只需更新CSV文件,无需重新编译代码。
实时性:
避免在高速循环中频繁读取文件,建议在初始化阶段一次性加载数据。
路径规范:
cRIO采用Linux系统,路径严格区分大小写(如/c/不能写为/C/)。
权限管理:
确保文件权限允许LabVIEW进程访问(NI MAX中默认用户为admin)。
错误排查:
若读取失败,检查文件路径、分隔符格式及内存占用(大文件需分块读取)。
通过上述方法,可在LabVIEW cRIO中高效读取CSV文件,适用于参数配置、数据记录等场景。尽管无法直接在cRIO中弹出文件对话框,但通过主机端选择+传输的方案,仍能实现灵活的文件管理。
楼主最近还看过


客服
小程序
公众号