При создании библиотеки пользовательского блока можно задать объекты данных - такие как шина и перечисляемые типы - для использования на блочных интерфейсах. Можно сделать эти типы данных доступными для пользователей библиотеки путем хранения их в Simulink® словарь данных, который присоединен к библиотеке. Пользователи библиотеки автоматически получают доступ к типам данных, содержащимся в словаре, когда перетаскивают блок из библиотеки в свою модель.
Чтобы задать данные и типы для библиотечных блоков в словаре данных:
Создайте новый словарь данных или откройте существующий словарь. Чтобы создать новый словарь, в Model Explorer выберите File > New > Data Dictionary. Чтобы открыть существующий словарь, выберите File > Open и найдите свой словарь.
Добавьте данные и типы, такие как объекты шины, к словарю данных.
Сохраните словарь данных.
Вы можете прикрепить словарь данных к библиотеке с помощью пользовательского интерфейса или программно с помощью set_param
функция.
Чтобы прикрепить словарь данных при помощи пользовательского интерфейса:
Разблокируйте библиотеку (см. «Блокировка и разблокировка библиотек»).
В редакторе Simulink, на вкладке Modeling, нажмите Library Properties.
В диалоговом окне Свойства, на вкладке External Data, нажмите Browse, чтобы найти и открыть словарь данных.
Щелкните OK, чтобы прикрепить словарь.
Чтобы прикрепить словарь данных при помощи set_param
function, использовать эту команду.
set_param('myLib','DataDictionary','myLibData.sldd');
После присоединения словаря и сохранения библиотеки, словарь и его содержимое появляются в Model Explorer как внешний источник данных для библиотеки.
Когда вы разрабатываете блоки для вашей библиотеки, можно выбрать типы, содержащиеся в библиотечном словаре, из списка Data type.
Когда вы перетаскиваете блок из библиотеки в модель, модель автоматически получает доступ к объектам данных, содержащимся в словаре, присоединенном к этой библиотеке. Чтобы увидеть словарь в Model Explorer, в редакторе Simulink, щелкните значок данных моделей в нижнем левом углу, затем нажмите External Data. Словарь появляется как внешний источник данных для вашей модели под узлом From Libraries.
Объекты данных, определенные в библиотеке, теперь доступны модели для симуляции и генерации кода без необходимости переноса этих объектов данных в базовое рабочее пространство или другой словарь данных.
Когда вы обновляете или сохраняете модель, если модель больше не содержит блок из библиотеки, словарь библиотеки больше не доступен для вашей модели, и словарь удаляется из узла From Libraries.
Существуют несколько факторов при создании или использовании библиотеки со связанным словарем данных.
В большинстве случаев вы задаете шину или перечисляемые типы в библиотечном словаре, но авторы библиотеки могут совместно использовать любой тип объекта с пользователями библиотеки, добавляя объекты в словарь.
Элементы библиотечного словаря являются глобальными по объему, и разрешение символа происходит так, как если бы библиотечный словарь непосредственно соединялся с моделью.
Если ссылка на библиотеку разорвана, данные, связанные с библиотекой, больше недоступны. Чтобы восстановить доступ к данным, необходимо вручную связать модель с библиотечным словарем.
В иерархии модели модель должна прямо или косвенно ссылаться на библиотечный словарь, чтобы использовать объекты данных, содержащиеся в словаре.
Как и иерархия словаря данных или модели-ссылки иерархия, библиотека Simulink может также сформировать иерархию с помощью блоков из другой библиотеки. Пользовательская модель может автоматически получить доступ к словарю библиотеки через иерархию библиотек. Чтобы убедиться, что зависимости словаря актуальны, в командной строке используйте Simulink.LibraryDictionary.refresh
функция для выполнения анализа зависимостей от библиотек в текущей директории, в другой указанной директории или используемой заданной моделью. Поскольку этот анализ библиотечных зависимостей может быть дорогим, вызывать функцию обновления можно только в том случае, если у вас отсутствует зависимость. Когда анализ завершен, информация является постоянной в MATLAB® сеансов. Чтобы удалить предыдущий анализ зависимостей, используйте Simulink.LibraryDictionary.clear
функция.
Когда вы перетаскиваете блок из библиотеки в модель, модель получает доступ к словарю данных, присоединенному к этой библиотеке. Однако, если блок из сублибрария, доступ есть только к словарю данных, присоединенному к этому сублибрарию. В этом случае, чтобы предоставить модели доступ как к библиотечным, так и к сублибрарическим словарям, когда он использует блок, автор библиотеки должен содержать сублибрарический блок в новой подсистеме.
Если хранить библиотеку в корневой папке MATLAB, можно прикрепить словарь к библиотеке, но модель не имеет автоматического доступа к словарю при добавлении блока из библиотеки.
Simulink не поддерживает поиск неиспользованных переменных для словаря данных, связанного с библиотекой.
set_param
| Simulink.LibraryDictionary.clear
| Simulink.LibraryDictionary.refresh