Создание пользовательской библиотеки

Можно создать собственную библиотеку и, опционально, добавить ее в Simulink® Library Browser. Вы сохраняете библиотеку как .slx файл, как вы делаете модель. Однако моделирование в библиотеке невозможно, и библиотека блокируется для редактирования при каждом ее закрытии. Перед внесением изменений в библиотеку необходимо разблокировать. См. раздел «Блокировка и разблокировка библиотек».

  1. На начальной странице Simulink выберите Blank Library и нажмите Create Library.

    Примечание

    Браузер библиотек поддерживает только библиотеки. Невозможно отобразить содержимое модели в браузере библиотек.

  2. (Необязательно) Задайте типы данных, которые будут использоваться на блочных интерфейсах в словаре данных Simulink. Затем приложите словарь данных к библиотеке. Пользователи библиотеки автоматически получают доступ к данным, содержащимся в словаре, когда перетаскивают блок из библиотеки в свою модель.

  3. Добавьте блоки в новую библиотеку. Внесите изменения в блоки, такие как изменение параметров блоков, добавление масок или добавление блоков к подсистемам.

    Имена подсистем в иерархии библиотек должны быть уникальными. Например, не создавайте иерархию, такую как Subsystem_Name1/Subsystem_Name2/Subsystem_Name1.

  4. Добавьте аннотации или изображения. Щелкните правой кнопкой мыши те, которые необходимо отобразить в библиотеке в браузере библиотек, и выберите Show in Library Browser.

  5. Если планируется добавить библиотеку в браузер библиотек, можно заказать блоки и аннотации в библиотеке. По умолчанию они появляются в браузере библиотек по алфавиту, сначала с подсистемами, затем с блоками, а затем с аннотациями. Пользователь библиотеки может использовать контекстное меню Library Browser, чтобы выбрать между их просмотром в алфавитном порядке или указанным порядком. Когда пользователь выбирает эту опцию, порядок, в котором они появляются в библиотеке, определяет порядок их отображения в сетке библиотеки в браузере библиотек.

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

    set_param(gcs,'EnableLBRepository','on');

  7. Сохраните библиотеку.

    Место сохранения библиотеки зависит от того, как она будет использоваться. Если необходимо добавить его в браузер библиотек, сохраните его в папке на MATLAB® или добавить расположение к пути MATLAB. В противном случае сохраните его в месте, где модели, использующие блоки, могут получить к нему доступ.

Если необходимо, чтобы библиотека отображалась в браузере библиотек, необходимо также создать функцию slblocks на пути MATLAB, добавляющем библиотеку в браузер. Пример, показывающий полные шаги добавления библиотеки в браузер, см. в разделе «Добавление библиотек в браузер библиотек».

Примечание

Чтобы обновить браузер библиотек с помощью пользовательских библиотек, щелкните правой кнопкой мыши в любом месте списка библиотеки браузера библиотек и выберите Refresh Library Browser. Обновление браузера библиотек также обновляет меню быстрой вставки для включения блоков в пользовательские библиотеки, действующие в настоящее время. Меню быстрой вставки позволяет добавлять блоки в модель, не выходя из холста. Щелкните холст и начните печатать, чтобы добавить блоки из меню быстрой вставки.

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

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

  1. Создайте словарь данных.

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

  3. Прикрепите словарь как внешний источник данных для вашей библиотеки программно при помощи set_param или в пользовательском интерфейсе с помощью вкладки External Data в диалоговом окне Свойства. В Model Explorer прилагаемый словарь и его содержимое отображаются как внешний источник данных для библиотеки.

  4. Чтобы сохранить спецификации словаря данных, сохраните библиотеку.

Типы, определенные в библиотеке, теперь доступны вам при разработке библиотечных блоков. См. раздел «Ссылка словаря данных с пользовательскими библиотеками».

Блоки для пользовательских библиотек

Ваша библиотека может содержать необходимые блоки, настроенные для ваших целей. Подсистемы, маскированные блоки и графики в библиотеке становятся связанными блоками как образцы в модели и остаются обновленными, если вы меняете их в библиотеке. Знание о пользовательских блоках также полезно при создании библиотеки. См. «Проект и создание пользовательского блока».

Можно создавать блоки в пользовательских библиотеках с настройками для определенных целей.

Создайте сублибрарий

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

  1. В библиотеке, в которую необходимо добавить сублибрарий, добавьте блок Subsystem.

  2. Внутри блока Subsystem удалите входные и выходные порты по умолчанию.

  3. Если вы хотите, создайте маску для подсистемы, которая отображает текст или изображение, которое передает сублиблярное назначение.

  4. В свойствах блока подсистемы установите OpenFcn коллбэк имени библиотеки, на которую вы хотите ссылаться.

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

Предотвратите связывание библиотечного блока с образцом

