본문 바로가기

개발자/AVR Atmega

Data Acquisition에 관한 여러가지 상식

 

Data Acquisition이란

 

실험실이나 공장에서 하중/압력/온도/습도/속도/가속도/변위(길이)/토크등 아나로그 물리량을 측정하여 그 값을 얻어 분석을 하거나, 그 값을 기준으로 다른 제어를 하고자 할때, 이 아나로그값인 물리량을 디지탈 값으로 변환하여 컴퓨터로 받아 들여야 합니다.   이러한 과정을 Data Acquisition (자료 취득)이라고 말 합니다.

전 세계적으로 많은 회사들이 이 분야에 관심을 갖고, 이 기술을 이용하여 많은 제품을 생산하여 판매하고 있습니다.




  

응용분야

 

Data Acquisition을 이용하여 할 수 있는 일은 무궁무진하여 제약된 지면(?)에 모두 열거하여 설명 할 수는 없지만 대표적인 이용 사례를 적어보면 다음과 같습니다.

- 시험실에서 : 전압측정/전류측정/온도측정/압력측정/길이측정,기록등

- 온실에서 : 전압전류/온도변화 측정,기록/광량측정/습도 측정 등 

- 공장에서 : 농도측정/온도측정/유량측정/유속측정/회전수 측정/전압,전류,전력량 측정/압력측정/하중측정 등등등

- 기계제어시 : RPM 측정/Torque측정/유압측정/변위량(위치)측정/공구압력측정/가공정도 측정 등등

  

측정방법

 

물리량을 측정하는데 있어서 Data Acquisition보다 중요한것은 바로 센서(Sensor)이다.

어떤 물리량을 측정할것인가가 정해지면 해당 센서를 정확히 찾아 사용해야 하며, 센서에서 나오는 츨력값이 어떻게 나오는지를 확인한 후 Data Acquisiton Board의 입력 레인지를 정해서 사용해야 합니다.

에를 들면, Load Cell의 경우 10V정도의 전원을 공급해야 하고, 축력값이 3-30mV로 상당히 작은 값의 전압이 나오므로, 곧바로 Data Acquisition Board와 접속하여서는 측정할 수 없습니다.

이런 경우에 센서와 Data Acquistion board 사이에 Signal conditioner를 넣어 일정한 10볼트의 전원을 센서에 공급해 주고, 로드셀 출력을 1,000배 정도 증폭이 가능한 고정밀도 DC AMP가 내장된 Load Cell Signal conditioner가 필요하게됩니다.

이 밖에 온도센서는 해당 온도센서에 맞는 Signal conditioner가 있어야 하며, 변위를 측정하는 센서도 그 센서와 1조를 이루는 PreAmp갇은것이 함께 공급되니 확인 후 구입해야 합니다.


A/D Convertion이란

 

AD는 Analog to Digital 의 약자로 아나로그 물리량을 컴퓨터에서 인식할 수 있는 디지탈로 변환하는 기술을 말 합니다. 학술적인 의미의 설명은 지면상 생략하고 기본 원리만을 설명하도록 하겠습니다.

예를 들어 0V ~ 10V의 입력을 받을 수 있는 A/D Convertor에 5V의 전압을 입력했을때, 5V의 신호는 아나로그값입니다. 이 5V의 아나로그값을 12bit의 분해능을 갖는 A/D Convertor로 읽었을때, 2의 12승인 4,096의 절반인 2,048 값을 갖게 됩니다. 이 2,048이란 디지털 값을 전압이나,하중,온도 등으로 변환하여, 컴퓨터 화면상에 표시하면 우리는 온도나 압력값으로 직독할 수 있습니다.

이와같이 직독이 불가능한 자연현상값을 직독할 수 있도록 변환하는데 필요한 과정이 A/D변환입니다.

  

D/A Convertion이란

 

위에서 A/D Conversion에 대한 설명을 드렸고, D/A Conversion이란 A/D 변환의 정 반대로 디지탈값을 아나로그값으로 변환하는 역할을 말합니다.

예를 들어, 사람의 음성을 녹음하여, A/D Conversion과정을 거친 디지탈값(수치)값을 메모리에 저장한 후 다시 이 수치를 D/A Convertor를 통해 아나로그로 바꾸어 스피커를 구동시키면 녹음한 음성이 다시 재생되게 됩니다.

이때, 변환속도나 분해능이 음질을 좌우하게 됩니다. 이 변환속도나 분해능에 대해서는 다음에 설명 드리겠습니다.

  




