콘텐츠로 이동

Knob Control

Knob control 위젯은 HMI 장치의 숫자 값(온도 설정값, 모터 속도, 조광 단계 등 조정할 수 있는 매개변수)을 정하는 회전 다이얼을 제공합니다. 다이얼을 돌리면 고른 값이 대상 HMI 장치로 바로 전달됩니다.

위젯은 네 가지 원리로 동작합니다:

  1. 초기값 — 대시보드를 불러올 때 위젯이 HMI 장치의 현재 값을 읽어 다이얼을 그 위치로 옮깁니다.
  2. 값 변경 — 사용자가 다이얼을 돌리거나 숫자를 입력하면 새 값이 HMI 장치로 바로 전달됩니다.
  3. 대체 값 — 초기값 동작이 값을 가져오기 전까지 다이얼은 설정한 대체 초기값을 보여 줍니다. 동작이 값을 가져오면 그 값으로 바뀝니다.
  4. 범위 제한 — 설정한 최소·최대가 다이얼의 한계가 되므로, 운영자가 허용 범위 밖의 값을 보낼 수 없습니다.
  • 대상 HMI 장치만 선택하면 위젯이 바로 값을 보낼 수 있습니다. 다른 설정은 필요 없습니다.
  • 범위, 소수 자릿수, 대체 값을 설정할 수 있습니다.
  • HMI 장치 하나를 직접 대상으로 하거나, 실행 중에 엔티티 별칭으로 결정되는 엔티티를 대상으로 합니다.
  1. 대시보드를 수정 모드로 엽니다. 위쪽 툴바의 위젯 추가를 클릭하거나, 빈 대시보드 가운데의 위젯 추가 아이콘을 클릭합니다.
  2. 위젯 번들 선택 대화상자에서 Control widgets를 찾아 클릭합니다.
  3. Knob control 위젯을 선택합니다.
  4. 대상 HMI 장치와 모양을 설정한 다음 추가를 클릭합니다.

위젯이 읽고 쓸 데이터 소스를 선택합니다:

  • 장치 — 특정 HMI 장치. 값은 늘 이 HMI 장치로 전달됩니다.
  • 개체 별명 — 엔티티 별칭에 맞는 엔티티. 대상 HMI 장치를 실행 중에 동적으로 고를 때(예: 대시보드 상태 매개변수로) 씁니다.

동작 영역은 다이얼이 값을 어디서 읽고 어디로 보낼지 정합니다. 각 행의 연필 아이콘을 클릭해 동작 유형과 설정을 고릅니다. 설정을 마치면 각 행에 Use time series 'temperature'나 Set 'temperature' attribute to: value 같은 요약이 표시됩니다.

대시보드를 불러올 때 다이얼의 시작 위치를 정합니다. 동작을 고르면 그 동작에 필요한 필드가 나타납니다.

동작설명추가 설정
아무 것도 하지 않음데이터를 조회하지 않습니다.—
속성 가져오기엔티티의 속성 값을 읽습니다.속성 범위, 속성 키
시계열 가져오기시계열 키의 최신 값을 읽습니다.시계열 키
알람 상태 가져오기활성 알람에서 값을 얻습니다.알람 심각도, 알람 유형
대시보드 상태 ID 가져오기현재 대시보드 상태 ID를 읽습니다.결과 유형
대시보드 상태 객체 가져오기대시보드 상태 전체를 JSON으로 읽습니다.결과 유형

값이 다이얼에 닿기 전에 바꾸려면 동작 결과 변환기를 씁니다. 변환이 필요 없으면 비워 둡니다.

다이얼은 숫자를 다루므로 실제로는 시계열 가져오기를 씁니다. 읽은 값이 숫자가 아니면 동작 결과 변환기로 숫자를 돌려줍니다.

다이얼 값이 바뀔 때 실행할 동작을 정합니다.

동작설명추가 설정
속성 설정새 값을 HMI 장치 속성에 저장합니다.속성 범위(공유), 속성 키, Value
시계열 추가새 값을 시계열 데이터로 기록합니다.시계열 키, Value

Value에는 두 가지 모드가 있습니다. Value는 다이얼에서 고른 숫자를 그대로 보내고, 함수는 보내기 전에 숫자를 변환합니다.

다이얼의 시각 스타일과 값 범위를 설정합니다.

설정설명
노브 제목다이얼 위에 표시되는 글(예: Temperature controller).
범위다이얼의 최소와 최대 경계. 이 범위 밖의 값은 고를 수 없습니다.
값값 옆에 표시되는 단위와 표시할 소수점 자릿수. 단위 °C, 소수점 0이면 4 °C로 표시됩니다.
대체 초기값위젯을 처음 그리는 동안 보여 주는 값. 초기값 동작이 값을 가져오는 즉시 그 값으로 바뀌며, 빈 값이어도 바뀐 뒤 대체 값으로 돌아가지 않습니다. 초기값은 값이 반드시 들어 있는 키를 가리키게 합니다.
”표시할 데이터 없음” 대체 메시지데이터가 없을 때 다이얼 대신 표시하는 글. 기본값은 No data입니다.

