BEMS는 무엇을 모으나
한눈에 보기
- BEMS 가 모으는 것은 사용량 하나가 아닙니다. 양·상태·환경·범위 네 갈래가 같은 시각 위에 놓여야 「많이 썼다」가 뜻을 갖습니다.
- 사용량은 한 시점의 값이 아니라 구간의 값입니다. 적산식 계기라면 두 시각을 읽어 빼야 하고, 그 셈법 때문에 한 번 못 받은 몫이 다음 값에 얹히거나, 자릿수가 넘쳐 음수가 나오거나, 읽는 간격이 흔들려 칸마다 담긴 구간 길이가 달라지는 일이 따라붙습니다. 계기 종류와 상관없이 「0 을 썼다」와 「못 받았다」를 갈라 두지 않으면 나중 집계가 조용히 틀어집니다.
- 어디서 새는지 좁히려면 계량점이 자를 수 있는 자리에 있어야 하고, 계량되지 않은 몫은 「기타」에 얹지 말고 잔량으로 따로 세웁니다.
BEMS(건물에너지관리시스템) 화면에는 「지난달보다 늘었다」 같은 한 줄이 뜹니다. 그 한 줄이 서려면 계량기에서 읽어 온 숫자 하나로는 모자랍니다. 무엇을 함께 모아 두어야 그 숫자가 뜻을 갖는지, 모으는 자리에서 빠뜨리면 나중에 되살릴 수 없는 것이 무엇인지 정리했습니다.
사용량 한 줄은 혼자 서지 못한다
지난달 전기 사용량이 나왔다고 합시다. 그 값만 놓고는 많은지 적은지 말할 수 없습니다. 그달이 더 더웠을 수도 있고, 사람이 더 있었을 수도 있고, 평소 세워 두던 설비를 돌렸을 수도 있습니다. 셋 다 사용량을 밀어 올리지만 손을 대야 할 곳은 서로 다릅니다.
그래서 BEMS 가 모으는 것은 「얼마나 썼나」 하나가 아닙니다. 크게 네 갈래이고, 그 아래에 시각이 축으로 깔립니다.
| 갈래 | 모으는 것 | 빠지면 생기는 일 |
|---|---|---|
| 양 | 전기 · 가스 · 열 · 물의 사용량 | 따질 대상 자체가 없습니다 |
| 상태 | 설비의 운전·정지, 경보, 자동·수동, 개도, 주파수 | 사용량이 갑자기 튄 자리는 찾아도 설비 쪽으로 한 발 더 갈 수 없습니다 |
| 환경 | 외기 온·습도, 일사, 사람이 들어 있는 정도 | 늘어난 것이 날씨 탓인지 운전 탓인지 가릴 수 없습니다 |
| 범위 | 그 값이 덮는 용도 · 구역, 그리고 면적 · 정해 둔 운영 시간 같은 붙박이 값 | 「어디서 새는지」를 좁힐 수 없습니다 |
상태와 환경은 헷갈리기 쉬운데, 가르는 기준은 그 값이 설비 자신의 형편이냐, 설비가 놓인 자리의 사정이냐입니다. 운전·정지나 개도처럼 우리가 정해서 그렇게 된 값도, 경보처럼 정하지 않았는데 설비가 알려 오는 값도 모두 상태입니다. 둘 다 설비 자신이 지금 어떻게 되어 있는지를 말해 주기 때문입니다. 반면 그날 바깥 온도나 그 시간에 사람이 얼마나 들어 있었는지는 설비가 놓인 자리의 사정이라 환경입니다. 운전을 바꾸면 실내 쪽 값이 따라 움직이기도 하지만, 그렇다고 상태가 되지는 않습니다. 설비가 만들어 내는 값이냐, 설비가 상대하는 값이냐가 갈림길이고, 실내 쪽 값은 상대하는 쪽입니다.
첫째, 양 — 한 시점의 값이 아니라 구간의 값이다
에너지 사용량은 「지금 몇」이라고 알려 주는 값이 아닙니다. 언제부터 언제까지 얼마라는 구간의 값입니다. 에너지 계량기는 대개 적산식이어서, 붙인 뒤로 올라가기만 하는 숫자를 갖고 있습니다. 이런 계기라면 BEMS 는 그 숫자를 두 시각에 읽어 뺀 차이를 사용량으로 씁니다. 구간 사용량을 이미 뺀 형태로 그대로 내보내는 계기도 있는데, 그때는 두 번 읽을 일이 없는 대신 「어느 구간의 값인가」가 함께 와야 뜻이 생깁니다.
여기서 세 가지가 따라 나옵니다. 셋 다 적산식을 두 시각에 읽어 뺄 때 걸리는 것들입니다. 구간값을 그대로 받는 계기에는 이 셋 대신 다른 문제가 붙는데, 뒤에 따로 적었습니다.
- 한 번 못 받으면 다음 값이 두 몫이 됩니다. 통신이 끊긴 구간을 0으로 적어 두면, 다음 주기에 두 구간 몫이 한꺼번에 실려 엉뚱하게 튄 자리로 남습니다. 「0을 썼다」와 「못 받았다」는 다른 칸에 넣어야 합니다.
- 자릿수를 다 채우면 0으로 돌아갑니다. 뺄셈 결과가 음수로 나왔다면 덜 쓴 것이 아닙니다. 계기가 한 바퀴 돌았거나, 교체·초기화됐거나, 값이 잘못 읽힌 것입니다. 이 셋 가운데 교체·초기화는 계기 교체 기록이 남아 있으면 바로 갈라집니다. 나머지 둘은 교체 기록으로 갈라지지 않아, 그 계기의 자릿수가 어디까지인지와 앞뒤 구간의 값이 이어지는지를 함께 놓고 봐야 합니다. 그래서 교체 기록은 세 가지 가운데 하나를 지워 주는 값이고, 그것이 없으면 그 하나부터 가릴 수 없습니다.
- 읽은 시각이 흔들리면 칸마다 담긴 구간 길이가 달라집니다. 적산식은 읽는 쪽이 구간을 끊으므로, 읽은 두 시각 사이가 그대로 그 칸의 구간이 됩니다. 한 시간마다 읽기로 했는데 실제 간격이 58분과 63분으로 들쭉날쭉하면, 두 칸에 담긴 시간이 서로 달라 값을 그대로 나란히 놓고 견줄 수 없습니다. 정시 값으로 맞추려면 사이를 채워 넣게 되는데, 그렇게 만든 값은 잰 값이 아니므로 채워 넣었다는 표시를 남겨 두는 편이 낫습니다.
계량기 자체는 전기 · 열 · 물에 따라 종류가 갈립니다. 열량계처럼 값 하나가 아니라 여러 값을 함께 봐서 세는 종류도 있는데, 그 원리는 따로 다룹니다. 어느 종류든 사용량은 한 시점이 아니라 구간에 붙는 값이라는 성질은 같습니다. 다만 앞의 세 가지는 이 공통 성질이 아니라 「두 번 읽어 뺀다」는 적산식의 셈법에서 나옵니다. 구간값을 그대로 내보내는 계기는 구간을 계기 쪽에서 끊습니다. 읽으러 가는 주기(폴링)가 늦든 이르든 한 칸에 담긴 시간은 계기가 정한 그대로이고, 한 번 못 받은 몫이 다음 값에 얹혀 두 구간 몫이 되지도 않습니다. 뺄셈이 없으니 음수가 나올 일도 없습니다.
다만 「못 받은 구간은 그대로 빈다」로 생각하면 안 됩니다. 구간값을 내보내는 계기나 로거는 대개 제 안에 얼마간 담아 두었다가 연결이 돌아오면 밀린 구간을 한꺼번에 올려 보냅니다. 그러면 그 구간은 뒤늦게 채워지고, 대신 잰 시각과 받은 시각이 크게 벌어집니다 (이 둘을 나눠 두어야 하는 이유는 뒤 시각축 절에 적었습니다). 그 구간이 정말로 비는 것은 담아 둘 수 있는 양을 넘길 만큼 오래 끊겼을 때입니다. 그래서 「빈 칸이 뒤에 채워질 수 있는가」는 계기·로거가 얼마를 담아 두는지에 따라 갈리고, 모을 자리를 정할 때 함께 확인해 둘 것입니다.
그리고 이 계기에는 손댈 자리가 달라지는 문제가 붙습니다. 구간을 계기가 끊으므로, 계기의 시계가 정시나 서버 쪽과 어긋나 있으면 구간 경계째로 밀립니다. 계기가 「한 시 정각부터 두 시 정각까지」라고 붙여 보낸 값이 실제로는 몇 분 밀린 구간을 덮고 있게 되고, 그 상태로 다른 갈래와 나란히 놓이면 설비가 돈 시각과 사용량이 어긋나 보입니다. 읽는 간격을 아무리 고르게 해도 이건 고쳐지지 않습니다. 손쓸 자리가 읽는 주기 쪽이 아니라 계기 시각 동기 쪽이라는 뜻입니다. 구간이 밀렸는지는 값만 봐서는 잘 드러나지 않으므로, 계기 시계를 언제 맞췄는지도 함께 남겨 둡니다. 그리고 그 구간이 비었다는 사실을 「0 을 썼다」와 갈라 두어야 하는 것은 계기 종류와 상관없이 그대로입니다.
둘째, 상태 — 그때 무엇이 돌고 있었나
사용량이 튄 시간대를 찾았다면 다음 질문은 「그때 무엇이 돌고 있었나」입니다. 여기에 답하려면 운전·정지 접점, 경보 발생, 자동·수동 여부, 밸브가 열린 정도(개도), 모터를 돌리는 인버터의 출력 주파수 같은 값이 같은 시간대에 남아 있어야 합니다. 사용량만 쌓아 두면 튄 자리를 찾는 데서 멈춥니다.
여기서 성격 차이가 하나 걸립니다. 양은 주기마다 쌓이지만, 상태는 바뀔 때 남기는 편이 낫습니다. 팬이 여덟 시간 내리 돌았다면 그동안 「돌고 있음」을 몇천 번 적어 둘 이유가 없습니다. 바뀐 시각과 바뀐 값만 남기면 됩니다. 반대로 상태를 주기로만 훑으면 주기 사이에 잠깐 켰다 끈 것은 통째로 사라집니다.
다만 상태 갈래 안에서도 두 종류를 다시 갈라야 합니다. 운전·정지 접점, 경보, 자동·수동처럼 붙었다 떨어졌다 하는 값은 「바뀔 때만」이 그대로 들어맞습니다. 값이 몇 가지뿐이라 바뀐 순간이 분명하기 때문입니다. 반면 개도나 인버터 주파수처럼 연속으로 흔들리는 값에는 「바뀌면 남긴다」가 그대로 들어맞지 않습니다. 늘 조금씩 흔들리고 있어 얼마나 움직여야 「바뀐 것」인지를 따로 정해 주어야 합니다. 그 폭을 좁게 잡으면 미세한 떨림까지 전부 남아 접점보다 더 쌓입니다. 넓게 잡으면 이번에는 정작 봐야 할 움직임까지 함께 걸러집니다. 그래서 이런 값은 얼마 이상 움직였을 때 남길지를 따로 정해 둡니다. 그 폭을 처음부터 잡기 어려우면, 한동안은 주기로 훑어 그 값이 실제로 얼마씩 흔들리는지를 쌓아 두고 그 기록을 보고 폭을 정하는 편이 낫습니다. 폭을 짐작으로 넣어 두면 잘못 잡혔는지조차 드러나지 않지만, 주기로 쌓아 둔 구간은 뒤에 다시 훑어볼 수 있기 때문입니다. 같은 화면에 나란히 뜨는 값이라도 남기는 방식은 갈라 두어야 하는 이유입니다.
운전 시간과 그 계통의 사용량이 서로 걸맞지 않을 때 놓고 볼 것은 적어도 세 가지입니다. 접점이 기동 명령까지만 보고 있는 것인지, 계량점이 그 계통을 덮고 있지 않은 것인지, 아니면 둘 다 제대로 찍혔는데 설비가 제 일을 못 한 채 돌고 있는 것인지입니다. 셋째 경우는 다시 두 갈래로 갈라 놓아야 합니다. 동력 전달이 끊긴 경우—벨트가 끊겼거나 임펠러가 축에서 헛도는 것—는 밀어내는 일 자체가 사라지므로 축류든 원심이든 전력이 무부하 수준까지 내려갑니다. 여기서는 사용량이 접점이 붙어 있는데도 눈에 띄게 낮은 쪽으로 벌어집니다. 제 유량을 못 내며 도는 경우—댐퍼가 닫혔거나 필터가 막힌 것—는 사정이 다릅니다. 일은 계속 하고 있어서 전력이 0 근처로 떨어지지 않고, 어느 쪽으로 벌어지는지가 팬 종류에 따라 갈립니다. 유량이 줄면 축동력도 함께 줄어드는 쪽이 있고, 거꾸로 올라가는 쪽이 있습니다. 이 갈림은 따로 다룹니다. 그러니 「제 일을 못 하면 사용량이 내려간다」 한 방향으로 외워 두면 진단이 반대로 갈 수 있습니다. 어느 쪽이든 사용량과 접점만으로는 가릴 수 없고, 개도 · 주파수 같은 값이 같은 시간대에 함께 남아 있어야 어느 쪽인지 좁혀집니다.
셋째, 환경 — 잘잘못을 따질 대상이 아니라 견주는 바탕
같은 사용량도 그때 건물을 둘러싼 사정이 다르면 뜻이 달라집니다. 한여름과 봄에 냉방 전력이 같다면, 먼저 들여다볼 쪽은 봄입니다. 그래서 환경값은 그 자체를 잘했다 못했다 따지는 대상이 아니라, 다른 값을 견줄 수 있게 해 주는 바탕입니다.
적어도 외기 온도와 습도, 일사는 함께 남깁니다. 셋 다 한 자리에 센서를 두거나 바깥 관측값을 받아 오면 되는 값이라, 건물을 가리지 않습니다. 외기 온도 하나로 냉방 부하를 다 설명할 수는 없습니다. 공기 중의 습기를 없애는 데도 열이 들고, 유리면이 넓은 건물은 같은 온도라도 해가 드는 날과 흐린 날의 부하가 다릅니다. 일사를 함께 남기는 이유입니다.
건물에 사람이 실제로 얼마나 들어 있었는지도 같은 갈래에 들어가지만, 앞의 셋과 사정이 다릅니다. 따로 재는 수단을 두어야 나오는 값이라 건물마다 형편이 갈립니다. 출입 통제 기록이나 재실 감지, 엘리베이터 이용량처럼 이미 다른 일로 쌓이고 있는 것이 있으면 정확하지 않더라도 거기서 끌어와 남겨 두는 편이 낫습니다. 지나고 나면 어디서도 받아 올 수 없는 값이기 때문입니다. 무엇에서 끌어온 값인지는 함께 적어 둡니다. 출처마다 세는 대상이 달라 그대로 견줄 수 없습니다. 실내 쪽 공기질 값도 설비가 상대하는 값이라 이 갈래에 들어오지만, 어떤 항목을 왜 재는지는 따로 다루므로 여기서는 표에 넣지 않았습니다.
다만 정해 놓은 운영 시간은 이 갈래에 넣지 않습니다. 건물 쪽에서 정해 두는 값이라 설비가 놓인 자리의 사정이 아니고, 그렇다고 상태도 아닙니다. 상태는 시각마다 바뀌는 사실을 그 시각에 붙여 남기는 값인데, 운영 시간은 한 번 정하면 한동안 그대로인 설정값이라 시각축 위에 얹어 남길 것이 없습니다. 그래서 면적처럼 그 구역에 딸려 다니는 붙박이 값으로 보아, 뒤에 나오는 범위 갈래로 보냅니다. 그 시간에 실제로 무엇이 돌았는지는 상태 갈래가 따로 남깁니다. 문을 연 시간과 실제로 사람이 든 정도는 같은 날에도 어긋나므로, 둘을 한 칸에 담지 않는 편이 낫습니다.
빠진 구간을 뒤늦게 관측값으로 메우는 것은 이것과 다른 일이지만, 그냥 넣으면 같은 문제가 됩니다. 메울 때는 채워 넣은 값이라는 표시를 함께 남기고, 그 구간이 지나면 원래 출처로 돌아와야 합니다. 표시 없이 메우면 상시 출처를 슬며시 바꾼 것과 구분되지 않고, 나중에 그 구간만 성향이 다른 이유를 아무도 되짚지 못합니다.
넷째, 범위 — 그 숫자가 어디까지를 덮는가
이 갈래는 재는 값이 아니라 「그 값이 무엇을 덮는가」라서, 계량기를 붙이는 자리에서는 눈에 잘 띄지 않습니다. 그리고 이 갈래 안에는 뒤늦게 손보려면 공사까지 따라붙는 자리가 하나 들어 있습니다. 용도·구역 이름은 나중에 적어 넣어도 되지만, 계량점을 어디에 놓았느냐는 그렇지 않습니다. 「전기 사용량」이라는 한 줄이 건물 전체를 덮는지, 한 임차 구역만 덮는지, 냉방 계통만 덮는지가 적혀 있지 않으면 그 값으로는 어디로도 갈 수 없습니다.
범위는 보통 두 가지 나눔이 겹칩니다.
- 용도별 — 냉난방 · 급탕 · 조명 · 동력처럼 무엇에 쓰였는가
- 구역별 — 층 · 존 · 임차인처럼 어디에서 쓰였는가
계량점 하나는 대개 이 두 나눔에 동시에 속합니다. 그래서 계량점을 등록할 때 어느 용도와 어느 구역에 속하는지를 함께 적어 두어야 나중에 어느 쪽으로도 합칠 수 있습니다.
여기서 갈라 둘 것이 하나 있습니다. 소속은 뒤에 붙여도 됩니다 — 단, 집계를 그때그때 다시 하는 구조라면 그렇습니다. 값이 계량점별로 쌓여 있고 합계를 볼 때마다 그 원자료에서 다시 더하는 방식이면, 용도·구역을 나중에 적어 넣어도 지난 기록까지 그 분류로 다시 합쳐집니다. 합치는 일이 집계할 때 일어나기 때문입니다. 반면 시·일·월 합계를 미리 만들어 두고 화면은 그것만 읽는 방식이면, 분류를 바꾼 뒤에 지난 합계를 다시 만들어 주어야 하고 그 기능이 없는 제품도 있습니다. 그러니 「이름은 뒤에 붙이면 된다」고 넘기기 전에, 쓰는 쪽이 어느 방식인지를 확인해 두는 편이 낫습니다. 뒤에 붙일 수 없는 것은 계량이 나뉜 자리 쪽입니다. 한 계량점이 두 구역을 통째로 덮고 있었다면, 그 뒤에 무슨 이름을 적어 넣어도 지난 기록에서 두 구역이 갈라지지 않습니다. 그때 쌓인 값 자체가 한 덩어리이기 때문입니다. 그래서 되돌리기 어려운 쪽은 이름을 언제 적었느냐가 아니라 계량을 어디서 끊었느냐입니다.
앞에서 환경 갈래로 보내지 않은 면적과 정해 둔 운영 시간이 여기로 옵니다. 시각마다 바뀌는 값이 아니라 그 구역에 딸려 다니는 값이기 때문입니다. 다만 이것은 「바뀌지 않는다」가 아니라 「시각축에 얹히지 않는다」는 뜻입니다. 임차 구역이 갈라지거나 합쳐지는 건물에서는 면적도 운영 시간도 제법 자주 바뀝니다. 그래서 사용량을 면적으로 나눠 견주려면 그 면적이 어딘가에 적혀 있어야 할 뿐 아니라, 언제부터 언제까지의 면적인지가 함께 남아 있어야 합니다. 이 유효 기간이 없으면 구역이 갈라진 날을 기점으로 단위면적당 사용량이 계단처럼 튀는데, 건물 쪽이 달라진 것인지 나눔이 달라진 것인지 되짚을 수가 없습니다.
앞에서 계량점 하나가 두 나눔에 「대개」 동시에 속한다고 열어 둔 것은 예외가 있어서입니다. 한 대의 열원이 여러 계통에 물을 보내면 계량점 하나가 여러 용도에 걸쳐, 앞 그림의 칸 하나에 그대로 들어가지 않습니다. 이런 계통 공유는 따로 다룹니다.
축 — 네 갈래를 하나로 묶는 시각
네 갈래가 아무리 잘 모여도 시각이 어긋나면 한 줄로 묶이지 않습니다. 계량기의 시계, 현장 제어기의 시계, 서버의 시계는 저마다 조금씩 다르게 흘러갑니다. 몇 분씩 벌어지면 「설비는 서 있는데 사용량이 오른」 것처럼 보이는 자리가 생깁니다. 실제로는 설비가 돈 시각이 몇 분 밀려 적힌 것뿐인데, 그 자리를 놓고 원인을 찾기 시작하면 시간을 통째로 버립니다.
그래서 기록에는 잰 시각과 받은 시각을 나눠 두는 편이 낫습니다. 통신이 밀리거나 한꺼번에 몰아 받는 구간에서 이 둘이 벌어지는데, 나눠 두지 않으면 밀린 값이 늦은 시각의 값으로 둔갑합니다.
모으는 주기는 대체로 초 단위까지 갈 필요가 없습니다. BEMS 가 답하려는 질문은 대개 분 단위면 충분합니다. 다만 요금 계약에 최대 수요가 걸려 있는 건물이라면 이야기가 갈립니다. 수요는 정해진 길이의 구간마다 묶여 산정되는데, 그 구간이 지나간 뒤에 값을 받아 보면 이미 결정된 뒤라 손쓸 자리가 없습니다. 구간이 끝나기 전에 여러 번 들여다볼 수 있을 만큼 주기를 짧게 잡아야 올라가는 중에 무엇을 세울지 정할 수 있습니다. 따라서 여기서 짧게 잡는 이유는 값을 촘촘히 남기려는 것이 아니라 구간이 닫히기 전에 손댈 시간을 벌려는 것입니다. 주기를 어떻게 잡든, 무엇보다 집계가 끊기는 자리—정시 · 자정 · 월말 · 정산 기간의 끝—에는 값이 있어야 합니다. 그 자리에 값이 없으면 앞뒤에서 나눠 채우게 되는데, 그렇게 채운 값은 잰 값이 아닙니다.
모으기 전에 정해 둘 것
- 계량점이 자를 수 있는 자리에 있는가 — 나중에 나누어 보고 싶은 단위대로 계량이 끊겨 있어야 합니다. 여기서 끊기지 않은 자리는 뒤에 갈라지지 않습니다.
- 계량점마다 용도와 구역이 적혀 있는가 — 집계를 그때그때 다시 하는 구조라면 늦게 적어도 지난 기록까지 그 분류로 합쳐지지만, 합계를 미리 만들어 두는 구조라면 지난 합계를 다시 만들 수 있는지도 함께 봅니다. 어느 쪽이든 적혀 있지 않은 동안에는 아무도 그 분류로 못 봅니다.
- 0 과 빈칸이 구분되는가 — 통신 두절과 사용 없음은 서로 다른 사실입니다.
- 계기 교체·초기화 기록이 남는가 — 남지 않으면 음수로 나온 값이 교체 탓인지부터 가릴 수 없습니다. 한 바퀴 돌았는지 잘못 읽혔는지는 이것과 별개로 자릿수와 앞뒤 값을 보고 갈라야 합니다.
- 시각이 맞춰지는가 — 잰 시각과 받은 시각이 함께 남는지도 봅니다.
- 환경값의 출처가 정해져 있는가 — 바꿀 일이 생기면 바꾼 날을 기록에 남깁니다.
- 미계량 잔량을 따로 세우게 되어 있는가 — 잔량은 지워야 할 오차가 아니라 읽어야 할 신호입니다.
