주요 콘텐츠

Stateflow 편집기에서 기호 관리하기

기호 창에서는 Stateflow® 편집기에서 작업하면서 데이터, 이벤트, 메시지를 보고 관리할 수 있습니다. 모델링 탭에서 기호 창을 선택합니다.

기호 창에서는 다음을 수행할 수 있습니다.

  • 데이터, 이벤트, 메시지를 추가하고 삭제합니다.

  • 객체 유형과 범위를 설정합니다.

  • 포트 번호를 변경합니다.

  • 객체 이름을 편집하고 차트에서 객체 이름에 대한 모든 참조를 업데이트합니다.

  • 유형, 이름, 포트 번호의 모든 변경 사항을 실행 취소하고 다시 실행합니다.

  • 미사용 객체를 감지합니다.

  • 연결이 맺어지지 않은 객체를 감지하고 수정합니다.

  • 창의 객체와 차트에서 객체가 사용되는 위치 사이를 추적합니다.

  • 속성 인스펙터에서 객체 속성을 보고 편집합니다.

Symbols pane showing input, output, and local data, an input event, and an output message.

기호 창의 행은 객체 계층 구조를 표시합니다. 해당 객체를 부모로 갖는 데이터, 이벤트 및 메시지를 보려면 창에서 객체를 확장합니다. 기본적으로 차트의 모든 비그래픽 객체는 창에 나열됩니다. 계층 구조의 현재 수준과 그 하위 수준에서 사용되는 객체만 보려면 아이콘을 선택합니다. 특정 기호를 검색하려면 필터 검색 상자 에 입력합니다.

데이터, 이벤트, 메시지 추가 및 수정하기

비그래픽 객체를 Stateflow 블록에 추가하려면 기호 창에서 다음을 수행합니다.

  1. 다음 아이콘 중 하나를 선택합니다.

    아이콘설명
    데이터 추가
    이벤트 추가
    메시지 추가

  2. 새 객체의 행에 있는 유형 아래에서 객체 유형을 선택합니다.

  3. 객체의 이름을 편집합니다.

  4. 입력 객체와 출력 객체의 경우, 포트 아래에서 포트 번호를 선택합니다.

  5. 속성 인스펙터에서 객체를 보려면 객체를 마우스 오른쪽 버튼으로 클릭하고 검사를 선택합니다.

  6. 속성 인스펙터에서 객체 속성을 수정합니다.

기호 창을 통해 객체를 추가한 후 객체는 사용자가 Stateflow 설계에서 해당 객체를 참조할 때까지 미사용으로 표시됩니다.

기호 창에서는 Stateflow 객체의 이름, 유형, 포트 번호를 수정할 수 있습니다. 이름 필드에서 객체의 이름을 편집합니다. 객체의 이름을 변경할 때, 차트 전체에서 객체에 대한 모든 참조의 이름을 변경하려면 Shift+Enter를 선택합니다. 객체의 유형 또는 포트 번호를 변경하려면 해당 필드를 클릭하고 사용 가능한 옵션 중에서 선택합니다. 객체를 삭제하려면 객체를 마우스 오른쪽 버튼으로 클릭하고 삭제를 선택합니다.

기호 창에서 미사용 데이터 감지하기

기호 창에서 미사용 데이터, 메시지, 함수, 이벤트는 노란색 경고 아이콘 으로 표시됩니다. 정의되지 않은 기호의 연결을 맺기 위해 기호 창 또는 기호 마법사를 사용할 수 있습니다.

Symbols pane showing unused data.

기호 창은 아토믹 서브차트에 있는 MATLAB® 함수나 파라미터의 입력과 출력을 감지하지 않습니다.

미사용 객체를 삭제하려면 기호 창에서 객체를 마우스 오른쪽 버튼으로 클릭하고 삭제를 선택합니다. 시뮬레이션에 영향을 미치지 않는 객체를 제거하면 모델의 크기를 줄일 수 있습니다. 이 차트에서 data를 추가하면 처음에는 미사용으로 표시됩니다. 차트에서 data를 참조한 후에는 경고 부호가 사라집니다.

기호 창을 통해 기호 연결 맺기

차트에 표시되지만 사용자가 데이터, 이벤트 또는 메시지로 추가하지 않은 기호는 정의되지 않은 기호이거나 연결이 맺어지지 않은 기호입니다. 사용자가 차트를 편집할 때 Stateflow는 정의되지 않은 기호를 감지하고 해당 기호를 기호 창에 빨간색 오류 아이콘 으로 표시합니다.