Можно сконфигурировать библиотечный блок, чтобы образцов, созданные из него, не были связанными блоками и вместо этого были копиями. Установите CopyFcn блока коллбэк.

set_param(gcbh,'LinkStatus','none'); 

Включите описание блока в связанный блок

Чтобы добавить описание, отображаемое в связанном блоке, замаскируйте библиотечный блок и добавьте описание в Documentation панели маски. Описания, добавленные к библиотечному блоку через свойства блока, не появляются в связанном блоке.

Сконфигурируйте блок с ключевыми словами для быстрой вставки

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

Например, предположим, что в библиотеке есть пользовательский Gain блок. Можно добавить ключевое слово My Gain в блок. Затем можно добавить блок к модели путем ввода My Gain в меню быстрой вставки.

Примечание

Вы не можете добавить ключевые слова к блокам из Commonly Used Blocks, так как они являются местом для просмотра часто используемых блоков из различных библиотек. Если вы хотите добавить ключевые слова к блоку, доступному в Commonly Used Blocks, убедитесь, что вы установили его в библиотеке, где определен блок.

Чтобы добавить ключевое слово к блоку в вашей библиотеке, используйте set_param с 'BlockKeywords' параметр. В качестве значения можно использовать вектор символов, строковый скаляр или строковые массивы. Для примера:

set_param(gcb,'BlockKeywords',{"My Gain","Your Gain"})
set_param(gcb,'BlockKeywords','My Integrator')

Примечание

Поддерживаемые специальные символы в ключевых словах '&', '(', ')', '+', '@', '!'.

Примечание

Меню быстрой вставки также поддерживает поиск блоков на языках, отличных от английского, с помощью интернационализированных ключевых слов.

Сконфигурируйте подсистемы с коллбэком OpenFcn для браузера библиотек

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

Если блок Subsystem в библиотеке пуст, и его OpenFcn коллбэк содержит код, который выполняет действие, отличное от точки на библиотеку, затем необходимо добавить 'ShowInLibBrowser' маскировать параметр подсистемы, чтобы он отображался в браузере библиотек.

  1. Щелкните подсистему правой кнопкой мыши и выберите Mask > Create Mask. Если блок уже имеет маску, выберите Edit Mask.

  2. На вкладке Parameters & Dialog Редактор, на панели Controls, нажмите Check box.

  3. На панели Dialog box установите для приглашения и имени нового флажка значение ShowInLibBrowser и нажмите OK.

Аннотации в пользовательских библиотеках

Можно добавлять аннотации в пользовательскую библиотеку и при необходимости включать их в браузер библиотек. Например, можно добавить аннотацию, которая документирует библиотеку. Можно также добавить аннотации, которые пользователь библиотеки может добавить в свою модель из Library Browser. Аннотации могут содержать текст и изображения или отображать уравнение. Аннотации также могут выполнять действие при щелчке мыши. Дополнительные сведения о аннотациях см. в разделе «Описание моделей с использованием примечаний и аннотаций».

Можно добавлять линии выносных элементов из аннотаций к блокам в библиотеке. Однако выноски не отображаются в браузере библиотек.

Если требуется, чтобы аннотация отображалась в браузере библиотек, после добавления ее в библиотеку щелкните ее правой кнопкой мыши и выберите Show in Library Browser. Если необходимо, чтобы описание отображалось в подсказке при наведении указателя мыши на аннотацию в браузере библиотек, добавьте описание в аннотацию программно. В командной строке MATLAB введите:

set_param(annotationHandle,'Description','descriptionText)

Чтобы получить указатель на аннотацию, используйте find_system. Этот пример получает все аннотации в библиотеке mylib:

ann = find_system('mylib','FindAll','on','Type','annotation');

Чтобы получить определенную аннотацию, включите регулярный поиск выражения и укажите часть текста аннотации с 'Name' аргумент:

ann = find_system('mylib2',FindAll','on','RegExp',...
'on','Type','annotation','Name','matchingText');

Добавление библиотек в браузер библиотек включает инструкции по добавлению аннотации, отображаемой в браузере библиотек.

Блокировка и разблокировка библиотек

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

Можно разблокировать библиотеку программно. В командной строке MATLAB введите:

set_param('library_name','Lock','off');

Для программной блокировки библиотеки введите:

set_param('library_name','Lock','on');

Предотвратите отключение библиотечных ссылок

По умолчанию пользователь блоков в библиотеке может отключить ссылку на библиотечные блоки. Если необходимо контролировать редактирование связанных блоков и запретить пользователю блока отключать ссылки, можно заблокировать ссылки на библиотеку. Блокировка библиотечных ссылок препятствует внесению пользователем каких-либо изменений в образцы блоков.

  • В библиотеке на вкладке Library нажмите Lock Links.

Чтобы понять, как пользователь блока взаимодействует с блоками из заблокированных библиотек, см. раздел «Блокировка ссылок на блоки в библиотеке».

Похожие темы