주요 콘텐츠

조건 동작을 사용하여 차트 실행 제어하기

조건 동작의 작동 방식

이 예제에서는 여러 세그먼트가 있는 천이 경로에서 간단한 조건 동작의 작동 방식을 보여줍니다.

Stateflow chart with states called A, B, and C.

처음에 차트는 슬립 상태입니다. 상태 A는 활성 상태입니다. 조건 C_oneC_two는 false입니다. 이벤트 E_one이 발생하고 차트가 웨이크업 상태가 되어, 루트부터 계층 구조를 따르며 이벤트를 처리합니다.

  1. 차트 루트는 E_one의 결과로 유효한 천이가 있는지 검사합니다. 상태 A에서 연결점으로의 유효한 천이 세그먼트가 감지됩니다. 조건 동작 A_one이 유효한 천이 세그먼트에서 감지되고 즉시 실행되고 완료됩니다. 상태 A는 여전히 활성 상태입니다.

  2. 가능한 대상으로 가는 천이 세그먼트의 조건이 false이므로 전체 천이 중 어느 천이도 유효하지 않습니다.

  3. 상태 A의 during 동작(durA())이 실행되고 완료됩니다.

    상태 A는 활성으로 유지됩니다.

  4. 차트가 다시 슬립 상태로 전환됩니다.

상태 A가 처음 활성 상태일 때, 이 순서를 통해 이벤트 E_one에 연결된 이 Stateflow® 차트의 실행이 완료됩니다.

조건 동작과 천이 동작의 작동 방식

이 예제에서는 한 배타적(OR) 상태에서 다른 상태로의 천이에 지정된 간단한 조건 동작과 천이 동작의 작동 방식을 보여줍니다.

Stateflow chart with states called A and B.

처음에 차트는 슬립 상태입니다. 상태 A는 활성 상태입니다. 조건 C_one은 true입니다. 이벤트 E_one이 발생하고 차트가 웨이크업 상태가 되어, 루트부터 계층 구조를 따르며 이벤트를 처리합니다.

  1. 차트 루트는 E_one의 결과로 유효한 천이가 있는지 검사합니다. 상태 A에서 상태 B로의 유효한 천이가 감지됩니다. 조건 C_one은 true입니다. 조건 동작 A_one이 유효한 천이에서 감지되고 즉시 실행되고 완료됩니다. 상태 A는 여전히 활성 상태입니다.

  2. 상태 A의 exit 동작(ExitA())이 실행되고 완료됩니다.

  3. 상태 A가 비활성으로 표시됩니다.

  4. 천이 동작 A_two가 실행되고 완료됩니다.

  5. 상태 B가 활성으로 표시됩니다.

  6. 상태 B의 entry 동작(entB())이 실행되고 완료됩니다.

  7. 차트가 다시 슬립 상태로 전환됩니다.

상태 A가 처음 활성 상태일 때, 이 순서를 통해 이벤트 E_one에 연결된 이 Stateflow 차트의 실행이 완료됩니다.

for 루프를 사용하여 조건 동작 만들기

조건 동작과 연결점은 for 루프 구문의 설계에 사용됩니다. 이 예제에서는 조건 동작과 연결점을 사용하여 for 루프 구문을 만드는 방법을 보여줍니다.

Stateflow chart with states called A and B.

이 예제의 작동 방식을 살펴보려면 For-Loop Construct 항목을 참조하십시오.

조건 동작을 사용하여 이벤트를 병렬(AND) 상태로 브로드캐스트하기

이 예제에서는 조건 동작을 사용하여 이벤트를 병렬(AND) 상태로 즉시 브로드캐스트하는 방법을 보여줍니다.

Stateflow chart with a top-level state called A. A has two parallel substates called A1 and A2. A1 has substates A1a and A1B. A2 has substates A2a and A2b.

이 예제의 작동 방식을 살펴보려면 Broadcast Events in Condition Actions 항목을 참조하십시오.

조기 반환 논리를 생성하는 무방향 로컬 이벤트 브로드캐스트와 유방향 로컬 이벤트를 사용하지 마십시오. 이러한 이벤트는 차트에 원치 않는 재귀 동작을 야기할 수 있습니다. 차트에 이러한 이벤트가 포함되어 있으면 모델을 시뮬레이션할 때 경고가 생성됩니다. 재귀를 야기하는 이벤트를 제거하려면 원치 않는 재귀 동작 해결하기 항목을 참조하십시오.

순환 동작 방지하기

이 예제에서는 의미 체계를 사용하면 순환 동작이 발생하므로 이벤트 브로드캐스트를 조건 동작으로 사용할 때 피해야 할 표기법을 보여줍니다.

Stateflow chart with states called On and Off.

처음에 차트는 슬립 상태입니다. 상태 On은 활성 상태입니다. 이벤트 E_one이 발생하고 차트가 웨이크업 상태가 되어, 루트부터 계층 구조를 따르며 이벤트를 처리합니다.

  1. 차트 루트는 E_one의 결과로 유효한 천이가 있는지 검사합니다.

    상태 On에서 상태 Off로의 유효한 천이가 감지됩니다.

  2. 천이의 조건 동작이 이벤트 E_one을 브로드캐스트합니다.

  3. 이벤트 E_one이 유효한 천이에서 감지되고, 즉시 실행됩니다. 상태 On은 여전히 활성 상태입니다.

  4. 이벤트 E_one의 브로드캐스트가 차트를 두 번째로 웨이크업 상태로 만듭니다.

  5. 1단계로 이동합니다.

1~5단계는 순환적으로 계속 실행됩니다. 조건 동작 브로드캐스트 이벤트에서와 동일하게 이벤트에서의 트리거를 나타내는 천이 레이블로 인해 복구할 수 없는 순환 동작이 발생할 수 있습니다. 이 시퀀스는 이벤트 E_one이 브로드캐스트이고 상태 On이 활성 상태인 경우에는 완료되지 않습니다.

조기 반환 논리를 생성하는 무방향 로컬 이벤트 브로드캐스트와 유방향 로컬 이벤트를 사용하지 마십시오. 이러한 이벤트는 차트에 원치 않는 재귀 동작을 야기할 수 있습니다. 차트에 이러한 이벤트가 포함되어 있으면 모델을 시뮬레이션할 때 경고가 생성됩니다. 재귀를 야기하는 이벤트를 제거하려면 원치 않는 재귀 동작 해결하기 항목을 참조하십시오.

참고 항목

도움말 항목