정의되지 않은 각 기호에 대해, 기호 창에는 차트에서의 사용법을 통해 유추된 클래스와 범위가 표시됩니다. 정의되지 않은 기호를 개별적으로 또는 일괄적으로 연결을 맺을 수 있습니다.

  • 유추된 클래스와 범위로 기호를 정의하려면 오류 아이콘을 클릭하고 수정을 선택합니다.

  • 기호를 다른 클래스 또는 범위로 정의하려면 유형 드롭다운 목록에서 클래스와 범위의 또 다른 조합을 선택합니다.

  • 모든 정의되지 않은 기호와 유추된 클래스 및 범위의 연결을 맺으려면 정의되지 않은 기호 연결 맺기 버튼 을 클릭합니다.

Symbols pane showing unresolved data, events, and messages.

기호 마법사를 통해 기호 연결 맺기

차트를 업데이트하거나 모델을 업데이트하거나 모델을 시뮬레이션할 때 차트에 정의되지 않은 기호가 포함되어 있는 경우, 기호 마법사가 열리고 정의되지 않은 기호가 나열됩니다. 정의되지 않은 각 기호에 대해, 클래스 열과 범위 열에는 차트에서의 사용법을 통해 유추된 클래스와 범위가 표시됩니다. 기호 마법사가 제안하는 각 기호 정의를 수락하거나 수정하거나 거부할 수 있습니다.

  • 유추된 클래스와 범위가 포함된 정의를 수락하려면 기호 앞의 체크박스를 선택합니다.

  • 정의를 수정하려면 클래스 드롭다운 목록이나 범위 드롭다운 목록에서 다른 클래스 또는 범위를 선택합니다.

  • 정의를 거부하려면 기호 앞의 체크박스를 선택 해제합니다.

기호 정의를 편집한 후에는 확인을 클릭하여 기호를 Stateflow 계층 구조에 추가합니다.

Symbols wizard showing unresolved data, events, and messages.

사용자 지정 코드에서 기호 정의 감지하기

사용자 지정 코드에 정의된 기호의 감지는 모델 구성 파라미터 사용자 지정 코드 가져오기에 따라 다릅니다.

  • 사용자 지정 코드 가져오기를 선택하면 Stateflow 구문 분석기는 사용자 지정 코드에서 연결이 맺어지지 않은 차트 기호를 찾으려고 시도합니다. 사용자 지정 코드에서 이러한 기호를 정의하지 않으면 기호 마법사에 해당 기호가 표시됩니다.

  • 사용자 지정 코드 가져오기를 선택하지 않은 경우, Stateflow 구문 분석기는 차트 내에 있는 연결이 맺어지지 않은 데이터 기호를 사용자 지정 코드에 정의되어 있는 것으로 간주합니다. 사용자 지정 코드에서 이러한 기호를 정의하지 않은 경우, 모델에서 코드를 시뮬레이션하고 생성하면 오류가 발생합니다.

사용자 지정 코드 가져오기 옵션은 MATLAB을 동작 언어로 사용하는 차트에 사용할 수 없습니다. 자세한 내용은 Import custom code (Simulink) 항목을 참조하십시오.

데이터, 이벤트, 메시지 추적하기

Stateflow는 차트와 비그래픽 기호 간에 추적성을 제공합니다. 기호 창에서 기호를 선택하면 Stateflow는 해당 기호에 액세스하는 차트의 섹션을 강조 표시합니다. 차트에서 객체를 선택하면 Stateflow는 해당 객체가 사용하는 기호를 강조 표시합니다.

객체와 기호가 강조 표시되는 경우를 제어하려면 기본 설정 버튼 을 선택하십시오. 드롭다운 메뉴가 표시됩니다.

Symbols pane preference menu.

Stateflow가 기호 창에서 객체가 사용하는 기호를 강조 표시하도록 하려면 사용된 기호 강조 표시를 선택합니다. Stateflow가 차트에서 기호를 사용하는 객체를 강조 표시하도록 하려면 다이어그램에서 사용 항목 강조 표시를 선택합니다. 다이어그램에서 사용 항목 강조 표시를 통해 다음을 강조 표시하도록 선택할 수 있습니다.

  • 차트 안에 있는 기호의 모든 사용 항목.

  • 기호 읽기가 발생한 객체.

  • 기호 쓰기가 발생한 객체.

