왜 cRIO는 USB 저장 디바이스를 제거해도 계속 데이터를 로깅 하는 것입니까?



주요한 소프트웨어:
주요한 소프트웨어 버전: N/A
문제가 해결된 소프트웨어 버전: N/A
부차적인 소프트웨어: N/A

문제점:

외부 USB메모리, 플래시 드라이브 또는 하드 디스크를 이용하여 데이터를 로깅 하고 있습니다.

이러한 경우, 제 컨트롤러에서 이와 같은 외부 장치를 제거해도 여전히 계속 데이터를 로깅 하는 것을 확인하였습니다. 이러한 경우가 왜 발생하는 것이며, 해결방안은 무엇입니까?



솔루션:

CompactRIO는 데이터 무결성 기능의 내장기능을 가지고 있습니다. 이러한 기능 중에 하나는 USB 디바이스가 존재하지 않을 때, USB 디바이스 대신에 내부 메모리에 저장하는 것입니다.

만약 여러분이 USB 저장 디바이스에 데이터를 저장하다가 디바이스를 제거하게 되면, 컨트롤러는 U 이름으로 폴더를 생성하고(USB 드라이브와 같음.), 이곳에 데이터를 저장할 것입니다. 이에 대한 위치는 c:\U\가 됩니다.

이러한 동작을 피하기 위해서, USB 디바이스가 존재할 때만 저장될 수 있도록 코드를 수정할 필요가 있습니다. 아래 그림에서 코드를 보여주고 있습니다.

 

 

볼륨 정보 얻기 함수에서 드라이브가 존재하지 않으면 에러를 반환하게 됩니다. cRIO USB 드라이브가 장착되었을 때만 드라이브가 존재하므로 u:\ 드라이브로 정의합니다. 볼륨 정보 얻기 함수가 에러를 반환함과 동시에 이를 텍스트 파일 쓰기 함수에 전달하도록 합니다(어떠한 파일 쓰기 함수든지 상관없음.). 이 말은 쓰기 함수가 에러를 받았을 때는 실행되지 않게 된다는 의미가 됩니다. 이 예제에서는 u:\ 드라이브가 존재하지 않을 때까지 저장을 유지하게 됩니다. 일단 USB 드라이브를 다시 연결하게 되면, 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
Tutorial: Working with File Paths on Real-Time Targets

첨부:





리포트 날짜: 10/01/2010
마지막 업데이트: 01/11/2015
문서 번호: 5E0AQC00