Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

편집 시 모델링 오류 검출하기

편집 시 검사가 활성화된 경우 Stateflow® 편집기는 사용자가 차트에서 작업할 때 잠재적 오류와 경고를 검출합니다. 설계 프로세스에서 이러한 문제를 조기에 해결하면 컴파일 시 또는 런타임 시 경고와 오류를 방지할 수 있습니다.

Stateflow 편집기는 편집 시 검사를 위반한 객체를 빨간색(오류인 경우) 또는 주황색(경고인 경우)으로 강조 표시합니다. 강조 표시된 객체를 가리키고 오류 또는 경고 배지를 클릭하면 툴팁에 세부 정보와 가능한 해결 방법이 표시됩니다.

편집 시 검사 관리하기

기본적으로 편집 시 검사와 구문 오류 강조 표시는 활성화되어 있습니다. 편집 시 검사를 비활성화하려면 디버그 탭에서 진단 > 편집 시 오류 및 경고 체크박스의 선택을 해제하십시오. edittime.setDisplayIssues (Simulink)를 사용하여 편집 시 검사를 비활성화할 수도 있습니다.

다음 표에는 구성 파라미터 대화 상자의 진단 > Stateflow 창에 있는 연관된 진단 구성 파라미터를 가진 편집 시 검사가 나열되어 있습니다.

구성 파라미터의 값을 오류, 경고 또는 안 함으로 설정하여, 이러한 편집 시 검사에 대한 진단 동작의 수준을 제어할 수 있습니다. 구성 파라미터의 설정을 변경하면 해당 편집 시 검사의 진단 수준도 변경됩니다. 예를 들어, 도달할 수 없는 실행 경로 구성 파라미터를 none으로 설정하면 Stateflow 편집기는 미완(Dangling) 천이, 가리는 천이 또는 도달할 수 없는 상태를 강조 표시하지 않습니다.

상태 및 서브차트에 대한 편집 시 검사

아토믹 서브차트에 상태 동작이 포함되어 있음(Atomic subchart contains state actions)

  • 문제: 아토믹 서브차트에서는 상태 동작이 지원되지 않습니다.

  • 진단 수준: 오류.

  • 해결 방법: 상태 동작을 삭제하거나 상태 동작을 아토믹 서브차트의 하위 상태로 이동하십시오.

    Atomic subchart that contains state actions.

디폴트 천이가 누락됨(Default transition is missing)

  • 문제: 배타적(OR) 분해 및 두 개 이상의 하위 상태나 연결점이 있는 차트 또는 상태에서 실행이 시작되는 위치를 표시하려면 디폴트 천이가 필요합니다.

  • 진단 수준: 오류.

  • 해결 방법: 디폴트 천이를 추가하여 초기 상태를 지정하십시오. 자세한 내용은 Use Default Transitions to Specify Initial Substate Activity 항목을 참조하십시오.

    Chart with no default transition.

그래픽 함수에 상태가 포함되어 있음(Graphical function contains a state)

  • 문제: 그래픽 함수는 단일 시간 스텝에서 완전히 실행되므로 어떤 상태도 포함해서는 안 됩니다.

  • 진단 수준: 오류.

  • 해결 방법: 상태를 연결점으로 바꾸십시오. 자세한 내용은 Reuse Logic Patterns by Defining Graphical Functions 항목을 참조하십시오.

    Graphical function that contains a state.

유효하지 않은 교차임(Invalid intersection)

  • 문제: 상태와 연결점은 Stateflow 편집기에서 겹치지 않아야 합니다.

  • 진단 수준: 오류.

  • 해결 방법: 상태와 연결점을 구분하여 교차가 발생하지 않도록 합니다.

    Invalid intersection between states.