참고

기호 창에 표시되는 값이 시뮬레이션 중에 업데이트되도록 하려면 시뮬레이션 중 값 열 업데이트를 사용하십시오.

예를 들어, 모델 sf_tetris2를 엽니다.

openExample("sf_tetris2")

차트 TetrisLogic을 더블 클릭합니다. 기호 창에서 상수 ARENA_HEIGHT를 선택하면 ARENA_HEIGHT를 사용하는 상태와 함수가 강조 표시됩니다.

Chart highlighting objects that use the constant ARENA_HEIGHT.

상수 ARENA_HEIGHT의 사용에 대해 살펴보려면 함수 freeze를 엽니다.

Graphical function highlighting a transition that uses the constant ARENA_HEIGHT.

차트에서 상태, 천이 또는 함수와 같은 그래픽 객체를 선택하고 해당 객체가 사용하는 기호를 볼 수도 있습니다. 예를 들어, 차트 TetrisLogic에서 기호 창의 기호 MainArea를 확장합니다. 차트에서 상태 FreezeShape를 선택하면 로컬 데이터 shape와 함수 freeze()기호 창에 강조 표시됩니다. 이 강조 표시는 해당 객체가 상태 FreezeShape 내부에서 사용된다는 것을 나타냅니다.

Symbols pane highlighting symbols used in the state Draw.

디버그 모드인 경우, 각 데이터의 값은 기호 창의 열에 표시됩니다. Stateflow는 시뮬레이션이 실행될 때 이 값을 주기적으로 업데이트합니다. 값 열은 변경이 발생하면 데이터 값의 변경 내용을 강조 표시합니다. 디버거가 중단점에서 중지되면 명령 프롬프트 또는 기호 창에서 초기값을 업데이트하거나 기호의 값을 변경할 수 있습니다.

데이터 또는 메시지초기값 업데이트디버그 중 업데이트
입력아니요아니요
출력
파라미터아니요아니요
상수아니요
데이터 저장소 메모리아니요
로컬

버스 요소의 경우 명령 프롬프트 또는 기호 창에서 기호의 값을 변경할 수 있습니다.

버스 요소초기값 업데이트디버그 중 업데이트
입력아니요아니요
출력아니요
파라미터아니요아니요
상수아니요아니요
데이터 저장소 메모리아니요
로컬아니요

기호 창에서 다차원 배열은 배열의 데이터형과 크기로 표시됩니다. 배열의 요소가 100개를 넘지 않는 경우 기호에 커서를 올려놓으면 요소를 볼 수 있습니다. 100개가 넘는 요소가 포함된 배열의 경우 명령 프롬프트를 사용하여 요소를 볼 수 있습니다.

시뮬레이션이 일시 중지되었을 때 캔버스에서 마우스에 커서를 올려놓으면 대기열의 페이로드를 볼 수 있습니다. 이는 캔버스에서 커서 올려놓기 기능과 유사합니다. 다른 비스칼라 객체의 경우 크기와 데이터형이 표시됩니다. 이러한 값을 보려면 관찰 창을 사용합니다. Inspect and Modify Data and Messages While Debugging 항목과 Track Data in the Watch List 항목을 참조하십시오.

Symbols pane showing values during simulation.

기호 창 제한 사항

  • 데이터, 이벤트 또는 메시지가 상태나 함수를 부모로 갖는 경우에는 기호 창에 추가할 수 없습니다. 이러한 유형의 객체를 추가하려면 모델 탐색기를 사용하십시오.

  • MATLAB 함수에서 코드를 수정할 때 변경 사항은 MATLAB 함수를 저장할 때까지 기호 창에서 업데이트되지 않습니다.

  • MATLAB 함수에 대한 입력과 출력의 변경 사항은 실행 취소하거나 다시 실행할 수 없습니다.

  • 상태 천이 테이블에서 삭제된 데이터, 이벤트 또는 메시지는 복구할 수 없습니다.

  • 그래픽 함수, MATLAB 함수, 진리표를 부모로 갖는 데이터에 대한 범위 변경은 실행 취소할 수 없습니다.

  • 진리표의 객체 이름 변경은 실행 취소할 수 없습니다.

  • Simulink 기반의 상태에 포함된 객체에 대한 데이터를 삭제하면 객체는 Simulink 기반의 상태로 유지되고, 데이터 기호는 정의되지 않은 기호로 기호 창에 표시됩니다.

참고 항목

도움말 항목