Контроль состояния чернил на общем принтере Используя функции Simulink

В этом примере показано, как клиенты, в этом случае три компьютера, могут отправить задания в сервер, принтер, и получить состояние от того сервера. Этот пример подсвечивает, как Функции Simulink могут быть вызваны от различных подсистем и взаимодействовать и в Simulink® и в Stateflow®.

Требования в качестве примера

Обратите внимание на то, что, когда вы симулируете пример, Stateflow может сгенерировать код в текущей рабочей папке.

Панорама

В этом примере компьютеры каждый генерирует случайным образом измеренные задания печати равномерно. Принтер взаимодействует с компьютерами через две Функции Simulink на холсте Simulink и одну Экспортируемую Графическую функцию в Stateflow.

1. Клиенты используют Функциональные блоки Вызывающей стороны, чтобы вызвать addPrintJob интерфейс принтера.

2. Взаимодействие клиент-сервер, смоделированное этим вызовом, может иметь отрицательное возвращаемое значение, если принтер исчерпал чернила.

Пример показывает как интерфейсу Simulink и Stateflow с помощью функций.

1. Реализация addPrintJob использует блок Function Caller, чтобы вызвать queuePrintJob, который является Stateflow Экспортируемая Графическая функция.

2. Функция queuePrintJob взаимодействует с другим содержимым в графике с помощью локального графика переменная 'работа'.

3. Реализация графика звонит printerInk, который является Функцией Simulink.

4. Задание функции printerInk использует ввод графических данных и выходные параметры, чтобы взаимодействовать с функцией addPrintJob.

Пример также показывает, как визуализировать и отладить Функции Simulink.

1. Можно включить линии визуализации, соединяющие функции и их соответствующие вызывающие стороны. В Редакторе Simulink, на вкладке Debug, под информационными Оверлейными программами, нажимают Function Connectors.

2. Блок Viewer сообщения показывает, где вызовы функций сгенерированы, и какие функции вызваны в разное время. Это помогает изучить поток вызовов относительно времени, и также анализировать аргументы, отправленные во время этих вызовов функций.