Навигация:
<< >> Оглавление Указатель

Описание пользователя

Глава 2. Интерфейс пользователя

§2.9. Создание простых блоков и изменение их параметров

Описывается создание нового (пустого) простого блока и изменение параметров, общих для всех простых блоков.

§2.9.1. Создание простого блока и окно его параметров

Рассматривается создание нового простого блока и содержимое окна параметров такого блока.

Пользователю редко приходится создавать в подсистеме новые простые блоки «с нуля» – обычно он добавляет блоки в схему из библиотеки или загружает их из файлов, если эти блоки присланы ему сторонними разработчиками. Поведение простого блока определяется функцией модели, подключенной к нему, поэтому создание блоков – дело программиста, а не пользователя. Тем не менее, пользователь может столкнуться с необходимостью самостоятельного создания блока в двух основных случаях:

Создание блоков с автоматически компилируемыми моделями подробно рассматривается в главе 3, пример создания блока с анимированной картинкой – в §2.10.12.

Чтобы создать в подсистеме новый простой блок, следует в режиме редактирования щелкнуть на свободном месте рабочего поля этой подсистемы правой кнопкой мыши и в появившемся контекстном меню выбрать пункт «создать | новый блок» (рис. 96 а). С помощью этого же меню можно создавать подсистемы, внешние входы и выходы и вводы шин – эти блоки рассмотрены в §2.11.

Создание блока: вызов контекстного меню (а) и созданный блок (б) 1

(а)

Создание блока: вызов контекстного меню (а) и созданный блок (б) 2

(б)

Рис. 96. Создание блока: вызов контекстного меню (а) и созданный блок (б)

Только что созданный простой блок всегда выглядит как белый прямоугольник (рис. 96 б), левый верхний угол которого расположен в той точке рабочего поля, на которую пришелся щелчок правой кнопки мыши при вызове контекстного меню. Вместо контекстного меню для создания блока можно воспользоваться пунктом «редактирование | создать | новый блок» главного меню RDS – в этом случае блок будет помещен в центр видимой части рабочего поля подсистемы. Созданный блок всегда получает имя вида «BlockN», где N – число, автоматически выбранное так, чтобы это имя было уникальным в подсистеме. Например, если в подсистеме уже есть блоки «Block1», «Block2» и «Block3», новый созданный блок получит имя «Block4». У только что созданного блока нет ни модели, ни картинки, ни комментария, но есть две обязательных сигнальных переменных «Start» и «Ready», с помощью которых можно будет управлять работой его модели, если она когда-нибудь будет к этому блоку подключена. Чтобы изменить параметры блока, следует щелкнуть на нем правой кнопкой мыши и выбрать в контекстном меню пункт «параметры», или просто дважды щелкнуть на нем левой кнопкой мыши (для только что созданного блока два этих действия эквивалентны). В результате откроется окно параметров блока, содержащее большое число различных вкладок.

Вкладки окна параметров могут выглядеть по-разному для блоков, созданных пользователем, и для блоков, добавленных в схему из библиотеки. Как правило, при открытии окна параметров библиотечного блока пользователю показывается вкладка «предупреждение» (рис. 97), сообщающая о том, что изменение некоторых параметров библиотечного блока может привести к его неработоспособности. При этом некоторые поля ввода и вкладки окна будут заблокированы (эти блокировки и предупреждение можно отключить в настройках RDS).

Вкладка предупреждение окна параметров библиотечного блока

Рис. 97. Вкладка «предупреждение» окна параметров библиотечного блока

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

Данные на вход правого блока поступают с блока K (вверху) или с поля ввода (внизу)

Рис. 98. Данные на вход правого
блока поступают с блока «K»
(вверху) или с поля ввода (внизу)

