Связать словарь данных с пользовательскими библиотеками

При создании библиотеки пользовательского блока можно задать объекты данных - такие как шина и перечисляемые типы - для использования на блочных интерфейсах. Можно сделать эти типы данных доступными для пользователей библиотеки путем хранения их в Simulink® словарь данных, который присоединен к библиотеке. Пользователи библиотеки автоматически получают доступ к типам данных, содержащимся в словаре, когда перетаскивают блок из библиотеки в свою модель.

Библиотечные блоки авторов с типами данных, определенными в прикрепленном словаре данных

Чтобы задать данные и типы для библиотечных блоков в словаре данных:

  1. Создайте новый словарь данных или откройте существующий словарь. Чтобы создать новый словарь, в Model Explorer выберите File > New > Data Dictionary. Чтобы открыть существующий словарь, выберите File > Open и найдите свой словарь.

  2. Добавьте данные и типы, такие как объекты шины, к словарю данных.

    View of Model Explorer. On the left, a data dictionary node is expanded in the Model Hierarchy pane. On the right, the Contents pane displays the two bus objects contained in the Design Data section of the dictionary.

  3. Сохраните словарь данных.

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

Чтобы прикрепить словарь данных при помощи пользовательского интерфейса:

  1. Разблокируйте библиотеку (см. «Блокировка и разблокировка библиотек»).

  2. В редакторе Simulink, на вкладке Modeling, нажмите Library Properties.

  3. В диалоговом окне Свойства, на вкладке External Data, нажмите Browse, чтобы найти и открыть словарь данных.

  4. Щелкните OK, чтобы прикрепить словарь.

Чтобы прикрепить словарь данных при помощи set_param function, использовать эту команду.

set_param('myLib','DataDictionary','myLibData.sldd');

После присоединения словаря и сохранения библиотеки, словарь и его содержимое появляются в Model Explorer как внешний источник данных для библиотеки.

View of Model Explorer. On the left, the library node is expanded in the Model Hierarchy pane. Under the library node, the External Data node is expanded to show the attached data dictionary. On the right, the Contents pane displays the two bus objects contained in the Design Data section of the dictionary.

Когда вы разрабатываете блоки для вашей библиотеки, можно выбрать типы, содержащиеся в библиотечном словаре, из списка Data type.

On the left, the model canvas displays the contents of a subsystem library block. The Out block is selected. On the right, a block parameters dialog box displays the dictionary data types in the drop-down menu for Data type.

Используйте блоки из библиотеки с вложенным словарем данных

Когда вы перетаскиваете блок из библиотеки в модель, модель автоматически получает доступ к объектам данных, содержащимся в словаре, присоединенном к этой библиотеке. Чтобы увидеть словарь в Model Explorer, в редакторе Simulink, щелкните значок данных моделей в нижнем левом углу, затем нажмите External Data. Словарь появляется как внешний источник данных для вашей модели под узлом From Libraries.

View of Model Explorer. On the left, a model node is expanded in the Model Hierarchy pane. Under the model node, the External Data node is expanded. Under the External Data node, the From Libraries node is expanded to show the attached data dictionary. On the right, the Contents pane displays the two bus objects contained in the Design Data section of the dictionary.

Объекты данных, определенные в библиотеке, теперь доступны модели для симуляции и генерации кода без необходимости переноса этих объектов данных в базовое рабочее пространство или другой словарь данных.

On the left, the model canvas displays a library block used in a model. The Out block is selected. On the right, a block parameters dialog box displays the dictionary data types in the drop-down menu for Data type.

Когда вы обновляете или сохраняете модель, если модель больше не содержит блок из библиотеки, словарь библиотеки больше не доступен для вашей модели, и словарь удаляется из узла From Libraries.

Факторы при использовании словаря библиотеки

Существуют несколько факторов при создании или использовании библиотеки со связанным словарем данных.

  • В большинстве случаев вы задаете шину или перечисляемые типы в библиотечном словаре, но авторы библиотеки могут совместно использовать любой тип объекта с пользователями библиотеки, добавляя объекты в словарь.

  • Элементы библиотечного словаря являются глобальными по объему, и разрешение символа происходит так, как если бы библиотечный словарь непосредственно соединялся с моделью.

  • Если ссылка на библиотеку разорвана, данные, связанные с библиотекой, больше недоступны. Чтобы восстановить доступ к данным, необходимо вручную связать модель с библиотечным словарем.

  • В иерархии модели модель должна прямо или косвенно ссылаться на библиотечный словарь, чтобы использовать объекты данных, содержащиеся в словаре.

  • Как и иерархия словаря данных или модели-ссылки иерархия, библиотека Simulink может также сформировать иерархию с помощью блоков из другой библиотеки. Пользовательская модель может автоматически получить доступ к словарю библиотеки через иерархию библиотек. Чтобы убедиться, что зависимости словаря актуальны, в командной строке используйте Simulink.LibraryDictionary.refresh функция для выполнения анализа зависимостей от библиотек в текущей директории, в другой указанной директории или используемой заданной моделью. Поскольку этот анализ библиотечных зависимостей может быть дорогим, вызывать функцию обновления можно только в том случае, если у вас отсутствует зависимость. Когда анализ завершен, информация является постоянной в MATLAB® сеансов. Чтобы удалить предыдущий анализ зависимостей, используйте Simulink.LibraryDictionary.clear функция.

  • Когда вы перетаскиваете блок из библиотеки в модель, модель получает доступ к словарю данных, присоединенному к этой библиотеке. Однако, если блок из сублибрария, доступ есть только к словарю данных, присоединенному к этому сублибрарию. В этом случае, чтобы предоставить модели доступ как к библиотечным, так и к сублибрарическим словарям, когда он использует блок, автор библиотеки должен содержать сублибрарический блок в новой подсистеме.

  • Если хранить библиотеку в корневой папке MATLAB, можно прикрепить словарь к библиотеке, но модель не имеет автоматического доступа к словарю при добавлении блока из библиотеки.

  • Simulink не поддерживает поиск неиспользованных переменных для словаря данных, связанного с библиотекой.

См. также

| |

Похожие темы