불리언 로직 및 래치 로직
모든 제어 시퀀스에는 문장이 가득합니다. 모든 안전장치가 정상으로 확인되고
스케줄이 재실 상태일 때만 팬을 운전합니다. 어느 고장 접점이든 닫히면 경보를
켭니다. 동결방지 온도조절기가 트립되면 누군가 재설정할 때까지 장치를 정지
상태로 유지합니다. 불리언 블록인 AND, OR,
NOT, XOR, SR latch는 이러한 문장을
의 로직으로
바꿉니다. 이 페이지는 처음부터 끝까지 한 가지 질문을 다룹니다. TRUE/FALSE
블록은 인터록·운전 허가 조건·안전장치 같은 장비 규칙을 어떻게 로직으로 바꾸고,
래치는 어떻게 이를 기억할까요?
이 페이지는 블록과 핀이 무엇인지, 배선이 무엇을 전달하는지, 스캔이 어떻게 평가되는지 등 블록 수준에서 시트를 읽을 수 있다고 전제합니다. 이 장의 첫 학습 자료인 기능 블록 기초에서 설명하므로 가 낯설다면 먼저 읽어 보세요. 아래 내용은 모두 한 블록 계열, 즉 장비의 판단을 만드는 참/거짓 로직에 속합니다.
운전 허가 조건 체인: AND, OR, NOT
거의 모든 장치에서 마주치는 문장부터 시작해 보겠습니다. 모든 안전장치가
정상으로 확인되고 건물이 재실 상태이며 외기가 코일을 얼리지 않을 때만 팬을
운전할 수 있습니다. 이 문장의 모든 "…일 때만, 그리고"가 AND입니다.
조건을 하나의 AND로 연결하면 출력은 운전 허가가 됩니다.
모든 입력이 TRUE인 동안에만 TRUE입니다. 현장에서는 이 구조를
운전 허가 조건 체인(permissive chain)이라고 합니다. 일부러
엄격하게 구성한 것입니다. 어느 한 곳이라도 FALSE이면, 즉 안전장치 하나가
정상으로 확인되지 않거나 접점 하나가 열리면 운전 허가가 해제됩니다. 운전 허가
조건 체인은 확인 신호의 연쇄이며, 확보하지 못한 확인 신호는 불충족으로 간주됩니다.
OR는 반대 문장입니다. 이 중 어느 하나만으로 충분합니다.
필터, 응축수 넘침, 연기와 같은 고장 접점 세 개를 하나의 OR에
연결하면 어느 하나라도 트립될 때 켜지는 공통 경보가 됩니다. NOT은
"아니다"라는 말입니다. TRUE를 FALSE로, FALSE를 TRUE로 뒤집습니다. 이 세
블록만으로 시트에서 접할 로직의 대부분을 처리할 수 있습니다.
교재에서는 이 블록을 모든 입력 조합과 그 출력을 격자로 정리한 진리표로
소개합니다. 아래 표는 한 번 볼 만하지만 격자 자체를 외울 필요는 없습니다. 실시간
시트 앞에서는 실제로 문장으로 사용하므로 각 열을 문장으로 읽으세요.
AND는 모든 입력이 TRUE일 때만 TRUE입니다. OR는
입력이 하나라도 TRUE이면 TRUE입니다. XOR는 입력들이
서로 다르면 TRUE입니다. NOT은 반대입니다.
| A | B | A AND B | A OR B | A XOR B | NOT A |
|---|---|---|---|---|---|
| F | F | F | F | F | T |
| F | T | F | T | T | T |
| T | F | F | T | T | F |
| T | T | T | T | F | F |
T = TRUE, F = FALSE입니다. 격자의 행이 아니라 각 열을 문장으로 읽으세요.
NOT은 안전장치가 처음부터 어떻게 배선되는지와 관련되므로 더 자세히
살펴볼 필요가 있습니다. 동결방지 온도조절기나 고정압 상한 스위치 같은 하드와이어드
안전장치는 거의 항상 으로
구성됩니다. 장치가 정상일 때 접점이 닫혀 있으므로 모든 것이 정상이라면 바이너리
입력은 TRUE를 읽습니다. 이는 의도적인 페일세이프 선택입니다. 배선이
끊어지거나 장치가 고장 나면 회로가 열리고 포인트는 트립과 같은 FALSE를 읽습니다.
따라서 안전 회로 고장은 보호 기능이 있다고 조용히 오인되는 대신 장비를 정지시킵니다.
정상인 안전장치는 매 스캔마다 스스로 정상 상태를 입증하며, 신호가 없으면
트립으로 처리됩니다.
이렇게 배선하면 "정상" 신호를 운전 허가 AND에 직접 넣을 수 있습니다.
하지만 모든 포인트가 정상 상태를 TRUE로 표시하는 것은 아닙니다. 경보형 접점이나
소프트웨어 포인트는 종종 트립 시 TRUE를 읽으며, 이는 반대 극성입니다.
이때 NOT을 사용합니다. 트립 감지 신호를 정상 감지 신호로 뒤집은 뒤
체인에 넣습니다. 신호의 의미를 반대로 해석하거나 이를 바로잡는 NOT을
빠뜨리는 일은 커미셔닝 첫날 흔히 발생하는 오류입니다. 모든 장치가 정상인데도
체인이 정상 상태의 FALSE를 계속된 트립으로 읽어 팬이 기동하지 않습니다.
다음은 이 체인을 시트로 그린 것입니다. 안전 확인 신호 세 개가 AND에
입력됩니다. 두 개는 정상으로 확인되지만 하나는 그렇지 않으며, 실시간 편집기처럼
배선 색상만으로도 상황을 한눈에 알 수 있습니다. 이 AND는 입력이 세
개인 형태로 그렸습니다. 실제 제품 팔레트에는 보통 다중 입력 AND/
OR 블록이 있습니다. 이 사이트의
기능 블록 편집기처럼 입력이 두 개인 블록만 제공하는 팔레트에서는 블록을
연쇄 연결합니다. AND들을 AND로 묶어도 여전히
AND입니다.
녹색 배선은 TRUE 디지털 신호, 회색 배선은 FALSE를 전달합니다. 실시간 편집기와 같은 색상입니다. 아날로그 값은 파란색 배선을 사용하지만 이 시트에는 없습니다.
SR 래치: 로직이 기억하는 방식
지금까지 살펴본 것은 모두 조합 로직입니다. 출력은 현재 입력만으로 결정됩니다. 고정압 상한 스위치가 다시 닫히면 어떤 일이 있었는지 기억하지 않고 운전 허가가 자동으로 즉시 복구됩니다. 쾌적성 로직에서는 보통 이것이 원하는 동작입니다. 존이 더워졌다가 다시 시원해졌다면 그대로 넘어가면 됩니다. 하지만 안전장치에는 정확히 잘못된 동작입니다.
동결방지 온도조절기 사례를 따라가 보면 이유를 알 수 있습니다. 코일이 동결점에 가까워져 온도조절기가 트립되면 운전 허가가 해제되고 팬이 정지합니다. 그러나 공기 흐름이 없어지면 코일 온도가 다시 실온 쪽으로 이동해 동결방지 온도조절기가 스스로 해제됩니다. 트립이 단순한 조합 로직이라면 운전 허가가 곧바로 복구되고, 팬이 재기동하며, 차가운 공기가 코일에 세게 닿아 온도조절기가 다시 트립됩니다. 장치는 자체 안전장치를 통해 계속 하고, 처음부터 코일이 왜 얼고 있었는지 아무도 알아내지 못합니다. 고장 신호가 사라졌다고 해서 문제가 해결된 것은 아닙니다. 안전 트립은 사람이 이를 확인하고 원인을 찾을 때까지 눈에 보이는 상태로 장비를 정지시키며 유지되어야 합니다.
이것이 불리언 계열에서 기억 기능이 있는 유일한 블록인 SR latch의
역할입니다. 두 입력에는 다음과 같은 동작이 있습니다. S(set)가
TRUE이면 출력 Q가 TRUE가 되고, 이후 입력이 사라져도 Q는 스스로
TRUE를 유지합니다. R(reset)이 TRUE가 되면 Q가
다시 FALSE로 떨어집니다. 동결 트립을 S에 연결하면 앞의 설명에서 요구한 대로
온도조절기가 해제된 뒤에도 트립을 기억하며, 의도적인 재설정이 있어야만 해제됩니다.
이 블록은 진리표에서 피할 수 없는 질문 하나에 답해야 합니다. 같은 스캔에서 S와 R이 모두 TRUE이면 어떻게 될까요? 이 사이트 편집기의 래치는 Set 우선형입니다. S가 우선하므로 Q는 TRUE를 유지합니다. 장비 관점에서 해석하면 안전장치에 적합한 답입니다. 고장이 계속 발생 중인 동안에는 재설정으로 이를 무시할 수 없습니다. 재설정 버튼을 계속 눌러도 동결방지 온도조절기 자체가 해제될 때까지 아무 일도 일어나지 않습니다. 고장이 사라진 뒤에야 재설정이 작동합니다. 팔레트에 따라 다르며, R이 우선하는 Reset 우선형을 제공하는 제조사도 있습니다. 이는 중요한 차이입니다. 유지형 재설정 스위치 뒤에서는 Reset 우선형 래치가 트립을 전혀 유지하지 못합니다. 안전장치에 사용하기 전에 팔레트에서 제공하는 유형을 확인하세요.
이것이 래치 + 수동 재설정 패턴입니다. 고장이 Set하고 운전자가 Reset합니다. S는 안전장치에서, R은 사람에게서 옵니다. 그래픽의 재설정 버튼, BMS가 쓰는 소프트웨어 포인트, 물리 스위치가 될 수 있습니다. 아래 타임라인은 한 번의 트립이 진행되는 전체 과정을 네 신호에 동시에 나타낸 것입니다. 실시간 시트를 볼 때 머릿속으로 구성하게 되는 그림과 같습니다.
네 파형을 서로 비교해 읽으세요. 트립과 래치가 함께 상승하고, Q가
NOT을 통과한 팬은 같은 스캔에서 떨어집니다. 첫 번째 재설정 펄스는
고장이 여전히 발생 중이고 Set이 우선하므로 아무것도 바꾸지 않습니다. 그다음
온도조절기가 해제되어도 시트에서는 아무것도 움직이지 않습니다. 두 입력이
모두 FALSE인데 Q가 TRUE로 평평하게 유지되는 구간이 바로 기억이며, 이 블록이
존재하는 이유입니다. 고장이 사라진 뒤 들어오는 두 번째 재설정만 Q를 떨어뜨리고
팬을 복구합니다.
작은 패턴: XOR와 피드백 배선
두 가지 작은 동작을 더하면 이 계열이 완성됩니다. 첫째는 XOR입니다.
입력이 서로 다를 때 TRUE이므로 시트의 불일치 검출기로
사용할 수 있습니다. 대표적인 용도는 명령과 상태 비교입니다. 팬의 명령과 운전
확인 접점을 XOR에 연결하면 두 값이 일치하지 않을 때 정확히 TRUE가
됩니다. 명령은 ON인데 운전 확인 신호가 없는 경우(벨트 파손, 과부하 트립)나 명령은
없는데 운전 중으로 확인되는 경우(접촉기 용착, HAND에 둔 수동 스위치)입니다.
반드시 달라야 하는 두 상태도 같은 형태로 검사할 수 있습니다. 두 위치 댐퍼의 열림
및 닫힘 엔드 스위치는 항상 달라야 하므로 XOR TRUE는 정상, FALSE는
스위치 또는 액추에이터가 거짓 상태를 보내고 있음을 뜻합니다. 실제 불일치 경보는
장비가 움직일 시간을 주기 위해 보통 몇 초 기다린 뒤 울립니다.
지연과 바운스 제거는 이 장의
별도 학습 자료에서 다룹니다.
둘째는 래치를 처음 자세히 볼 때 알아차리게 되는 내용을 한 문장으로 표현한 것입니다. 래치는 사실 루프이며, 블록의 출력이 자체 판단으로 되돌아갑니다. 시트는 모든 피드백 배선에 지난 스캔 값을 전달하는 방식으로 해결합니다. 이것이 래치가 상태를 유지하게 하는 한 스캔 분량의 기억입니다. 스캔 자체는 와이어시트의 실행 방식에서 설명합니다. 이 한 문장만 이해해도 많은 도움이 됩니다. 루프와 피드백을 포함해 전체 시트를 처음부터 끝까지 읽는 방법은 이 장의 별도 학습 자료입니다.
상태가 유지되는 모습 보기
이 페이지의 모든 내용은 지금 기능
블록 편집기에서 실행되고 있습니다. 동결방지 온도조절기 정지 예제를
불러오면 이 학습 자료를 실시간 시트로 볼 수 있습니다. 동결 바이너리 입력이
SR latch를 Set하고, NOT이 팬 출력을 떨어뜨리며, 경보
출력은 켜집니다. 동결방지 온도조절기를 트립하고 래치가 이를 잡는 모습을 확인하세요.
그런 다음 온도조절기를 해제해도 래치는 개의치 않고 유지됩니다. 팬은 꺼져
있고 경보는 계속 켜지며, 돌아가는 유일한 방법은 Reset 입력입니다. 편집기에서
온도조절기가 계속 트립된 상태로 Reset을 TRUE로 유지해 보세요. 고장이 해제될
때까지 래치는 이를 무시하며 배선에서 Set 우선 동작을 직접 확인할 수 있습니다.