병렬 상태의 리프 상태 또는 자식 상태 활동을 모니터링 중임(Monitoring leaf or child state activity of parallel states)

  • 문제: 병렬 하위 상태가 동시에 활성화되므로, 병렬(AND) 분해를 사용하는 차트와 상태는 리프 상태 또는 자식 상태 활동에 대한 모니터링을 지원하지 않습니다.

  • 진단 수준: 경고.

  • 해결 방법: 속성 인스펙터 또는 모델 탐색기를 엽니다. 모니터링을 위한 출력 만들기 체크박스의 선택을 해제하거나 드롭다운 목록에서 자체 활동을 선택하십시오. 자세한 내용은 Monitor State Activity Through Active State Data 항목을 참조하십시오.

    Parallel substates in a state that monitors child state activity.

상태에 구문 오류가 있음(State contains a syntax error)

  • 문제: 상태 동작이 Stateflow 구문 규칙을 따르지 않습니다. Stateflow 편집기는 구문 오류에 빨간색 물결선으로 밑줄을 표시합니다. 천이에 구문 오류가 있음(Transition Contains a Syntax Error) 항목도 참조하십시오.

  • 진단 수준: 오류.

  • 해결 방법: 상태 동작의 구문 오류를 수정하십시오. 자세한 내용은 Define Actions in a State 항목을 참조하십시오.

    State that contains a syntax error.

    참고

    부모 차트에서는 구문 오류가 있는 서브차트가 빨간색으로 강조 표시되고 오류 배지가 구문 문제를 나타냅니다. 서브차트 편집기에서는 구문 오류에 빨간색으로 밑줄이 표시되지만 해당 문제를 나타내는 배지가 없습니다.

도달할 수 없는 상태임(Unreachable state)

  • 문제: 상태에 이르는 유효한 실행 경로가 없는 경우 해당 상태는 도달할 수 없는 상태가 됩니다.

  • 진단 수준: 구성 파라미터 Unreachable execution path (Simulink)에 따라 다릅니다.

  • 해결 방법: 도달할 수 없는 상태를 도달할 수 있는 소스에서의 천이와 연결하십시오.

    Chart that contains an unreachable state.

천이에 대한 편집 시 검사

미완 천이(Dangling transition)

  • 문제: 모든 천이에는 유효한 대상이 있어야 합니다.

  • 진단 수준: 구성 파라미터 Unreachable execution path (Simulink)에 따라 다릅니다.

  • 해결 방법: 천이를 상태, 연결점 또는 포트에 연결하십시오. 자세한 내용은 Transition Between Operating Modes 항목을 참조하십시오.

    Chart that contains a dangling transition.

디폴트 천이 경로가 상태에서 종료되지 않음(Default transition path does not terminate in a state)

  • 문제: 차트 또는 상태에 배타적(OR) 분해와 적어도 하나의 하위 상태가 있는 경우 다음이 적용됩니다.

    • 디폴트 천이 경로의 모든 분기가 하위 상태로 이어져야 합니다.

    • 가드 조건이 없거나 이벤트에 의해 트리거되지 않는 디폴트 천이 경로의 분기가 있어야 합니다.

  • 진단 수준: 구성 파라미터 No unconditional default transitions (Simulink)에 따라 다릅니다.

  • 해결 방법: 디폴트 천이 경로의 모든 분기를 하위 상태에서 종료하십시오. 가드 조건이 없거나 이벤트에 의해 트리거되지 않는 디폴트 천이 경로의 분기가 한 개 있는지 확인하십시오.

    Chart without an unconditional default transition branch to a state.

유효하지 않은 디폴트 천이 경로임(Invalid default transition path)

  • 문제: 디폴트 천이 경로는 부모 상태에서 나가서는 안 됩니다.

  • 진단 수준: 오류.

  • 해결 방법: 부모 상태 내에 있도록 디폴트 천이 경로를 수정하십시오.

    Chart with an invalid default transition path.

천이에 구문 오류가 있음(Transition contains a syntax error)

  • 문제: 천이에 있는 조건 또는 동작이 Stateflow 구문 규칙을 따르지 않습니다. Stateflow 편집기는 구문 오류에 빨간색 물결선으로 밑줄을 표시합니다. 상태에 구문 오류가 있음(State Contains a Syntax Error) 항목도 참조하십시오.

  • 진단 수준: 오류.

  • 해결 방법: 천이 조건 또는 동작의 구문 오류를 수정하십시오. 자세한 내용은 Define Actions in a Transition 항목을 참조하십시오.

    Transition that contains a syntax error.

