CompactRIO Developer's Guide - Overview
- Overview
이 가이드는 cRIO와 모니터링 어플리케이션을 LabVIEW를 사용하여 시스템 디자인(RT, FPGA 모듈과 함께) 하는것을 제공한다.
-내용 생략-
이 가이드는 가독성, 유지 보수, 확장성, 성능 및 신뢰성을 최적화하여 CompactRIO 어플리케이션을 개발하기위한 팁을 제공한다.
- cRIO Architecture
cRIO는 세가지 요소를 포함한 견고하고 재구성 가능한 인베디드 시스템이다.
- A processor running a real-time operating system(RTOS)
- A reconfigurable FPGA
- Interchangeable industrial I/O modules
Realtime processor는 FPGA가 고속의 정밀한 타이밍의 작은 태스크들로 수행중인 동안 최적화, 예측가능한 동작및 부동 소수점 연산 및 분석의 탁월함을 제공한다. cRIO 어플리케이션은 종종 HMI(Human Manchine Interface)을 구성하는데, 이것은 시스템의 상태 및 구동 파라메터를 설정하는 GUI(Graphical User Interface)를 제공한다.
- LabVIEW
LabVIEW는 그래픽 아이콘으로 구성된 프로그램으로 수천개의 라이브러리와 하드웨어를 컨트롤하며 분석, 측정, 제어등을 한다.
(대충 적음)
- Real-Time Controller
리얼타임 컨트롤러는 내부에 RT 어플리케이션을 타임 결정성의 수행이 가능한 Processor를 포함하고 있다. 이 Processor는 다중속도를 제공하며 추적, 데이터 로깅, 병렬 통신등의 수행이 가능하다. 그리고 9v ~ 30vdc의 전원 공급, real-time 시간, 하드웨어 watchdog 타이머, 듀얼 이더넷 포트, 최대 2기가 데이터 저장공간, USBm RS 232등을 제공한다.
- Real-Time Operating System (RTOS)
RTOS는 여러 과학 및 엔지니어링 프로젝트 같은 정확한 시간이 요구되는 안정적인 수행을 제공한다. 실시간 시스템 구축에 필요한 핵심 구성요소는 특수 목적의 RTOS; 전체의 시스템을 구성하는 다른 장비와 소프트웨어는 다음 섹션에서 설명한다.
1. 시간 정확성
범용 목적의 OS(Windows)가 설치된 기본PC로 측정 및 프로그램 제어를 하는 많은 엔지니어와 과학자는 접근이 힘들다. 언제든지, OS는 여러가지 이유로 프로그램에 지연을 준다.(예-바이러스 스캔, 그래픽 업데이트, 시스템 백그라운드 태스크 수행, 등등.) 프로그램은 방해(딜레이)없이 일정한 시간 비율로 동작(예 - 크루즈 시스템 제어)해야 하기 때문에, 이 지연은 시스템 실패를 야기할 수 있다.
이 글은 의도적으로 디자인됨. - 범용 목적의 OS들은 동시간에 많은 process들과 어플리케이션을 동작하는 것과 User Interface Graphic같은 여러 기능을 디스플레이하는 것에 최적화 되어 있다. 반면에, RTOS들은 한개의 프로그램에 시간결정성의 동작을 하도록 디자인 되었다. 특히, RTOS는 다음을 구현하는데 도움이 된다.:
-
개런티된 최악의 타임프레임 내에 태스크를 수행
-
당신의 프로그램에서 다른 섹션의 우선순의를 신중하게 결정
-
거의 동일한 시간의 반복 루프를 동작 (일반적으로 마이크로초내)
-
루프 타이밍을 벗어나는것을 감지
2. 신뢰성
정확한 타이밍을 제공하는 RTOS는 일, 달, 년을 정지 없이 신뢰성있는 수행을 할 수 있어야 한다. 이것은 연중 무휴 운영을 요구하는 시스템 설치를 하는 엔지니어 뿐만 아니라 가동 중지 시간이 많은 어플리케이션에도 중요하다. 만약 유져가 프로그램 동작을 멈추고 싶어한다면, 전체 컴퓨터를 자동 재시작할수 있는 Watchdog 기능은 RT 시스템에 일반적으로 포함된다.
3. NI하드웨어의 RTOS
각각의 NI RT 타겟은 세 가지의 다른 RTOS 중 하나로 실행된다. LabVIEW RT는 기본 RTOS의 세부사항을 대부분을 프로그래머가 무시할 수 있게 돕는 접근성 레벨을 제공한다. 그러나, 고급 유저들에게 콘텍스트를 제공하기 위해 NI real-time 타겟은 Phar Lap/ETS, VxWorks,와 NI 리눅스 RT를 포함하는 RTOS 제공한다. 새로운 리눅스 베이스의 RTOS를 배우려면 ni.com/linux에 접속한다.
- 재구성 가능한 I/O FPGA
재구성 가능한 I/O FPGA 섀시는 임베디드 시스템 아키텍쳐의 중심이다. 이것은 각각의 모듈과 타이밍, 트리거, 동기화에 접근이가능한 고사양 퍼포먼스 I/O에 직접적으로 연결되어있다. 왜냐하면 각 모듈은 버스보다 FPGA에 직접적으로 연결되어있기 때문이다. 당신은 다른 컨트롤러 아키텍쳐와 비교하여 거의 컨트롤 지연이 없는 시스템 응답을 경험할 것이다. 기본적으로 FPGA는 자동적으로 I/O 모듈과 통신을 하고 시간 결정적인 I/O를 RT 프로세서에 제공한다. FPGA는 RT 컨트롤러를 루프 지터가 500ns이내로 I/O접근이 가능하도록 통신을 한다. 당신은 또한 직접적으로 프로그래밍하여 시스템을 커스터마이징 할 수 있다. FPGA 속도로 인해, 섀시는 고속 버퍼 I/O, 고속 컨트롤 루프, 커스텀된 신호필터링 등으로 제작되어 컨트롤러 시스템으로 빈번하게 사용된다.
예를 들어, FPGA를 사용할 때, 하나의 섀시는 20개의 PID 컨트롤 루프의 동시에 100khz 보다 더욱 더 수행이 가능하다. 그리고 FPGA는 장비안의 모든 코드를 동작하기 때문에 높은 신뢰성과 시간 결정성을 제공한다. (장비 베이스의 인터락, 커스텀된 타이밍과 트리거링, 정의되지 않은 센서와 버스가 요구하는 일반적인 커스터마이징등.)
- I/O 모듈
- 시스템 설정