Main Content

병렬 상태의 실행 순서

병렬(AND) 상태는 동시에 실행되지만 Stateflow® 차트는 시뮬레이션 중에 각 상태를 활성화할 때를 결정해야 합니다. 이 순서는 각 병렬 상태가 실행의 모든 단계를 거치는 동작을 수행할 때를 결정합니다.

병렬 상태 순서 지정

차트는 각 병렬 상태에 우선 순위 번호를 할당합니다. 번호가 낮을수록 상태가 더 먼저 실행됩니다. 우선 순위 번호는 각 상태의 오른쪽 위 코너에 표시됩니다.

새 차트나 병렬 상태가 포함되지 않은 차트를 열면 차트는 병렬 상태를 만든 순서대로 우선 순위 번호를 자동으로 할당합니다. 번호 지정은 부모 컨테이너에서 사용 가능한 다음 번호부터 시작합니다.

병렬 상태의 실행 순서를 변경하려면 다음을 수행하십시오.

  1. 병렬 상태를 마우스 오른쪽 버튼으로 클릭합니다.

  2. 실행 순서를 클릭하고 새 우선 순위 번호를 선택합니다.

병렬 상태의 우선 순위 번호를 변경하면 차트는 상대적 우선 순위를 유지하기 위해 자동으로 다른 병렬 상태의 번호를 재지정합니다.

병렬 상태가 포함된 차트로부터 생성된 코드에서는 각 상태가 우선 순위에 따라 실행됩니다.

병렬 상태 순서 관리

병렬 상태를 제거, 번호 재지정 또는 추가하면 차트는 다음과 같이 병렬 상태의 우선 순위를 재지정합니다.

  • 순서가 연속되도록 시퀀스의 빈 자리를 채웁니다.

  • 두 상태가 동일한 우선 순위를 갖지 않도록 합니다.

  • 의도한 상대적 우선 순위를 유지합니다.

다음 예제를 살펴보겠습니다.

Stateflow chart with three top-level parallel states called a, b, and c. State a has three parallel substates called d, e, and f.

기본적으로 상태와 하위 상태는 만든 순서대로 번호가 지정됩니다. 예를 들어 차트를 다음과 같이 변경하는 경우:

  1. 최상위 상태 b의 우선 순위를 3으로 변경합니다.

  2. 최상위 상태 g를 추가합니다.

  3. 하위 상태 e를 제거합니다.

Stateflow chart with four top-level parallel states called a, b, c, and g. State a has two parallel substates called d and f.

차트는 최상위 상태 b에 대해 명시적으로 설정한 우선 순위를 유지하지만, 이전의 상대적 순서를 유지하기 위해 다른 모든 병렬 상태의 번호를 재지정합니다.

복원된 상태의 실행 우선 순위

Stateflow 차트에서 병렬 상태를 제거한 후 복원해야 하는 상황이 있습니다. 그러나 항상 원래의 실행 우선 순위를 복원된 상태로 되돌릴 수는 없습니다. 우선 순위는 상태를 복원하는 방법에 따라 달라집니다.

상태 제거 방법상태 복원 방법우선 순위
삭제, 잘라내기, 부모 상태의 경계 밖으로 끌어서 놓기, 또는 경계가 부모 상태와 겹치도록 끌어서 놓기실행 취소 명령 사용원래 우선 순위가 복원됩니다.
부모 상태의 경계 밖으로 끌거나 경계가 부모 상태와 겹치도록 끌어온 다음 마우스 버튼 놓기부모 상태로 다시 끌어서 놓기원래 우선 순위가 손실됩니다. Stateflow 차트는 복원된 상태를 마지막으로 생성된 상태로 간주하여 가장 낮은 실행 우선 순위를 할당합니다.
마우스 버튼을 놓지 않은 채 부모 상태의 경계 밖으로 끌거나 경계가 부모 상태와 겹치도록 끌기부모 상태로 다시 끌어서 놓기원래 우선 순위가 복원됩니다.
경계가 하나 이상의 형제 상태와 겹치도록 끌어서 놓기동일한 부모 상태 내에서 경계가 겹치지 않는 위치로 끌어서 놓기원래 우선 순위가 복원됩니다.
잘라내기붙여넣기원래 우선 순위가 손실됩니다. Stateflow 차트는 복원된 상태를 마지막으로 생성된 상태로 간주하여 가장 낮은 실행 우선 순위를 할당합니다.

상자 및 서브차트 내의 병렬 상태 실행 순서

상자 내에서 병렬 상태를 그룹화하면 상태는 상대적 실행 순서를 유지합니다. 또한 Stateflow 차트는 디폴트 순서 지정 규칙에 따라 자체 우선 순위를 상자에 할당합니다. 이 우선 순위는 차트가 상자 내에서 병렬 상태를 활성화할 때를 결정합니다.

병렬 분해가 있는 상태를 서브차트로 변환하면 해당 하위 상태는 상대적 실행 순서를 유지합니다.

관련 항목