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

Руководство программиста

Глава 1. Устройство RDS

§1.3. Режимы работы RDS

Описываются три режима работы RDS и циклический вызов моделей блоков в режиме расчета.

RDS может находиться в одном из трех режимов: редактирования, моделирования и расчета (см. §1.3 описания пользователя).

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

В режиме моделирования пользователь не может ни редактировать схему, ни вызвать функцию настройки блока – все события мыши и клавиатуры передаются в функцию модели.

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

Переменные Start и Ready (их названия можно изменить, главное, чтобы это были первая и вторая переменные блока) играют роль сигналов запуска и готовности. Модель может сама изменять значения этих переменных для управления работой блока. Например, если присвоить переменной Start значение 1, модель блока будет снова запущена в следующем такте расчета, даже если связь, присоединенная к этой переменной, не сработает. Если же присвоить переменной Ready значение 0, данные с выхода блока не будут переданы по связям, несмотря на то, что блок сработал в этом такте.

В расчете участвуют только простые блоки. Ни подсистемы, ни внешние входы/выходы, ни вводы шин в расчете не участвуют, то есть их модели вообще никогда не вызываются в режиме RDS_BFM_MODEL в такте расчета. Если, например, данные передаются от простого блока «Block1» внутрь подсистемы «Sys1» через внешний вход «Input1» ко второму простому блоку «Block2» (рис. 4), то ни модель подсистемы, ни модель внешнего входа вызвана не будет. Будут вызваны только модели первого и второго блоков, при этом после срабатывания первого блока данные его выхода y передадутся непосредственно на вход второго блока x, на вход Input1 подсистемы «Sys1» и на выход ее внешнего входа «Input1». Такой подход позволяет ускорить расчет за счет исключения промежуточных ступеней. Следует иметь в виду, что статические переменные подсистемы и внешнего входа все равно получат данные первого блока, хотя их модели и не вызываются. Это может оказаться полезным в тех случаях, когда подсистема или внешний вход имеют векторную картинку: если какие-либо элементы этой картинки связаны с переменными, изменившиеся значения этих переменных отразятся на внешнем виде блоков. Например, если добавить в векторную картинку подсистемы «Sys1» строку текста и связать ее с входом Input1 этой подсистемы, в режимах расчета и моделирования на изображении подсистемы будет выводиться числовое значение входа Input1, полученное по связи от блока «Block1».

В расчете участвуют только блоки 1 и 2

Рис. 4. В расчете участвуют только блоки 1 и 2


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