Текущий раздел:

Описания RDS

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

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

§2.11. Использование подсистем

§2.11.3. Ввод шин в подсистему

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

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

### §2.11. Использование подсистем

#### §2.11.3. Ввод шин в подсистему

Описывается ввод шин внутрь подсистем и вывод их наружу при помощи специальных блоков – вводов шин.

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

Рис. 4 (повтор). Ввод шины в подсистему

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

Пример ввода шины в подсистему уже приводился ранее на рис. 4 (здесь он повторен). На рисунке изображена подсистема «Sys2», внутри которой находится шина, соединенная с вводом «Port1». К входу канала «Gamma» этой шины подключено поле ввода, а к выходам каналов «Alpha» и «Beta» – индикаторы. Снаружи (в верхней части рисунка) к подсистеме через этот же ввод шины подключена другая шина, к входам каналов «Alpha» и «Beta» которой подключены поля ввода, а к выходу канала «Gamma» – индикатор. В результате такого соединения обе шины будут иметь один и тот же набор каналов: «Alpha», «Beta» и «Gamma», и при изменении значений в полях ввода снаружи подсистемы эти значения будут передаваться на индикаторы внутри нее, а при изменении значения в поле ввода внутри – на индикатор снаружи.

Шины, соединенные через вводы, всегда имеют одинаковый набор каналов: при добавлении, удалении или редактировании канала в одной из них эти изменения автоматически распространяются на все соединенные шины. Шины не обязательно соединяются парами: одна шина может соединяться сразу с несколькими вводами, и, таким образом, сеть соединенных шин может покрывать множество подсистем. Например, все шины, изображенные на рис. 208, соединены между собой.

Рис. 208. Множество соединенных шин

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

Рис. 209. Окно параметров одной из соединенных шин

Ввести шину в подсистему можно двумя способами: можно сначала создать внутри подсистемы ввод шины, а затем соединить с ним шины внутри и снаружи подсистемы, или можно в процессе рисования шины дотянуть ее до подсистемы и скомандовать RDS создать внутри подсистемы ввод, соединенный с этой шиной. Сначала рассмотрим первый способ.

Чтобы создать ввод шины, нужно нажать правую кнопку мыши в том месте рабочего поля окна подсистемы, где он должен появиться, и выбрать в контекстном меню пункт «создать | ввод шины» (рис. 210).

(а)

(б)

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

Созданному вводу будет присвоено имя вида «PortN», где N – число, автоматически выбранное так, чтобы это имя было уникальным в подсистеме. Ввод шины – это тоже блок, поэтому его имя не может совпадать с именем какого-либо другого блока в этой подсистеме. Имя ввода можно изменить в окне его параметров, открывающемся по двойному щелчку. Это окно очень похоже на окна параметров внешних входов и выходов, за исключением того, что, в отличие от входов и выходов, в параметрах ввода шины не задается переменная: он служит для подключения к подсистеме всей шины целиком, а не какой-либо отдельной переменной с заданными именем и типом. К вводу можно подключать шины внутри подсистемы точно так же, как связи подключаются к блокам: при перетаскивании конечного узла уже нарисованной шины на изображение ввода или при щелчке на вводе в процессе рисования шины эта шина будет подключена к этому вводу (рис. 211).

(а)

(б)

(в)

(г)

Рис. 211. Присоединение шины к вводу внутри подсистемы: последовательность действий (а–г)

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

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

(а)

(б)

(в)

(г)

Рис. 212. Присоединение шины к подсистеме снаружи: последовательность действий (а–г)

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

Если в момент соединения шин в них уже были какие-либо каналы, списки их каналов объединяются, и каждая шина получает полный объединенный список каналов. Если какие-либо два канала в соединяемых шинах имели одинаковые имена, но разные типы, они не объединятся: после соединения один из каналов будет переименован, и все связи, подключенные к нему, буду автоматически перенастроены на его новое имя.

Соединенные шины можно в любой момент разъединить, переместив узел, которым шина соединяется с вводом или подсистемой, за пределы их изображений, или просто удалив этот узел. Отсоединенная шина становится полностью независимой и изменение ее каналов уже никак не будет влиять на шины, оставшиеся соединенными. Если в момент соединения в шину были автоматически добавлены каналы, при разъединении они не удалятся – лишние каналы, при желании, можно удалить вручную в окне параметров шины.

На рис. 213 изображен еще один пример соединения подсистемы с остальной схемой при помощи шины: это схема, аналогичная схеме на рис. 207, в которой внешние входы и выходы заменены на шину, входящую в подсистему через ввод «Port1». Эта схема будет работать точно так же, как и схемы на рис. 207 и рис. 19 – для расчета не важно, каким именно образом соединяются входы и выходы блоков: непосредственно, через внешние входы и выходы или через каналы шин.

Рис. 213. Замена в подсистеме с рис. 207 связей на шины