안녕하세요. 현역서포터 S입니다.
💬 "실무 제어 흐름에 대한 이해 없이 만들어진 HMI 버튼은, 현장에서 대형 장애를 일으키는 원인이 될 수 있습니다."
지난 9편에서는 데이터의 입력과 출력을 담당하는 애니메이션 링크의 거시적인 두 축(Touch Link와 Display Link)을 살펴보았습니다. 이번 10편 글에서는 오퍼레이터가 화면을 조작하여 설비에 명령을 직접 내리는 핵심 기능인 Sliders(슬라이더)와 Touch Pushbuttons(터치 버튼)에 대해 실무 엔지니어링 관점에서 명쾌하게 정리해 보겠습니다.
1. Sliders (슬라이더 애니메이션 링크)
슬라이더는 화면 위에 배치된 그래픽 오브젝트를 마우스로 드래그하여 아날로그 값을 직관적으로 제어하는 인터페이스 요소입니다. 개체가 축을 따라 움직이는 동안, 이와 바인딩된 태그의 값이 실시간으로 변경됩니다.
⚠️ 현직자가 말하는 슬라이더의 실무적 한계
결론부터 말씀드리면, 슬라이더는 실제 제조 공장 현장에서 사용 빈도가 그리 높지 않습니다. 그 이유는 다음과 같습니다.
- 마우스 드래그 특성상 정밀한 수치(예: 125.7 RPM)를 타겟팅하여 입력하기 어렵습니다.
- 개체를 드래그하는 중간 과정의 수치들이 PLC로 실시간 전달되기 때문에, 설비에 급격한 스트레스를 주거나 오입력 사고를 유발할 수 있습니다.
따라서 실무에서 슬라이더를 도입할 때는 정밀도가 크게 중요하지 않은 영역(예: 조명 밝기 제어, 단순 댐퍼 개도율 가이드)에 제한적으로 사용하며, 반드시 최종 [적용] 버튼을 통해 값을 한 번 더 검증하는 구조를 곁들여야 합니다. 수평(Horizontal)과 수직(Vertical) 형태로 구성할 수 있으며, 하나의 객체에 두 축을 동시에 매핑하여 X-Y 평면 좌표를 제어하는 독특한 UI를 만들 수도 있습니다.
🛠️ 슬라이더 구성 및 주요 설정 속성
오브젝트를 생성한 후, 마우스 더블 클릭을 통해 [Touch Link] ➡️ [Sliders] 메뉴로 진입하여 설정을 진행합니다. 슬라이더의 본질은 "화면상의 픽셀(Pixel) 위치와 아날로그 태그 값을 선형(Linear) 매핑하는 것"입니다.
- Tagname: 제어값을 전달할 대상 아날로그 태그를 매핑합니다.
- Value (At Top/Bottom 또는 At Left/Right End): 슬라이더 구동 양 끝단에 도달했을 때 가질 태그의 최소/최대 범위를 지정합니다.
- Movement: 양 끝단 사이에서 오브젝트가 물리적으로 움직일 수 있는 최대 픽셀(Pixel) 범위를 설정합니다.
- Reference Location: 드래그 조작 시 기준점이 될 위치(Center, Left, Right 등)를 선언합니다.
- Tip: 런타임 환경에서 마우스가 없을 경우, Tab 키로 해당 슬라이더 객체를 선택한 뒤 키보드 방향키로도 세밀한 조작이 가능합니다.
2. Touch Pushbuttons (터치 버튼 애니메이션 링크)
마우스 클릭 즉시 지정된 이벤트를 수행하는 인터랙션 요소입니다. 설비 가동/정지 제어, 팝업 화면 전환, 복합 로직 스크립트 실행 등 현장 작화에서 가장 압도적인 사용 빈도와 중요성을 가지는 기능입니다. 역할에 따라 3가지 세부 유형으로 나뉩니다.
1) Discrete Value (이산형 디지털 태그 제어)
클릭 이벤트를 통해 이산(BOOL, 0 또는 1) 태그의 상태를 변경하는 가장 표준적인 버튼 인터페이스입니다. 총 5가지의 동작 방식(Action)을 제공합니다.
| 버튼 동작 유형 | 마우스 클릭 시 발생하는 메커니즘 설명 |
| Direct | 버튼을 누르고 있는 동안에만 1, 마우스 손떼면 즉시 0으로 복귀 (Momentary 방식) |
| Reverse | 버튼을 누르고 있는 동안 0, 마우스 손떼면 1로 복귀 |
| Toggle | 클릭할 때마다 현재 태그 상태를 반전 (0 ➡️ 1 ➡️ 0) |
| Set | 마우스를 클릭하는 순간 태그 값을 무조건 1 고정으로 래치(Latch) 시킴 |
| Reset | 마우스를 클릭하는 순간 태그 값을 무조건 0 고정으로 클리어시킴 |
🚨 [실무 초핵심] 제어 신호(1)의 클리어 주체 설정 (HMI vs PLC)
현장 시운전 시 펌프의 가동(RUN)과 정지(STOP) 버튼을 만들 때, PLC 프로그램과의 통신 인터페이스 협의가 반드시 선행되어야 합니다.
오퍼레이터가 HMI에서 RUN 버튼을 눌러 신호 1을 보냈을 때, 이 신호가 계속 1로 살아서 유지되고 있다면 이후 STOP 버튼을 눌러 정지 신호 1이 들어가더라도 PLC 로직 내에서 상충이 발생하여 장비가 멈추지 않는 대형 사고가 날 수 있습니다.
- 방법 A (Direct 버튼 사용): HMI 단에서 제어 신호 발생(1)과 해제(0)를 모두 책임지는 구조입니다. (단, PC 리소스 저하나 네트워크 지연 시 마우스 해제 이벤트를 누락하여 신호가 1로 끼이는 고착 현상이 간혹 발생할 수 있습니다.) 이를 보완하기 위해 InTouch 2023 R2 버전부터는 Industrial Graphic에 일정 시간 후 자동 복귀하는 Momentary Contact 기능이 추가되었습니다.
- 방법 B (Set 버튼 사용): HMI는 오직 가동 명령(1)만 던져주고, PLC가 이 신호를 정상 수신하자마자 자기유지 로직을 돌린 후 즉시 HMI 태그를 0으로 털어버리는(Clear) 구조입니다. 현업에서는 시스템 안정성을 위해 방법 B를 훨씬 선호합니다.
2) Action (복합 스크립트 기반 제어)
앞선 Discrete Value 버튼이 한 번에 딱 하나의 태그만 제어할 수 있는 단발성 구조라면, Action은 버튼 클릭 시 내장 스크립트 엔진을 구동하여 수많은 명령어와 복합 로직을 원샷으로 실행하는 강력한 도구입니다.
예를 들어, "설비 가동 명령을 내리기 전에 인터락 해제 태그(Interlock_Rel)를 먼저 1로 바꾼 뒤, 가동 태그(Run_Cmd)를 1로 세팅하고, 동시에 감시용 외부 프로그램(.exe)까지 강제로 팝업 시키는 동작"을 버튼 하나로 완벽히 묶어낼 수 있습니다.