분해능이란

 

Data Acquisition Board를 선택하실때 고려해야할 사항중 하나가 바로 분해능 입니다.

1bit의 분해능을 갖는다면, 2의 1승의 선택밖에 없습니다. 즉, '0' 이거나 '1'로 자연현상을 표현 해야겠죠. 우리가 말 하는 '음','양'의 구분은 1비트의 분해능을 갖는 자연현상 판단 입니다.

사람을 1비트로 판단하면 '남'과'여' 뿐이고, 그 이상의 자세한 분류는 표현 불가능 합니다. 주역(周易)은 고대 중국의 철학사상이며, 자연에 관한 표현 방법입니다.   이 주역은 몇비트의 분해능으로 자연을 표현 했을까요?

정답은 6bit의 분해능 입니다.    6개의 효(爻)가 음/양으로 나뉘어 표현 했습니다.

2의 6승인 64개의 괘(卦)로 현상을 파악 했으며, 그 당시엔 세상이 복잡하지 않아 64개의 괘로도 설명이 가능 했지만 요즘에는 워낙 복잡한 세상이라 ..

여담으로 우리회사 위층에 있는 식당의 TV 가 고장이 나서 볼륨스위치를 누르면 소리가 엄청 크거나 아예 안들 릴 정도로 작아져 곤란을 격고 있다. 우리는 '저 TV의 디지탈 볼륨은 2bit짜리이다'라고 농담을 합니다. (4단계정도의 소리변화밖에 표현 안되니까..) 보통 8비트짜리를 사용하는데, 고장이 난것이죠. 

온도를 측정할때, 8bit의 분해능을 갖는 A/D 변환을 하면, 256단계로 표현 할 수 있다는 의미이며, 1,000g의 하중을 8bit로 변환하여 표현하면, 1,000/256의 최소 표현능력(약 4g) 밖에 없습니다.

즉, 0,4,8,12g으로 밖에 표현이 안됩니다. 8bit 분해능을 갖는 A/D Convertor를 써서 변환하여, 화면에 표시할땐 소숫점 1자리까지 표시해 달라고 유저가 요구할땐, 분해능에 대한 설명을 정확하게 인식 시켜줘야 고생을 하지 않습니다.

이 분해능이 높을수록 정확하게 (원래값에 충실하게) 변환을 할 수 있습니다. 일반적으로 12bit의 A/D Convertor가 많이 보급되어 있습니다.

저희 대정산업전자에서는 16bit의 A/D Converot를 (12비트의 16배 분해능) 12비트 가격으로 공급하고 있사오니 제품소개를 참고 하시기 바랍니다.

 

 

변환속도의 중요성

 

1초에 몇번의 A/D Conversion을 수행하는가를 '변환속도'라고 말 합니다.

이 변환속도란 물리량이 얼마나 빨리 변하는가에 따라 그 속도에 맞는 카드를 선택해야 합니다.

예를 들어 수위의 변화를 측정하여, 화면에 표시 할경우는 초당 1번(1 Hz)만 측정해도 충분합니다.

이러한 수위나 온도 측정에 333kHz의 A/D변환기를 사용한다면, 비용의 낭비와 시간의 낭비이며, 쓸데없는 노이즈 처리에 고생하게 됩니다. 

그러나, 사람의 음성을 다루거나, 고속으로 충돌하는 자동차 충돌시험기에서 데이터를 취득하는 경우라면 짧은 시간에 많은 데이타를 얻어야 분석이 가능하기 때문에, 가능하면 변환속도가 빠른 A/D Convertor가 내장된 보드를 선택하여 사용해야 할 것이며, 처리 방식도 ISA-BUS방식이 아닌 PCI BUS방식을 이용해야 할것이며, 포트에서 직접 읽는 방식보다는 DMA방식을 이용하는것이 유리 합니다.

 

 

어떻게 외부신호를 내 컴퓨터안으로 받아들일것인가 ?

 

아마 많은 이들이 외부 신호선을 그냥 내 컴퓨터에 선으로 연결만 한다고 간단하게 생각하실 수 있겠지만, 사실 생각보다 간단하지 않다.

Data Acquisition Board라는 특수 목적의 보드를 PC Slot에 삽입하여 사용하는것이 가장 간단한 방식이다. 이 Data Acquisition Board에는 A/D Convertor,D/A Convertor,Digitial I/O 등이 내장되어 있어 이를 이용하여 외부 신호를 받아드릴 수 있는것이다.


