티스토리 뷰

파일 경로와 구조는 운영체제에 따라서 다르게 구성이 됩니다.  따라서 NI 제품군이 사용하는 Phar Lap, VxWorks, Linux RT의 파일 구조의 차이점에 대해서 알아보고, LabVIEW를 이용하여 경로를 구성하는 효율적인 방법에 대해서 설명을 드리도록 하겠습니다. 


1. RT OS 옵션


National Instruments Real-Time 컨트롤러는 Parh Lap, VxWorks, NI Linux Real-Time OS로 불리는 서로 다른 3개의 운영체제를 기반으로 실행이 됩니다. Phar Lap 운영체제를 기반으로 실행되는 장비는 루트 디렉토리가 C:\이며, 이는 윈도우와의 파일 구조와 비슷한 장점을 가지고 있습니다. VxWorks는 Unix 스타일의 구조를 가지고 있으며, 루트는 /c/와 같이 구성이 됩니다. 그러나 랩뷰에서 사용자들은 Phar Lab과 VxWorks 파일 경로 사이에서 처리되는 파일구조의 차이점을 알아차릴 수 있습니다. 그러므로 이 글에서 추천하는 방식으로 파일경로를 생성하면, 사용자는 Phar Lab과 VxWorks간의 차이점을 따로 인식할 필요는 없습니다. 


NI Linux-RT OS는 디렉토리의 구분을 /로 처리합니다. 이 장비는 C 드라이브를 가지고 있지 않습니다. 그러나 편의를 제공하기 위해서 NI는 /c와 /c/ni-rt, /c/ni-rt/startup 디렉토리를 /home/lvuser/natinst/bin 폴더에 리다이렉트하고 있습니다. 


아래의 그림은 test.txt라 불리는 파일을 각 장비의 OS에 맞게 루트 디렉토리에 생성하는 방법입니다. 



2. 동적으로 경로 생성하기


동적으로 파일 경로를 생성할 때, NI는 파일 루트 디렉토리에 대한 경로 상수 혹은 컨트롤을 사용할 것을 권장하고 있습니다. 이를 통해서 Build Path VI를 이용하여 개별 경로에 대한 부분을 아래와 같은 방식으로 처리하게 되는 것입니다. 아래의 코드 방식은 정확한 루트 디렉토리를 보장하고, 슬래시의 타입이 어떻게 사용되는지를 명백하게 합니다. 아래의 그림은 다른 운영체제 기반에서 이 코드를 실행했을 때 처리되는 결과를 보여줍니다.



상대적으로 상대 경로는 저장 혹은 배포되는 VI의 위치를 이용하여 경로를 생성합니다. 아래의 코드는 현재 경로 상수를 이용하여 어떻게 처리가 되는지를 보여줍니다. 위의 방법과 같이 아래의 방법은 다른 운영체제 혹은 다른 파일 구조를 가진 시스템에서 추가적인 경로 설정 작업을 막아주는 이점을 가지고 있습니다. 아래의 이미지는 서로 다른 운영체제에서 실행한 경우 결과를 보여줍니다. 




3. 파일 경로 상수


파일 경로 상수와 컨트롤은 동적으로 타겟 기반의 경로를 변경할 수 있습니다. 예를 들어 C:\를 포함하는 파일 경로 상수가 Linux 기반으로 옮겨지면 자동으로 /c/로 변환을 합니다. 파일 경로 상수와 컨트롤은 서로 다른 리얼타임 타겟에 대한 정적 경로(Static Path)를 지정하기 위한 좋은 방안입니다.


그러나 파일경로 상수는 일반적으로 유효하지 않은 경로에 대한 처리를 할 수가 없습니다. 사용자가 잘못된 경로를 상수 혹은 컨트롤에 입력을 하게 되면 개발된 프로그램은 운영체제에 맞는 경로를 생성하고자 시도하지만 결과는 잘못된 결과가 나오게 됩니다. 


아래는 이러한 문제를 해결할 수 있는 몇가지 방법을 제안합니다.


1) /c/application/SubVIs/Example.vi의 값은 윈도우 운영체제에 대한 경로로 이 코드가 Linux 코드에 전환이 된다면 Linux RT OS에 맞게 변환이 됩니다.



2) \c\Application\SubVIs\Example.vi는 윈도우 문맥에 맞는 경로 상수입니다. 이 경로는 위의 Example 1의 경로와 동일하지만 백슬래시를 사용하고 있습니다. 이 파일 경로는 드라이브 문자를 앞부분에 추가하기 때문에 잘못된 결과를 만들어 냅니다.


3) C:\Application\SubVIs\Example.vi는 윈도우 문맥에 적합한 경로 상수입니다. 이는 드라이브 문자로 시작을 하고 뒤로 슬래스가 추가되는 경로 상수로 인식이 됩니다. 



사용자가 잘못 입력한 부분에 대해서는 사용자가 변경을 해야합니다.


4. 정적 파일 경로


정적 파일 경로는 파일 경로 상수를 사용하지 않고 파일 경로를 생성할 수 있습니다. 아래와 같이 경로를 문자열로 변경을 이용하게 되면 실시간 시스템에 맞는 정적 파일 경로를 지정할 수 있습니다. 




그러나 NI는 이 방식을 권장하지 않습니다. 그 이유는 문자열을 경로로 변환 함수는 동적으로 루트의 경로를 변경해주지 않으며, 타겟의 이동에 따른 자동적 변경을 만들지 않기 때문입니다. 


5. 파일 시스템 권한


파일과 폴더에 대한 권한(Permission)은 VxWorks와 Phar Lab 운영체제에서는 사용되지 않지만, NI Linux RT OS에서는 Linux의 표준 방식 그대로 사용을 할 수 있습니다. 


이 글에서는 서로다른 OS를 사용하는 경우 처리할 수 있는 파일 경로 생성 방식에 대해서 알아보았습니다.


이 글이 도움이 되셨으면, 아래의 하트를 눌러주세요.


댓글