아카데믹 회사 소개 행사 및 세미나 NI Developer Zone 기술 지원 솔루션 제품 및 서비스 문의 MyNI

문서 타입: 튜토리얼
NI 제공: 예
작성일: 2008. 11. 19


피드백


아니오

관련 카테고리

관련 링크 - Developer Zone

관련 링크 - Products and Services

리얼타임 튜토리얼

평가 0 건 | 5 중 0.00
언어 선택 | 인쇄 | PDF

개요

수많은 테스트, 컨트롤 및 디자인 어플리케이션은 리얼타임 성능을 요구합니다. 본 튜토리얼에서는 리얼타임 시스템의 기본 개념에 대해 알아보도록 하겠습니다.

 

리얼타임 시스템 소개

리얼타임 운영 시스템은 이벤트 응답 및 폐루프 컨트롤 시스템의 두 가지 유형의 어플리케이션을 해결하고자 개발되었습니다. 이벤트 응답 어플리케이션은 정해진 시간 내에 자극에 대한 응답을 필요로 합니다. 이러한 시스템의 예로는 자동차 에어백 시스템을 들 수 있습니다. 폐루프 컨트롤 시스템은 출력을 조정하기 위해 피드백을 지속적으로 프로세스합니다. 폐루프 컨트롤 시스템의 예로는 자동차 크루즈 컨트롤 시스템이 있습니다. 이 두가지 유형의 시스템은 특정 기한내에 작업을 완성해야 하며, 이러한 성능을 결정성이라고 부릅니다.

리얼타임 시스템은 흔히 "소프트" 또는 "하드"로 분류됩니다. 소프트 리얼타임은 일반적으로 시스템의 유틸리티가 마감시한 후 경과된 시간에 반비례합니다. 예를 들어, 걸려오는 전화를 받기위해 핸드폰 버튼을 누르면, 버튼이 눌러진 후에 반드시 통화가 연결되어야 합니다. 그러나, 마감시한은 미션 중심 (mission-critical)이 아니며 어느 정도의 지연은 용납될 수 있습니다. 하드 리얼타임 시스템은 마감시한을 놓친 이벤트에 대해 시스템 유틸리티가 0이 되는 시스템을 의미합니다. 자동차 엔진 컨트롤 유닛 (ECU)은 마감시한 내에 들어오는 신호를 반드시 프로세스하고 스파크 플러그 타이밍을 계산해야 합니다. 마감시한을 놓친 경우, 엔진은 적절히 작동하지 않습니다. 마감시한이 지난 후에도 태스크가 사용가능 여부는 시스템이 소프트 리얼타임인지 하드 리얼타임 시스템인지 여부에 달려있습니다. (그림 1 참조)

Microsoft Windows, Mac OS과 같은 운영 시스템은 비결정적 (non-critical) 측정 및 컨트롤 어플리케이션을 개발하고 실행하기 위한 최적의 플랫폼을 제공합니다. 그러나, 이러한 운영 시스템은 일반적인 용도를 위해 설계되었기 때문에 결정성있는 성능 또는 구동시간 연장이 요구되는 어플리케이션을 실행하기 위한 이상적인 플랫폼이 아닙니다.

범용 운영 시스템은 다양한 어플리케이션을 동시에 실행하기 위해 최적화되었으므로 모든 어플리케이션은 일정 정도의 프로세싱 시간을 부여받게 됩니다. 이러한 운영 시스템은 반드시 마우스, 키보드 등의 주변기기로부터의 인터럽트에 반응해야 합니다. 사용자는 이러한 태스크가 프로세서에 의해 처리될 때 제한된 컨트롤을 할 수 있습니다. 결과적으로, 최우선 순위의 태스크는 최저 우선순위의 태스크에 앞서며, 따라서 중대한 어플리케이션에 대한 응답 시간을 보장하는 것이 불가능합니다.

반대로, 리얼타임 운영 시스템에서는 사용자가 태스크에 대한 우선순위를 정할 수 있으므로, 대부분의 중대한 태스크는 필요할 시 프로세서를 컨트롤할 수 있게됩니다. 본 기능을 통해 사용자는 예측되는 결과를 도출해내는 어플리케이션을 프로그래밍할 수 있습니다.


[+] 크게 보기

그림 1- 하드 리얼타임 및 소프트 리얼타임간의 차이점

프로세서가 폐루프 컨트롤 및 시간 결정적인 (time-critical) 결정이 필요한 작업에 관련되어 있을 때 리얼타임 운영 시스템이 필요합니다. 이러한 어플리케이션은 유입되는 데이터를 바탕으로 적절한 시간에 결정을 내려야 합니다. 예를 들어, I/O 디바이스는 입력 신호를 샘플하고, 해당 신호를 메모리로 직접 보냅니다. 그 후, 프로세서는 신호를 분석하고, 적합한 응답을 I/O 디바이스에 반드시 보내야 합니다. 본 어플리케이션에서는 소프트웨어는 반드시 루프가 필요합니다. 따라서, 사용자는 정해진 시간 내에 응답을 보장하는 리얼타임 운영 시스템이 필요합니다. 또한, 연장된 런타임 또는 독립적인 운영이 요구되는 어플리케이션은 리얼타임 운영 시스템으로 실행될 수 있습니다.

 

리얼타임 성능


