본문 바로가기
Smart Factory

[Smart Factory] Intouch 기본 개념 / Tag, Script 예제

by 배써니 2024. 8. 19.

Intouch는 산업 자동화 분야에서 많이 사용되는 SCADA(감시 제어 및 데이터 수집) 소프트웨어로서,
산업 현장에서 발생하는 다양한 데이터를 데이터를 수집, 모니터링, 분석, 제어하는 데 사용된다.

이 소프트웨어는 다양한 산업 분야에서 사용되며,
공장 자동화, 프로세스 제어, 에너지 관리
등 다양한 시스템을 구성할 수 있다.

그럼 Intouch에 대하여 더 구체적으로 살펴보자.


01. Intouch의 주된 특징들

  • 실시간 데이터 모니터링
    : Intouch는 실시간으로 데이터를 수집하여 모니터링할 수 있다. 이를 통해 현장의 상태를 즉각적으로 파악하고, 문제가 발생했을 때 신속하게 대응할 수 있다.

  • 그래픽 사용자 인터페이스 (GUI)
    : Intouch는 사용자 친화적인 그래픽 인터페이스를 제공하며, 이를 통해 사용자는 복잡한 시스템을 시각적으로 관리할 수 있다. 각종 그래프, 차트, 애니메이션 등을 통해 데이터를 쉽게 분석할 수 있다.

  • 확장성
    : 소규모 시스템부터 대규모 공장까지 모두 대응할 수 있는 확장성을 갖추고 있다.

  • 자동화
    : Intouch는 스크립팅 기능을 통해 반복 작업을 자동화하거나, 특정 조건에서 자동으로 조치를 취할 수 있는 기능을 제공한다.

02. Intouch의 Tag

태그는 각 개체(공장을 구성하는 요소들)의 속성과 값을 지정할 수 있도록 한다.
그 종류들을 살펴보도록 하자.

1. I/O (Input/Output) :
실제 장비나 외부 시스템과의 연결을 통해 데이터를 수집하거나 제어 가능 >> PLC 동작을 위한 태그
( eg. 온도 센서에서 읽어오는 값을 저장하는 태그 )

2. Memory : 
Intouch 시스템 내부에서만 사용되는 태그로, 계산된 값이나 상태 값을 저장할 때 사용
외부 입력 없이도 시스템 내부 로직에 따라 값이 변화 가능

3. System ($ 표기) :
Intouch에서 기본적으로 제공하는 태그로, 시스템의 상태나 시간, 사용자 정보 등을 포함한다.
( eg. 현재 날짜와 시간을 저장하는 태그 )


데이터의 속성을 드러내는 태그에 대해서도 알아보자.

- Discrete (Boolean) : True(1,on)  or  False(0,off)
- Integer : 정수
- Real : 실수
- Message (string) : 문자열

03. Animation Link

위의 이미지는 Input과  Output의 상태를 드러내주는 창이다. 
각각에 나누어 기능들을 알아보도록 하겠다.

●  Input 기능 (맨 좌측 1열)

  • User Inputs : 사용자의 키보드 입력
  • Sliders : 드래그를 이용한 입력
  • Touch Pushbuttons : 마우스 클릭을 이용한 입력

●  Output 기능 

  • Line Color, Fill Color, Text Color : 요소들의 색상 값 출력
  • Object Size, Location : 요소의 크기와 위치 변경
  • Percent Fill : 최대 퍼센트를 기준으로 각 요소에 해당하는 정도를 채움
  • Value Display : 출력되는 값 변경
  • Miscellaneous : 위 출력 외의 것들

04. Script 

Intouch의 스크립트(Script) 기능은 시스템 동작을 자동화하고, 사용자 정의 로직을 구현할 수 있게 해주는 강력한 도구이다. 스크립트를 사용하면 특정 조건에서 자동으로 작업을 수행하거나, 사용자 입력에 따라 동작을 변화시키는 등 다양한 제어를 할 수 있다. 

Script 의 종류와 예시에 대해 알아보자.

 

  • Application Scripts: 전체 애플리케이션 수준에서 실행되는 스크립트.
    주로 전체 프로젝트의 시작, 종료, 혹은 주기적인 작업을 수행할 때 사용된다.
// 주기적인 데이터 로깅 - 5분마다 압력데이터 기록

IF $Minute % 5 == 0 AND $Second == 0 THEN
    LogData("Pressure at " + $Time + ": " + Pressure);
ENDIF;

 

 

  • Window Scripts: 특정 윈도우(화면)에서 실행되는 스크립트.
    윈도우가 열리거나 닫힐 때, 또는 윈도우 안의 객체와 관련된 이벤트가 발생할 때 실행된다.
// 윈도우 로드 시 작업 - 특정 화면이 열릴 때 관련 데이터를 초기화

IF $WindowName == "Dashboard" THEN
    LastCheckedTime = $Time;
    ResetWarnings();  // 경고 초기화
ENDIF;

 

  • Key Scripts: 키보드 입력에 따라 실행되는 스크립트.
    사용자가 특정 키를 누를 때 해당 스크립트가 실행된다.
// 사용자 Interface와의 상호작용 - 사용자가 "Reset" 버튼 클릭 >> 모든 경보를 초기화 + 시스템 상태 재설정

IF ResetButtonClicked THEN
    AlarmReset();  // 모든 경보 초기화
    SystemState = "Reset";  // 시스템 상태를 "Reset"으로 변경
ENDIF;

 

  • Condition Scripts: 특정 조건이 참일 때 실행되는 스크립트.
    ( eg. 태그 값이 특정 임계치를 초과할 때 스크립트 실행 ) 
// 조건부 논리 수행- 일정 온도를 기준으로 히터 on/off

IF Temperature < 60 THEN
    Heater = 1;  // 히터 ON
ELSEIF Temperature > 75 THEN
    Heater = 0;  // 히터 OFF
ENDIF;

 

  • Data Change Scripts: 태그의 값이 변경될 때 실행되는 스크립트.
    이 스크립트를 사용하여 태그 값이 변할 때 특정 작업을 자동으로 수행
// 상태 변화 감지 - 펌프의 상태가 변경될 때마다 로그에 기록

IF PumpState == 1 THEN
    LogMessage("Pump has started at " + $Time);
ELSEIF PumpState == 0 THEN
    LogMessage("Pump has stopped at " + $Time);
ENDIF;

 

  • Touch Action Scripts: 사용자가 특정 화면 요소를 클릭하거나 터치할 때 실행되는 스크립트.
    버튼 클릭이나 그래픽 객체 선택 시 작동하는 로직을 정의할 수 있다.
// 사용자 입력에 따라 시스템이 특정 작업 수행 - Start/Stop 버튼 클릭 시, 실행/실행중단

IF StartButtonClicked THEN
    MachineRunning = 1;  // 기계 가동
    ShowMessage("Machine started.");
ENDIF;

IF StopButtonClicked THEN
    MachineRunning = 0;  // 기계 중지
    ShowMessage("Machine stopped.");
ENDIF;

 

// 값 증가 및 감소

// "+" 버튼 클릭 시 실행
IF PlusButtonClicked THEN
    Value = Value + 1;
ENDIF;

// "-" 버튼 클릭 시 실행
IF MinusButtonClicked THEN
    Value = Value - 1;
ENDIF;