Окно свойств блока
Элементы и инструменты окна свойств и параметров блока
Введение
Приведено описание и порядок работы с окном свойств блока, без привязки к какому-либо расчетному слою, но на примерах блоков из расчетных слоев автоматики и теплогидравлики.
Окно свойств и параметров блока является основным интерфейсом, в котором происходит непосредственная работа по настройке блоков расчетной схемы, их параметризации, при запуске схемы на расчет и отладке в процессе расчета. При помощи окна свойств можно просматривать и наблюдать за результатами расчета во вкладке параметров блока, выводить требуемые параметры на графики и в другие объекты менеджера, для их дальнейшего анализа.
На рисунке приведен внешний вид окна свойств, на примере блока типа Интегратор с ограничением:

В верхней части окна свойств находится выбор из вкладок "Свойства", "Параметры", "Общие", "Порты" и "Визуальные слои". На каждой вкладке расположены соответствующие атрибуты блока. В нижней части окна находится панель кнопок быстрого доступа к часто используемым действиям и настройкам окна свойств.
Эти элементы окна свойств являются общими для всех блоков всех решателей и шаблонов, входящих в SimInTech. У некоторых блоков может не быть свойств или параметров, тогда соответствующая вкладка отсутствует.
У графических примитивов (в отличие от блоков) нет портов, нет свойств и параметров, поэтому в окне свойств для них доступны только вкладки "Общие" и "Визуальные слои". Графические примитивы по сути не являются расчетными элементами схемы, а служат только для оформительских нужд и/или организации интерактивности схемы. Далее будет описано окно свойств применительно к блокам, а к примитивам оно будет применимо только в части указанных двух вкладок.
О вкладках свойств и параметров
Концепция "блока" расчетной схемы в SimInTech в общем виде подразумевает, что у него есть ряд числовых, строковых, логических и других настроек (называемых свойствами), которые обязательно задает пользователь - разработчик расчетной схемы. Блок их не вычисляет самостоятельно. Данные настройки (свойства) как правило требуется задать при создании расчетной схемы до её запуска на расчёт, или иногда можно оставить их заданными по-умолчанию, если значения по-умолчанию подходят для конкретной задачи. Значения некоторых свойств допустимо менять в процессе расчета, значения некоторых нет - это зависит от математической модели блока и решателя расчетной схемы. Но основная идея свойств - что их задает именно пользователь, и данный перечень является настройками, необходимыми для корректной работы блока. Такие настройки блока собраны во вкладке "Свойства". Параметры, в отличие от свойств, не требуется задавать пользователю - блок вычисляет их самостоятельно, в процессе расчета.
У свойств и параметров есть название и имя. Под названием имеется в виду краткое произвольное текстовое описание, а под именем - внутреннее имя переменной, по которому можно обратиться к данному свойству или параметру, и по которому математическая модель блока считывает заданное значение или записывает в параметр вычисленное значение. Название никак не влияет на расчет и может быть любым. Название и имя свойствам и параметрам назначает разработчик блока, и далее они как правило не меняются.
Каждое свойство является константой или переменной определённого типа данных, со своим именем, уникальным в пределах данного блока. В соответствии с типом данных, задавать свойства нужно по-разному.
Свойства можно задавать как через поле "Значение", так и через поле "Формула". В случае задания формулы (на встроенном языке программирования), она будет интерпретирована, и в результате вычислено значение свойства.
Например, на приведенном выше рисунке первые 4 свойства являются массивами, поэтому они задаются в квадратных скобках, даже если состоят из одного числа - массива единичной размерности. Возможно задание массивов произвольной размерности для векторной работы блока. Последние 2 свойства интегратора с ограничением не являются числовыми - одно из них задает наличие дополнительных портов у интегратора, другое влияет на алгоритм работы данного блока.
Во вкладке "Параметры" тоже представлен перечень переменных блока, однако есть существенное отличие этого перечня от свойств: параметры задавать пользователю не требуется, так как их вычисляет сам блок в процессе расчета. У параметров есть некоторое начальное значение, известное до расчета, а дальше в процессе расчета на каждом шаге расчета в параметр будет записано (блоком) новое вычисленное значение. Можно сказать что параметры - это выходные переменные блока, а свойства - входные константы и переменные. Например, в теплогидравлических блоках свойствами будут геометрические характеристики (длины, диаметры, объемы и т.п.) объектов, а параметрами - рассчитываемые величины (температуры, расходы, давления...).
Иногда свойства и параметры имеют общие черты - например, у интегратора свойство "Начальные условия" задает начальное значение для его параметра "Динамические переменные". У узла в теплогидравлике начальное значение давления и температуры задает значение для соответствующей внутренней переменной и параметра блока в начале расчета. Но следует четко понимать, что свойства - задаются пользователем, а параметры - рассчитываются блоком. Это основная причина и идея разделения всех переменных и констант блока на два списка.
Вкладка "Параметры" присутствует также у некоторых типов линий связи. В расчетном слое "Автоматика" можно просматривать передаваемые через линии связи значения сигналов.
О вкладке портов
Порты могут существовать только у блоков. У линий связи и у графических примитивов портов нет. Через порты и линии связи в блоках автоматики передаются значения, вычисленные в других блоках. В блоках теплогидравлики порты имеют немного другой смысл - они совместно с линиями связи задают топологию расчетной схемы.
Каждый порт должен иметь имя, тип, направление (режим порта), и расположение относительно центра блока. Расположение может быть выбрано автоматически или задано вручную у каждого порта.
У субмоделей количество и имена портов определяются специальными блоками - ее портами входа и выхода, расположенными внутри субмодели. У других блоков порты создаются разработчиком блока через соответствующий интерфейс.
С точки зрения пользователя, иногда бывает необходимо изменить расположение порта. Для этой операции существуют также в контекстном меню пункты быстрого поворота портов блока (на 90 или 180 градусов).
О вкладках общих свойств и визуальных слоев
Вкладки "Общие" свойства и "Визуальные слои" присутствуют у всех элементов расчетной схемы - и у блоков, и у графических примитивов, и у линий связи. Данные вкладки содержат настройки, отвечающие в основном за внешний вид блока (цвет фона, толщина границы, условное графическое изображение блока...) и его поведение (анимация, чувствительность к действиям мыши и т.п.). В зависимости от типа блока или примитива, перечень общих свойства может варьироваться.
Одним из основных свойств каждого элемента схемы является имя и тип элемента. Имя должно быть уникальным в пределах страницы расчетной схемы. Тип элемента (имя класса) следует изменять только при разработке новых блоков.
На вкладке "Визуальные слои" находится настройка слоев, к которым относится данный блок. Это именно визуальные (не расчетные) слои. В зависимости от настроек активности и видимости слоя, в схемном окне проекта можно временно делать невидимыми или не активными блоки, расположенные на соответствующих визуальных слоях.
Приемы задания свойств блоков
Рассмотрим наиболее типичные приемы и методы работы с окном свойств.
Формула и/или значение
Свойства, являющиеся константами, можно просто задавать в поле "Значение" (как задано у интегратора с ограничением на рисунке выше). Аналогичные значения можно задавать и в поле "Формула" - в случае с константами это будет равнозначно: выражение, заданное константой, будет интерпретировано в то же самое константное значение. Иногда формулой это удобно делать и для констант, например вместо [0.0625] проще и нагляднее в колонку "Формула" записать 1/16, как показано на следующем рисунке:

Такой способ задания удобен для последующего редактирования и изменения значений. При заданной формуле у свойства, менять его значение вручную уже бессмысленно - оно будет перевычислено при очередной инициализации проекта (при очередной интерпретации формулы).
Отметим, что в SimInTech существует три разных способа расчёта (вычисления) интерпретируемого выражения. Способы называются "Переменная", "Константа" и "Заблокирована". При необходимости уточнить, какой именно способ вычисления свойства задан у блока, его можно увидеть либо во всплывающей подсказке по каждому свойству, либо открыть окно редактирования блока через пункт главного меню "Правка" - "Изменить блок..." для просмотра всех свойств, их типов данных и способа расчёта формулы. Пример приведен на рисунке ниже:

Для способа расчета "Переменная" формула будет интерпретироваться на каждом расчетном шаге схемы. Для способа расчета "Константа" - формула вычислится только на этапе инициализации схемы (однократно на весь расчет) и далее значение будет оставаться постоянным, либо в некоторых случаях пользователь может его поменять в процессе расчета, если это применимо математической моделью блока. Способ расчета "Заблокирована" означает, что формула никогда не будет интерпретирована - тогда ее задавать бессмысленно, блок будет использовать только само значение. Отметим, что для способов расчета "Константа" и "Заблокирована" в интерфейсе предусмотрены обозначения - подчеркнутый и зачеркнутый текст, соответственно. На рисунках выше вы можете видеть, что нулевое значение для начальных условий интегратора, заданное в колонке "Формула", подчеркнуто. Это означает как раз, что данное выражение будет интерпретировано только на инициализации схемы (способ расчета "Константа").
Приведем пример из теплогидравлики - блок типа "Канал". По внешнему виду формул можно легко понять, какие из свойств можно изменять в процессе расчета, а какие - нет смысла т.к. они нужны только на начальном этапе инициализации схемы:

Ключевое слово Self используется в формулах блока "Канал" для обращения к свойству N этого же блока, т.к. от заданного значения N зависят размерности массивов у других свойств блока.
Задание свойств множеству однотипных блоков
Иногда бывает необходимо задать одинаковые значения (или формулы) для свойств нескольких блоков. Иногда это бывают десятки или сотни блоков, либо вообще все блоки определенного типа в данном проекте. А иногда надо задать одно и то же число свойству у блоков разного типа.
Для ускорения данной процедуры в SimInTech реализован способ задания свойств множеству блоков. Он заключается в следующем: если в схемном окне выделить несколько блоков, то окно свойств будет работать сразу для всех выделенных на схеме в данный момент блоков. При этом, отображаются формулы и значения последнего выбранного блока. В заголовке окна можно видеть перечисление имен всех выделенных блоков, при этом одно из них будет в квадратных скобках - это и есть имя последнего выбранного блока, см. рисунок:

На рисунке изменена формула для свойства Ymin у 3 выделенных блоков. При изменении формулы или значения какого-либо конкретного свойства, новое значение будет применено ко всем выделенным блокам, но только по данному свойству! Другие свойства останутся без изменений (и они могут оставаться разными, если были разные у выбранных блоков). Поэтому, при множественном выборе блоков, задавать свойства следует максимально аккуратно, так как при этом свойства будут заданы всем выбранным блокам. Если вы случайно заденете другие свойства, они могут также "сброситься" у всех выбранных блоков до нового значения.
Выбирать множество блоков на одной странице бывает не легко, если блоков более 5-10 шт. А если блоки находятся на разных страницах проекта, то через схемное окно массово их никак не выделить. Для большого количества однотипных блоков, или в случае если надо выделить все блоки определенного типа во всем проекте, следует использовать окно поиска блоков, и удобнее его вызывать через контекстное меню "Найти аналогичные...":

