1.内部存储器
可以使用常规文件 I/O VI 在嵌入式程序中以编程方式访问实时控制器的内部存储。文件路径结构根据控制器运行的实时操作系统 (RTOS) 的不同而有所不同。
该文件路径语法记录在教程:使用实时目标上的文件路径 中。
可以通过在Measurement & Automation Explorer (MAX) 中查看设备的“系统设置”选项卡或在“实时控制器”和“实时操作系统兼容性”中搜索您的型号来确定您的目标正在运行哪个 RTOS 。
注意:
1.由于控制器上未安装 Microsoft Excel,所以不能保存文件为excel文件,只能是通过协议将采集的数据从实时目标传输到安装有 Microsoft Office 的 PC,然后可用于将数据写入 Excel 文件。或者,您可以将数据存储在实时目标上的另一种文件类型中,然后稍后将数据通过 FTP 传输到另一台计算机。
2.NI Linux 实时操作系统不支持对话框提示功能。所以不能使用写入测量文件ExpressVI。(Unsupported LabVIEW Features on NI Linux Real-Time Targets - NI)
3.
监控CompactRIO磁盘空间
提供了 IP 地址数组,并使用初始化会话和查找硬件 VI 获取每个目标的硬件列表。 对于每个硬件项目,都会在其别名中搜索短语“cRIO”,如果找到该字符串,则可以查询该硬件项目的系统参数。下面的代码说明了该过程。
2.USB存储
连接到实时控制器上 USB 端口的外部大容量存储设备可以作为驱动器 U 进行访问:使用文件 I/O VI;与访问内部存储的方式类似。您也可以通过指定驱动器号通过 FTP 传输到该驱动器。当连接更多 USB 存储设备时,驱动器号将增加为 W:、X: 和 Y:。要访问这些驱动器,您需要指定类似于ftp://IP_address_of_FP_controller/U:/ 的FTP 连接。
首先,我们使用的外部存储设备必须格式化为与特定实时操作系统兼容的文件系统,根据 File System Compatibility with the NI Linux Real-Time OS 可以使用FAT 16、FAT 32、ext2和 ext3。不过,为了便于传输到 Windows,建议使用 FAT32。
如果要将一些NTFS格式的大容量存储设备接入 Linux RT系统,还需要进一步配置。请参考 此页面确认您的设备是否为Linux RT系统。
1.在MAX中启动SSH服务器。
2.下载并安装 Putty。
3.打开 Putty 并通过设备 IP 地址链接到目标 cRIO:
4.在弹出的命令行窗口中输入cRIO用户名和密码(用户名为admin,密码默认为空)进行登录,如图1所示。
5.然后输入命令:opkg install ntfs-3g,可能有两种情况(cRIO必须联网):
- 开始安装 ntfs-3g。cRIO会自动从网络下载安装包并安装;
- 出现错误消息,提示找不到安装包。在这种情况下,您将需要升级 Linux 中的某些驱动程序,必要时输入“opkg update”或“opkg Upgrade”。更新完成后,输入“opkg install ntfs-3g”。
图1。
6.默认情况下,外部驱动器应使用驱动器盘符 U:第一个驱动器命名,V:第二个驱动器命名,依此类推。确认外部存储设备被目标cRIO识别后,可以参考 本文档 进行数据写入操作。
如以上步骤不可以,可以查看此链接进行硬盘挂载:Setting Up and Using External Storage Devices on NI Linux Real-Time Targets - NI
3.外部CompactFlash存储
使用紧凑闪存作为外部存储的实时控制器(例如 cFP-2x20)可以使用文件 I/O VI作为驱动器D:进行访问。要访问外部 CompactFlash 根目录中的文件data.csv ,请使用文件 I/O VI 读取文件D:\data.csv。还可以使用 FTP 连接访问 CompactFlash 卡。
- 必须将驱动器格式化为适用于特定实时操作系统的兼容文件系统。所有NI Real-Time设备均支持FAT32,建议使用此格式,以便于传输至Windows。 PharLap终端设备也支持Reliance文件系统,而NI Linux Real-Time终端设备也支持ext2或ext3文件系统。
- 您必须将连接USB驱动器或SD卡指向枚举的驱动器。默认情况下,外部驱动器的名称应为第一个驱动器名称为U :,第二个驱动器的名称为V :,依此类推。
- 您必须遵循操作系统的文件结构约定(如,正斜杠,冒号)。有关在不同的实时操作系统上使用文件路径的更多信息,请参见在实时终端上使用文件路径。
- 如果在使用SD卡执行完成上述步骤后发现权限错误,请检查该卡是否设置为只读。对于大多数SD卡,锁定方向将位于卡的正面。
4.手动传输文件
WebDAV
实时控制器可以配置为支持 WebDAV,这将允许您以安全的方式手动将文件传输到目标或从目标传输文件。 请参阅使用 WebDAV 将文件传输到实时目标。
文件传输协议
如果您不想使用 WebDAV 并且不介意安全性较低的方法,您可以将控制器配置为使用 FTP 连接。NI Linux-Real Time 设备上默认未安装 FTP 服务器。有关如何将 FTP 与 Linux 实时目标结合使用的说明
SFTP 的 FileZilla
FileZilla - The free FTP solution是一个免费的开源 SFTP 实用程序,它提供易于导航的用户界面,用于浏览远程系统上的文件系统并与之交互。SFTP,即 SSH 文件传输协议,是 SSH 的扩展。因此,使用此方法时,在远程系统上启用 SSH 非常重要。要在您的设备上启用 SSH,请执行以下操作:
- 打开设备电源并将其连接到网络或直接连接到开发计算机。
- 打开 NI MAX 并在远程系统下找到您的设备。
- 您可能需要登录控制器才能访问其设置(默认用户名是 admin,默认密码为空)。
- 在“启动设置”窗口中选中“启用安全 Shell 服务器 (sshd)”复选框。
- 保存您的更改,目标将重新启动。
要使用 FileZilla 连接到目标的文件系统:
- 打开 FileZilla。
- 在“主机”字段中,输入目标的 IP 地址,该地址可以在 MAX 中设备的“系统设置”选项卡上找到。
- 在相应字段中输入您的用户名和密码。
- 在端口字段中输入 22。这是 SFTP 和 SSH 的默认端口。
- 单击快速连接。
您现在应该能够使用 FileZilla 与 NI Linux Real-Time 目标上的文件系统进行交互。
基于Web配置
还可以通过 Web 配置工具访问文件系统。只需在 Internet Explorer 的 URL 栏中导航至 cRIO 的 IP 地址,然后选择下图中突出显示的远程文件浏览器按钮即可访问此功能。一些注意事项:
- cRIO 上需要安装基于 Web 的配置和监控软件。
- cRIO 上的管理员用户需要非空密码。
- 文件系统访问是通过 lvuser 用户帐户完成的,而不是 admin。尝试修改 lvuser 无权访问的文件将导致“403:禁止”错误消息。
文件系统窗口顶部的按钮将允许您导航和操作 Linux Real-Time 目标上的文件。
发布到网页
虽然这是可能的,但它会占用大量资源。对于 myRIO 和 sbRIO 来说,这是不可能的,因为即使速度很慢,它也会占用太多的 CPU 能力和太多的内存。解决方案是将 JavaScript 与 NI 的 LabVIEW Web 服务集成。此处和此处发布了相关教程和示例。
如果此方法不起作用,还可以考虑其他一些方法:
- 网络套接字
- 系统链接
- 发布VI到网页
- G Web 开发软件
5.FPGA 内存
要注意的是此处仅作为临时存储,或者数据上传,不能作为离线存储,需结合其他方法存储。
要将数据保存到FPGA内存,请使用存储器方法节点。
要使用存储器方法节点,必须先创建一个存储器项。要为您的应用选择最合适的存储器项,请参阅在FPGA终端上存储数据(FPGA模块)。
一旦确定了最适合的存储器项,就必须在项目中创建该存储器项。要查找如何执行此操作,请参阅创建FPGA存储器项(FPGA模块)。
接着,您可以使用存储器方法节点指向现有的存储器项并根据需要存储数据。
6.网络硬盘(nas)
注意事项:具体还是询问nas厂家
mount思路
Preparing a NI Linux Real-Time PXIe Controller for Usage With IPG CarMaker - NI
另一种思路
需要 cifs 工具。您可以通过更新 opkg 来获取它们(因此您确保获得最新版本。),然后使用 opkg 安装 cifs-utils
<span style="color:var(--color-wash)"><code>opkg update
opkg install cifs-utils</code></span>
然后安装驱动器就很简单:
sudo mount -t cifs //[IP of remote server]/[name of shared folder]/ -o username=[your username],password=[your password],uid=lvuser /home/lvuser/data
您可以通过 ssh/控制台或通过 System Exec 运行此命令。-o 指定选项。您还可以设置更多内容,但这些是基础知识。用户名和密码是共享的凭据。uid=lvuser是为了确保设置所有者和权限,使lvuser具有读写权限。这是必要的,因为 LabVIEW 以 lvuser 身份运行。/home/lvuser/data 可以是您想要的任何路径。这就是驱动器安装的地方。它确实需要存在。如果没有,您必须首先使用 mkdir 命令创建它。如果您创建它,请注意权限 - 确保它由 lvuser 拥有并且他们可以读取/写入它。安装后,您只需将任何数据文件放入 /home/lvuser/data 中,它们就会显示在共享上。