Action 버튼 내에서 사용할 수 있는 대표적인 실행 조건(Condition Type)은 다음과 같습니다.
- On Left Click / Key Down: 마우스 왼쪽 버튼을 누르는 순간 스크립트가 딱 1회 실행됩니다. (실무 활용도 90%)
- While Left Down: 마우스 왼쪽 버튼을 꾹 누르고 있는 동안 지정된 주기로 스크립트가 지속 반복 실행됩니다. (예: 누르고 있는 동안 속도 지시치 무한 증가)
- On Left Up: 마우스 제어 버튼을 누르고 있다가 손가락을 떼는 순간 1회 실행됩니다.
- 참고: 왼쪽 버튼 외에도 현장 마우스 조작 환경에 맞게 우클릭(Right Click) 및 휠 클릭(Center Click) 계열의 더블클릭 이벤트나, 객체 위에 마우스를 올려두기만 해도 트리거되는 On Mouse Over 조건 등 폭넓은 인터랙션 세팅을 지원합니다.
3) Show / Hide Window (직관적인 화면 전환)
HMI 작화 화면 구성에서 전체 페이지를 전환하거나 메인 화면 위에 경고/설정용 팝업창을 띄우고 닫을 때 사용하는 가장 기본적이고 직관적인 유틸리티입니다.