Есть и менее очевидные способы испортить работу блока неправильным заданием параметров. Например, у стандартного поля ввода есть специальный вещественный вход для принудительной установки значения: если на этот вход поступает число, поле заменяет им число, введенное пользователем. Вставив такое поле ввода в разрыв связи и включая или выключая связь, ведущую к входу установки значения (рис. 98), пользователь может выбирать, будет ли на значение на выходе поля ввода вычисляться блоками схемы (связь включена) или вводиться вручную (связь отключена). Технически это реализовано следующим образом: модель поля ввода считывает значение входа при каждом запуске в режиме расчета, а запускается в режиме расчета она только тогда, когда срабатывает связь, подключенная ко входу (логика работы моделей блоков подробно рассматривается в главе 3 и руководстве программиста). Если пользователь в окне параметров поля ввода задаст для его модели запуск каждый такт, модель будет постоянно запускаться в режиме расчета, даже если входная связь блока не сработала или у блока вообще нет входной связи. Это приведет к тому, что введенное пользователем значение будет всегда игнорироваться полем ввода, причем понять, почему это происходит, пользователь, вероятнее всего, сможет не сразу. По этой причине к изменению параметров библиотечных блоков нужно подходить осторожно, и RDS по умолчанию блокирует их.

На вкладке «предупреждение», кроме сообщения пользователю, объясняющего, почему некоторые его действия заблокированы, находится кнопка «разрешить изменение» и флажок «больше не выводить предупреждение». Нажатие кнопки снимает все блокировки в окне параметров, при этом, если установить флажок, RDS больше не будет выводить предупреждение для библиотечных блоков. Это предупреждение можно снова включить в настройках RDS. Ниже все вкладки и поля ввода окна параметров будут описываться при отключенных блокировках. Следует обратить внимание на то, что блокировки и предупреждения относятся только к библиотечным блокам (с точки зрения RDS, библиотечный блок – это блок, к которому подключена модель, эта модель не компилируется автоматически и переменные блока соответствуют требованиям этой модели). Блоки, только что созданные пользователем, библиотечными не считаются.

На вкладке «общие» окна параметров простого блока (рис. 99) можно задать имя блока, режим запуска функции его модели, реакцию блока на двойной щелчок в режиме редактирования, а также ввести текстовый комментарий к этому блоку.

Вкладка общие окна параметров простого блока

Рис. 99. Вкладка «общие» окна параметров простого блока

Имя блока должно быть уникальным в данной подсистеме: если в ней есть блок с именем «Block1», дать другому блоку это же имя не получится. При этом в других подсистемах могут находиться блоки с теми же именами. Флажок «требуется перевод имени» управляет выгрузкой текста имени блока в файл перевода схемы (по умолчанию выключен).

Режим запуска модели выбирается одним из двух взаимоисключающих флагов: «по сигналу» или «каждый такт». Он влияет на поведение функции модели блока в режиме расчета. При запуске по сигналу модель блока будет запускаться при поступлении сигнала на специальный вход запуска или при срабатывании связи, подключенной к входу, для которого указана необходимость запуска модели (различные аспекты управления запуском модели рассматривается в §3.6.2.6 описания пользователя и руководстве программиста). При запуске каждый такт модель блока будет запускаться в каждом такте расчета независимо от состояния сигнала запуска и срабатывания входных связей. Задавать режим запуска имеет смысл только при наличии у блока функции модели, в противном случае эти флаги ни на что не влияют. Выбор конкретного режима зависит от того, как устроена функция модели, поэтому установкой этих флагов обычно занимаются программисты. Обычным пользователям менять их не следует, за исключением случаев создания ими блоков с автоматически компилируемыми моделями. Чаще всего разработчики автоматически компилируемых моделей не закладывают в свои модели какую-либо сложную логику запуска, поэтому, в большинстве случаев, для таких моделей они устанавливают флаг «запуск каждый такт», хотя это и может привести к излишним вычислениям.

