BACnet 우선순위 배열 BACnet
16개 명령 슬롯 중 아무 곳에나 값을 입력해 Present_Value가 결정되는 과정을 확인하세요. 번호가 가장 낮은 non-NULL 슬롯이 적용되고, 모두 비어 있으면 Relinquish_Default가 적용됩니다.
Priority_Array가 있습니다. 쓰기 동작은 현재 값을 덮어쓰지 않고 지정한 우선순위의 슬롯 하나에 값을 넣습니다. 객체의 실제 Present_Value는 NULL이 아닌 슬롯 중 번호가 가장 낮은 슬롯의 값으로 결정됩니다. 값을 입력하면 해당 슬롯이 명령하고, 입력을 지우거나 ×를 누르면 NULL을 써서 슬롯을 해제합니다. 적용 중인 슬롯은 강조 표시되며, 이 슬롯을 해제했을 때 어떤 값이 이어서 적용되는지도 패널에 표시됩니다.
배열에는 예제가 미리 설정되어 있습니다. 슬롯 16의 시퀀스 위에 슬롯 8의 수동 오버라이드가 놓인 상태입니다. 확인하려는 값으로 수정하세요.
Priority_Array
빈칸 = NULL = 해제된 상태입니다. 값에는 포인트가 명령할 수 있는 무엇이든 입력할 수 있습니다. 퍼센트, 온도 또는 바이너리 객체의 active/inactive 등이 해당합니다.
Present_Value
—표준 우선순위 슬롯 16개
슬롯 1의 우선순위가 가장 높고 슬롯 16이 가장 낮습니다. 다섯 슬롯에는 표준에서 정한 용도가 있으며 강조선으로 표시됩니다. 나머지는 애플리케이션별 용도로 사용할 수 있습니다.
| 우선순위 | 표준 용도 | 설명 |
|---|---|---|
| 1 | 수동 생명안전 | 가장 높은 우선순위이며 수동 생명안전 명령용으로 예약되어 있습니다. 어떤 명령도 이보다 우선하지 않습니다. |
| 2 | 자동 생명안전 | 연기 제어, 화재 대응 같은 자동 생명안전 기능에 사용합니다. |
| 3 | 사용 가능 | 애플리케이션별 용도로 사용할 수 있습니다. |
| 4 | 사용 가능 | 애플리케이션별 용도로 사용할 수 있습니다. |
| 5 | 중요 장비 제어 | 압축기나 반드시 완료해야 하는 제상 운전 등 장비를 보호합니다. |
| 6 | 최소 켜짐/꺼짐 | 최소 켜짐/꺼짐 시간을 강제하는 용도, 즉 단주기 운전 방지 타이머용으로 예약되어 있습니다. |
| 7 | 사용 가능 | 애플리케이션별 용도로 사용할 수 있습니다. |
| 8 | 운전자 수동 명령 | 워크스테이션이나 BMS에서 내리는 운전자의 수동 오버라이드입니다. |
| 9 | 사용 가능 | 애플리케이션별 용도로 사용할 수 있습니다. |
| 10 | 사용 가능 | 애플리케이션별 용도로 사용할 수 있습니다. |
| 11 | 사용 가능 | 애플리케이션별 용도로 사용할 수 있습니다. |
| 12 | 사용 가능 | 애플리케이션별 용도로 사용할 수 있습니다. |
| 13 | 사용 가능 | 애플리케이션별 용도로 사용할 수 있습니다. |
| 14 | 사용 가능 | 애플리케이션별 용도로 사용할 수 있습니다. |
| 15 | 사용 가능 | 애플리케이션별 용도로 사용할 수 있습니다. |
| 16 | 사용 가능 | 가장 낮은 우선순위이며 제어기 자체의 자동 프로그램이 흔히 값을 쓰는 슬롯입니다. |
표준은 이 가운데 일부만 고정합니다. 상위 슬롯(1–2)은 생명안전, 5번은 중요 장비 제어, 6번은 최소 켜짐/꺼짐 시간, 8번은 운전자의 수동 명령에 사용하며 나머지는 현장 정책에 맡깁니다. 슬롯 16은 단순히 가장 낮은 우선순위이지만, 제어기 자체의 자동 프로그램이 가장 흔히 값을 쓰는 슬롯입니다. 제어기에는 자체 우선순위 맵이 있습니다. 눈앞의 포인트를 지배하는 것은 이 표가 아니라 해당 맵입니다. 슬롯 배정은 ASHRAE 135 명령 우선순위 관련 참조 자료와 대조했습니다.
Present_Value가 결정되는 방식
배열은 위에서부터 순서대로 읽습니다. 슬롯 1에서 시작해 NULL이 아닌 첫 번째 슬롯의 값을 선택합니다. 그 값이 Present_Value가 되며, 그 아래의 우선순위가 낮은 슬롯은 값이 남아 있어도 명령하지 못하고 보류됩니다. 값을 더하거나 평균을 내거나 비교하지 않습니다. 활성 슬롯 중 우선순위가 가장 높은 단 하나가 그대로 적용됩니다.
16개 슬롯이 모두 NULL이면 객체에는 명령이 전혀 없으므로 Present_Value는 기본 상태인 Relinquish_Default 값을 사용합니다. Relinquish_Default는 별도로 쓸 수 있는 실제 속성입니다. "슬롯 17"이 아니며 배열 전체가 비어 있을 때만 영향을 줍니다.
NULL 쓰기로 해제하기 — 현장에서 가장 흔한 실수
가장 많이 혼동하는 부분은 포인트의 제어권을 돌려주려면 0이 아니라 NULL을 자신의 슬롯에 써야 한다는 점입니다. 0을 쓰면 해당 우선순위에서 값 0을 명령하므로 포인트가 0으로 유지됩니다. NULL을 쓰면 슬롯이 해제되어 비고, 다음으로 우선순위가 높은 non-NULL 슬롯이 적용됩니다. 이 도구에서는 각 행의 × 버튼이 바로 그 동작을 합니다.
따라서 "이 포인트가 고장 났다"는 현장 문의의 원인은 대부분 시퀀스 고장이 아닙니다. 프로그램은 설계대로 슬롯 16에 65%를 쓰고 있지만, 몇 달 전에 누군가 설정한 수동 오버라이드가 슬롯 8에 남아 있는 경우가 많습니다. 슬롯 8이 슬롯 16보다 우선하므로 Present_Value는 오래된 오버라이드 값으로 결정됩니다. 그래픽에 표시된 값은 시퀀스가 쓰는 값이 아니라 결정된 값입니다. 배열 전체를 읽어 값이 남아 있는 상위 우선순위 슬롯을 찾아 해제하세요. 직접 쓰려고 할 때 write-access-denied가 발생하는 것도 흔히 같은 이유입니다. 값은 Present_Value 자체가 아니라 배열에서 결정되므로 우선순위를 지정해 명령해야 합니다.
오래된 오버라이드를 배열이 아닌 실제 장비에서 확인하려면 DDC 워크벤치를 사용하세요. 운전 중인 공기조화기의 모든 명령 가능한 포인트에 각자의 우선순위 배열이 있으며, 제어 프로그램용 슬롯 16, 수동 명령용 슬롯 8, 프로그램 블록이 없는 포인트의 Relinquish_Default 대체값까지 세 단계로 명령합니다. NULL — 해제됨 상자의 선택을 해제하면 NULL을 다시 쓸 때까지 해당 포인트가 시퀀스를 따르지 않으며, 프로그램을 따르지 않는 포인트 창에 두 원인 중 무엇이 포인트를 붙잡고 있는지 표시됩니다. 더 작은 장치로 시작하려면 팬코일 워크벤치를 사용하세요.
BACnet 우선순위 배열 자주 묻는 질문
BACnet 우선순위 배열이란 무엇인가요?
Priority_Array)으로, 모든 명령 가능한 객체, 즉 Analog Output, Binary Output과 명령 가능하도록 구성한 Analog/Binary/Multi-state Value에 있습니다. WriteProperty로 Present_Value에 값을 써도 현재 값을 덮어쓰지 않고 선택한 우선순위의 슬롯 하나에 기록합니다. 슬롯 1의 우선순위가 가장 높고 슬롯 16이 가장 낮습니다.BACnet은 우선순위 배열에서 Present_Value를 어떻게 결정하나요?
Present_Value는 NULL이 아닌 슬롯 중 번호가 가장 낮은 슬롯, 즉 활성 명령 중 우선순위가 가장 높은 슬롯의 값입니다. 그보다 우선순위가 낮은 모든 슬롯의 값은 보류됩니다. 16개 슬롯이 모두 NULL이면 객체는 Relinquish_Default 속성값을 사용합니다.BACnet 우선순위에 NULL을 쓰면 어떻게 되나요?
BACnet의 Relinquish_Default란 무엇인가요?
BACnet 운전자 오버라이드는 어떤 우선순위를 사용하나요?
BACnet 포인트가 고정되어 프로그램을 따르지 않는 이유는 무엇인가요?
Present_Value는 이전 오버라이드로 결정됩니다. 시퀀스가 정상적으로 쓰고 있는데도 포인트가 "고장 난" 것처럼 보이는 이유입니다. 우선순위 배열 전체를 읽고 남아 있는 슬롯을 NULL 쓰기로 해제하세요.