NI-DAQmx 사용자 스케일 및 사용법

개요

이 문서에서는 NI-DAQmx 사용자 스케일을 사용하여 디바이스에서 직접 스케일 이후 단위로 작업하는 방법에 대해 설명합니다. 이 방법은 정의된 스케일에 따라 신호 값을 측정하는 디바이스를 사용할 때 유용합니다.

내용

개요

NI-DAQmx는 다양한 일반적인 트랜스듀서, 센서 및 액추에이터를 지원합니다. 그러나 NI-DAQmx의 지원이 명시되지 않은 트랜스듀서나 액추에이터를 사용하는 경우, 채널에서 측정된 스케일 이전 단위에서 센서와 연관된 스케일 이후 단위로 변환하는 방법을 지정하는 NI-DAQmx 사용자 스케일을 생성할 수 있습니다. 사용자 스케일을 사용하더라도 물리적 측정값은 변경되지 않으며 데이터를 분석하는는 방식만 수정됩니다.

 

스케일 이전 단위와 스케일 이후 단위

스케일 이전 단위는 사용자 스케일이 적용되기 전에 채널의 단위로 표시되는 값을 나타냅니다. 일반적으로 스케일 이전 단위는 볼트 또는 암페어입니다. 대부분의 채널이 기본적으로 볼트나 암페어로 신호를 측정하거나 생성하기 때문입니다. 그러나 NI-DAQmx가 명시적으로 지원하는 센서가 포함된 채널에 스케일을 연동시킬 수도 있습니다. 이 경우 스케일 이전 단위는 지원되는 트랜스듀서 채널에서 사용되는 단위입니다. 예를 들어 스케일을 아날로그 입력 저항 채널과 연동시키는 경우 스케일 이전 단위는 옴(Ohm)이며 스케일은 옴을 원하는 스케일 이후 단위로 변환하는 방법을 지정합니다.

스케일 이후 단위는 NI-DAQmx가 사용자 스케일을 적용한 후 최종 단위로 표현된 값을 나타냅니다. 어플리케이션에 적합한 방식으로 스케일 이후 단위를 정의할 수 있습니다. 예를 들어 선형 위치를 전압으로 변환하는 스케일을 전압 출력 채널에 할당하면 스케일 이전 샘플은 볼트로 표시되고 스케일 이후 샘플은 미터로 지정될 수 있습니다.

 

NI-DAQmx 사용자 스케일 타입

NI-DAQmx는 4가지 스케일 타입을 제공합니다.


선형

선형 사용자 스케일 타입은 y = m * x + b 방정식을 사용합니다. 여기서 x는 스케일 이전 값이고 y는 스케일 이후 값입니다. 이 방정식은 입력과 출력에서 동일합니다.

 

 

맵 범위

맵 범위 사용자 스케일 타입은 특정 범위의 스케일 이전 값을 또 다른 범위의 스케일 이후 값으로 비례적으로 스케일합니다.

 

 

다항식

다항식 사용자 스케일 타입은 n차 다항식을 사용합니다. NI-DAQmx에는 스케일 이전 값을 스케일 이후 값으로 변환(순 방향)하는 다항식과 스케일 이후 값을 스케일 이전 값으로 변환(역 방향)하는 다항식이 모두 필요합니다. 한 세트의 계수만을 알고 있는 경우, DAQmx 역 다항식 계수 계산 VI를 사용하여 다른 세트의 계수도 생성하십시오.

 

 

테이블

테이블 사용자 스케일 타입은 스케일 이전 값을 해당하는 스케일 이후 값에 맵핑합니다. NI-DAQmx는 선형 보간을 테이블에서의 값 범위에 있는 값에 적용합니다. 읽기 작업은 테이블에 있는 최대/최소 스케일 이후 값보다 크거나 작은 샘플을 자릅니다. 쓰기 작업은 테이블에서의 최대/최소 스케일 이후 값보다 크거나 작은 샘플에 대한 에러를 생성합니다.

 

 

NI-DAQmx 사용자 스케일 사용하기

NI-DAQmx 사용자 스케일은 Measurement & Automation Explorer(MAX), DAQ Assistant에서 생성 및 적용되거나 LabVIEW 또는 LabWindows™/CVI™에서 프로그래밍 방식으로 생성 및 적용할 수 있습니다. LabVIEW에서는 NI MAX에서 생성된 사용자 스케일을 2가지 방법으로 적용할 수 있습니다.

 