천이 동작이 이 경로에 있는 조건 동작을 선행함(Transition action precedes a condition action along this path)

  • 문제: 천이 동작이 있는 천이 다음에 조건 동작이 있는 천이가 오는 경우 동작이 천이 순서대로 실행되지 않습니다. Stateflow 차트는 연결된 조건이 true로 평가되면 조건 동작을 실행합니다. 이와 반대로, 차트는 천이 경로가 완전히 실행된 경우에만 천이 동작을 실행합니다. 그 결과 차트는 천이 경로를 취하고, 조건 동작이 천이 동작보다 먼저 발생합니다.

  • 진단 수준: 구성 파라미터 Transition action specified before condition action (Simulink)에 따라 다릅니다.

  • 해결 방법: 천이 동작을 경로에 있는 마지막 조건 동작 다음에 두십시오.

    Transition path in which a transition action precedes a condition action.

천이가 병렬 상태에서 시작하거나 끝납니다(Transition begins or ends in a parallel state)

  • 문제: 병렬(AND) 분해를 사용하는 차트와 상태에서 모든 형제 하위 상태는 동시에 활성화되거나 비활성화됩니다.

  • 진단 수준: 경고.

  • 해결 방법: 천이를 제거하거나 부모 상태에 대한 분해를 배타적(OR)으로 변경하십시오.

    Transitions that begin or end in a parallel states.

천이가 상자에 연결됨(Transition connects to a box)

  • 문제: 천이는 상태 및 연결점에만 연결해야 합니다.

  • 진단 수준: 오류.

  • 해결 방법: 이 상자에 연결된 천이를 이동하거나 삭제하십시오.

    Chart with a transition that connects to a box.

천이가 병렬 상태를 가로지릅니다(Transition crosses parallel states)

  • 문제: MATLAB®의 독립 실행형 차트에서는 병렬 상태 경계를 가로지르는 천이를 지원하지 않습니다.

  • 진단 수준: 오류.

  • 해결 방법: 병렬 상태 안으로 또는 밖으로 가로지르는 천이를 삭제하십시오.

    Standalone chart with a transition that crosses the boundary of a parallel state.

천이가 그래픽 함수에 진입하거나 그래픽 함수에서 나감(Transition enters or exits graphical function)

  • 문제: 천이는 그래픽 함수에 진입하거나 그래픽 함수에서 나가서는 안 됩니다. 그래픽 함수에서 플로우 차트는 함수 내에 완전히 포함되어야 합니다.

  • 진단 수준: 오류.

  • 해결 방법: 그래픽 함수에 진입하거나 그래픽 함수에서 나가는 천이를 삭제하십시오.

    Chart containing transitions that enter and exit a graphical function.

천이가 진입/진출 포트에 연결되지 않음(Transition is not connected to entry/exit port)

  • 문제: 천이가 소스 또는 대상 근처에 있는 진입 포트 또는 진출 포트에 연결되어 있지 않습니다.

  • 진단 수준: 경고.

  • 해결 방법: 천이를 포트에 연결하거나 천이 소스 또는 천이 대상을 다른 위치로 이동하십시오.

    Entry port that is located near the destination point of a default transition.

천이가 고유 부모 바깥에서 순환함(Transition loops outside natural parent)

  • 문제: 소스와 대상 사이의 천이가 부모 상태 바깥으로 나가는 경우 차트는 대상 상태가 활성화되기 전에 부모 상태의 exitentry 동작을 실행합니다.

  • 진단 수준: 구성 파라미터 Transition outside natural parent (Simulink)에 따라 다릅니다.

  • 해결 방법: 부모 상태 내에 포함되도록 천이를 이동하십시오.

    Transition between substates that goes outside the boundary of the parent state.

