주요 콘텐츠

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

조건 동작의 작동 방식

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

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 차트는 무방향 로컬 이벤트 브로드캐스트를 감지할 수 있습니다. 진단 동작의 수준을 제어하려면 구성 파라미터 대화 상자를 열고, 진단 > Stateflow 창에서 무방향 이벤트 브로드캐스트 파라미터를 없음, 경고 또는 오류로 설정하십시오. 디폴트 설정은 경고입니다. 자세한 내용은 Undirected event broadcasts (Simulink) 항목을 참조하십시오.

순환 동작 방지하기

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

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이 활성 상태인 경우에는 완료되지 않습니다.

무방향 로컬 이벤트 브로드캐스트를 사용하지 마십시오. 무방향 로컬 이벤트 브로드캐스트는 차트에 원치 않는 재귀 동작을 야기할 수 있습니다. 대신, 유방향 브로드캐스트를 사용하여 로컬 이벤트를 전송하십시오. 자세한 내용은 로컬 이벤트를 브로드캐스트하여 병렬 상태 동기화하기 항목을 참조하십시오.

시뮬레이션 중에 Stateflow 차트는 무방향 로컬 이벤트 브로드캐스트를 감지할 수 있습니다. 진단 동작의 수준을 제어하려면 구성 파라미터 대화 상자를 열고, 진단 > Stateflow 창에서 무방향 이벤트 브로드캐스트 파라미터를 없음, 경고 또는 오류로 설정하십시오. 디폴트 설정은 경고입니다. 자세한 내용은 Undirected event broadcasts (Simulink) 항목을 참조하십시오.

참고 항목

도움말 항목