From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.



为什么我移除了USB存储设备之后,我的CRIO还是持续存储数据?



主要软件:
主要软件版本: 2009 SP1
主要软件修正版本: N/A
次要软件: N/A

问题: 我正在向一个外部U盘、闪存设备或者硬盘设备存储数据,我注意到,当我移除了外部存储设备,我的控制器还是会持续的存储数据,为什么会这样,怎样才能避免?

解答:

Compact RIO 控制器为了保持数据完整性,有一个内置特性,其中的一个特性就是当USB设备不再出现的时候,控制器会将数据写入到替代USB设备的内部存储空间。

如果你正将你的数据保存到你的USB存储设备,然后移除了它,控制器就会创建一个文件夹名字为U(USB的首字母),然后向这里继续存储数据,相关路径是c:\U\。 

若想避免这种行为,你需要写代码来确保只在USB设备可用的时候才存储数据。下面的小段代码是一个实现该需求的范例。



如果指定设备没有出现, Get Volume Info 函数会返回一个错误。为实现我们的目的,我们指定 u:\设备,因为只当有USB设备插入CRIO的时候才会出现 u:\。Get Volume Info 函数返回的错误会传递给写入 Write to Text File 函数(或者任何一个写入文件函数),这就意味着当Write to Text File 函数接收到一个错误的时候,它就不会执行,这段程序就会保证若没有USB存储设备就不会存储数据,一旦又检测到了USB设备也就意味着又出现了u:\,Get Volume Info 函数则不会再产生错误,控制器会继续向USB设备写入数据,

Get Volume Info 函数的错误输出状态也能用于确定当 u:\ 设备不可用的时候该采取什么行动,除了简单的不写入数据。. 具体如何处理以及如何编写代码取决于你自己的应用需求。



相关链接: KnowledgeBase 46E8HKPZ: How Fast Can CompactRIO Controllers Stream Data to Disk and USB?
KnowledgeBase 4CL9J1LX: Is there a Size Limitation for USB Devices that are Supported on cRIO-901x or cFP-2220 Controllers?
KnowledgeBase 2KM92E5F: Using FTP to Access and Use the External CompactFlash or USB Drive on a Real-Time Controller
KnowledgeBase 4K1HPA20: Creating the Correct File Path Format for LabVIEW Real-Time Targets

附件:





报告日期: 10/01/2010
最近更新: 02/27/2014
文档编号: 5E0AQC00