여러 시스템이서 상당히 중요하게 고려해야할 부분이 시그널 콘디셔닝(Signal Conditioning)인데,Signal Conditioning 이란 현장의 다양한 종류의 신호를 Data Acquisition Board(이하 DAQ B'D로 칭한다)가 인식가능한 신호 레벨로 변환시켜주는 것을 의미한다.

DAQ보드는 일반적으로 0-10V , 0-5V 또는 -/+5V 정도의 신호를 받을 수 있도록 설계되어 다. 하지만 , 현장의 신호는 낮게는 수 mV에서 높게는 수천 V 까지 다양한 전압으로 들어 오던가 전압대신 저항값의 변화로 나오는것도 있고, 펄스 형태로 들어오는경우도 있다.


외부의 신호를 원하는 범위의 신호로 변환하려면 전암증폭을 하기도 하고, 전류-전압의 변환을 하기도 하고 저항-전압형태로 변환시키기도 한다.

더 나아가서 이 신호변환에는 외부신호와 컴퓨터와의 Isolation이 반드시 필요하다.

Isolation이 안된 시스템은 낙뢰나 순간적인 과 전압등으로 컴퓨터까지 파괴되는 경우가 많기 때문이다.

보통 공업표준규격인 신그널변환기가 시중에 많이 나와 있으며, 이를 구입해 사용하면 된다.

 

 

신호원(信號源)과 컴퓨터와의 거리는 얼마까지 가능할 것인가?

 

작업을 하면서 많이 접하는 문제중 하나가 컴퓨터는 실내에 있고 신호원(Signal Sourec)은 현장에 있을때 거리가 멀어도 관계가 없는지, 관계가 있는지 .. 또 얼마나 먼 거리까지 전송이가능한지.. 노이즈는 어떻게 처리해야 할지.. 등이 걱정이다.

이에 대한 답은 워낙 여러가지 변수가 복합적으로 작용하기 때문에 간단히 설명하기가 곤란하다.

신호원의 종류,신호 레벨,접속 케이블의 종류, 접속방법, 주위의 전기적인 환경,온도...등 . 노이즈의 경우도 이를 없에려면 노이즈의 종류,원인,노이즈의 주파수,노이즈 발생원과의 거리,원하는 정밀도등을 고려해서 처리해야 한다.


잡음(Noise)은 일반적으로 낮은전압의 신호원에서 치면적이고, 높은 주파수 일수록 영향이 크다.

법칙에 따르면, 일반적으로 신호원과 PC와의 거리에 비례하기 때문에 거리가 멀 경우는 신호전송방식을 1. '전류제어방식'(4-20mA)을 사용하기를 권장한다.

2. 가능하면 전압을 높여서 받고,

3. 쉴드케이블을 사용해서 전송하는것이 좋다. 쉴드 케이불이 곤란하면 Twisted-pair 케이블을 사용하는것이 좋다.

Twisted-pair Cable이란 신호선과 그라운드선이 서로 꼬여서 가는 방식으로 쉴드케이블과 같은 역할을 한다.

일반적으로 신호원과 PC사이의 거리는 6 Feet 이내로 하여야 안전하다.

 




12비트냐 16비트냐/ 고속이냐 저속이냐 ?

 

분해능이란 원래의 신호를 얼마나 충실하게 입력받는가를 나타내는 지표이며, 일반적인 Data Acquisition Board에는 12bit (1/4,096) 분해능을 갖는다. 이는 신호의 크기를 1/4,096으로 나누어 표시할 수 있는 능력을 말 하며, 예를들면 4ton의 무게를 12bit분해능으로 표시하면, 최소 표시 능력은 약 1gram이다.

흔히 분해능의 범위를 넘어선 정밀도를 요구하는 유저가 가끔 있는데, 이때는 정확한 분해능에 대한 개념을 이해시켜 줘야 한다. 

모든 정밀도는 사용되는 기기전체 부품의 정밀도중 가장 낮은쪽 정밀도를 따라간자는것은 상식이다.

즉, 1/500의 정밀도를 갖는 센서 신호를 16비트 A/D 로 받아 처리 한다면, 이를 두고 '개 발에 편자' 또는 '돼지목에 진주'라고 하겠다.

대부분의 온도신호를 받는 센서의 정밀도는 약 0.1% (1/1,000)이다. 이 온도 센서의 신호를 컴퓨터로 읽을때는 10bit정도의 분해능이면 충분한 것이다.


무조건 고가이고 고성능을 요구하는 소위 '선무당형 엔지니어'들이 이런 오류를 범해 경비를 낭비하는 경우가 종종있다. 제대로된 엔지니어라면, 정확히 설계를 해서 Over Design하는 실수를 범하지 말아야 한다.


어떤 경우는 12비트의 정밀도로는 분석이 않되는 고정밀도의 센서 신호가 있을 수 있다.

이럴 경우에는 16bit (65,536)의 A/D convertor를 사용해야 한다.

DAQ 시스템 설계시 고려해야 할 사항중 중요한것이 분해능뿐만 아니라 속도에 관한 내용이다.

수위 변화나 온도변화를 측정하는데, 100KHZ이상의 변환속도를 가진 DAQ 보드를 사용하는것도 Over Design이다.

온도나 수위는 그 변화속도가 느려 1초에 한번씩만 받아도 전혀 프로세스상 문제가 없으므로 1HZ의 A/D Conversion 속도를 가진 DAQ 보드면 충분하다. 물론 이런 저속은 생산되지도 않지만, 약 10-20Khz정도의 저가형이 적합한것이다.

이 경우는 보다 정확한 데이터를 얻기위해 데이터를 100번 받아 그의 평균을 내는 정도로 시간이 많이 남는다.


그러나, 자동차의 충돌시험, 에어백 시험,충격 에너지 측정등 고속의 데이터취득이 필요할때는 고속 Sampling이 지원되는 보드를 선택해야 한다.


 

DMA방식을 사용하는것이 좋은가?


DMA(Direct memory access)는 좀더 발전된 시스템에서 사용하는 에이터 취득 방식이다.

일반적인 DAQ 시스템에서는 Data Conversion 명령을 지령하고 변환되었다는 신호가 오면 원하는 Port의 값을 읽는방식을 사용하는데, DMA를 사용하면 매번 데이터를 가지러 가는 불편이 없이 변환하여 바로 메모리에 쓰고 메모리 버퍼가 차면 가져와서 후처리를 하는 방식이다.

이 DMA방식을 사용하면, PC에서는 DAQ에 대해 신경쓰지 않고 작업을 할 수 있어 고속의 데이터처리에 적합하다.

그러나 이 방식은 데이터 취득도중 그 값에 따라 어떤 행동을 해야하는 방식의 처리방식에는 적합하지 않다.

즉 A/D로 입력을 받아 변환하여 그 결과에 따라 D/A 변환을 통해 어떡 Actuator를 작동시키는 작업이라면 이 방식을 곤란 하다.

그러나 충돌시험같이 고속의 데이터를 짧은 시간에 취득 하는 방식이라면 상당히 좋은 방식이다.

 

 

Isolation을 시켜야하나? 얼마나 보완이 될까??

 

DAQ분야에서 고려해야할 사항중 중요한것중 하나는 신호선을 타고 들어오는 고전압(낙뢰등)에 대한 고려이다. 고압에 대한 보완은 일반적인 DAQ 보드에서는 35볼트 정도로 낮으므로, 이보다 높은 전압에 대해 안전하게 시스템을 보호 하려면, Isolate된 Signal Conditioning module을 구입해서 사용하는것이 좋다.


Isolation에 대해 신경을 써야할것중 또 한가지는 신호원을 노이즈로부터 보호하기위해 대지와 접속이 않된 (Floating) 방식을 사용하는데, 이때 대지와 PC사이의 전위차가 큰 경우가 많다.(심할때는 200V 가까이 올라간다) 이 큰 전위차의 전압이 바로 컴퓨터로 들어가면 A/D Convertor가 파괴되고 말것이다.

양쪽의 신호선을 연결할때 불꽃이 번쩍일 정도라면 접속하기 전에 전위차를 측정해보고, 원인을 제거한 후에 접속해야 할것이다. 그대로 연결하면, 비록 전류가 적어 파괴가 되지 않더라도 엄청난 노이즈로 고생할것이다.


또 한가지는 양쪽다 전원이 켜진 상태에서는 전위차가 없다가 한쪽 시스템의 전원을 껏을때 발생되는 전위차 때문에 파괴되는 경우도 있다. 이 경우 양쪽 시스템의 외함접지선을 서로 연결해서 전위차를 없애야 한다.


어떻게 해야 입력신호의 잡음을 줄일 수 있을까?

 

신호를 측정하다 보면 대부분 원하지 않은 노이즈때문에 고생을 하게 된다.

신호를 전류방식으로 받으면 노이즈에 별 영향이 없겠지만, 전압형태로 받을경우는 반드시 노이즈의 영향을 받게 된다. 대부분의 노이즈는 적합한 접지나 신호선의 차폐( Shield)로 해결이 가능하다.

결선시 외함의 접지와 신호선의 접지는 구별해서 처리해 줘야 함에도 불구하고 함께 묶여서 역으로 노이즈를 만드는 경우가 많다.


위 에 적은 방식을 사용해도 노이즈가 제거 안되면 Filtering을 해야한다.

시판되는 노이즈 필터를 전원부에 사용하여 전원의 노이즈를 제거하고, 특별하게 제작된 high-pass filter나 low-pass filter를 사용하여 원치 않는 주파수를 제거하는 하드웨어적인 방법이 있고, 처리 소프트웨어에서 평균값을 취하거나, 분포를 이용한 처리,또는 축접하여 평균을 내는 방식등을 이용한 소프트웨어적인 필터링을 이용해야 한다.

그러나 소프트웨어적인 필터링은 프로그램에 많은 무리가 따라 처리속도가 저하 되므로, 외부로부터 근본 적으로 노이즈를 제어하는 노력이 우선되어야 할것이다.

 




어떤 기기(장비)를 사용하여 측정하는것이 좋을까?

 

Data Acquisiton 을 할 수 있는 장비로는 보통 사용되는  Data Acquisition Board와 PLC를 통해  아나로그를 받는 방식, DCS장비를 통해 받는 방식등 여러가지가 있는데, 장 단점이 있으므로 측정하고자 하는 대상을 잘 분석 한 후 결정해야 할 것입니다.


-1. DataAcquisition Board 종류 : PC 의 Slot에 삽입해서 사용하는 방식으로 PC에 삽입 되는 보드와 외부와 연결되는 신호선,신호를 입력할 수 있는 단자대 등으로 구성됩니다.

이 경우는 공장자동화등에 사용하기 보다는 시험실에서 사용하기에 적합한 환경입니다. 물론 Isolation된 보드를 선택하여 사용하시면 공장에서 나타나는 과전압등을 방지할 수 있겠습니다.

 

장점 : 사용법이 간단하다.

샘플링속도가 고속이며, 분해능이 높은 보드가 시판되고 있다비교적 싼 가격으로 측정 가능하다. (저가형 20만원대부터.. 수백만원)

단점 : 현장의 노이즈나,과전압등에는 불안하다.

현장 신호선이  PC바로 옆까지 와야 한다.

 

-2. PLC

: Programmble Logic Controller의 약어로, 일반적인 공장자동화분야에서

 

많이 사용되는 장비입니다. 기술이 발달해서 PLC에도 아나로그입력

모듈이 나와 있습니다.  이 기기는 범용성이 뛰어나고, 확장이 용이해서

사용자가 늘어나고 있습니다.

 

장점 : 현장에서 사용해도 안전하다.

 

계측분야에 전문가가 아니더라도 사용할 수 있다.

 

현장의 제어판넬 내부에 부착하여 RS-232C 나 RS-422로 통신가능하다.

단점 : 저속이며, 분해능이 낮다.

Analog 입력모듈이 고가이다.

 

-3. Recoder

: 일반적으로 온도나 전압,전류 변동을 간단히 접속하여 측정,기록하는데 많이 사용되고 있다.

 

장점 : 사용법이 간단하다.

단 점: 유지비가 많이 들어가며, 컴퓨터와 접속이 가능한 모델은 고가이다.

 

-4. Rmote Data Acquisition Module

: 현장의 센서신호를 받아들여 RS-422나 RS-485등 통신네트웍으로 신호를 컴퓨터로 전달하는 방식에서는 PLC와 비슷하다고 할 수 있으나, PLC는 자체 프로그래밍이 가능하고, Stand Alone형으로 사용 할 수 있는데 반해 이 모듈들은 상위PC등이 있어야 측정 가능하다.

 

장점 : 가격이 저렴하다.

현장설치가 용이하며, 안정적이다.

 

단점 : 통신으로 전달 하기때문에 속도가 느리다. (초당 10회 이하)


자료 출처 : 충북대학교 이경봉 박사님 글중