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

Описания RDS

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

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

§2.17. Просмотр информации о загруженной схеме

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

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

### §2.17. Просмотр информации о загруженной схеме

Описывается окно информации о схеме, в котором можно увидеть общее число блоков, список используемых в схеме функций и библиотек и т.п.

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

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

Рис. 274. Информация о схеме: вкладка «общие»

На панели «расчет» отображается статистика, собранная при последнем запуске расчета (если после загрузки схемы расчет еще ни разу не запускался, панель будет пустой). Средняя скорость расчета указывается в тактах в секунду и вычисляется как число выполненных в последнем расчете тактов, деленное на время выполнения этого расчета. Этот показатель отражает общую скорость системы, но только в том случае, если расчет по каким-либо причинам не переходил в режим ожидания. Если, например, в схеме есть блок-планировщик, и в его параметрах включена синхронизация с реальным временем, этот блок будет время от времени приостанавливать расчет, чтобы он не обгонял системные часы, то есть чтобы секунда моделируемого времени примерно соответствовала секунде реального. При этом за секунду реального времени будет выполнено меньше тактов расчета, чем могло бы быть, работай система с полной нагрузкой. Таким образом, при моделировании каких-либо процессов оценить скорость работы схемы можно только отключив в ней синхронизацию с реальным временем. Допустим, в схеме находится стандартный блок-планировщик, в параметрах которого установлен шаг в 0.1 секунды и четыре дополнительных такта на шаг. В этом случае на один шаг расчета будет приходиться пять тактов, значит, в секунду должно быть выполнено не менее пятидесяти тактов (десять шагов в секунду по пять тактов каждый). Если при отключенной в планировщике синхронизации с реальным временем скорость расчета упадет ниже пятидесяти тактов в секунду, это будет говорить о том, что скорости работы системы не хватит для моделирования данного процесса в реальном времени.

Затраты времени на обновление окон указываются в процентах от общего времени расчета. Это время, которое тратится исключительно на перерисовку окон подсистем и дополнительных окон, открытых блоками – расчет все это время вынужден простаивать. Если схема не успевает за реальным временем и этот показатель больше 50%, имеет смысл понизить частоту обновления окон подсистем, закрыть лишние окна или включить в настройках RDS автоподстройку частоты обновления (по умолчанию она включена).

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

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

На вкладке «используемые DLL» окна информации (рис. 275) выводится список всех динамически подключаемых библиотек (DLL), необходимых данной схеме для работы. В этих библиотеках находятся модели блоков (программы, обеспечивающие реакции блоков на все события), а также модули автоматической компиляции таких моделей (см. §2.19.1 и главу 3). Для каждой библиотеки выводится имя ее файла, версия и дата создания, если библиотека предоставляет RDS эту информацию, а также общее число ссылок на эту библиотеку из различных блоков схемы. Рядом с именем библиотеки отображается значок шестеренки желтого цвета, если все функции этой библиотеки удалось подключить, или красного, если файл библиотеки отсутствует (в этом случае вместо версии библиотеки будет выведен текст «файл не найден») или если какой-то блок ссылается на функцию, отсутствующую в этой библиотеке.

Рис. 275. Информация о схеме: вкладка «используемые DLL»

Пути к файлам DLL в списке не всегда выводятся полностью. Если библиотека находится в одной из стандартных папок RDS, путь к этой папке будет заменен на ее стандартное символическое обозначение. Например, путь к стандартной папке DLL RDS заменяется на обозначение «$DLL$»: запись «$DLL$\Common.dll» указывает на библиотеку «Common.dll», находящуюся в стандартной папке DLL. Если имя библиотеки указано без пути, она находится в одной папке с файлом загруженной схемы (это обычная практика для автоматически компилируемых моделей).

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

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

Рис. 276. Информация о схеме: вкладка «используемые DLL» с открытым списком блоков

На вкладке «блоки» окна информации отображается иерархическая структура всех блоков в загруженной схеме (рис. 277).

Рис. 277. Информация о схеме: вкладка «блоки»

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

Значок | Тип блока | Дополнительная информация
--- | --- | ---
| Простой блок | —
| Подсистема | Заголовок окна подсистемы
| Внешний вход | Тип переменной
| Внешний выход | Тип переменной
| Ввод шины | —

В нижней части вкладки отображается полное (с указанием иерархии всех подсистем) имя блока. Нажатие на кнопку с стрелкой рядом с этим именем открывает окно подсистемы с этим блоком и устанавливает полосы прокрутки окна так, чтобы блок был виден (в режиме редактирования блок автоматически выделяется), при этом окно информации остается на переднем плане.

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

Рис. 278. Информация о схеме: вкладка «функции блоков»

Вкладка «компиляция» (рис. 279) содержит список всех используемых загруженной схемой модулей автоматической компиляции моделей блоков и, для каждого модуля, всех моделей, обслуживаемых им. Для каждого модуля указывается название, под которым он зарегистрирован в RDS, и общее число блоков, работающих с этим модулем. Чтобы раскрыть список моделей, следует щелкнуть по значку со знаком «+» слева от названия модуля. Имена моделей могут иметь разный смысл в разных модулях автокомпиляции. В стандартном модуле, входящем в состав RDS (работа с ним описана в главе 3), имя модели – это просто имя файла, в котором хранится ее исходный текст. После имени модели выводится число блоков, к которым подключена эта модель, и, если модуль автокомпиляции поддерживает нумерацию версий моделей, версия и дата изменения этой модели.

Рис. 279. Информация о схеме: вкладка «компиляция»

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

Рис. 280. Информация о схеме: вкладка «компиляция» с открытым списком блоков

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

Рис. 281. Информация о схеме: вкладка «динамические переменные» с открытым списком блоков

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