DAQmx 버추얼 채널 생성

DAQmx 버추얼 채널 생성 VI에는 사용자 스케일 이름을 제공할 수 있는 터미널이 있는 경우가 있습니다. 이 VI는 다형성이므로, 이 터미널의 존재 여부는 채널 타입에 따라 다릅니다. 터미널이 없는 경우, 사용자 스케일을 해당 채널 타입에 적용할 수 없습니다. 사용자 스케일이 사용되는 경우 단위사용자 스케일로부터로 지정해야 합니다.

 

DAQmx 채널 프로퍼티 노드

DAQmx 채널 프로퍼티 노드를 사용하여 사용자 스케일을 구현할 수도 있습니다. DAQmx 버추얼 채널 생성의 경우와 마찬가지로, 단위사용자 스케일로부터로 지정해야 합니다.

 

LabWindows™/CVI™에서 사용자 스케일을 적용하는 것도 이와 매우 유사합니다. 채널을 생성하는 동안 사용자 스케일을 적용하려면 Units 인수를 From Custom Scale로 지정하고 Custom Scale Name 인수에서 사용자 스케일 이름을 지정합니다. 프로퍼티를 사용하여 사용자 스케일을 적용하려면 DAQmx GetChanAttribute를 사용하여 Custom Scale Name 프로퍼티를 사용자 스케일 이름으로 설정하고 Units 프로퍼티를 From Custom Scale로 설정합니다.

사용자 스케일을 프로그래밍 방식으로 생성 및 적용할 수도 있습니다.

사용자 스케일은 입력 채널과 출력 채널에 모두 적용할 수 있습니다.


입력 채널

스케일은 스케일 이전 아날로그 신호 값을 사용자 스케일에서 지정된 스케일 이후 단위로 변환합니다. 예를 들어 스케일은 전압을 선형 위치로 변환할 수 있습니다. 스케일과 연관된 채널에서 샘플을 읽을 때 샘플은 스케일 이후 단위로 되어 있습니다.

출력 채널

스케일은 지정된 단위 값을 입력으로 사용하여 출력 채널에 쓸 해당 아날로그 신호 값을 출력합니다. 예를 들어 스케일은 선형 위치를 전압으로 변환할 수 있습니다. 샘플을 스케일과 연관된 채널에 쓸 때, 샘플은 스케일 이후 단위로 되어 있습니다.

또한 스케일을 사용하여 읽거나 쓴 샘플을 교정함으로써 최종 스케일 이후 단위가 채널의 스케일 이전 단위와 일치하도록 할 수도 있습니다. 스케일이 채널에 할당된 후, 스케일은 일반적으로 채널의 스케일 이전 단위로 표시되는 모든 속성에 적용됩니다. 여기에는 채널에 할당된 최대값과 최소값이 포함됩니다. 예를 들어 volt를 meter로 변환하는 사용자 스케일이 전압 채널에 할당되는 경우, 채널 최소와 최대 속성은 meter로 표시됩니다.

 

예제 - Volts를 Revolutions/Minute으로 변환하기

아날로그 출력 전압 채널을 회전 속도가 생성된 전압에 비례하는 모터에 연결하고 이 변환을 지정하는 스케일을 생성하려는 경우를 가정합니다. 이 경우 스케일 이전 단위는 volts이며 스케일 이후 단위는 Revolutions/Minute가 됩니다. 그 후 volts를 Revolutions/Minute으로 변환하는 식, 테이블, 맵을 지정합니다. 이 스케일을 생성한 후, 생성된 스케일을 아날로그 출력 전압 채널에 연동시킵니다. volts와 revolutions/minute 사이를 수동으로 또는 추가 코드를 사용하여 변환하는 대신 스케일에 연동된 채널에 직접 revolutions/minute 단위로 샘플을 쓸 수 있습니다. 그러면 NI-DAQmx가 지정된 변환을 자동으로 수행합니다. 스케일을 사용하면 코드가 단순해지고 어플리케이션의 활용도가 개선됩니다.

참고: Traditional NI-DAQ (Legacy)에는 Traditional NI-DAQ 사용자 스케일의 형태로 선형, 다항식, 테이블 스케일링이 포함되어 있습니다. 이 사용자 스케일은 이 문서에서 설명한 NI-DAQmx 사용자 스케일과 비슷하게 작동합니다.