상세 컨텐츠

본문 제목

DI, DO, AI, AO 디지털 및 아날로그 입출력의 개념

전기 전자 가스

by 강가이버 2017. 9. 20. 00:11

본문


아두이노, 라즈베리파이, MCU, PLC 등 신호를 통해 무엇인가 제어를 하는 디바이스는 공통적으로 DI, AI, DO, AO라는 용어를 사용합니다. 즉 가장 기본적인 개념이기 때문에 개발자뿐만 아니라 이런 장비에 관련이 있는 분들이라면 꼭 이해하고 넘어가야 합니다. 디지털 및 아날로그 입출력 신호에 대해 알려드리겠습니다.

 

 

 

1. DI, DO, AI, AO 개념

PLC나 MCU 등 제어기를 기준으로 한 개념입니다. 디지털 신호와 아날로그 신호에 대한 개념을 잘 모르시는 분은 디지털, 아날로그 신호의 개념 (Digital, Analog Signal) open_in_new 이 포스팅을 보시면 이해가 더 잘 될 것입니다.

 

1.1. DI (Digital Input)

디지털 입력신호입니다. 보통 스위치와 같이 on/off로 표현되는 신호입니다. 전기가 통하면 1, 전기가 안 통하면 0으로 인식하는 것이죠. on/off 형식의 신호를 제어기가 받는 것이죠.

 

1.2. DO (Digital Output)

디지털 출력신호입니다. 제어기 입장에서 어떤 장치를 켜고 싶으면 장치를 켜라고 명령을 하는 신호가 나가겠죠. DO는 제어기에서 나가는 신호인데 on/off 형식의 신호가 나가는 것입니다. 전기를 통하게 하거나 끊거나 2가지 경우겠죠.

 

 

1.3. AI (Analog Input)

아날로그 입력신호입니다. 아날로그는 가변적인 숫자로 이루어진 신호입니다. 현재온도, 압력 등의 수치를 제어기로 보내는 장비가 있다면 제어기에선 아날로그 입력신호가 되는 것입니다.

 

1.4. AO (Analog Output)

아날로그 출력신호입니다. 보통 전등을 켤 때에는 전원을 끄거나 켜거나 2가지 제어밖에 없죠. 모든 장치가 그렇게 단순하진 않죠. 모터를 돌리는 장비가 있다고 하면 모터의 속도를 빠르게 할 때도 있고 약하게 할 때도 있겠죠. 모터에 5V의 전압을 가할 땐 약하게 돌지만 10V의 전압을 가하면 훨씬 빠르게 돌겠죠. 이처럼 제어기에서 나가는 신호가 아날로그값인 경우 AO입니다.

 

1-아날로그-디지털-신호-DI-DO-AI-AO
아날로그-디지털-신호-DI-DO-AI-AO

 

위의 그림에 이 4가지 개념이 들어 있습니다. 만약 아래와 같이 제어를 하는 장비가 있다고 하죠.

 

온도가 30도에서 32도일 때 선풍기를 약모드로 가동하고 램프를 켠다.

온도가 32도 초과 35일 경우 선풍기를 중모드로 바꾼다.

온도가 35도 초과일 경우 선풍기를 강모드로 운전한다.

스위치를 끄면 램프와 선풍기가 꺼진다.

 

온도계에서 나가는 온도값은 제어기 입장에서 숫자로 받아들이니까 아날로그 입력(AI) 신호입니다. 온도가 30도가 넘으면 제어기에서 램프를 켜라고 신호를 보내겠죠. 램프를 켜거나 끌 때에는 on/off 디지털 신호니까 램프로 보내는 신호는 디지털 출력 DO입니다.

 

온도에 따라 선풍기의 세기가 달라지는데 이를 제어하려면 전압을 세게 보내기도 하고 약하게 보내기도 하겠죠. 즉 단순 on/off 신호가 아닌 4V, 4.23V 10V처럼 제어량을 출력으로 보내는 것이 AO입니다.

 

마지막으로 선풍기와 램프를 끄기위해 스위치를 끄면 제어기입장에서는 on이었던 신호가 off가 되므로 아! 선풍기와 램프를 끄라는 DI 신호가 왔구나 하고 정해진 동작을 하는 것이죠.

 

 

2. 하드웨어 선정시 고려할 사항

보통 PLC나 아두이노와 같은 제어기의 사양을 보면 DI, DO, AI, AO 몇 채널이라고 나와있습니다. 즉 자신이 제어하고자 하는 장치가 어떤 신호를 받아들이고 보내는지 이해를 해야 정확한 사양의 하드웨어를 선택할 수 있습니다.

 

2.1. DI (디지털 입력)

DI는 채널수가 가장 중요하다 생각합니다. 필요한 채널수에 여분으로 2~3개는 더 가지고 있는 하드웨어를 선택해야 확장에 여유로울 수 있습니다.

 

또한 제어기마다 0과 1을 인식하는 전압이 다릅니다. 예를 들어 어떤 제어기는 0~0.3V를 0으로 4.8~5.1V를 1로 인식하는 제어기가 있다고 치죠. DI가 동작했는데 2V가 되어버리면 제어기 쪽에서 원하는 동작을 기대할 수 없습니다. DI를 선택할 때 이런 애매한 신호가 들어오는 센서를 선택하면 안 되겠죠.

 

2.2. DO (디지털 출력)

실질적으로 MCU에서 보내는 DO신호로 선풍기나 형광등을 켤 수는 없습니다. 보낼 수 있는 전압과 전류가 미약하기 때문이죠. 따라서 DO를 정상적으로 구현하려면 릴레이을 거쳐야 합니다. 이 때도 MCU의 DO출력전류가 릴레이의 동작전류를 감당할 수 있는지 확인이 필요합니다.

 

 

2.3. AI (아날로그 입력)

보통 MCU기반의 보드는 0~5V의 아날로그 입력 신호를 받습니다. 따라서 AI도 센서의 출력신호가 MCU의 사양에 맞는지 확인해야 합니다.

 

또한 AI는 분해능도 고려해야 합니다. MCU의 분해능이 좋으면 좋을 수록 더 정확합니다. 예를 들어 분해능이 10bit라면 0~5V의 전압을 1024개의 숫자로 표현할 수 있습니다. 0V면 0으로 읽고 5V면 1024라는 숫자로 받아들이는 거죠. 하지만 분해능이 12bit라면 0~5V를 4096개의 숫자로 표현합니다. 즉 10bit보다 4배는 더 정확하다는 것이죠. 따라서 정확도가 필요한 장비라면 MCU의 분해능도 고려해야 할 대상입니다.

 

2.4. AO (아날로그 출력)

MCU에서는 AO를 PWM으로 구현합니다. 일반적인 아날로그 출력과 약간 다르죠. 따라서 AO로 제어할 기기가 PWM으로 동작이 가능한지 확인해야 합니다. 그렇지 않다면 별도의 AO 전용 보드가 필요합니다. PWM이 가능하더라도 MCU 출력전류가 기기의 동작전류를 감당하지 못한다면 또한 추가 장치가 필요할 것입니다.

 

이상 DI, DO, AI, AO에 대해 알아보았습니다. 전기기능사도 있고 PLC도 해본 친구가 정확한 개념을 잘 몰라서 놀랐던 경험이 있습니다. 항상 기초부터 충실히 다져나가야겠습니다.

 

관련글 더보기

댓글 영역