위젯 카드 자체의 표시 방식(제목, 색상, 패딩, 테두리)을 설정합니다.

Knob control은 위젯 헤더 버튼 동작을 지원합니다. 위젯 헤더에 버튼을 추가해 클릭하면 설정한 동작을 실행합니다.

시나리오: 냉동 컨트롤러(SN-001)가 -10 °C~20 °C 사이의 목표 온도로 동작합니다. 컨트롤러는 현재 적용 중인 설정값을 temperature 시계열 데이터로 보고하고, 새 설정값은 temperature 공유 속성으로 받습니다.

목표: 운영자에게 현재 목표 온도를 보여 주고 새 목표 온도를 정수로 정하는 다이얼을 제공합니다.

사전 준비: SN-001 HMI 장치에서 최근 데이터 탭을 열고 temperature 시계열에 값이 있는지 확인합니다. 값이 없으면 다이얼이 비어 보입니다.

1단계. 위젯 추가. 대시보드를 수정 모드로 열고 위젯 추가를 클릭하고 Control widgets를 선택한 다음 Knob control을 고릅니다.

2단계. 데이터 소스 설정. 대상을 장치로 정하고 SN-001을 선택합니다.

3단계. 초기값 설정. 동작에서 초기값의 연필 아이콘을 클릭하고, 불러올 때 다이얼이 현재 목표 온도를 읽도록 설정합니다:

  • 동작: 시계열 가져오기
  • 시계열 키: temperature
  • 동작 결과 변환기: 비워 둠

4단계. 값 변경 시 설정. 값 변경 시의 연필 아이콘을 클릭하고, 다이얼이 새 값을 공유 속성에 저장하도록 설정합니다:

  • 동작: 속성 설정
  • 속성 범위: 공유
  • 속성 키: temperature
  • Value: Value

5단계. 다이얼 설정. 모양에서 다음과 같이 설정합니다:

  • 노브 제목: Temperature
  • 범위: 최소 -10, 최대 20
  • 값: 단위 °C, 소수점 0
  • 대체 초기값: 0

6단계. 저장. 추가를 클릭하고 위젯 크기를 조정한 다음 대시보드 툴바의 저장을 클릭합니다.

결과: 불러올 때 위젯이 temperature 시계열의 최신 값을 읽어 다이얼에 보여 줍니다. 다이얼을 돌릴 때마다 고른 값이 temperature 공유 속성에 저장되고, SN-001이 그 값을 새 목표 온도로 적용합니다. 컨트롤러가 적용한 값을 시계열 데이터로 다시 보고하면 다이얼 위치도 그에 맞게 바뀝니다.

대체 초기값을 설정했는데도 다이얼이 비어 보임

대체 초기값은 초기값 동작이 실패할 때 쓰는 대체 값이 아닙니다. 위젯을 처음 그리는 동안에만 다이얼을 채우며, 초기값 동작이 가져온 값으로 바뀝니다. 빈 값이어도 마찬가지입니다. 따라서 다이얼이 계속 비어 있다면 초기값이 빈 값을 읽고 있다는 뜻입니다.

원인해결 방법
키에 값이 없음초기값에 설정한 속성이나 시계열 키에 실제로 값이 있는지 확인합니다. 키 이름은 대소문자를 구분합니다.
범위가 맞지 않음속성 범위가 값이 저장된 곳과 같은지 확인합니다. 공유에 저장한 값은 서버에서 읽을 수 없습니다.
값이 숫자가 아님문자열로 저장한 값은 다이얼에 표시되지 않습니다. 숫자로 저장하거나 동작 결과 변환기에서 숫자를 돌려줍니다.
대상 HMI 장치가 틀림데이터 소스에서 선택한 HMI 장치가 제어하려는 장치가 맞는지 확인합니다.

다이얼을 돌려도 HMI 장치에 반영되지 않음

원인해결 방법
HMI 장치가 오프라인임값은 저장되므로 HMI 장치가 다시 연결되면 적용합니다. 연결 상태를 확인합니다.
값 변경 시가 설정되지 않음동작 유형을 선택했는지 확인합니다. 선택하지 않으면 다이얼은 움직이지만 값이 저장되지 않습니다.
속성 키나 범위가 맞지 않음값 변경 시의 속성 키와 속성 범위가 초기값이 읽는 것과 같은지 확인합니다. 키 이름은 대소문자를 구분합니다.
대상 HMI 장치가 틀림데이터 소스의 대상을 확인합니다. 엔티티 별칭을 쓴다면 현재 대시보드 상태에서 어떤 엔티티로 결정되는지 확인합니다.

HMI 장치가 고른 숫자와 다른 숫자를 받음

원인해결 방법
소수 자릿수가 틀림소수점을 조정합니다. 소수점이 0인 다이얼은 4를 보냅니다(4.0이 아님).
범위가 실제 한계보다 넓음범위의 최소·최대를 HMI 장치의 실제 운전 한계로 좁혀 범위 밖의 값을 고를 수 없게 합니다.