Блоки "В память" / "Из памяти"

Описание процесса работы с блоками "В память" / "Из памяти", использование их для упрощения читаемости схемы, область видимости блоков

Блоки В память / Из памяти (вкладка "Субструктуры") предназначены для соединения отдалённых или далеко разнесенных между собой частей схем между собой. При установке блока "В память" фактически пользователем ставится именованная метка на линию связи. Соответственно, блок "Из памяти" связывает свой выход с линией связи, на которой проставлена одноименная метка блоком "В память".

Данные блоки применяются в случаях:

  • Когда разрабатываемая схема начинает занимать существенный объем, и линии связей между объектами начинают мешать правильному восприятию информации со схемы. Использование блоков "В память" / "Из памяти" в этом случае позволяет улучшить восприятие схемы, она становится лучше читаемой за счет сокращения используемых линий связи;
  • При разбивке большой схемы на несколько маленьких с разнесением в разные субмодели с большим количеством передаваемых параметров между "кусками" (например, когда количество передаваемых параметров больше 10). В этом случае можно передавать параметры между "кусками" схем с помощью блоков "Порт входа" / "Порт выхода", однако проще и правильнее в данном случае пользоваться блоками "В память" / "Из памяти", особенно когда один и тот же параметр может использоваться многократно в разных "кусках";
  • При создании "древовидной" структуры – блоки "В память" / "Из памяти" позволяют соединять между собой части, находящиеся как в одной, так и в разных "ветвях" проекта.

Блоки "В память" / "Из памяти" могут работать как с единичным, так и с векторным сигналом. При этом определение типа сигнала происходит автоматически.

Блоки работают в связке, и каждое имя, которое задается пользователем должно быть уникально вне зависимости от того, на каких уровнях оно используется. При этом количество блоков "Из памяти", работающих с одним блоком "В память" может быть произвольным. До тех пор, пока у блока "В память" не будет ни одной связи с блоком "Из памяти", перед именем переменной, заданной пользователем будет стоять знак "*" (см. Рис. 1).



Рис. 1. Вид блока "В память" при отсутствии связей

Каждый блок "В память" имеет свое уникальное имя. Если при установке на схему имя блока совпадает с именем ранее установленного блока "В память", то SimInTech автоматически изменяет это имя на ранее не использованное путем прибавления к текущему имени числового индекса (см. Рисунок 2).



Рис. 2. Добавление новых блоков "В память" в проект путем копирования: происходит автоматическая индексация блоков.

Формирование имени переменной, используемой в блоке "В память", поддерживается только до знака ".", таким образом при занесении имени переменной, содержащей точку, отображаться будет только часть имени до точки (см. Рис. 3, Рис. 4). Блок "Из памяти" при этом так же будет отображать имя только до знака ".". Это особенность использования блоков "В память"/ "Из памяти", которой следует избегать.



Рис. 3. Имя переменной "Гидр. Связь 1" содержит знак "."


Рис. 4. Отображение блока для пользователя при имени переменной, содержащем знак "."

Данные блоки поддерживают функции математической связи "Найти начало" и "Найти конец", что очень удобно при перемещении по различным частям проекта, однако такой поиск целесообразен только в случае, если при связи блоку "В память" соответствует только один ответный блок "Из памяти".

В блоках "В память"/ "Из памяти" можно контролировать уровни использования данных блоков, что часто применяется при "древовидной" структуре проекта. Пользователь может по своему усмотрению задавать уровень, на котором будет использоваться каждая конкретная связка блоков.

Уровни использования блоков "В память" определяются посредством добавления перед переменной знака "#" и цифры количества верхних уровней, на которых должна быть видна переменная из данного блока (см. Рис. 5). Таким образом, если переменная должна быть видна в субмодели на уровень выше, чем в том, в котором она сейчас находится, то нужно в начале переменной указать 1#. Соответственно, если на 2 уровня выше, то 2# и т.д. Если стоит только #, то переменная будет видна на текущем уровне и уровнях ниже текущего. Если же префикс представляет собой local#, то переменная будет доступна исключительно на текущем уровне (на текущей странице). На уровнях выше и ниже переменная с префиксом local# будет недоступна. При этом в разных ветвях проекта блоки с одинаковым уровнем видны не будут. Если перед переменной вообще не ставить #, то переменная будет видна во всех частях проекта.



Рис. 5. Формирование имени блока "В память" при видимости на разных уровнях