가리는 천이(Transition shadowing)

  • 문제: 비조건부 천이가 동일한 소스에서 나오는 다른 천이보다 먼저 실행되면 다른 천이가 실행되지 못합니다.

  • 진단 수준: 구성 파라미터 Unreachable execution path (Simulink)에 따라 다릅니다.

  • 해결 방법: 각 상태 또는 연결점에서 비조건부 천이를 최대 하나까지만 생성하십시오. 비조건부 천이가 조건을 갖는 천이 이후에 실행되도록 명시적으로 지정합니다. 자세한 내용은 Transition Evaluation Order 항목을 참조하십시오.

    Chart with an unconditional transition that shadows a conditional transition.

during 동작 또는 자식 상태가 있는 상태에서 나가는 비조건부 경로임(Unconditional path out of state with during actions or child states)

  • 문제: 상태에서 나가는 비조건부 천이는 해당 상태의 during 동작이 실행되지 않도록 하며 자식 상태 간의 천이가 실행되지 않도록 합니다.

  • 진단 수준: 구성 파라미터 Transition outside natural parent (Simulink)에 따라 다릅니다.

  • 해결 방법: 천이에 조건을 추가하거나 상태에서 during 동작과 자식 상태를 제거하십시오.

    Chart with one transition out of a state with during actions and another transition out of a state with child states.

연결점에 대한 편집 시 검사

천이 동작이 있는 천이가 순환에 포함되어 있음(Cycle contains transitions with transition actions)

  • 문제: 순환에는 천이 동작이 있는 천이가 포함되어서는 안 됩니다.

  • 진단 수준: 오류.

  • 해결 방법: 천이 동작을 제거하거나, 천이를 삭제하여 순환을 제거하십시오.

    Flow chart with a transition action in a cycle.

유효하지 않은 이력 연결점임(Invalid history junction)

  • 문제: 다음에 해당하는 경우 이력 연결점이 유효하지 않습니다.

    • 계층 구조의 차트 수준에 이력 연결점이 포함된 경우.

    • 병렬(AND) 분해를 사용하는 상태에 이력 연결점이 포함된 경우.

    • 그래픽 함수 내에 이력 연결점이 포함된 경우.

    • 동일한 상태에 여러 개의 이력 연결점이 포함된 경우.

    • 이력 연결점이 천이의 소스인 경우.

  • 진단 수준: 오류.

  • 해결 방법: 계층 구조의 차트 수준, 병렬(AND) 분해를 사용하는 상태 또는 그래픽 함수에서 이력 연결점을 제거하십시오. 상태에서 하나를 제외한 모든 이력 연결점을 제거하십시오. 천이 소스를 연결점 또는 상태로 이동하십시오. 자세한 내용은 Resume Prior Substate Activity by Using History Junctions 항목을 참조하십시오.

    Chart that contains an invalid history junction.

연결점에 비조건부 순환 탈출 경로가 없음(Junction has no unconditional escape from cycle)

  • 문제: 연결점에는 상태 또는 종단 연결점으로 연결되는 비조건부 순환 탈출 경로가 있어야 합니다.

  • 진단 수준: 오류.

  • 해결 방법: 연결점에서 상태 또는 종단 연결점으로 연결되는 비조건부 경로를 만드십시오.

    Junction with no unconditional escape from a cycle.

동일한 소스의 천이 경로가 서로 다른 부모를 가짐(Transition paths from same source have different parents)

  • 문제: 천이 경로가 동일한 소스 상태에서 시작하지만 서로 다른 부모를 갖습니다.

  • 진단 수준: 오류.

  • 해결 방법: 동일한 부모를 갖도록 천이 경로를 수정하십시오.

    Junction with two incoming transition paths from the same source but with different parents.

