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