Реакция блоков на двойной щелчок в режиме редактирования задается двумя взаимоисключающими флажками: «окно параметров» и «вызов функции настройки». Ее имеет смысл устанавливать только при наличии у блока функции модели (в противном случае будет активен только один флажок – «окно параметров»). Как правило, программисты включают в модели созданных ими блоков специальную функцию настройки, позволяющую изменить какие-либо специфические параметры блока (примеры окон настроек блоков приведены на рис. 9, 23 и 35). Поскольку это довольно часто используемая функция, обычно ее подключают к двойному щелчку мыши вместо вызываемого по умолчанию окна параметров (в большинстве случаев, обычному пользователю нечего изменять в окне параметров библиотечного блока). Установка этих флагов никак не влияет на работу блока, они просто позволяют выбрать действие по двойному щелчку на нем.

Многострочное поле ввода в нижней части вкладки «общие» предназначено для ввода текста комментария блока. Этот текст, в большинстве случаев, никак не используется RDS или моделями блоков, пользователь может размещать в нем свои заметки.

На вкладке «внешний вид» окна параметров задается способ изображения блока в окне подсистемы и параметры этого изображения. Оно может формироваться тремя способами: при помощи векторной анимированной картинки, статичным прямоугольником с текстом, или программным рисованием функцией модели. Каждому из способов соответствует флажок на панели в левой верхней части вкладки (рис. 100), при этом состав панелей вкладки изменяется в зависимости от выбранного способа изображения.

Вкладка внешний вид окна параметров простого блока при выбранном изображении картинкой (картинка отсутствует)

Рис. 100. Вкладка «внешний вид» окна параметров простого блока
при выбранном изображении картинкой (картинка отсутствует)

Непосредственно под панелью с флажками выбора способа изображения находится панель «координаты точки привязки», в которой задается положение блока на рабочем поле подсистемы (разумеется, вместо того, чтобы вводить числовые значения координат этой точки, блок можно просто передвинуть мышью, как описано в §2.6). Точка привязки блока – это либо верхний левый угол занимаемой им области (для изображения прямоугольником и программного рисования), либо начало координат векторной картинки (для изображения картинкой). Координаты указываются в точках экрана для масштаба 100% и отсчитываются от левого верхнего угла рабочего поля вниз и вправо. Например, левый верхний угол блока, изображаемого прямоугольником, при координатах (0,0) будет совпадать с левым верхним углом всего рабочего поля в любом масштабе. При координатах (0,10) он будет находиться на десять точек экрана ниже в масштабе 100% и на двадцать – в масштабе 200%, при координатах (10,0) – на десять точек экрана правее в масштабе 100% и на пять – в масштабе 50%, и т.п. Горизонтальная и вертикальная координаты вводятся в поля, расположенные рядом с метками «X» и «Y» соответственно. Правее полей для числовых значений, после знаков «+», находятся выпадающие списки, в которых можно выбрать или ввести вручную имена статических переменных блока, значения которых будут в режимах моделирования и расчета автоматически добавляться к координатам точки привязки. Так можно создавать блоки, перемещающиеся по рабочему полю: при изменении значения соответствующих переменных координаты точки привязки будут изменяться и блок будет рисоваться в другом месте рабочего поля. Значения переменных тоже считаются заданными в точках экрана в масштабе 100% – например, если переменная, указанная в выпадающем списке для координаты «X», будет иметь значение 20, в режимах моделирования и расчета блок будет нарисован на двадцать точек правее его положения в режиме редактирования.

В правой верхней части вкладки расположена панель «в подсистеме», на которой находятся следующие флажки:

На этой же панели находится кнопка «размер для функции DLL», позволяющая точно задать ширину и высоту блока при программном рисовании (вместо задания размера числами всегда можно разрешить масштабирование блока и установить ему нужный размер, перетаскивая мышью его маркеры выделения). Для ввода размеров открывается отдельное окно, в нем вводятся значения в точках экрана для масштаба 100%. Кнопка будет доступна только при выборе для блока внешнего вида, определяемого функцией модели (третий сверху флаг на панели «внешний вид блока», см. рис. 100).

