Single Switch
Single switch 위젯은 HMI 장치의 두 가지 상태를 제어하는 토글 스위치를 제공합니다. 릴레이, 조명, 모터를 켜고 끄거나, 속성을 갱신해 HMI 장치 기능을 사용하거나 사용하지 않게 합니다.
작동 방식
섹션 제목: “작동 방식”위젯은 네 가지 원리로 동작합니다:
- 초기 상태 — 대시보드를 불러올 때 위젯이 설정한 소스(속성 또는 텔레메트리)에서 HMI 장치의 현재 상태를 읽어 스위치 위치에 반영합니다.
- 전환 동작 — 사용자가 스위치를 돌리면 위젯이 설정한 동작(속성 갱신 또는 텔레메트리 기록 쓰기)을 실행합니다.
- 시각 피드백 — 스위치 트랙과 손잡이 색이 상태에 따라 바뀌어(켜짐 → 활성 색상, 꺼짐 → 중립 색상) HMI 장치 상태를 바로 알아볼 수 있습니다.
- 동기화 — HMI 장치 상태가 외부에서 바뀌면(자동화나 룰 체인으로) 위젯이 갱신을 받아 실제 상태에 맞게 스위치를 옮깁니다.
주요 기능
섹션 제목: “주요 기능”- 동작 영역 세 개(초기 상태, ‘켜기’, ‘끄기’)를 각각 따로 설정할 수 있습니다.
- 상태 소스와 동작 대상으로 공유/서버 속성과 텔레메트리를 지원합니다.
- 비활성화 상태: HMI 장치가 오프라인이거나 점검 중이거나 알람 상태일 때 스위치를 잠급니다.
- 상태별 스위치와 손잡이 색상, 사용자 지정 켜짐/꺼짐 라벨, 레이아웃 옵션을 설정할 수 있습니다.
위젯 추가
섹션 제목: “위젯 추가”- 대시보드를 수정 모드로 엽니다. 위쪽 툴바의 위젯 추가를 클릭하거나, 빈 대시보드 가운데의 위젯 추가 아이콘을 클릭합니다.
- 위젯 번들 선택 대화상자에서 Control widgets를 찾아 클릭합니다.
- Single switch 위젯을 선택합니다.
- 데이터 소스, 동작, 모양을 설정한 다음 추가를 클릭합니다.
이 절의 설정은 모두 기본 모드 기준입니다. 필수 항목만 다루는 빠른 설정입니다. 제목 글꼴, 카드 스타일, 툴팁 같은 세부 설정은 고급 탭으로 바꿉니다.
데이터 소스
섹션 제목: “데이터 소스”상태 데이터의 소스를 선택합니다:
- 장치 — 특정 HMI 장치. 위젯이 이 HMI 장치의 상태를 읽고 씁니다.
- 개체 별명 — 엔티티 별칭에 맞는 엔티티 집합. 실행 중에 대상 HMI 장치를 동적으로 고를 때 씁니다.
초기 상태
섹션 제목: “초기 상태”대시보드를 불러올 때 위젯이 켜짐/꺼짐 위치를 정하는 방법을 정합니다.
| 동작 유형 | 설명 | 구성 | 동작 결과 변환기 |
|---|---|---|---|
| 아무 것도 하지 않음 | 상태를 직접 정합니다. 데이터를 조회하지 않습니다. | Value: 켜짐 / 꺼짐 | — |
| 속성 가져오기 | 엔티티의 속성 값을 읽습니다. | 속성 범위: 전체 / 클라이언트 / 서버 / 공유, 속성 키: 예: powerState | 없음: 켜짐에 해당하는 값을 지정합니다. 함수: 사용자 지정 변환기. |
| 시계열 가져오기 | 텔레메트리 키의 최신 값을 가져옵니다. | 시계열 키: 예: state | 없음: 켜짐에 해당하는 값을 지정합니다. 함수: 텔레메트리를 불리언으로 변환합니다. |
| 알람 상태 가져오기 | 활성 알람에서 상태를 얻습니다. | 알람 심각도: 심각한 / 주요한 / 작은 / 경고 / 중간, 알람 유형: 전체 또는 선택한 유형 | 없음: 활성 알람이 켜짐을 뜻하는 경우를 지정합니다. 함수: 알람 데이터를 불리언으로 매핑합니다. |
| 대시보드 상태 ID 가져오기 | 현재 대시보드 상태 ID를 읽습니다. | 결과 유형: 문자열 / 정수 / 실수 / 불리언 / JSON | 없음: 어떤 ID가 켜짐인지 지정합니다. 함수: ID를 불리언으로 변환합니다. |
| 대시보드 상태 객체 가져오기 | 대시보드 상태 전체를 JSON으로 읽습니다. | 결과 유형: 문자열 / 정수 / 실수 / 불리언 / JSON | 없음 또는 함수. |
‘켜기’ 동작
섹션 제목: “‘켜기’ 동작”사용자가 스위치를 켤 때 실행할 동작을 정합니다.
| 동작 유형 | 설명 | 구성 |
|---|---|---|
| 속성 설정 | HMI 장치 속성을 켜짐 값으로 갱신합니다. | 속성 범위: 서버 또는 공유, 속성 키: 예: powerState, Value: 상수(예: true) 또는 함수. |
| 시계열 추가 | 켜짐을 나타내는 새 텔레메트리 기록을 씁니다. | 시계열 키: 예: state, Value: 상수 또는 함수. |
‘끄기’ 동작
섹션 제목: “‘끄기’ 동작”‘켜기’ 동작과 같은 방식으로 설정하되, 꺼짐 상태를 나타내는 값을 씁니다.
| 동작 유형 | 설명 | 구성 |
|---|---|---|
| 속성 설정 | HMI 장치 속성을 꺼짐 값으로 갱신합니다. | 속성 범위: 서버 또는 공유, 속성 키: 예: powerState, Value: 상수(예: false) 또는 함수. |
| 시계열 추가 | 꺼짐을 나타내는 새 텔레메트리 기록을 씁니다. | 시계열 키: 예: state, Value: 상수 또는 함수. |
비활성화 상태
섹션 제목: “비활성화 상태”스위치를 클릭할 수 없게 되는 시점을 정합니다. 비활성화 상태에서는 스위치가 회색이 되고 사용자 입력을 무시합니다. HMI 장치가 오프라인이거나 점검 중일 때, 또는 활성 알람 중에 제어하면 안 될 때 씁니다.
| 동작 유형 | 설명 | 구성 |
|---|---|---|
| 아무 것도 하지 않음 | 고정된 비활성화 모양을 직접 정합니다. | Value: 참 / 거짓 |
| 속성 가져오기 | 속성을 읽어 스위치를 잠글지 정합니다. | 속성 범위: 전체 / 클라이언트 / 서버 / 공유, 속성 키: 예: enabled, 변환기: 없음 또는 함수. |
| 시계열 가져오기 | 최신 텔레메트리로 비활성화 상태를 정합니다. | 시계열 키: 예: availability, 변환기: 없음 또는 함수. |
| 알람 상태 가져오기 | 선택한 유형이나 심각도의 알람이 활성이면 비활성화합니다. | 알람 심각도와 알람 유형, 변환기: 없음 또는 함수. |
| 대시보드 상태 ID 가져오기 / 대시보드 상태 객체 가져오기 | 현재 대시보드 상태에 따라 비활성화합니다. | 결과 유형: 문자열 / 정수 / 실수 / 불리언 / JSON, 변환기: 없음 또는 함수. |
스위치의 레이아웃, 색상, 라벨, 아이콘을 설정합니다.
| 설정 | 설명 |
|---|---|
| 레이아웃 | 위젯 안에서 스위치의 위치: 오른쪽, 왼쪽, 가운데. |
| 자동 크기 조절 | 위젯 크기를 바꾸면 글꼴 크기와 요소 비율을 자동으로 조정합니다. |
| 라벨 | 스위치 옆에 표시되는 설명 글(예: Ventilation, Power). |
| 아이콘 | 제어하는 HMI 장치나 기능을 알아보도록 라벨 왼쪽에 표시하는 아이콘(선택 사항). |
| 스위치 색상 | 상태별 스위치 트랙(배경 선) 색상: 켜짐 / 꺼짐 / 비활성화. |
| 텀블러 색상 | 상태별 스위치 손잡이 색상: 켜짐 / 꺼짐 / 비활성화. |
| 켜짐 라벨 / 꺼짐 라벨 | 현재 상태를 알리려고 스위치 옆에 표시하는 사용자 지정 글과 색상. |
카드 모양
섹션 제목: “카드 모양”| 설정 | 설명 |
|---|---|
| 배경 | 카드의 단색 또는 이미지 배경. |
| 카드 버튼 표시 | 툴바의 전체화면 버튼을 켭니다. |
| 카드 모서리 반경 | 모서리 둥글기(픽셀). |
| 카드 패딩 | 카드 내용과 테두리 사이 간격. |
Single switch는 위젯 헤더 버튼 동작을 지원합니다. 위젯 헤더에 놓는 버튼으로, 클릭하면 설정한 동작을 실행합니다.
환기 릴레이 제어
섹션 제목: “환기 릴레이 제어”시나리오: Ventilation Relay라는 HMI 장치가 MX On Cloud의 공유 속성 powerState 갱신을 구독합니다. 속성 값이 바뀌면 HMI 장치가 그에 맞게 실제 릴레이 상태를 바꿉니다.
목표: 현재 powerState 값을 읽고, 속성을 갱신해 사용자가 릴레이를 켜거나 끌 수 있는 Single switch 위젯을 추가합니다.
사전 준비: Ventilation Relay라는 HMI 장치를 만들고(라이선스 등록은 HMI 장치 연결 가이드 참고) 공유 속성을 추가합니다:
- 키 이름:
powerState - 데이터 유형: Boolean
- 값:
true
1단계. 위젯 추가. 대시보드를 수정 모드로 열고 위젯 추가를 클릭하고 Control widgets를 선택한 다음 Single switch를 고릅니다.
2단계. 데이터 소스 설정. 데이터소스 유형을 장치로 정하고 Ventilation Relay를 선택합니다.
3단계. 초기 상태 설정. 불러올 때 스위치가 현재 릴레이 상태를 읽도록 동작을 설정합니다:
- 동작: 속성 가져오기
- 속성 범위: 공유
- 속성 키:
powerState - 동작 결과 변환기: 결과가
true(Boolean)이면 켜짐
4단계. ‘켜기’ 설정. 사용자가 스위치를 켤 때 실행할 동작을 설정합니다:
- 동작: 속성 설정
- 속성 범위: 공유
- 속성 키:
powerState - Value: 상수 →
true(Boolean)
5단계. ‘끄기’ 설정. 사용자가 스위치를 끌 때 실행할 동작을 설정합니다:
- 동작: 속성 설정
- 속성 범위: 공유
- 속성 키:
powerState - Value: 상수 →
false(Boolean)
6단계. 모양 설정. 다음과 같이 설정합니다:
- 레이아웃: 오른쪽
- Label:
Ventilation - 스위치 색상: 켜짐 →
#4CAF50, 꺼짐 →#AF4C4E66 - 켜짐 라벨:
On/ 꺼짐 라벨:Off
7단계. 저장. 추가를 클릭하고 필요하면 크기와 위치를 조정한 다음 대시보드 툴바의 저장을 클릭합니다.
결과: 위젯이 Ventilation Relay HMI 장치의 powerState를 읽습니다. powerState = true이면 스위치가 초록색으로 켜짐 위치에 있고, powerState = false이면 빨간색으로 꺼짐 위치에 있습니다.
스위치를 돌리면 MX On Cloud의 powerState 속성이 갱신됩니다. 이 속성을 구독하는 Ventilation Relay HMI 장치가 갱신된 값을 받아 실제 릴레이 상태를 자동으로 바꿉니다.
문제 해결
섹션 제목: “문제 해결”스위치에 올바른 초기 상태가 반영되지 않음
| 원인 | 해결 방법 |
|---|---|
| 속성 키나 범위가 틀림 | 초기 상태 영역의 속성 키와 속성 범위가 HMI 장치의 실제 속성과 같은지 확인합니다. |
| HMI 장치에 속성이 설정되지 않음 | 장치 → 속성을 열고 속성이 있고 값이 들어 있는지 확인합니다. |
| 동작 결과 변환기가 맞지 않음 | 변환기가 속성 값을 불리언으로 올바르게 매핑하는지 확인합니다(예: 결과가 true이면 켜짐). |
스위치를 돌려도 HMI 장치에 반영되지 않음
| 원인 | 해결 방법 |
|---|---|
| 동작 유형이 틀림 | ’켜기’와 ‘끄기’가 HMI 장치에 맞는 동작 유형(속성 설정 또는 시계열 추가)을 쓰는지 확인합니다. |
| HMI 장치가 속성 갱신을 구독하지 않음 | 자동으로 반응하길 기대하기 전에 HMI 장치 펌웨어가 해당 공유 속성을 구독하는지 확인합니다. |
스위치가 비활성화 상태에서 벗어나지 않음
| 원인 | 해결 방법 |
|---|---|
| 비활성화 상태 조건이 항상 참임 | 비활성화 상태 설정을 검토하고, 소스 값(속성, 텔레메트리, 알람)이 의도한 때에만 비활성화를 일으키는지 확인합니다. |
| 활성 알람이 제어를 막음 | 설정한 유형과 심각도의 알람이 활성인지 확인합니다. 알람을 해결하거나 비활성화 상태 필터를 조정합니다. |