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

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

Глава 3. Использование стандартных модулей автокомпиляции

§3.7. Краткий перечень вводимых в модель описаний и реакций на события

§3.7.3. Моделирование и переключение режимов

§3.7.3.2. Запуск расчета

Это событие возникает при переходе RDS в режим расчета из режима моделирования (при запуске расчета из режима редактирования RDS сначала переходит в режим моделирования, а уже потом – в режим расчета). Реакция на него вводится на вкладке «события» левой панели редактора модели: раздел «моделирование и режимы», подраздел «запуск расчета» (см. рис. 462). В классе блока для нее создается функция с именем rdsbcppStartCalc с введенным пользователем текстом программы внутри:

  // Simulation start
  void rdsbcppBlockClass::rdsbcppStartCalc( StartStopData)
  {
     … пользовательский текст реакции … 
  }

В функцию передается параметр StartStopData, представляющий собой указатель на структуру описания события RDS_STARTSTOPDATA:

  typedef struct {
     FirstStart;  // Расчет запущен с самого начала
     Loop;        // Расчет будет работать непрерывно
  } ;
  typedef  *;

Поля структуры имеют следующий смысл:

FirstStart (BOOL)
TRUE, если расчет запущен с самого начала (сразу после загрузки схемы или сброса расчета), или FALSE, если расчет повторно запущен после остановки.
Loop (BOOL)
TRUE, если расчет запущен в нормальном, циклическом, режиме, или FALSE, если после выполнения одного такта он будет автоматически остановлен (пользователь нажал кнопку «выполнить один такт»).

Следует помнить, что это событие возникает не только при первом запуске расчета, но и при его запуске после остановки, поэтому использовать реакцию на него для инициализации расчета без анализа поля FirstStart структуры описания события нельзя.

Пример реакции на это событие приведен в §3.6.12. При написании моделей блоков без использования модуля автокомпиляции событию запуска расчета соответствует константа RDS RDS_BFM_STARTCALC.


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