기능 블록 기초 로직
Niagara, EBO, Distech 등 거의 모든 최신 건물 자동화 제어기를 열어 보면 제어 프로그램은 코드 줄로 되어 있지 않습니다. 작은 상자들을 배선으로 연결한 시트입니다. 이 시트가 기능 블록 프로그램이며, 이를 읽는 방법을 익히면 제어기가 실제로 무엇을 하는지 대부분 이해할 수 있습니다. PLC 래더 로직을 다뤄 왔거나, IT 분야에서 왔거나, 이를 차근차근 설명해 준 사람이 없었다면 이 페이지를 따라가 보세요. 블록이 무엇인지, 배선은 무엇을 뜻하는지, 업계 전반에서 왜 이런 방식으로 시퀀스를 구성하는지 설명합니다.
블록과 와이어시트
기능 블록은 한 가지 작업을 수행하는 작은 상자입니다. 값이
왼쪽으로 들어오면 블록이 이를 처리하고 결과가 오른쪽으로 나갑니다. 연결 지점을
핀이라고 합니다. 왼쪽 가장자리에는 입력 핀, 오른쪽에는 출력 핀이 있습니다.
AND 블록은 두 개의 참/거짓 입력을 받아 두 입력이 모두 TRUE일 때만
TRUE를 출력합니다. ADD 블록은 두 숫자를 받아 합을 출력합니다. 블록은
한 번 실행되고 끝나지 않습니다. 초당 여러 번 계속 다시 평가되므로 출력은 언제나
그 순간의 입력을 반영합니다.
와이어시트(Niagara에서 유래한 용어이며 다른 도구에서는 단순히 프로그램 또는 기능 다이어그램이라고 합니다)는 이러한 블록으로 가득한 페이지이며, 각 핀은 배선으로 연결됩니다. 배선은 한 블록의 출력을 다른 블록의 입력으로 전달합니다. 신호에는 두 종류가 있으며 도구에서는 서로 다른 종류를 연결하지 못하게 합니다. 하나는 디지털(바이너리 또는 불리언이라고도 하며 단순한 참/거짓), 다른 하나는 아날로그(온도, 백분율, 설정값과 같은 숫자)입니다. 데이터는 실제 세계를 읽는 입력에서 시작해 로직을 거쳐 장비에 명령하는 출력까지 시트의 왼쪽에서 오른쪽으로 흐릅니다.
제어 분야에서 이 방식을 사용하는 이유
그래픽 프로그래밍만이 시퀀스를 작성하는 유일한 방법은 아닙니다. PLC에는 래더와 구조적 텍스트가 있고, 스크립트 작성이 가능한 제어기도 많습니다. 하지만 기능 블록이 건물 자동화 분야의 주된 방식이 된 데에는 현장에서 중요한 이유가 있습니다.
다이어그램 자체가 프로그램입니다. 와이어시트가 문서이자 코드 그 자체이므로
문서와 코드 사이에 간극이 없습니다. 특정 제어기를 처음 보는 기술자도 시트를 열어
배선을 따라갈 수 있습니다. 실행되는 모습을 볼 수 있습니다. 실시간
와이어시트에는 모든 배선의 현재 값이 표시됩니다. 가
TRUE가 되는 모습, 설정값이 비교기에 도달하는 모습, 루프 출력이 상승하는 모습을
볼 수 있습니다. 문제 해결은 잘못된 출력에서 배선을 거꾸로 따라가며 값이
타당하지 않게 되는 지점을 찾는 일이 됩니다. 어디서나 같은 어휘를
사용합니다. AND, 비교기, PID 블록, 온지연 타이머는 모든
플랫폼에서 같은 의미입니다. 블록을 한 번 익히면 처음 다루는 제어기의 시트도
읽을 수 있습니다.
블록 계열
제어기의 블록 팔레트에는 수십 가지 유형이 있을 수 있지만, 몇 가지 계열로 분류할 수 있습니다. 계열을 익히면 마주치는 거의 모든 블록을 이미 아는 블록의 변형으로 이해할 수 있습니다.
입력과 출력 · 실제 세계
물리적 포인트 및 상수와 시트를 연결합니다. 아날로그 또는 바이너리 입력은 센서나 접점의 값을 가져오고, 아날로그 또는 바이너리 출력은 댐퍼, 밸브, 릴레이에 명령합니다. 상수는 시트에 입력한 고정 숫자로, 설정값·불감대·한계값 등이 있습니다.
불리언 로직 · 참 / 거짓
AND, OR, NOT, XOR는 참/거짓 신호를 조합하고, 는 상태를 기억합니다. 한 번 설정되면 어떤 신호가 재설정할 때까지 그 상태를 유지합니다. , , 안전 체인을 만드는 계열입니다.
비교기 · 숫자 → 참 / 거짓
초과, 미만, 같음을 판단합니다. 비교기는 아날로그 영역과 디지털 영역을 잇는 다리입니다. 숫자를 임계값과 비교해 로직 블록이 사용할 수 있는 참/거짓을 출력합니다. 대부분의 실제 제품 팔레트에는 불감대(히스테리시스) 비교기도 있습니다. 켜짐과 꺼짐 임계값 사이에 간격이 있는 블록 하나로, 비교기 두 개를 래치에 직접 연결하지 않아도 채터링 없는 켜짐/꺼짐 동작을 구현합니다.
수학 · 값 계산
더하기, 빼기, 곱하기, 나누기, 최솟값, 최댓값을 계산합니다. 수학 블록은 기준값과 오프셋으로 설정값을 만들고, 센서 한 쌍의 평균을 내거나, 리셋을 계산하는 등 시퀀스에 필요한 일상적인 산술을 수행합니다.
타이머 · 지연 및 유지
온지연(TON)은 TRUE 신호를 통과시키기 전에 기다리고, 오프지연(TOF)은 신호가 사라진 뒤에도 잠시 TRUE로 유지합니다. 타이머는 노이즈가 있는 입력의 바운스를 제거하고, 최소 운전 시간을 강제하며, 을 방지합니다.
제어 · 루프
PID 블록은 하나의 상자에 전체 제어 루프가 들어 있습니다. 설정값과 측정값을 입력하면 측정값을 설정값으로 이끄는 0–100 % 명령을 출력합니다. PID 기초에서 내부 동작을 설명합니다.
와이어시트의 실행 방식
제어기는 정해진 주기인 스캔에 따라 전체 시트를 계속 반복해 평가합니다. 매 스캔마다 입력을 읽고, 블록을 처리하고, 출력을 쓴 다음 다시 반복합니다. 스캔 속도는 다양하지만 초당 수 회에서 열 번 정도라고 생각하면 됩니다.
한 번의 스캔 안에서 단순한 로직 체인은 한꺼번에 정리됩니다. 제어기는 소스를 먼저,
그다음 소스에 의존하는 블록을 처리하는 의존성 순서로 블록을 평가하므로 비교기의
결과가 같은 스캔에서 하류의 AND에 도달합니다. 흥미로운 경우는
피드백, 즉 블록의 출력을 자체 체인으로 되돌리는 배선이며 바로
가
이에 해당합니다. 제어기는 피드백 배선에 이전 스캔 값을 전달하는 방식으로
이를 처리합니다. 래치는 지난 스캔의 상태를 읽고 현재 상태를 결정하므로, 루프가
자신을 끝없이 쫓지 않고 깔끔하게 정리됩니다. 이 한 스캔 분량의 기억 덕분에 래치는
상태를 유지할 수 있고, 루프가 있는 시트도 멈추지 않습니다.
아래 시트는
순수한 피드포워드 체인이므로 이러한 동작을 보여 줄 루프가 없습니다. 한 스캔의
기억이 매 틱마다 유지되는 모습을 직접 보려면 기능 블록
편집기를 열고 동결 방지 온도조절기 예제를 불러오세요. 는 동결 시 장치를 트립하고,
재설정 신호로 해제될 때까지 이전 스캔의 자체 값을 이용해 트립 상태를 유지합니다.
설명에 그치지 않고 피드백 동작을 실행해 볼 수 있습니다.
와이어시트 예제 — 외기냉방 활성화
다음은 작은 실제 시퀀스입니다. 공기조화기는 외기를 이용해
을 해야 하지만,
두 조건이 동시에 참일 때만 가능합니다. 외기가 실제로 도움이 될 만큼 충분히
서늘하고, 또한 장치가 냉방을 요구하고 있어야 합니다. 이 문장에는 "그리고"가
있으므로 시트의 중심에도 AND 블록이 있습니다.
아래 다이어그램을 왼쪽에서 오른쪽으로 읽어 보겠습니다. 외기 온도(아날로그 입력,
이 예제에서는 55)와 전환 설정값(상수, 60)이 미만 비교기에 입력됩니다.
충분히 서늘한지를 판단하는 것입니다. 비교기의 참/거짓 결과는 AND의
한쪽 입력으로 들어가고, 냉방 모드 신호(디지털 입력)는 다른 쪽으로 들어갑니다.
두 조건이 모두 TRUE일 때만 AND 출력이 TRUE가 되어
을 활성화합니다.
외기 온도 55는 전환점 60보다 낮고 장치는 냉방을 요구하고 있으므로 두 입력이
모두 충족되어 이
활성화됩니다. 이 미만 블록은
전환으로, 실제로는 매우 미묘한 판단의 가장 단순한 형태입니다. 활성화된
이 실제로 무엇을 하고
온도만 비교하면 언제 크게 잘못되는지는 외기냉방
학습 자료에서 설명합니다.
녹색 배선은 TRUE 디지털 신호를 전달합니다(FALSE 신호는 편집기에서 회색으로 표시됩니다). 파란색 배선은 아날로그 값을 전달합니다.
이것이 전부입니다. 앞으로 접할 모든 시퀀스, 즉 코일이 동결점에 가까워지면 팬을 래치해 끄는 코일 온도 안전장치인 , 단계 제어 루틴, 외기 온도에 따라 설정값을 이동하는 리셋 스케줄도 같은 방식입니다. 왼쪽에는 실제 세계의 신호가 들어오고, 각 블록은 작은 작업 하나씩을 수행하며, 오른쪽으로 명령이 나갑니다. 큰 시트도 작고 읽기 쉬운 단계가 많이 모인 것뿐입니다.
직접 만들어 보기
와이어시트는 읽기만 해서는 충분하지 않습니다. 직접 배선하고 실행되는 모습을 볼 때 비로소 이해가 분명해집니다. 기능 블록 편집기는 바로 이를 위한 샌드박스입니다. 블록을 시트에 끌어 놓고 배선한 다음 값이 변하는 모습을 확인하세요. 위의 예제가 이미 구성되어 있고, 안전장치·온도조절기·운전 확인 경보·제어 루프와 같은 다른 완성 예제도 함께 제공됩니다. 예제를 불러와 입력을 바꾸고 로직이 반응하는 모습을 확인해 보세요.
기능 블록 편집기 열기 →