- Show Window: 해당 버튼을 클릭하면 사전에 작화해 둔 특정 윈도우 화면이나 경보 팝업창을 화면에 즉시 표시합니다.
- Hide Window: 현재 열려 있는 서브 윈도우나 상세 감시 창의 [닫기] 버튼에 매핑하여 화면을 닫고 숨기는 기능을 수행합니다.
- 단 하나의 버튼 안에 여러 개의 윈도우 창을 동시에 체크해 둘 수 있기 때문에, 버튼 터치 한 번으로 관련 팝업을 동시에 열고 닫는 멀티 레이아웃 제어가 가능해집니다.
3. 핵심 요약 및 마무리 정리
| 터치 링크 기능 분류 | 실무 적용 데이터 제어 형태 | 베테랑 엔지니어의 핵심 한마디 |
| Sliders | 아날로그 값 제어 (X/Y 좌표 매핑) | 정밀 제어가 어려우므로 실무 단독 사용은 지양, 가이드용 인터페이스로만 활용 |
| Touch Pushbuttons | 이산형 데이터 제어 및 화면 전환 | 설비 제어의 핵심 축. PLC 인터페이스 설계 시 신호 리셋 주체를 명확히 선언할 것 |
이번 10편 글에서는 운영자가 공장 설비를 런타임 환경에서 제어할 수 있는 대표적인 두 가지 터치 인터페이스, Sliders와 Pushbutton의 실무 가이드라인을 깊이 있게 짚어보았습니다. 단순해 보이는 사각형 버튼 안에도 현장 안전을 위한 치밀한 로직 연동이 숨어있다는 점을 항상 기억해 주세요.
다음 11편 연재 글에서는 오늘 다룬 이론을 바탕으로 WindowMaker를 켜고 '터치 버튼과 가상 아날로그 슬라이더를 화면에 직접 배치하여 태그를 제어해 보는 생생한 실전 실습'을 진행하겠습니다.
실습 진행 전, 복습이나 태그 바인딩 설정이 다시 필요하신 분들은 이전 연재 가이드를 참고해 주세요.
초보자를 위한 AVEVA InTouch 개발 교육 7편: DBDump와 DBLoad로 대량 태그 5분 만에 일괄 생성하기 (실습
안녕하세요. 스마트팩토리 현역 서포터 S입니다. 💬 "PLC I/O 데이터가 너무 많은데… 이 수많은 태그를 언제 하나씩 다 만들지…?" 지난 6편에서 대량 태그 관리의 핵심인 DBDump와 DBLoad의 개념을
tech-intouch.tistory.com
초보자를 위한 AVEVA InTouch 개발 교육 9편: 애니메이션 링크(Animation Links)의 개념과 User Input 핵심 유
안녕하세요. 현역서포터 S입니다. 💬 "HMI 작화하려면 시간이 너무 오래 걸리는데…" > 💬 "이 설비 동작은 HMI 화면으로 어떻게 표현해야 할까?" 공장 자동화 현장에서 I/O List 분석과 Tag List 등록
tech-intouch.tistory.com
현장 제어 신호 클리어 로직을 설계하다가 PLC 시퀀스와 꼬여 타이밍 이슈가 발생하거나, 액션 스크립트 내부 문법 에러로 빌드가 막히시는 분들은 언제든 아래 댓글로 질문을 던져주세요. 현역의 눈높이로 정확하게 서포트해 드리겠습니다. 구독과 공감은 좋은 칼럼을 쓰는 데 큰 격려가 됩니다. 감사합니다!