예기치 않은 역추적(Unexpected backtracking)

  • 문제: 동일한 소스의 여러 천이 경로가 연결점으로 이어지고 그 연결점에서 상태 또는 종단 연결점으로 이어지는 비조건부 경로가 없는 경우, 예기치 않은 제어 흐름 역추적이 발생할 수 있습니다.

  • 진단 수준: 구성 파라미터 Unexpected backtracking (Simulink)에 따라 다릅니다.

  • 해결 방법: 연결점에서 상태 또는 종단 연결점으로 연결되는 비조건부 경로를 만드십시오. 자세한 내용은 Backtrack in Flow Charts 항목을 참조하십시오.

    예를 들어 이 차트에 강조 표시된 연결점에는 상태 A로 연결되는 비조건부 경로가 없습니다. ConditionAConditionB가 true이고 ConditionC가 false이면, 차트는 경로의 첫 번째 연결점으로 여러 번 역추적됩니다. 그 결과, 차트가 3개의 조건 동작을 실행합니다.

    Chart with unexpected backtracking.

    역추적을 방지하려면, 조건을 결합하고 두 번째 연결점에서 대상 상태로 이어지는 비조건부 경로를 생성하십시오. 변경 후 차트는 조건 동작을 하나만 실행합니다.

    Chart with no unexpected backtracking.

도달할 수 없는 연결점임(Unreachable junction)

  • 문제: 연결점에 이르는 유효한 실행 경로가 없는 경우 해당 연결점은 도달할 수 없는 상태가 됩니다.

  • 진단 수준: 구성 파라미터 Unreachable execution path (Simulink)에 따라 다릅니다.

  • 해결 방법: 도달할 수 없는 연결점을 도달할 수 있는 소스에서의 천이와 연결하십시오.

    Chart that contains an unreachable junction.

함수에 대한 편집 시 검사

함수가 사용되지 않음(Function is unused)

  • 문제: 차트에 함수를 호출하는 명령문이 없는 경우 함수가 사용되지 않습니다.

  • 진단 수준: 경고.

  • 해결 방법: 상태 또는 천이 동작이나 다른 함수에서 함수를 호출하십시오.

    Chart containing an unused function.

키워드가 함수 인수로 잘못 사용됨(Invalid use of keywords as function arguments)

  • 문제: 함수 정의는 예약된 키워드를 인수로 사용합니다.

  • 진단 수준: 오류.

  • 해결 방법: 함수에 대한 인수 이름을 바꾸십시오. 예약된 키워드 목록은 Stateflow 객체 이름에 대한 지침 항목을 참조하십시오.

    Function that uses a reserved keyword as an argument.

진입 포트 또는 진출 포트에 대한 편집 시 검사

진입 연결점에는 상태로 연결되는 비조건부 경로가 있어야 함(Entry junctions must have an unconditional path to a state)

  • 문제: 가드 조건이 없거나 이벤트에 의해 트리거되지 않는 천이 경로 한 개가 진입 연결점에 있어야 합니다.

  • 진단 수준: 오류.

  • 해결 방법: 진입 연결점에서 상태로 연결되는 비조건부 경로를 추가하십시오.

    Entry junction that connects to a single conditional path to a state.

진입 연결점에는 나가는 천이가 있어야 함(Entry junctions must have outgoing transitions)

  • 문제: 진입 연결점이 나가는 천이 경로에 연결되어 있지 않습니다.

  • 진단 수준: 오류.

  • 해결 방법: 진입 연결점에 천이를 연결하거나 해당 연결점을 제거하십시오.

    Entry junction that does not connect to a transition path.

진출 포트에는 상태로 연결되는 비조건부 경로가 있어야 함(Exit ports must have an unconditional path to a state)

  • 문제: 가드 조건이 없거나 이벤트에 의해 트리거되지 않는 천이 경로 한 개가 진출 포트에 있어야 합니다.

  • 진단 수준: 오류.

  • 해결 방법: 진출 포트에서 상태로 연결되는 비조건부 경로를 추가하십시오.

    Exit port that connects to a single conditional path to a state.

진출 포트에 나가는 천이가 있어야 함(Exit ports must have outgoing transitions)

  • 문제: 진출 포트가 나가는 천이 경로에 연결되어 있지 않습니다.

  • 진단 수준: 오류.

  • 해결 방법: 진출 포트에 천이를 연결하거나 해당 포트를 제거하십시오.

    Exit port that does not connect to a transition path.

