공유 프린터 서버의 대기열 관리하기
이 예제에서는 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 Function (Simulink)