리얼타임 성능과 관련된 가장 일반적인 오류는 리얼타임으로 인해 프로그램의 실행 속도가 증대될 것이라는 생각입니다. 이는 일부 경우에 있어 사실이기도 하지만, 사실상 더욱 정확하고 예측가능한 타이밍을 제공으로 인해 어플리케이션이 향상되는 것입니다. 이러한 향상으로 인해, 특정 이벤트가 발생하는 정확한 시간을 판단할 수 있습니다.

 

리얼타임 컨트롤

리얼타임 컨트롤을 통해, 물리적인 시스템을 지속적으로 모니터링 및 시뮬레이션할 수 있습니다. 리얼타임 컨트롤 어플리케이션은 지정된 시간 간격을 두고 사용자 정의된 태스크를 반복적으로 수행합니다. 대부분의 리얼타임 컨트롤 시스템은 물리적 시스템을 모니터하고, 현재 상태를 이상적인 상태와 비교하며, 그 비교 결과를 바탕으로 물리적 시스템을 시뮬레이션합니다. 이와 같은 루프를 순회하는 데 걸리는 시간을 루프 주기 시간이라고 합니다. 본 컨트롤 루프의 사이클 시간은 시스템이 얼마나 복잡한가에 따라 달라집니다.

결정성은 이벤트 간에 세분화된 시간 간격의 일관도를 측정합니다. PID 등의 여러가지 컨트롤 알고리즘은 매우 결정성있는 동작을 요구합니다. 예를 들어, 엘레베이터는 컨트롤 루프의 결정성있는 동작으로 인해 정확한 층으로 서서히 이동합니다. 결정성이 없다면, 엘레베이터가 정확한 층에 도착하긴 하겠지만, 안정성이 결여될 것입니다.

모든 리얼타임 시스템에서는 지터라고 불리우는 일정 정도의 에러가 있습니다. 지터는 리얼타임 시스템의 결정성을 측정하는 또 다른 방법입니다. 시스템에서 개별적인 시간 지연과 이상적인 시간 지연간의 최대의 차이로 지터를 계산할 수 있습니다. (그림 2 참조)

그림 2- 지터 다이어그램 예

 

리얼타임 이벤트 응답

리얼타임 이벤트 응답으로 주어진 시간 내에 단일 이벤트에 응답할 수 있습니다. 리얼타임 시스템은 단일 이벤트에 대한 최대한의 응답 시간을 보장합니다. 이벤트는 주기적 또는 임의적일 수 있습니다. 리얼타임 이벤트 응답 어플리케이션의 예는 안전 모니터링 시스템을 들 수 있습니다. 물리적 플랜트가 위험한 상태를 입력하면, 리얼타임 시스템은 반드시 시간 내에 "위험한" 이벤트에 응답해야 합니다.

대기시간 (latency)는 이벤트 응답에 걸리는 시간을 설명하는 데에 사용됩니다. 이는 리얼타임 컨트롤 어플리케이션에서 결정성과 유사한 개념입니다. 리얼타임 이벤트 응답으로, 가장 낮은 대기시간을 보장받을 수 있습니다.

 

NI?Real-Time 기술

LabVIEW Real-Time Module 및 LabWindows/CVI Real-Time Module은 전용 하드웨어 타겟에서 안정적이며 결정성있는 실행을 구현하는 데에 사용됩니다. 보다 높은 결정성이 필요한 경우, LabVIEW FPGA 모듈을 사용하면 재구성 가능한 I/O 기술을 포함한 하드웨어와 결합하여 하드웨어가 10억분의 1초(ns) 단위로 반응합니다. 내쇼날인스트루먼트 소프트웨어로 다음을 진행하십시오.

  • 그래픽 프로그래밍 또는 ANSI C로 결정성 있는 어플리케이션 신속 개발
  • 분산 컨트롤 및 모니터링 시스템의 간편한 구축
  • 다양한 I/O 통합 시간 단축

내쇼날인스트루먼트는 최대의 안정성과 결정성있는 성능을 위해 리얼타임 OS를 실행하는 임베디드 프로세서를 보유하는 다양한 리얼타임 하드웨어 타겟을 제공합니다. 다양한 I/O를 높은 채널 카운트의 데이터 수집 및 컨트롤, 산업용 신호 컨디셔닝 그리고 안전 절연을 지원하는 모듈형 하드웨어와 통합할 수 있습니다.


[+] 크게 보기

그림 3 - NI Real-Time 기술

 

LabVIEW Real-Time 온라인 평가판

여기를 클릭하여 LabVIEW Real-Time 온라인 평가판을 보십시오.

관련 링크:
LabVIEW Real-Time이란?
LabWindows/CVI Real-Time이란?
LabVIEW Real-Time 튜토리얼 및 프리젠테이션

평가 0 건 | 5 중 0.00
언어 선택 | 인쇄 | PDF

법적 정보
"이 튜토리얼 (이 ""튜토리얼"")은 내쇼날인스트루먼트 (""NI"")가 개발한 것 입니다. 이 튜토리얼에 대한 내쇼날인스트루먼트의 기술 지원이 가능하더라도, 이 튜토리얼의 내용은 완전하게 테스트 및 검증되지 않을 수 있으며, NI는 어떠한 방식으로도 품질 또는 관련 제품 및 드라이버의 새로운 버전에 따른 컨텐츠의 지속적인 지원을 보장하지 않습니다. 이 튜토리얼은 어떠한 종류의 보증 및 NI.COM의 이용 약관에 명시된 특정한 제약 규정에 대한 전제 없이 있는 그대로 제공됩니다. (http://ni.com/legal/termsofuse/unitedstates/us/)