Создание блоков с помощью блока «Субмодель»

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

В разделе приведен процесс создания пользовательского блока на основе блока Субмодель. Прежде чем приступать к созданию нового блока, пользователь должен определить задачи, которые должен решать данный блок, т.е. должен представить какой выходной результат он хочет получить. На основании этого, пользователь должен определить набор используемых стандартных блоков и представить примерную схему будущего блока.

Алгоритм создания блока на основе блока «Субмодель» выглядит следующим образом:

  1. устанавить на схему блок «Субмодель»;
  2. устанавить блоки «Порт входа»/«Порт выхода» внутри субмодели в количестве, предусмотренном предварительной схемой;
  3. добавить на схему базовые блоки из стандартной библиотеки, расставить их на схеме в соответствии с предварительной схемой;
  4. соединить блоки математическими связями;
  5. обновить изображение блока;
  6. добавить свойства блока (при необходимости);
  7. написать скрипт для блока (при необходимости).

Рассмотрим пример создания нового блока, который реализует алгоритм формирования «Логического ДА» в случае, если расчетный сигнал, который будет приходить в данный блок, будет больше уставки, величину которой пользователь может задавать/изменять в свойствах самого блока. Данный блок должен содержать в себе блок Константа и блок Операция БОЛЬШЕ, а так же один блок Порт входа и один блок Порт выхода.

Процесс создания блока:

  1. Устанавливаем на схему блок «Субмодель». Необходимо сразу изменить тип элемента с «Субмодель» на какой-то другой, например «Субмодель БОЛЬШЕ», на вкладке «Общие» в свойствах блока. Это ОБЯЗАТЕЛЬНАЯ операция для того, чтобы не заменить блок стандартной библиотеки, если мы потом будем вносить в нее созданный нами блок. Изменяем имя блока (см. Рисунок 1);

    Рисунок 1. Блок «Субмодель» с измененными свойствами

  2. Заходим внутрь субмодели и устанавливаем один блок «Порт входа» и один блок «Порт выхода». Меняем имена портов (см. Рисунок 2);

    Рисунок 2. Установка блоков «Порт входа» и «Порт выхода»

  3. Устанавливаем блоки «Константа» (вкладка «Источники») и «Операция БОЛЬШЕ» (вкладка «Логические»), при необходимости изменяем ориентацию портов блоков для более удобной работы с ними (см. Рисунок 3). Имя блока «Константа» должно быть «k5» - это нужно для правильной работы будущего скрипта;

    Рисунок 3. Установка блоков «Константа» и «Операция БОЛЬШЕ»

  4. Соединяем блоки математическими связями (см. Рисунок 4);

    Рисунок 4. Соединение блоков математическими связями

  5. Выходим из субмодели и заходим в ее свойства Общие → Графическое изображение. В появившемся окне удаляем стандартное изображение и с помощью примитивов разрабатываем свое (см. Рисунок 5);

    Рисунок 5. Внешний вид блоков после изменения графического изображения

  6. Добавим свойство «Величина уставки». Для этого выделим блок, пройдем в главное меню Правка → Изменить блок. В появившемся окне добавим новое свойство (см. Рисунок 6);

    Рисунок 6. Добавление нового свойства

  7. Заходим внутрь субмодели и в редакторе скрипта пропишем следующий текст (см. Рисунок 7), сохранив его:
    k5.a = submodel.peak_value;

    Рисунок 7. Скрипт

На этом создание блока завершено и теперь предстоит его тестирование.

Для этого поставим рядом с созданным нами блоком блок «Синусоида» (вкладка «Источники») и соединим его выход с входом нашего блока (см. Рисунок 8). Так же поставим блок «Временной график» (вкладка «Данные») для того, чтобы контролировать наши параметры. У блока «Временной график» нужно изменить в свойствах количество портов с 1 до 2.

Рисунок 8. Соединение блоков «Синусоида» и «Субмодель БОЛЬШЕ»

Изменим свойства блоков:

  1. У блока «Синусоида» изменим свойства в соответствии с рисунком (Рисунок 9);

    Рисунок 9. Изменение свойств блока «Синусоида»

  2. У блока «Субмодель БОЛЬШЕ» зададим свойство «Величина уставки» равным 5.

Запускаем наш алгоритм на расчет и следим за значением выходного сигнала нашего блока:

как только значение сигнала, приходящего из блока «Синусоида» превысит пороговое значение нашего блока, на выходе нашего блока появится сигнал «Логическое ДА» (см. Рисунок 10).

Рисунок 10. Зависимость срабатывания блока от значения блока «Синусоида»