본문 바로가기
econtop econtop

PLC 아날로그 입력에서 스케일링 연산이 필요한 이유

takshout 읽는 시간 약 9분

PLC 아날로그 입력 스케일링 연산의 모든 것

산업 자동화 현장에서 프로그래머블 로직 컨트롤러는 그야말로 두뇌와 같은 역할을 합니다. 센서에서 들어오는 다양한 정보를 바탕으로 기계를 제어하고 공정을 관리하는 핵심 장치입니다. 센서는 온도, 압력, 유량, 속도 등 물리적인 세상을 측정하여 전기 신호로 바꿔주는데 이 신호는 보통 미세한 전류나 전압 형태를 띱니다. 하지만 컨트롤러가 이해하는 세상은 오직 숫자뿐입니다. 바로 여기서 왜 우리가 스케일링 연산이라는 과정을 거쳐야 하는지 그 필요성이 대두됩니다.

초보 엔지니어나 자동화 시스템에 입문하는 분들이 가장 먼저 겪는 혼란 중 하나는 센서 값을 그대로 읽어왔을 때 발생하는 괴리감입니다. 예를 들어 온도 센서를 설치하고 컨트롤러에 연결했는데 화면에는 엉뚱하게 만 단위의 숫자가 찍히는 경우를 흔히 봅니다. 이는 장치가 물리량을 직접 이해하지 못하고 전압이나 전류의 크기를 디지털 값으로 변환했기 때문입니다. 이 간극을 메워주는 다리가 바로 스케일링 연산입니다.

센서가 보내는 신호와 컨트롤러가 읽는 숫자의 비밀

현장에서 가장 널리 쓰이는 아날로그 신호 표준은 4에서 20밀리암페어 전류 신호와 0에서 10볼트 전압 신호입니다. 이러한 표준 신호가 컨트롤러의 아날로그 입력 모듈로 들어오면 내부적으로 일정한 범위의 숫자로 변환됩니다. 이를 디지털 값 또는 로 밸류라고 부릅니다. 흔히 12비트나 16비트 분해능을 가진 모듈을 사용하는데 16비트 모듈의 경우 0부터 32767 또는 마이너스 영역을 포함하여 특정 범위의 정수 값으로 신호를 표현합니다.

문제는 컨트롤러가 읽어들인 이 숫자 16384가 과연 무엇을 의미하는지 알 수 없다는 점입니다. 만약 이것이 섭씨 온도를 측정하는 센서에서 온 값이라면 현재 온도가 50도인지 100도인지 알 수 없습니다. 센서의 측정 범위가 영도에서 300도까지라면 16384라는 숫자는 이 범위의 정확히 중간 지점에 해당하므로 150도라는 의미를 갖습니다. 이와 같이 입력 모듈의 원시 숫자를 실제 현장에서 사용하는 의미 있는 단위로 변환하는 모든 과정을 통틀어 스케일링이라고 합니다.

실생활에서 마주하는 스케일링의 필요성

우리가 일상에서 쉽게 접하는 정수기나 보일러 온도 조절기 내부에도 이러한 원리가 숨어 있습니다. 공장 자동화 현장으로 눈을 돌려보면 그 중요성은 더욱 커집니다. 화학 공장의 탱크에 담긴 액체의 수위를 모니터링하는 상황을 가정해 보겠습니다. 탱크의 높이가 0미터에서 10미터까지 측정 가능한 압력 센서가 달려 있습니다.

센서가 4밀리암페어를 보낼 때 수위는 0미터이고 20밀리암페어를 보낼 때 수위는 10미터입니다. 컨트롤러는 이 전류를 받아 0에서 27643 사이의 숫자로 바꿉니다. 만약 작업자가 모니터 화면에서 5000이라는 숫자나 13821이라는 아득한 원시 값을 봐야 한다면 작업자는 수위가 얼마나 남았는지 직관적으로 알기 어렵고 큰 실수를 저지를 수 있습니다. 스케일링 연산을 통해 화면에 정확히 5.2미터와 같이 소수점이 포함된 실제 물리량으로 표시해주어야 비로소 사람이 이해하고 대처할 수 있습니다.

비례식을 이용한 스케일링 연산의 기본 원리

스케일링 연산의 수학적 바탕은 중학교 시절 수학 시간에 배우는 일차함수와 비례식입니다. 가로축에는 컨트롤러가 읽는 디지털 입력 값을 놓고 세로축에는 실제 물리량을 놓은 뒤 두 점을 연결하는 직선의 방정식을 구하는 것과 같습니다.

가장 많이 쓰이는 공식은 다음과 같습니다. 출력값은 입력값에서 최소 입력값을 빼고 여기에 최대 실제값과 최소 실제값의 차이를 곱한 뒤 이를 최대 입력값과 최소 입력값의 차이로 나누고 마지막에 최소 실제값을 더하는 형태입니다. 말로 들으면 복잡해 보이지만 실제로 코딩을 하거나 펑션 블록을 만들 때는 매우 단순한 비례 계산식에 불과합니다.

  • 입력 원시 값의 최소와 최대 범위를 정확히 파악하기
  • 표현하고자 하는 실제 물리량의 최소와 최대 범위를 정의하기
  • 두 범위 사이의 비례 관계를 수식으로 구현하기
  • 연산 결과가 소수점을 가질 경우 실수형 변수로 처리하기

산업 현장에서 자주 활용되는 스케일링 방식의 종류

자동화 기기 제조사들은 엔지니어들의 수고를 덜어주기 위해 다양한 방법으로 스케일링 기능을 제공합니다. 소프트웨어마다 구현 방식이 조금씩 다를 수 있지만 핵심 개념은 대동소이합니다.

