Main Content

상태에서 나가기(진출)

어떤 상태로부터의 유효한 천이가 있으면 해당 상태는 exit로 표시됩니다. 상태는 다음 중 한 가지 방식으로 exit로 표시됩니다.

  • 나가는 천이가 상태 경계에서 시작됩니다.

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

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

상태에서 나가기(진출)에 대한 워크플로

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

Flow chart that shows the steps for exiting a state.

exit 동작

상태에 대한 Exit 동작은 상태가 활성화되어 있고 상태로부터의 유효한 천이가 존재하면 실행됩니다. 상태는 비활성화되기 전에 exit 동작을 수행합니다.

exit 동작 앞에는 접두사 exit 또는 ex가 오고, 그 뒤에는 필수 콜론(:)과 하나 이상의 동작이 옵니다. 여러 동작을 캐리지 리턴, 세미콜론(;) 또는 쉼표(,)로 구분하십시오.

상태에서 나가기(진출) 예제

이 예제에서는 Stateflow 차트가 초기화되고 StateAStateA1에 대한 entry 동작이 수행됩니다. 이 차트의 경우 이 차트에 대한 during 동작이 두 번 발생했습니다. 새로운 시간 스텝이 발생한 후 차트는 웨이크업 상태가 됩니다.

Stateflow 차트 실행에 대한 워크플로 항목과 Workflow for Evaluating Transitions 항목에 따라 StateB는 entry로 표시되었습니다. StateA는 천이의 소스입니다. 이 시간 스텝에서 x = 5, y = 2, z = 0입니다.

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

상태 exit 동작에 대한 플로우 차트에 따라 차트가 슬립 상태로 전환될 때까지 이 차트의 실행 단계는 다음 순서를 따릅니다.

  1. StateAStateB의 상위 상태가 아닙니다.

  2. StateA의 exit 동작을 수행하고 StateA를 비활성으로 표시합니다. 이제 z = 1입니다.

  3. StateA에 부모 상태가 없습니다.

  4. Entry Actions으로 이동합니다.

이러한 단계에 따라 StateA에 대한 exit 워크플로가 완료됩니다. 하지만 차트는 아직 슬립 상태가 아닙니다.

시간 스텝을 완료하려면 StateB에 대해 Workflow for Entering a Chart or State 항목을 수행하십시오.

슈퍼천이를 사용하여 상태에서 나가기(진출)

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

슈퍼천이를 통해 상태에서 나가면 천이의 소스에 대한 exit 동작이 실행된 후 해당 상위 상태가 비활성으로 표시되고 상위 상태의 exit 동작이 실행됩니다. 이 예제에서 StateA2exit로 표시되고 StateB1entry로 표시됩니다. 이 시점에서 x = 5, y = 5, z = 0입니다.

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

차트가 슬립 상태로 전환될 때까지 Workflow for Entering a Chart or State 항목에 따라 상태 StateA2를 종료하기 위한 실행 단계는 다음 순서를 따릅니다.

  1. StateA2는 대상 상태(StateB1)의 상위 상태가 아닙니다.

  2. StateA2에 대해 exit 동작을 수행하고 StateA2를 비활성으로 표시합니다.

  3. StateA2에 부모 상태인 StateA가 있습니다.

  4. StateA는 대상 상태(StateB1)의 상위 상태가 아닙니다.

  5. StateA에 대해 exit 동작을 수행하고 StateA를 비활성으로 표시합니다.

  6. StateA에 부모 상태가 없습니다.

이러한 동작을 통해 StateA2StateA에 대한 exit 워크플로가 완료됩니다. 하지만 차트는 아직 슬립 상태가 아닙니다.

시간 스텝을 완료하려면 StateBStateB1에 대해 Workflow for Entering a Chart or State 항목을 수행하십시오.

관련 항목