주요 콘텐츠

차트 또는 상태로 진입하기

차트와 상태 진입이 발생하는 경우는 다음과 같습니다.

  • 차트가 처음으로 활성화될 때. 이를 차트 초기화라고 합니다.

  • 상태로의 유효한 천이가 끝날 때. 천이 평가하기 항목을 참조하십시오.

차트 또는 상태로 진입 워크플로

다음 플로우 차트는 차트 또는 상태로 진입 시 Stateflow®가 이벤트를 진행하는 과정을 보여줍니다. 이 플로우 차트에서 현재 상태는 의사결정이나 프로세스가 진행 중인 상태를 의미합니다.

Flow chart that shows the steps for entering a chart or state.

차트 진입

Stateflow 차트가 처음 활성화될 때를 초기화라고 합니다. 차트가 초기화될 때 차트로 진입되고 Stateflow는 배타적(OR) 상태의 디폴트 천이를 실행합니다. 차트에서 최상위 수준의 상태가 병렬(AND)인 경우 순서 번호에 따라 활성화됩니다.

차트가 시간 t = 0 전에 디폴트 천이를 수행하도록 하려면 차트 속성 대화 상자에서 초기화 시 차트 실행(진입) 체크박스를 선택합니다. 이 옵션을 선택하면 Stateflow 차트가 Simulink® 초기화와 동시에 초기화됩니다. 그런 다음 차트의 디폴트 천이 경로가 모델 초기화 단계에서 실행됩니다.

상태 진입

상태가 entry로 표시되면 상태의 entry 동작이 실행됩니다. 차트가 활성화되고 초기화가 수행되면 최상위 상태가 활성 상태가 됩니다. 상태는 다음 중 한 가지 방식으로 entry로 표시됩니다.

  • 들어오는 천이가 상태 경계를 가로지릅니다.

  • 들어오는 천이가 상태 경계에서 끝납니다.

  • 상태가 활성 상태의 병렬 상태 자식입니다.

entry 동작

entry 동작 앞에는 접두사 entry 또는 줄임말 en가 오고, 그 뒤에는 필수 콜론(:)과 하나 이상의 동작이 옵니다. 여러 동작은 캐리지 리턴, 세미콜론(;) 또는 쉼표(,)로 구분합니다. 문에 상태 동작 유형을 명시적으로 지정하지 않으면 차트는 해당 문을 entry,during 동작으로 처리합니다.

Stateflow 차트로 진입하기

이 예제에서는 차트가 처음 활성화될 때 차트 초기화가 발생합니다.

Stateflow chart with top-level states called StateA and StateB. StateA has substates StateA1 and StateA2. StateB has substates StateB1 and StateB2.

차트가 슬립 상태로 전환될 때까지 차트 또는 상태로 진입 워크플로 항목에 따라 차트를 초기화하기 위한 단계는 다음 순서를 따릅니다.

  1. 디폴트 천이 동작이 실행되고 x = 0, y = 0, z = 0입니다.

  2. StateA가 entry로 표시됩니다.

  3. StateA가 비활성 부모의 하위 상태가 아닙니다. StateA에 대한 entry 동작을 수행합니다. 이제 x = 1입니다.

  4. StateA는 원래 entry로 표시되었던 상태입니다.

  5. StateA에 이력 연결점이 포함되어 있지 않습니다.

  6. 하위 상태 StateA1로의 디폴트 천이가 있습니다. 천이 평가 플로우 차트로 이동합니다.

  7. 천이 평가 플로우 차트를 따라 entryStateA1을 표시합니다. exit 동작 플로우 차트로 이동합니다.

  8. 현재 상태 StateA가 대상 상태 StateA1의 상위 상태입니다. entry 동작 플로우 차트로 돌아갑니다.

  9. StateA1이 비활성 부모의 하위 상태가 아닙니다. StateA1에 대한 entry 동작을 수행합니다. 이제 x = 3입니다.

  10. StateA1은 원래 entry로 표시되었던 상태입니다.

  11. StateA1에 이력 연결점이 포함되어 있지 않습니다.

  12. StateA1에 디폴트 천이가 포함되어 있지 않습니다.

  13. StateA1에 단일 하위 상태가 포함되어 있지 않습니다.

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

1단계부터 14단계는 초기 시간 스텝에서 수행됩니다. 이 단계를 통해 차트 초기화 프로세스가 완료됩니다.

이력 연결점을 사용하여 상태로 진입하기

