Использование Simulink® функционирует при определении диагностической службы, в которой вызывающие абоненты передают код ошибки. Сервис отслеживает коды ошибок для всех возникших ошибок. Один из способов реализации этой службы - использовать индексированный блок Data Store Memory. Система диагностического мониторинга может затем периодически проверять на вхождение определенные ошибки и соответствующим образом изменять поведение системы.
Можно использовать блоки Simulink Function и блоки Function Caller для моделирования архитектур клиент-сервер. Для этой архитектуры используются устройство хранения памятей и диагностика.
В качестве примера создайте модель простой распределенной системы, состоящей из нескольких приложений управления (клиентов), каждый из которых может сообщать о диагностике в течение всего выполнения. Поскольку архитектуры клиент-сервер обычно строятся в слоях, добавьте уровень обслуживания для моделирования диагностического интерфейса.
Сервисы (серверы), смоделированные с помощью блоков Simulink Function, находятся в отдельной модели. Добавьте сервисную модель к системной модели как ссылочную модель.
Приложения управления (клиенты) взаимодействуют с диагностическим интерфейсом с помощью блоков Function Caller.
Приложение 1 сообщает о диагностическом условии путем вызова reportDiagnostic
интерфейс внутри сервисного слоя. Приложение вызывает эту функцию при передаче диагностического идентификатора.
Интервальный тест определяет, когда создать диагностический идентификатор.
Реализация функции (Simulink Function 1) отслеживает переданный идентификатор путем передачи значения в графический выход функции. Графический выход является сигналом на стороне сервера, который не является частью серверного интерфейса, но облегчает связь между служебными функциями через аргументы функции. Значение графических выходов удерживается между вызовами функции.
The reportDiagnostic
функция является примером шаблона модификатора. Этот шаблон помогает передавать данные от вызывающего абонента в функцию и более поздние расчеты на основе этих данных.
Приложение 2 вызывает inspectDiagnostic
интерфейс в служебном слое, чтобы проверить, сообщалось ли о диагностике.
Реализация функции (Simulink Function) использует графический вход (id
), чтобы наблюдать последнюю зарегистрированную диагностику и передать это значение в качестве выходного аргумента (identifier
) вызывающему абоненту. Графический вход является сигналом на стороне сервера, который не является частью интерфейса сервера.
The inspectDiagnostic
функция является примером шаблона наблюдателя. Этот шаблон помогает передавать данные от функции вызывающему абоненту.