조건 동작을 사용하여 차트 실행 제어하기
조건 동작의 작동 방식
이 예제에서는 여러 세그먼트가 있는 천이 경로에서 간단한 조건 동작의 작동 방식을 보여줍니다.
처음에 차트는 슬립 상태입니다. 상태 A
는 활성 상태입니다. 조건 C_one
과 C_two
는 false입니다. 이벤트 E_one
이 발생하고 차트가 웨이크업 상태가 되어, 루트부터 계층 구조를 따르며 이벤트를 처리합니다.
차트 루트는
E_one
의 결과로 유효한 천이가 있는지 검사합니다. 상태A
에서 연결점으로의 유효한 천이 세그먼트가 감지됩니다. 조건 동작A_one
이 유효한 천이 세그먼트에서 감지되고 즉시 실행되고 완료됩니다. 상태A
는 여전히 활성 상태입니다.가능한 대상으로 가는 천이 세그먼트의 조건이 false이므로 전체 천이 중 어느 천이도 유효하지 않습니다.
상태
A
의 during 동작(durA()
)이 실행되고 완료됩니다.상태
A
는 활성으로 유지됩니다.차트가 다시 슬립 상태로 전환됩니다.
상태 A
가 처음 활성 상태일 때, 이 순서를 통해 이벤트 E_one
에 연결된 이 Stateflow® 차트의 실행이 완료됩니다.
조건 동작과 천이 동작의 작동 방식
이 예제에서는 한 배타적(OR) 상태에서 다른 상태로의 천이에 지정된 간단한 조건 동작과 천이 동작의 작동 방식을 보여줍니다.
처음에 차트는 슬립 상태입니다. 상태 A
는 활성 상태입니다. 조건 C_one
은 true입니다. 이벤트 E_one
이 발생하고 차트가 웨이크업 상태가 되어, 루트부터 계층 구조를 따르며 이벤트를 처리합니다.
차트 루트는
E_one
의 결과로 유효한 천이가 있는지 검사합니다. 상태A
에서 상태B
로의 유효한 천이가 감지됩니다. 조건C_one
은 true입니다. 조건 동작A_one
이 유효한 천이에서 감지되고 즉시 실행되고 완료됩니다. 상태A
는 여전히 활성 상태입니다.상태
A
의 exit 동작(ExitA()
)이 실행되고 완료됩니다.상태
A
가 비활성으로 표시됩니다.천이 동작
A_two
가 실행되고 완료됩니다.상태
B
가 활성으로 표시됩니다.상태
B
의 entry 동작(entB()
)이 실행되고 완료됩니다.차트가 다시 슬립 상태로 전환됩니다.
상태 A
가 처음 활성 상태일 때, 이 순서를 통해 이벤트 E_one
에 연결된 이 Stateflow 차트의 실행이 완료됩니다.
for 루프를 사용하여 조건 동작 만들기
조건 동작과 연결점은 for
루프 구문의 설계에 사용됩니다. 이 예제에서는 조건 동작과 연결점을 사용하여 for
루프 구문을 만드는 방법을 보여줍니다.
이 예제의 작동 방식을 살펴보려면 For-Loop Construct 항목을 참조하십시오.
조건 동작을 사용하여 이벤트를 병렬(AND) 상태로 브로드캐스트하기
이 예제에서는 조건 동작을 사용하여 이벤트를 병렬(AND) 상태로 즉시 브로드캐스트하는 방법을 보여줍니다.
이 예제의 작동 방식을 살펴보려면 Broadcast Events in Condition Actions 항목을 참조하십시오.
팁
무방향 로컬 이벤트 브로드캐스트를 사용하지 마십시오. 무방향 로컬 이벤트 브로드캐스트는 차트에 원치 않는 재귀 동작을 야기할 수 있습니다. 대신, 유방향 브로드캐스트를 사용하여 로컬 이벤트를 전송하십시오. 자세한 내용은 로컬 이벤트를 브로드캐스트하여 병렬 상태 동기화하기 항목을 참조하십시오.
시뮬레이션 중에 Stateflow 차트는 무방향 로컬 이벤트 브로드캐스트를 감지할 수 있습니다. 진단 동작의 수준을 제어하려면 구성 파라미터 대화 상자를 열고, 진단 > Stateflow 창에서 무방향 이벤트 브로드캐스트 파라미터를 없음
, 경고
또는 오류
로 설정하십시오. 디폴트 설정은 경고
입니다. 자세한 내용은 Undirected event broadcasts (Simulink) 항목을 참조하십시오.
순환 동작 방지하기
이 예제에서는 의미 체계를 사용하면 순환 동작이 발생하므로 이벤트 브로드캐스트를 조건 동작으로 사용할 때 피해야 할 표기법을 보여줍니다.
처음에 차트는 슬립 상태입니다. 상태 On
은 활성 상태입니다. 이벤트 E_one
이 발생하고 차트가 웨이크업 상태가 되어, 루트부터 계층 구조를 따르며 이벤트를 처리합니다.
차트 루트는
E_one
의 결과로 유효한 천이가 있는지 검사합니다.상태
On
에서 상태Off
로의 유효한 천이가 감지됩니다.천이의 조건 동작이 이벤트
E_one
을 브로드캐스트합니다.이벤트
E_one
이 유효한 천이에서 감지되고, 즉시 실행됩니다. 상태On
은 여전히 활성 상태입니다.이벤트
E_one
의 브로드캐스트가 차트를 두 번째로 웨이크업 상태로 만듭니다.1단계로 이동합니다.
1~5단계는 순환적으로 계속 실행됩니다. 조건 동작 브로드캐스트 이벤트에서와 동일하게 이벤트에서의 트리거를 나타내는 천이 레이블로 인해 복구할 수 없는 순환 동작이 발생할 수 있습니다. 이 시퀀스는 이벤트 E_one
이 브로드캐스트이고 상태 On
이 활성 상태인 경우에는 완료되지 않습니다.
팁
무방향 로컬 이벤트 브로드캐스트를 사용하지 마십시오. 무방향 로컬 이벤트 브로드캐스트는 차트에 원치 않는 재귀 동작을 야기할 수 있습니다. 대신, 유방향 브로드캐스트를 사용하여 로컬 이벤트를 전송하십시오. 자세한 내용은 로컬 이벤트를 브로드캐스트하여 병렬 상태 동기화하기 항목을 참조하십시오.
시뮬레이션 중에 Stateflow 차트는 무방향 로컬 이벤트 브로드캐스트를 감지할 수 있습니다. 진단 동작의 수준을 제어하려면 구성 파라미터 대화 상자를 열고, 진단 > Stateflow 창에서 무방향 이벤트 브로드캐스트 파라미터를 없음
, 경고
또는 오류
로 설정하십시오. 디폴트 설정은 경고
입니다. 자세한 내용은 Undirected event broadcasts (Simulink) 항목을 참조하십시오.