В левой нижней части вкладки «внешний вид» располагается панель «картинка», на которой находится область предварительного просмотра, изображающая уменьшенную копию картинки блока или прямоугольника с текстом, и две кнопки – «изменить» и «очистить». Работа этой панели зависит от текущего установленного флага способа изображения в левой верхней части вкладки.

Если выбран флаг «внешний вид – определяется картинкой», в области предварительного просмотра изображается картинка блока, если она есть, и слово «нет», если картинка не задана. Кнопка «изменить» открывает редактор векторной картинки, кнопка «очистить» удаляет картинку – блок будет изображаться стандартной иконкой.

Если выбран флаг «внешний вид – прямоугольник с текстом», в области предварительного просмотра изображается этот прямоугольник (масштаб изображения автоматически выбирается так, чтобы он уместился в область). Параметры и текст прямоугольника задаются на панели справа (см. рис. 102 ниже). Кнопка «очистить» при этом недоступна, а кнопка «изменить» предлагает пользователю заменить прямоугольник с текстом на векторную картинку и, если он согласится, создает для блока картинку из двух элементов – прямоугольника и текста – и открывает редактор этой картинки. При этом способ изображения блока автоматически переключается на «определяется картинкой».

Если же выбран флаг «внешний вид – определяется функцией DLL» (то есть установлено программное рисование внешнего вида блока), область предварительного просмотра показывает векторную картинку блока, если она есть, а кнопки «изменить» и «очистить» позволяют отредактировать и удалить эту картинку соответственно. Может показаться странным, что в режиме программного рисования можно задать блоку векторную картинку, которая, вроде бы, не должна в этом случае влиять на его внешний вид. Однако, RDS предоставляет программистам моделей блоков возможность, при желании, использовать векторную картинку внутри процедуры программного рисования. Если блок, например, должен отображать положение какого-либо объекта на карте местности, разработчик модели блока может сделать рисование карты программным, а в качестве схематического изображения объекта использовать анимированную векторную картинку. Это выгоднее, чем жестко закладывать изображение объекта в программу – при смене объекта достаточно отредактировать картинку средствами RDS, а модель блока можно будет оставить прежней.

Справа от панели «картинка» располагается панель с параметрами изображения: это либо панель с параметрами картинки (рис. 101), если внешний вид блока определяется картинкой или рисуется программно, либо панель с параметрами прямоугольника и текстом (см ниже на рис. 102), если блок изображается прямоугольником.

Нижняя часть вкладки внешний вид окна параметров простого блока при наличии картинки

Рис. 101. Нижняя часть вкладки «внешний вид» окна параметров
простого блока при наличии картинки

Векторную картинку блока можно поворачивать и масштабировать, поэтому в ее параметрах можно задать угол поворота и масштаб, а также связать эти параметры со значениями статических переменных блока. Кроме того, можно указать логическую переменную, которая будет управлять видимостью всей картинки. Значение угла поворота задается в верхней группе полей ввода: можно указать значение либо в градусах, либо в радианах (единица измерения задается в выпадающем списке после поля ввода). Положительным направлением считается направление против часовой стрелки (если увеличивать значение в поле ввода, картинка будет поворачиваться против часовой стрелки). После знака «+» находится еще один выпадающий список, в котором можно выбрать или ввести вручную имя переменной, значение которой в режимах моделирования и расчета будет добавляться к углу поворота в радианах (на рис. 101 к углу добавляется значение переменной «Different»). Например, если задать угол поворота равным 10°, и связать с ним переменную, значение которой равно единице, картинка блока окажется повернутой на угол примерно в 67.3° (десять градусов плюс один радиан). Следует помнить, что, независимо от того, в каких единицах указано численное значение угла поворота в поле ввода, значение переменной всегда должно быть задано в радианах.

В средней группе полей, сразу под углом поворота, задается масштабный множитель картинки. Он вводится в долях единицы: картинка с множителем 2 в режимах моделирования и расчета будет в два раза больше своего размера, заданного в режиме редактирования, картинка с множителем 0.5 – в два раза меньше. Правее числового значения множителя можно выбрать из списка или ввести вручную имя переменной, значение которой станет дополнительным масштабным множителем. Если, например, ввести в поле ввода множитель 2 и выбрать в списке переменную с текущим значением 3, итоговый масштабный множитель картинки будет равен шести.

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

