Помощь в написании студенческих работ
Антистрессовый сервис

Трассировка модели. 
Имитационное моделирование

РефератПомощь в написанииУзнать стоимостьмоей работы

Sumtact: real; (* сумма интервалов активизации *). Pta: ptdist; (* адрес сп. таблиц распределений*). Outsel: char; (* знач. процедуры вых. управления*). Infmodsize: integer; (* размер справочника модели *). Adsyn: pinfseg; (* адрес старшего сегмента-сына *). Adrtablink: ptablink; (* адрес списка таблиц связи *). Ststat: real; (* время начала сбора статистики*). Pvar: pointer; (* адр.таб.перменных… Читать ещё >

Трассировка модели. Имитационное моделирование (реферат, курсовая, диплом, контрольная)

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

СПРАВОЧНИК МОДЕЛИ (58 БАЙТА)

INFMOD=RECORD

MODNAM: (* ИМЯ МОДЕЛИ *)

KOLSEG: WORD; (* ЧИСЛО СЕГМЕНТОВ *)

TMT: REAL; (* ТЕКУЩЕЕ МОДЕЛЬНОЕ ВРЕМЯ *)

FT: PINFSEG; (* АДР.1-ГО СЕГМ. В СПИСКЕ СОБЫТ.*)

PFSEG: PINFSEG; (* АДРЕС ГОЛОВНОГО СЕГМЕНТА *)

TIMFIN: REAL; (* ИНТЕРВАЛ МОДЕЛИРОВАНИЯ *)

TUN: CHAR; (* ЕДИНИЦА МОДЕЛЬНОГО ВРЕМЕНИ *)

READY: CHAR; (* ГОТОВНОСТЬ К МОДЕЛИРОВАНИЮ:

1-ЕСТЬ, 0-НЕТ*)

CONDMD: ARRAY[1.9]OF CHAR; (* КОД И УСЛОВИЯ *)

(* ПРЕКРАШЕНИЯ МОДЕЛИРОВАНИЯ *)

ECOUNT: LONGINT; (* СЧЕТЧИК СОБЫТИЙ *)

NKB: LONGINT; (* ЦЕЛОЕ ЧИСЛО КИЛОБАЙТОВ МОД. *)

NB: LONGINT; (* КОЛ. БАЙТОВ В ПОСЛ. КИЛОБАЙТЕ *)

STEP: REAL; (* ШАГ ОСТАНОВКИ *)

STEPC: REAL; (* ШАГ КАТАЛОГИЗАЦИИ *)

NXTSTOP: REAL; (* ВРЕМЯ СЛЕДУ`ШЕЙ ОСТАНОВКИ *)

NXTCAT: REAL; (* ВРЕМЯ СЛЕДУ`ШЕЙ КАТАЛОГИЗ. *)

INFMODSIZE: INTEGER; (* РАЗМЕР СПРАВОЧНИКА МОДЕЛИ *)

STSTAT: REAL; (* ВРЕМЯ НАЧАЛА СБОРА СТАТИСТИКИ*)

END;

СПРАВОЧНИК СЕГМЕНТА (102 БАЙТА)

INFSEG=RECORD

SPS: WORD; (* РАЗМЕР СТАТИЧ. ЧАСТИ СЕГМЕНТА*)

SEGCNAME: ALFDIG; (* ИМЯ СЕГМЕНТА-КОПИИ *)

SEGONAME: ALFDIG; (* ИМЯ СЕГМЕНТА-ОРИГИНАЛА *).

ADROD: PINFSEG; (* АДРЕС СЕГМЕНТА-РОДИТЕЛЯ *)

ADBRAT: PINFSEG; (* АДРЕС СЛЕД. СЕГМЕНТА-БРАТА *)

ADSYN: PINFSEG; (* АДРЕС СТАРШЕГО СЕГМЕНТА-СЫНА *)

FTIME: PINFSEG; (* АДРЕС СЛЕДУЮШЕГОСЕГМЕНТА

В СПИСКЕ СОБЫТИЙ (ПРИ

СБОРКЕ-АДР.МЛАДШ.СЫНА)*)

LOWTIME: REAL; (* ВРЕМЯ БЛИЖ. СОБЫТИЯ В СЕГМЕНТЕ*)

ADRTABNAME: PTABNAME; (* АДРЕС ТАБЛИЦЫ

(*ДОБАВЛЯЕМЫХ СЕГМЕНТОВ *)

ADRTABLINKS: PTABLINKS; (* АДРЕС ТАБЛИЦЫ СВЯЗИ

(*В СИМВОЛЬНОЙ ФОРМЕ *)

ADRTABLINK: PTABLINK; (* АДРЕС СПИСКА ТАБЛИЦ СВЯЗИ *)

ADRP: POINTER; (* АДРЕС УКАЗАТЕЛЕЙ, ИСПОЛЬЗУЕМЫХ*)

(* В ПРОЦЕДУРЕ СЕГМЕНТА *)

PFPLACE: PPLACE; (* АДРЕС СПИСКА ПОЗИЦИЙ *)

PFTRAN: PTRANSITION; (* АДР. СПИСКА ПЕРЕХОДОВ *)

PTA: PTDIST; (* АДРЕС СП. ТАБЛИЦ РАСПРЕДЕЛЕНИЙ*)

PIL: PTRANSITION; (* АДР. СПИСКА ПРЕРЫВАНИЙ *)

PVAR: POINTER; (* АДР.ТАБ.ПЕРМЕННЫХ И МАССИВОВ *)

ADSEG: PINFSEG; (* АДРЕС ЗАГРУЗКИ СЕГМЕНТА *)

PLS: PTRANSITION; (* АДР. СПИСКА «S» *)

PLR: PTRANSITION; (* АДР. СПИСКА «R» *)

RESERV: INTEGER; (* РАБ. ЯЧЕЙКА — ИСП. ПРИ СБОРКЕ *)

SEGX: INTEGER; (* РАЗМЕР СЕГМЕНТА ПО ОСИ «X» *)

SEGY: INTEGER; (* РАЗМЕР СЕГМЕНТА ПО ОСИ «Y» *)

TIMEUN: CHAR; (* ЕДИНИЦА ВРЕМЕНИ *)

NSATR: CHAR; (* ЧИСЛО АТРИБУТОВ *)

PTATR: PTATRIB; (*АДР.ТАБЛИЦЫ ОПИСАНИЯ АТРИБУТОВ*)

INFSEGSIZE: INTEGER; (* РАЗМЕР СПРАВОЧНИКА СЕГМЕНТА *)

PSTOP: PTABSTOP; (* АДР. ТАБЛИЦЫ УСЛОВИЙ ОСТАНОВА *)

ЕND;

ТАБЛИЦА ПЕРЕХОДА (66 БАЙТ).

TRANSITION=RECORD

NUMTRAN: WORD; (* НОМЕР ПЕРЕХОДА *)

PRIZN: WORD;

(* СЛОВО ПРИЗНАКОВ:

БИТЫ: 2.0 — ТИП ЭЛЕМЕНТАРНОЙ СЕТИ:

  • 1 — T, 2 — Y, 3 — X, 4 — G, 5 — I
  • 8.3 — РЕЗЕРВ
  • 9 — НАЛИЧИЕ ПРОЦЕДУРЫ УПРАВЛЕНИЯ
  • 10 — НАЛИЧИЕ ПРОЦЕДУРЫ ВРЕМЕНИ
  • 11 — НАЛИЧИЕ ПРОЦЕДУРЫ ТРАНСФОРМАЦИИ
  • 12 — ПРИЗНАК ТРАССИРОВКИ
  • 13 — ПРИНАДЛЕЖНОСТЬ К СПИСКУ «S»
  • 14 — ПРИНАДЛЕЖНОСТЬ К СПИСКУ «R»
  • 15 — ПРИЗНАК СБОРА СТАТИСТИКИ *)

PIPL: PPLACE; (* АДР. СПИСКА ВХОДНЫХ ПОЗИЦИЙ *)

POPL: PPLACE; (* АДР. СПИСКА ВЫХОДНЫХ ПОЗИЦИЙ *)

NIPT: CHAR; (* ЧИСЛО ВХОДНЫХ ПОЗИЦИЙ *)

NOPT: CHAR; (* ЧИСЛО ВЫХОДНЫХ ПОЗИЦИЙ *)

PNTRANL: PTRANSITION; (* АДР.ТАБЛ.СЛЕДУ`ШЕГО ПЕРЕХОДА *)

PNSRT: PTRANSITION; (*АДР.СЛЕД.ПЕРЕХ.В СП." S" ИЛИ «R» *)

TSTAT: PTDIST; (* АДР. ТАБЛИЦЫ РАСПРЕДЕЛЕНИЯ *)

ADRP: POINTER; (*АДР.ПРОЦЕДУРЫ «ТРАНСФОРМАЦИЯ» *)

ADRC: POINTER; (* АДР. ПРОЦЕДУРЫ «УПРАВЛЕНИЕ» *)

ADRT: POINTER; (* АДР. ПРОЦЕДУРЫ «ВРЕМЯ» *)

TX: INTEGER; (* КООРДИНАТА «X» *)

TY: INTEGER; (* КООРДИНАТА «Y» *)

FINT: REAL; (* ВРЕМЯ ОКОНЧ. АНИЯ КТИВНОЙ ФАЗЫ *)

DELAY: REAL; (* ВРЕМЕННАЯ ЗАДЕРЖКА *)

INSEL: CHAR; (* ЗНАЧ. ПРОЦЕДУРЫ ВХ.УПРАВЛЕНИЯ *)

OUTSEL: CHAR; (* ЗНАЧ. ПРОЦЕДУРЫ ВЫХ.УПРАВЛЕНИЯ*)

NENTR: LONGINT; (* ЧИСЛО АКТИВИЗАЦИЙ ПЕРЕХОДА *)

SUMTACT: REAL; (* СУММА ИНТЕРВАЛОВ АКТИВИЗАЦИИ *).

END;

ТАБЛИЦА ПОЗИЦИИ (50 БАЙТ)

PLACE=RECORD

NUMPOS: WORD; (* НОМЕР ПОЗИЦИИ *)

PRIZN: WORD;

(* СЛОВО ПРИЗНАКОВ:

БИТЫ: 0 — ТИП ПОЗИЦИИ: 0 — ПРОСТАЯ, 1 — ОЧЕРЕДЬ

  • 3.1 — ТИП ОЧЕРЕДИ: 0 — FIFO 3 — LOW (I)
  • 1 — LIFO 4 — HIGH (I)
  • 2 — RAND
  • 5.4 — РЕЗЕРВ
  • 6 — ТИП АТРИБУТА ДЛЯ ОЧЕРЕДЕЙ HIGH, LOW
  • 7 — ПРИЗНАК ОСОБОЙ ОЧЕРЕДИ, Т.Е. ОЧЕРЕДИ,

ЯВЛЯЮЩЕЙСЯ ВХОДНОЙ И ВЫХОДНОЙ ДЛЯ ПЕРЕХОДА

  • 8 — ВХОДНАЯ ПОЗИЦИЯ СВЯЗИ
  • 9 — ВЫХОДНАЯ ПОЗИЦИЯ СВЯЗИ
  • 14.10 — РЕЗЕРВ
  • 15 — ПРИЗНАК СБОРА СТАТИСТИКИ *)

PBT: PTRANSITION; (* АДР.ТАБЛ.НАЧАЛЬНОГО ПЕРЕХОДА

(*ИЛИ ТАБЛИЦЫ СВЯЗИ *)

PET: PTRANSITION; (* АДР.ТАБЛ.КОНЕЧНОГО ПЕРЕХОДА

(*ИЛИ ТАБЛИЦЫ СВЯЗИ *)

NALOHI: INTEGER; (* СМЕШЕНИЕ АТРИБУТА ДЛЯ *)

(* ОЧЕРЕДЕЙ ТИПОВ HIGH И LOW *)

PNTP: PPLACE; (* АДРЕС ТАБЛ. СЛЕДУЮЩЕЙ ПОЗИЦИИ *)

PNIP: PPLACE; (*АДР.ТАБЛ.СЛЕД.ВХ.ПОЗ. ПЕРЕХОДА*)

PNOP: PPLACE; (*АДР.ТАБЛ.СЛЕД.ВЫХ.ПОЗ.ПЕРЕХОДА*)

PST: PTDIST; (* АДР. ТАБЛИЦЫ РАСПРЕДЕЛЕНИЯ *)

PX: INTEGER; (* КООРДИНАТА «X» *)

PY: INTEGER; (* КООРДИНАТА «Y» *)

PLREC: POINTER; (* АДР. СПИСКА ЗАПИС. ОБ АТРИБУТАХ*)

NOB: CHAR; (* ЧИСЛО ФИШЕК *)

QMAX: CHAR; (* МАКС. ДЛИНА ОЧЕРЕДИ *)

NENTR: LONGINT; (* ЧИСЛО ВХОДОВ ФИШЕК В ПОЗИЦИ` *)

SUMTZ: REAL; (* СУММА ИНТЕРВАЛОВ ЗАНЯТОСТИ *)

END;

Входными параметрами процедуры трассировки I00TRD являются указатели на справочники модели, сегмента и перехода. Все необходимые для записи в файл данные процедура получает из справочников. Имя сегмента в котором сработал переход получаем с помощью процедуры GETNAME, модельное время и время задержки с помощью процедуры I00TUN, обе процедуры из модуля ISPINT.

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

Следует отметить, что работа с создаваемым в процессе интерпретации файлом, осуществляется по всем правилам языка Турбо — Паскаль.

Открытие файла происходит при первом обращении к процедуре трассировки. Счетчик обращений SCH обнуляется при активизации пункта меню «Пуск Модели». Описан в разделе глобальных переменных в модуле ISPGLOB, там же осуществлено описание переменной типа файл:

FTRACE: TEXT;

SCH: INTEGER;

Закрытие файла происходит по окончании процесса моделирования, командой: CLOSE (FTRACE);

Показать весь текст
Заполнить форму текущей работой