주요 콘텐츠

공유 프린터 서버의 대기열 관리하기

이 예제에서는 Simulink® 모델과 Stateflow® 차트 간에 통신하기 위해 함수를 공유하는 방법을 보여줍니다. 예를 들어, 다음을 수행할 수 있습니다.

  • Stateflow 차트를 사용하여 모델에서 정의한 Simulink 함수를 호출할 수 있습니다.

  • Simulink 모델에서 Function Caller 블록을 사용하여 Stateflow 차트에서 정의한 함수를 호출할 수 있습니다.

이 예제에서는 네트워크 프린터를 공유하는 3대의 컴퓨터 클라이언트를 모델링합니다. 각 컴퓨터는 처리를 위해 인쇄 작업을 공통 대기열로 보냅니다. 각 컴퓨터 클라이언트는 Simulink Function 블록 addPrintJob을 호출하여 프린터 서버를 호출합니다. 작업 로드에 인쇄 작업을 추가하기 위해 addPrintJob 함수가 Stateflow 차트에서 그래픽 함수 queuePrintJob을 호출합니다. 프린터 잉크의 사용량을 모델링하기 위해 차트는 작업을 처리하고 Simulink Function 블록 printerInk를 호출합니다.

Stateflow에서 Simulink Function 호출하기

함수 printerInk는 모델의 최상위에 있는 Simulink Function 블록에 정의되어 있습니다. 함수 인터페이스 printerInk(work)는 하나의 입력 인수를 정의합니다. Simulink Function인 printerInk는 인포트 ink와 아웃포트 ink'를 통해 신호 선으로 모델과도 상호 작용합니다. 상태 Busy는 하나의 입력 인수를 전달하므로 printerInk(work)의 함수 시그니처와 일치합니다.

Stateflow 함수를 Simulink로 내보내기

차트 Queuing과 함수 Processing Incoming Jobs에서 속성 차트 수준 함수 내보내기내보낸 함수를 전역적으로 볼 수 있는 함수로 취급은 선택되어 있습니다. 이러한 속성을 통해 Simulink 함수 addPrintJob가 차트 그래픽 함수 queuePrintJob을 호출할 수 있습니다.

참고 항목

(Simulink)

도움말 항목