Если блок изображается прямоугольником с текстом (то есть на панели «внешний вид» выбран одноименный флажок), справа от панели «картинка» будет находиться панель «прямоугольник с текстом» (рис. 102). На ней задаются параметры прямоугольника и текст внутри него.

Нижняя часть вкладки внешний вид окна параметров простого блока при при изображении прямоугольником

Рис. 102. Нижняя часть вкладки «внешний вид» окна параметров
простого блока при при изображении прямоугольником

Текст вводится в поле в верхней части панели, он может содержать несколько строк (длинные строки на изображении блока не переносятся, а обрезаются). По умолчанию в качестве текста устанавливается имя блока. Справа от поля ввода текста располагаются две кнопки: одна для задания шрифта и цвета текста, другая – для выравнивания строчек текста внутри прямоугольника по горизонтали (по левому или правому краю или по середине) и по вертикали (в верхней части прямоугольника, в нижней или в центре). На самой кнопке выравнивания схематически изображается выбранное в данный момент положение строчек внутри прямоугольника. Кроме того, там же располагается флажок «перевод», разрешающий выгрузку текста в файл перевода схемы.

Ниже поля ввода текста находятся поля ввода для ширины и высоты прямоугольника (оба размера задаются в точках экрана для масштаба 100%) и кнопки задания цвета рамки и фона прямоугольника с флажками, позволяющими отключить рисование рамки или закраску фона. Для рамки дополнительно задается толщина (тоже в точках экрана для масштаба 100%) и необходимость изменения этой толщины вместе с масштабом. Для этого непосредственно под полем ввода толщины линии рамки находятся две фиксирующихся взаимоисключающих кнопки – с обычным и перечеркнутым изображением лупы. Если нажата кнопка с изображением лупы, толщина линии рамки будет увеличиваться и уменьшаться вместе с масштабом подсистемы. Например, рамка, для которой задана толщина в четыре точки экрана, в масштабе 200% будет иметь толщину 8, в масштабе 50% – толщину 2. Если же нажата кнопка с перечеркнутой лупой, толщина рамки меняться вместе с масштабом не будет (в приведенном выше примере она будет оставаться толщиной в четыре точки в любом масштабе). Масштабировать толщину рамки или нет, создатель блока выбирает из эстетических соображений – на работу самого блока это не влияет. Следует отметить, что ввод нуля в качестве толщины линии рамки рассматривается в RDS отдельно: линия нулевой толщины всегда имеет наименьшую толщину из всех возможных, то есть одну точку экрана. Она будет иметь эту толщину в любом масштабе, поэтому кнопки масштабирования при вводе нулевого значения толщины не активны.

В нижней правой части вкладки «внешний вид» располагается выпадающий список «слой», позволяющий задать слой окна подсистемы, на котором находится блок. Кнопка «текущий» справа от него помещает блок на текущий слой текущей конфигурации слоев (в выпадающем списке он отмечен галочкой). Управлять слоями подсистемы можно в редакторе слоев.

На вкладке «переменные» (рис. 103) отображается список всех статических переменных блока с указанием их типов, параметров и текущих значений.

Вкладка переменные окна параметров блока

Рис. 103. Вкладка «переменные» окна параметров блока

Список переменных содержит следующие колонки:

В этом списке нельзя изменить какие-либо параметры переменных, удалить их или добавить новые – для выполнения этих действий следует использовать кнопку «изменить» в правой нижней части вкладки, которая открывает редактор переменных в отдельном окне. В левой нижней части вкладки расположены три фиксирующихся кнопки, включающие в список входы, выходы и внутренние переменные блока. По умолчанию все три кнопки нажаты, при этом в список попадают все переменные блока независимо от их роли.