첫째는 전용 펑션 블록을 사용하는 방식입니다. 지멘스나 미쓰비시, 로크웰 등 주요 제조사들은 아날로그 입력 값을 스케일링해주는 전용 명령어를 내장하고 있습니다. 엔지니어가 모듈의 채널 번호와 실제 단위의 상하한값만 입력하면 내부적으로 알아서 계산을 처리해 줍니다. 이 방식을 사용하면 코드가 간결해지고 오타로 인한 실수를 줄일 수 있습니다.

둘째는 사용자가 직접 수식을 작성하여 계산하는 방식입니다. 비트 연산이나 사칙연산을 직접 조합하여 스케일링 함수를 만드는 경우입니다. 정밀한 제어가 필요하거나 표준 명령어가 지원하지 않는 특수한 변환 공식을 적용해야 할 때 유용하게 쓰입니다. 예를 들어 비선형 특성을 가진 센서의 값을 보정해야 할 때 직접 수식을 짜는 것이 유리합니다.

현장에서 흔히 저지르는 실수와 오해

아날로그 입력 스케일링을 다룰 때 현장 기술자들이 종종 빠지는 함정들이 있습니다. 이러한 오류들은 설비 오작동이나 센서 데이터 신뢰도 저하로 이어질 수 있으므로 주의가 필요합니다.

가장 흔한 오해 중 하나는 센서의 스펙과 컨트롤러 입력 모듈의 스펙이 당연히 일치할 것이라고 생각하는 것입니다. 센서는 영도에서 백도까지 측정하는데 입력 모듈은 마이너스 이십도에서 백이십도까지의 범위를 기본으로 잡고 있다면 계산 결과는 완전히 틀어지게 됩니다. 반드시 센서가 실제로 출력하는 전기적 신호의 범위와 컨트롤러가 그것을 받아들이는 디지털 범위가 정확히 매칭되는지 확인해야 합니다.

또 다른 실수는 오버 스케일이나 언더 스케일 상황을 고려하지 않는 것입니다. 공정이 비정상적으로 흘러가서 센서가 측정할 수 있는 최대치를 넘어서는 압력이 들어오면 입력 값은 한계치를 초과하게 됩니다. 이때 스케일링 연산이 프로그램 다운이나 예상치 못한 음수 출력을 유발하지 않도록 상하한 제한을 걸어두는 안전 장치가 필요합니다.

비용 효율적인 시스템 구축을 위한 스케일링 활용 팁

효율적인 자동화 시스템을 설계하려면 하드웨어 교체 비용을 아끼면서도 소프트웨어적인 스케일링을 적극 활용하는 지혜가 필요합니다. 무조건 고가의 고정밀 센서나 특수 모듈을 도입하기보다 일반적인 아날로그 입력 모듈을 사용하고 프로그램 내에서 정밀한 스케일링과 필터링 연산을 거치는 것이 비용 면에서 훨씬 유리합니다.

노이즈가 심한 산업 현장에서는 원시 값 자체에 떨림 현상이 발생하기 쉬우며 이는 스케일링을 거치면 더욱 증폭되어 나타납니다. 따라서 스케일링 연산을 수행하기 전 단계에서 이동 평균 필터 등을 적용하여 입력 값을 부드럽게 만들어준 뒤 스케일링을 거치는 것이 좋습니다. 이렇게 하면 센서 값의 미세한 흔들림으로 인해 제어 기기가 헌팅 현상을 일으키는 것을 막을 수 있어 설비의 수명을 연장하고 부품 교체 비용을 절감할 수 있습니다.

스케일링 연산과 관련하여 자주 묻는 질문들

아날로그 입력을 다루면서 현장에서 가장 많이 궁금해하는 부분들을 모아 보았습니다.

    • 스케일링 연산을 거치지 않고 원시 값을 그대로 쓰면 안 되나요?

    시스템 디버깅 단계나 단순히 신호가 들어오는지 확인하는 용도로는 원시 값을 써도 무방합니다. 하지만 사람이 직접 보고 제어하거나 다른 장치와 데이터를 연동할 때는 반드시 의미 있는 단위로 환산해야 하므로 스케일링이 필수적입니다.

    • 정수 연산과 실수 연산 중 어떤 것으로 스케일링을 해야 하나요?

    가능하면 실수 연산을 사용하는 것이 소수점 이하의 정밀도를 유지하는 데 유리합니다. 단, 구형 컨트롤러의 경우 실수 연산 속도가 느릴 수 있으므로 속도가 매우 중요한 고속 제어 공정에서는 정수 연산으로 단위를 키워서 계산하는 방식을 쓰기도 합니다.

    • 센서가 고장 났는지 스케일링이 잘못된 것인지 어떻게 구분하나요?

    센서에 직접 멀티미터를 대어 실제 전류나 전압 값을 측정한 뒤 그 값이 컨트롤러 모듈의 입력 채널에 제대로 들어오는지 원시 값으로 먼저 확인해야 합니다. 원시 값은 정상인데 화면에 나오는 수치가 이상하다면 그때는 스케일링 수식이나 파라미터 설정을 점검해야 합니다.

takshout

takshout
함께 보면 좋은 글

댓글 0

첫 댓글을 남겨보세요.

광고 차단 알림

광고 클릭 제한을 초과하여 광고가 차단되었습니다.

단시간에 반복적인 광고 클릭은 시스템에 의해 감지되며, IP가 수집되어 사이트 관리자가 확인 가능합니다.