В данном окне можно выбрать область, где искать блоки - на данной странице или по всему проекту, а потом из этого же интерфейса кнопками "Выделить все" (найденные блоки) и "Свойства" вызвать окно свойств для всех найденных и выделенных в интерфейсе поиска блоков. При этом окно свойств блока будет работать по выделенным именно в окне поиска блокам, на схеме они могут остаться и не выделенными. В случае если блоки были найдены на разных страницах проекта, к ним тоже таким образом можно получить "доступ" в окне свойств.
Задание свойств множеству блоков разного типа
Задание свойств блокам разного типа тоже возможно, если у них есть свойства с одинаковым именем. Например, у интеграторов разных типов и у блока инерционного звена 1-го порядка есть пара одноименных свойства - коэффициенты усиления k и начальные условия x0. Если выделить блоки разного типа и открыть окно свойств, то в нем останутся видимыми только те свойства, которые есть у каждого из выделенных блоков:

Другие свойства будут скрыты. Принцип остается тем же - при изменении какого-либо свойства, у выделенных блоков меняется значение и/или формула только у данного свойства. В этом случае надо быть тоже аккуратным т.к. в окне будут представлены свойства последнего выбранного блока и, например, тот факт что где-то могла быть задана формула, в этом случае будет не виден.
Если у выбранных блоков в схеме заданы разные значения или разные формулы, то их начертание будет отображаться курсивом. Пример см. на рисунке:

Это подсказка пользователю, что надо обратить внимание на то, что данное свойство у блоков задано разными значениями, и задавая его массово блокам - разница будет устранена.
Вывод параметров блоков на схему или на график
Во вкладке параметров блока можно просматривать текущие значения параметров одного блока - выбранного в данный момент на схеме. Однако, часто требуется видеть параметры нескольких блоков схемы одновременно, или вывести их изменение во времени для анализа расчета модели. Рассмотрим, как это можно сделать при помощи окна свойств блока, на примере внутреннего узла теплогидравлической схемы.
Наблюдать за текущими изменениями параметров одного или нескольких блоков можно, выведя их непосредственно на схемное окно при помощи специального блока, организующего подпись для расчетных блоков. Для быстрого создания такой подписи служит кнопка "Создать подписи" в нижней части окна свойств - на панели кнопок быстрого доступа.
Чтобы ей воспользоваться, следует выбрать блок на схеме, открыть окно свойств и выбрать в нем интересующие вас параметры (с зажатой кнопкой Ctrl левой кнопкой мыши, нажимая на нужные параметры блока), а затем нажать на кнопку "Создать подписи". После этого появится диалоговое окно создания подписи объекта, как показано на следующих рисунках:


В окне создания подписи уже будут указаны выделенные ранее вами параметры (их имена) в перечне "Выводимые параметры", а также текст подписи, в виде строк _p= и _t= в перечне "Текст подписи". Текст подписи может быть произвольным, главное соблюдать принцип 1 строка = 1 параметр. Если оставить все заданным по-умолчанию, и нажать кнопку "Ок", то внешний вид подписи будет похож на следующий рисунок:

Внешний вид - размер шрифта, цвет, выравнивание и т.п., а также и сам текст около значащих цифр может быть настроен в свойствах вновь созданного блока. Данный блок является дочерним к тому расчетному блоку, для которого он был создан. Кроме этого, сам блок подписи позволяет выполнять преобразования параметров - например, если вы хотите вывести температуру в Кельвинах а не в градусах Цельсия, следует указать не _p , а _p+273.15 в строке вывода данного параметра (в качестве имени выводимого параметра).
Аналогичным образом можно сделать подписи для произвольного количества блоков схемы - для этого достаточно предварительно их выделить на схеме (можно через поиск блока), а далее проделать однократно ту же процедуру - она будет автоматически применена к каждому из выбранных блоков, и создаст у каждого блока подписи с заданным перечнем параметров.
Для того чтоба создать временной график изменения параметров блока, нужно проделать почти аналогичную процедуру - выбрать нужные блоки, выбрать интересующий параметр или группу параметров, и далее нажать кнопку "Создать график" в нижней панели кнопок быстрого доступа:

После этого график будет создан в менеджере данных, и он начнет отображать графики выбранных параметров. При этом, график будет содержать имена параметров. Оформление графика далее можно донастроить средствами самого графика.