На вкладке «соединения» (рис. 104) тоже отображаются все переменные блока с указанием их роли и типа, а также числа связей, подключенных к каждой переменной.

Вкладка соединения окна параметров блока

Рис. 104. Вкладка «соединения» окна параметров блока

При выборе переменной в списке на левой панели этой вкладки правая панель показывает список всех блоков и их переменных, с которыми соединена выбранная переменная (имя переменной отделяется от блока двоеточием). Эта вкладка может быть полезна при отладке схемы: при большом количестве длинных разветвленных связей бывает нелегко понять, что с чем в схеме действительно соединено.

На вкладке «DLL» окна параметров блока (рис. 105) к блоку подключается функция модели и настраиваются параметры реакции этой модели на действия пользователя. Пользователю, не разрабатывающему модели блоков самостоятельно, редко приходится изменять что-либо на этой вкладке.

Вкладка DLL окна параметров блока

Рис. 105. Вкладка «DLL» окна параметров блока

На панели «функция» в верхней части этой вкладки задается имя файла динамически подключаемой библиотеки (DLL), в которой находится модель блока, и имя функции модели в этой библиотеке. Эти имена задаются независимо для тридцатидвухбитной и шестидесятичетырехбитной версии RDS, чтобы одну и ту же схему можно было загружать в обе версии (для выбора версии служит выпадающий список в левой части панели). Пользователю следует с осторожностью изменять что-либо на этой панели, поскольку указание несовместимой с блоком функции модели, как правило, приводит к его неработоспособности (впрочем, отмена изменений, если она разрешена в настройках RDS, восстановит работу блока). Имя файла можно ввести вручную, выбрать в выпадающем списке или указать при помощи стандартного диалога Windows, вызываемого кнопкой «обзор». В выпадающий список попадают только файлы библиотек, находящиеся в стандартной папке DLL RDS (см. §1.1, путь к этой папке автоматически заменяется на символическое обозначение «$DLL$». Непосредственно под панелью «функция» на панели «информация» отображается текущее состояние модели блока: подключена ли она, подходит ли ей структура переменных, заданная в блоке, и т.п.

В нижней части вкладки находится панель настроек модели, флажки которой позволяют включать и выключать различные реакции на действия пользователя (интерактивные возможности блоков в общих чертах рассматриваются в §1.7). Следует помнить, что для того, чтобы модель реагировала на что-нибудь (например, на щелчки кнопок мыши), должны быть одновременно выполнены два условия: реакция на данное действие должна быть заложена в модель блока программистом, и в параметрах блока эта реакция должна быть разрешена. Если разрешить реакцию на щелчки кнопок в блоке, модель которого их не поддерживает, блок, естественно, не начнет выполнять какие-либо действия при щелчке на его изображении. Если модель поддерживает реакцию, но она запрещена в параметрах какого-либо блока с этой моделью, этот блок не будет выполнять предусмотренные программистом действия, поскольку информация о щелчке просто не дойдет до функции модели.

На панели настроек модели можно установить следующие флажки:

На вкладке «компиляция» (рис. 107), можно подключить к блоку автоматически компилируемую модель. Подключение таких моделей и заполнение этой вкладки подробно рассматривается в главе 3.

Вкладка компиляция окна параметров блока (модель не подключена)

Рис. 107. Вкладка «компиляция» окна параметров блока (модель не подключена)

Если для схемы заданы какие-либо классы объектов, в окне параметров блока будет присутствовать вкладка «классы» (рис. 108, при отсутствии классов она не отображается). На ней можно включить блок в один или несколько классов схемы.

Вкладка классы окна параметров блока

Рис. 108. Вкладка «классы» окна параметров блока

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

Все изменения, сделанные в окне параметров блока, включая результаты работы редакторов переменных и картинки, передаются в блок только после нажатия кнопки «OK». Если в настройках RDS) разрешена отмена действий пользователя, прежние параметры блока можно вернуть либо нажав Ctrl + Z, либо выбрав в главном меню RDS пункт «система | отмена».


<< >> Оглавление Указатель