진입 연결점 또는 진출 연결점이 유효하지 않음(Invalid entry or exit junction)

  • 문제: 진입 연결점 및 진출 연결점은 배타적(OR) 상태와 아토믹 서브차트에서만 지원됩니다.

  • 진단 수준: 오류.

  • 해결 방법: 해당 연결점을 배타적(OR) 상태 또는 아토믹 서브차트로 이동하거나 해당 연결점을 삭제하십시오.

    Entry and exit junctions in parallel (AND) states.

진입 연결점 또는 진출 연결점이 누락됨(Missing entry or exit junction)

  • 문제: 진입 포트나 진출 포트에는 짝을 이루는 진입 연결점이나 진출 연결점이 있어야 합니다.

  • 진단 수준: 오류.

  • 해결 방법: 해당 포트를 삭제하거나 동일한 레이블을 가지며 짝을 이루는 연결점을 만드십시오.

    Entry and exit ports that do not have a matching junction.

여러 개의 진입 연결점 또는 진출 연결점이 동일한 레이블을 가짐(Multiple entry or exit junctions with same label)

  • 문제: 동일한 부모 내의 진입 연결점 및 진출 연결점은 고유한 레이블을 가져야 합니다.

  • 진단 수준: 오류.

  • 해결 방법: 연결점 중 하나를 삭제하거나 레이블 중 하나를 변경하십시오.

    Two entry junctions that have the same label in1.

진입 연결점으로부터의 경로에 종단 연결점이 포함되어 있음(Path from entry junction contains a terminal junction)

  • 문제: 진입 연결점로부터의 모든 경로는 상태로 이어져야 합니다.

  • 진단 수준: 오류.

  • 해결 방법: 종단 연결점을 상태로 바꾸십시오.

    Entry junction that connects to a terminal junction.

진출 포트로부터의 경로에 종단 연결점이 포함되어 있음(Path from exit port contains a terminal junction)

  • 문제: 진출 포트로부터의 모든 경로는 상태로 이어져야 합니다.

  • 진단 수준: 오류.

  • 해결 방법: 종단 연결점을 상태로 바꾸십시오.

    Exit port that connects to a terminal junction.

천이 경로가 진입 연결점에서 이력 연결점으로 연결됨(Transition path from an entry junction to a history junction)

  • 문제: 진입 연결점에서 시작하는 천이 경로는 이력 연결점으로 연결되어서는 안 됩니다.

  • 진단 수준: 오류.

  • 해결 방법: 진입 연결점에서 이력 연결점으로 연결되는 경로를 제거하십시오.

    Entry junction that connects to a history junction.

천이 경로가 내부 천이에서 진출 연결점으로 연결됨(Transition path from an inner transition to an exit junction)

  • 문제: 내부 천이 경로는 진출 연결점으로 연결되어서는 안 됩니다.

  • 진단 수준: 오류.

  • 해결 방법: 내부 천이에서 진출 연결점으로 연결되는 경로를 제거하십시오.

    State that contains an inner transition to an exit port.

진입 연결점에서의 천이 경로나 진출 연결점으로의 천이 경로가 부모에 포함되어야 함(Transition path from entry junction or to exit junction must be contained in parent)

  • 문제: 진입 연결점에서 시작하거나 진출 연결점에서 끝나는 천이 경로가 부모 상태에 포함되어야 합니다.

  • 진단 수준: 오류.

  • 해결 방법: 부모 상태에 포함되도록 천이 경로를 수정하십시오.

    Transition path that exits and re-enters a state before connecting to an exit junction.

도달할 수 없는 포트 또는 연결점(Unreachable port or junction)

  • 문제: 포트 또는 연결점에 이르는 유효한 실행 경로가 없는 경우 해당 포트 또는 연결점은 도달할 수 없는 상태가 됩니다.

  • 진단 수준: 구성 파라미터 Unreachable execution path (Simulink)에 따라 다릅니다.

  • 해결 방법: 도달할 수 없는 진입 포트 또는 진출 연결점을 도달할 수 있는 소스에서의 천이와 연결하십시오.

    Chart that contains an unreachable entry junction and port.

관련 항목