주요 콘텐츠

메시지를 전송하여 Stateflow 차트와 통신하기

Simulink® 모델의 Stateflow® 내에서 그리고 그 사이에서 통신하려면 메시지를 사용하십시오. 메시지는 로컬로 또는 차트 간에 데이터를 통신하는 Stateflow 객체입니다. 사용자는 전송자 차트에서 데이터가 포함된 메시지를 전송하거나 전달할 수 있습니다. 수신하는 차트에서 대기열은 메시지를 수신하고 차트가 해당 메시지를 평가할 때까지 유지합니다.

Simulink model with two Stateflow charts that communicate using a message.

메시지는 데이터와 이벤트의 일부 기능을 결합합니다. 데이터와 유사하게, 메시지는 숫자 정보와 텍스트 정보를 송신할 수 있습니다. 이벤트와 유사하게, 메시지는 천이와 상태 동작을 트리거할 수 있습니다. 그러나 메시지는 다음이 다릅니다.

  • 메시지는 차트를 트리거하여 웨이크업 상태로 만들지 않습니다. 대신, 메시지는 차트가 웨이크업 상태가 될 때까지 대기 상태로 유지됩니다. 차트가 웨이크업 상태가 되면 메시지는 대기열에 있는 메시지에 응답할 수 있습니다.

  • 수신자 차트가 즉시 응답할 수 없는 경우에도 메시지는 손실되지 않습니다.

자세한 내용은 Stateflow 메시지, 이벤트, 데이터 간의 차이점 보기 항목을 참조하십시오.

차트 천이 또는 상태 동작이 메시지를 평가할 때 차트는 대기열에 메시지가 포함되어 있는지 확인합니다. 대기열에 메시지가 있으면 차트는 대기열에서 메시지를 제거합니다. 메시지는 시간 스텝이 끝날 때까지 또는 차트가 메시지를 전달하거나 폐기할 때까지 유효 상태로 유지됩니다. 메시지가 유효 상태인 동안 다른 천이 또는 동작은 메시지 데이터에 액세스할 수 있고 차트는 다른 메시지를 대기열에서 제거하지 않습니다. 차트는 현재 시간 스텝이 끝나면 유효한 모든 메시지를 제거합니다.

차트에 메시지 정의하기

메시지는 기호 창, Stateflow 편집기 메뉴 또는 모델 탐색기를 사용하여 Stateflow 차트에 추가할 수 있습니다.

기호 창을 통해 메시지 추가하기

  1. 모델링 탭의 설계 데이터 아래에서 기호 창을 선택합니다.

  2. 메시지 만들기 아이콘 을 클릭합니다.

  3. 새 메시지의 행에 있는 유형 아래에서 아이콘을 클릭하고 다음을 선택합니다.

    • 입력 메시지

    • 로컬 메시지

    • 출력 메시지

  4. 메시지의 이름을 편집합니다.

  5. 입력 메시지와 출력 메시지의 포트 필드를 클릭하고 포트 번호를 선택합니다.

  6. 메시지의 속성을 지정하려면 속성 인스펙터를 엽니다. 기호 창에서 메시지의 행을 마우스 오른쪽 버튼으로 클릭하고 탐색을 선택합니다. 자세한 내용은 Set Properties for a Message 항목을 참조하십시오.

Stateflow 편집기 메뉴를 사용하여 메시지 추가하기

  1. Stateflow 편집기에서, 추가할 메시지의 범위에 해당하는 옵션을 선택합니다.

    범위옵션
    입력모델링 탭의 설계 데이터 아래에서 메시지 입력을 선택합니다.
    출력모델링 탭의 설계 데이터 아래에서 메시지 출력을 선택합니다.
    로컬모델링 탭의 설계 데이터 아래에서 메시지를 선택합니다.

  2. 메시지 대화 상자에서 데이터 속성을 지정합니다. 자세한 내용은 Set Properties for a Message 항목을 참조하십시오.

모델 탐색기를 통해 메시지 추가하기

  1. 모델링 탭의 설계 데이터 아래에서 모델 탐색기를 선택합니다.

  2. 모델 계층 구조 창에서 새 메시지를 표시할 Stateflow 계층 구조의 객체를 선택합니다. 선택한 객체가 새 메시지의 부모가 됩니다.

  3. 모델 탐색기 메뉴에서 추가 > 메시지를 선택합니다. 디폴트 정의가 포함된 새 메시지가 모델 탐색기의 내용 창에 표시됩니다.

  4. 메시지 창에 메시지의 속성을 지정합니다. 자세한 내용은 Set Properties for a Message 항목을 참조하십시오.

Stateflow 메시지의 수명

Stateflow 메시지의 수명은 유한합니다. 수명은 사용자가 send 연산자를 사용하여 메시지를 수신 대기열로 전송할 때 시작됩니다. 메시지는 천이 또는 상태 on 동작이 메시지를 평가하거나 차트가 receive 연산자를 사용하여 메시지를 수신할 때까지 대기열에서 대기합니다.

차트가 메시지를 평가하거나 수신하면 메시지가 유효해집니다. 메시지는 다음 시점까지 유효한 상태를 유지합니다.

  • 현재 시간 스텝의 끝, 차트가 남은 유효한 모든 메시지를 삭제할 때.

  • 차트가 forward 연산자를 사용하여 메시지를 다른 대기열로 전달할 때. 메시지는 새 대기열에서 수명이 유지됩니다.

  • 차트가 discard를 사용하여 메시지를 제거할 때.

메시지가 유효한 동안 다른 천이와 동작은 메시지를 평가하고 해당 데이터에 액세스합니다. 메시지가 유효한지 확인하려면 isvalid 연산자를 사용하십시오.

시뮬레이션 중 메시지의 상호 교환을 보려면 Sequence Viewer 블록을 Simulink 모델에 추가하십시오. Sequence Viewer 블록에는 다음이 표시됩니다.

  • 전송된 메시지

  • 수신된 메시지

  • 전달된 메시지

  • 삭제된 메시지

  • 제거된 메시지

  • 폐기된 메시지

자세한 내용은 Use the Sequence Viewer to Visualize Messages, Events, and Entities 항목을 참조하십시오.

메시지 제한 사항

메시지는 다음에서 사용할 수 없습니다.

  • 무어 차트

  • 아토믹 서브차트

  • 중단점 조건 표현식

  • entry 동작

  • 초기화 시 차트 실행(진입)이 활성화된 디폴트 천이

C를 동작 언어로 사용하는 차트에서 메시지는 멀티워드 고정소수점 데이터를 지원하지 않습니다.

로컬 메시지가 포함된 차트는 외부 모드 시뮬레이션 또는 고속 액셀러레이터 모드 시뮬레이션을 지원하지 않습니다.

참고 항목

| | | | | (Simulink) |

도움말 항목