SNAP Objects - Controls

개요

Controls 카테고리의 노드는 SNAP에서 프로그램의 흐름과 실행 제어를 담당합니다.

1 If

If 노드는 논리적 조건을 설정하고 조건에 따라 동작흐름을 제어할 수 있는 노드입니다.

If
Fig. If Node

1.1 노드 연결

SNAP If 노드는 다음과 같은 기본 동작 구조를 갖습니다.


노드 연결 방법은 다음과 같습니다.


유의 사항

If Structure
Fig. If Structure

If LinkIndex
Fig. If Link Index

1.2 논리적 조건 설정

If 노드는 두 가지 모드로 동작이 가능합니다. 모드 전환은 프로퍼티 창에서 설정 가능합니다.

If
Fig. If Node

1.2.1 Logical Condition 모드

Compare Value 1, Compare Value 2 두 값을 입력받아 논리적 조건에 따라 비교를 수행합니다.

논리적 조건 목록 :

Logical Condition
Fig. If Logical Condition

Logical Condition Mode
Fig. If Logical Condition Mode

1.2.2 Expression 모드

입력한 수식을 계산하여 참/거짓을 판별합니다. 계산 결과가 0인 경우 거짓, 이외에는 참으로 처리됩니다. 수식 계산은 CExpressionParser 클래스를 사용하며, 해당 클래스에 대한 자세한 설명은 Expression Parser를 참고하세요.

Expression
Fig. Expression

Expression Condition Mode
Fig. If Expression Mode

2 Switch

Switch 노드는 특정 조건 값에 따라 연결된 여러 작업 흐름 중 참(True) 인 모든 분기를 선택하여 실행하는 노드입니다.
If 노드는 조건에 따라 두 개의 분기만 처리할 수 있지만, Switch 노드는 조건 값에 따라 N개의 분기를 처리할 수 있습니다.

Switch 노드는 다음과 같은 상황에서 유용하게 사용됩니다.

Switch
Fig. Switch Node

2.1 노드 연결

SNAP Switch 노드는 다음과 같은 기본 동작 구조를 갖습니다.


노드 연결 방법은 다음과 같습니다.


유의사항

Switch Structure
Fig. Switch Structure

2.2 조건 설정

Switch Case
Fig. Switch Case

Switch 노드와 연결된 간선의 수만큼 Case가 생성됩니다. Switch Value가 1로 설정된 경우, Value == 1 조건식이 참(True) 이 되며, 1번 간선이 동작합니다.


Case 별로 다양한 조건식을 사용하여 설정할 수 있습니다.

Switch Expressions
Fig. Switch Expressions

각 Case에 설정된 조건식의 의미는 다음과 같습니다.

값의 일치 여부만 확인하는 경우 아래와 같이 설정하여도 동일하게 동작합니다.

Switch Value
Fig. Switch Value

Process Result의 Result Description 값을 기반으로 Switch 노드를 사용하면, 아래와같이 다양한 분기 처리를 구현할 수 있습니다.

Switch Process Result
Fig. Switch Process Result

분기별 동작 예시 :

3 For

For 노드는 특정 Block을 반복하여 작업을 수행할 수 있도록 설정하는 노드입니다. 이 노드를 활용하면 반복 작업을 간단하고 효율적으로 구성할 수 있으며, 필요한 경우 무한 반복도 가능합니다. Loop Count를 -1로 설정하면 탈출 조건이 충족되지 않는 한 무한 반복됩니다.

For 노드는 다음과 같은 상황에서 유용하게 사용됩니다.

For Node
Fig. For Node

3.1 노드 연결

SNAP For 노드는 다음과 같은 기본 동작 구조를 갖습니다.


노드 연결 방법은 다음과 같습니다.


유의사항

For Structure
Fig. For Structure

4 Break, Pause, Stop, Restart

Break, Pause, Stop 노드는 작업 흐름을 제어하거나 반복 작업 및 실행 중인 프로세스를 중단, 일시 정지 또는 종료하는 데 사용됩니다. 이 노드들은 프로세스의 흐름을 제어할 때 중요한 역할을 하며, 다음과 같은 기능을 수행합니다.

4.1 Break 노드

Break 노드는 For 노드를 사용한 반복 작업에서 특정 조건을 충족할 경우 반복을 중단하고 다음 작업 흐름으로 이동하도록 합니다. 특정 조건을 만족하기 위한 확인 작업은 If와 Switch 노드를 사용합니다.

Break Node
Fig. Break Node

Break 노드는 다음과 같은 상황에서 유용하게 사용됩니다.

아래 그림은 반복 작업 중 Iteration Value가 5보다 크거나 같은 경우 Break 동작을 수행하는 예시입니다.

Break Node Example
Fig. Break Node Example

4.2 Pause 노드

Pause 노드는 작업 흐름을 일시적으로 멈추고, 외부에서 작업을 재개하라는 명령을 받을 때까지 대기하는 노드입니다.
Pause 노드는 작업이 멈춘 시점에서 대기하며, 사용자가 작업 재개 명령을 내리면 멈춘 시점부터 다시 동작을 시작합니다. F5 버튼 또는 SNAP View의 Run 버튼 클릭 등으로 작업을 재개할 수 있습니다.

Pause 노드는 다음과 같은 상황에서 유용하게 사용됩니다.

Pause Node
Fig. Pause Node

4.3 Stop 노드

Stop 노드는 현재 실행 중인 작업 흐름을 즉시 종료합니다. 모든 작업이 중단되며, 이후 작업 흐름도 실행되지 않습니다.

Stop 노드는 다음과 같은 상황에서 유용하게 사용됩니다.

Stop Node
Fig. Stop Node

4.4 Restart Node

Restart 노드는 동작 시 작업을 처음 부터 다시 실행합니다. 특정 조건에서 재시작해야 하는 경우 사용됩니다.

Restart 노드는 다음과 같은 상황에서 유용하게 사용됩니다.

Restart Node
Fig. Restart Node

5 Delay

Delay 노드는 작업 흐름을 지정된 시간 동안 일시적으로 멈춘 후 자동으로 재개하는 노드입니다. Delay 노드는 외부 명령 없이 설정된 대기 시간이 지나면 다음 작업으로 자동 진행됩니다. Delay Time은 ms(밀리초) 단위로 설정할 수 있습니다.

Delay Node
Fig. Delay Node

Delay Time
Fig. Delay Time