디폴트 천이와 관계없이 Stateflow 차트가 이전에 활성 상태였던 하위 상태를 기억하고 돌아갈 수 있도록 하려면 이력 연결점을 사용하십시오. 상태 내에 이력 연결점을 배치하면 배타적(OR) 하위 상태로 이어지는 디폴트 천이가 무시됩니다. 상태 내에 이력 연결점을 배치한 후 진입 시에 Stateflow 차트가 이전 활성 상태를 기억하고 해당 상태로 진입합니다. 이력 연결점은 해당 연결점이 표시되는 계층 수준에만 적용됩니다.

이 예제에서는 전등이 켜지거나 꺼질 수 있습니다. 이러한 옵션은 상태 Power_onPower_off로 표시됩니다. 옵션은 입력 이벤트 switch_onswitch_off에 의해 제어됩니다. 전등이 켜지는 경우 전등은 어둡거나 밝을 수 있습니다. 이러한 옵션은 상태 LowHigh로 표시되고 입력 이벤트 switch_lowswitch_high에 의해 제어됩니다.

처음에 차트는 슬립 상태입니다. 상태 Power_off는 활성입니다. 상태가 Power_on이 마지막으로 활성이었을 때 High는 이전 활성 하위 상태였습니다. 이벤트 switch_on이 발생하고 상태 Power_on이 entry로 표시됩니다. 이 시점에 p = 0입니다.

Stateflow chart with top-level states called Power_off and Power_on. Power_on has a history junction and substates Low and High.

차트가 슬립 상태로 전환될 때까지 차트 또는 상태로 진입 워크플로 항목에 따라 상태 Power_on으로 진입하기 위한 실행 단계는 다음 순서를 따릅니다.

  1. Power_on이 비활성 부모의 자식이 아닙니다.

  2. Power_on에 대한 entry 동작이 없습니다.

  3. Power_on은 원래 entry로 표시되었던 상태입니다.

  4. Power_on에 이력 연결점이 있습니다.

  5. High가 이전 활성 하위 상태였습니다. 이제 p = 2입니다.

  6. High에 이력 연결점이 포함되어 있지 않습니다.

  7. High에 디폴트 천이가 포함되어 있지 않습니다.

  8. High에 단일 하위 상태가 포함되어 있지 않습니다.

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

이 단계를 통해 Power_onHigh에 대한 entry 동작이 완료됩니다.

슈퍼천이를 사용하여 상태로 진입하기

슈퍼천이는 차트에서 서로 다른 수준 간의 천이입니다. 슈퍼천이는 최상위 차트의 상태와 그 서브차트 중 하나의 상태 사이, 또는 차트에서 동일한 수준이나 다른 수준의 다른 서브차트에 있는 상태 사이에서 일어날 수 있습니다. 차트에서 여러 수준에 걸치는 슈퍼천이를 만들 수 있습니다.

상태가 슈퍼천이를 통해 진입하면 최종 대상의 entry 동작을 실행하기 전에 상위 상태가 활성으로 표시되고 entry 동작이 실행되어야 합니다. 이 예제에서 StateB1StateA2로부터의 entry로 표시되었습니다. 이 시점에는 x = 5, y = 5, z = 1입니다.

Stateflow chart with top-level states called StateA and StateB. StateA has substates StateA1 and StateA2. StateB has substates StateB1 and StateB2.

차트가 슬립 상태로 전환될 때까지 차트 또는 상태로 진입 워크플로 항목에 따라 상태 StateB1로 진입하기 위한 실행 단계는 다음 순서를 따릅니다.

  1. StateB1이 비활성 부모(StateB)의 하위 상태입니다.

  2. StateB이 활성으로 표시됩니다.

  3. StateB이 비활성 부모의 하위 상태가 아닙니다.

  4. StateB에 대한 entry 동작을 수행합니다. 이제 x = 4입니다.

  5. StateB는 원래 entry로 표시되었던 상태가 아닙니다.

  6. StateB1에 대한 entry 동작을 수행합니다. 이제 x = 3입니다.

  7. StateB1은 원래 entry로 표시되었던 상태입니다.

  8. StateB1에 이력 연결점이 없습니다.

  9. StateB1에 디폴트 천이가 포함되어 있지 않습니다.

  10. StateB1에 단일 하위 상태가 포함되어 있지 않습니다.

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

이 단계를 통해 StateBStateB1에 대한 entry 동작이 완료됩니다.

참고 항목

도움말 항목