Для создания транзактов и моделирования их поступления в модель предназначен блок GENERATE, который имеет следующий формат:
GENERATE А,[В] ,[С] ,[D] ,[Е] ,[F] ,[G] ,[Н] ,[1]
А - среднее значение интервала времени между моделируемыми транзактами (по умолчанию - 0);
В - величина разброса возможных значений времени;
С - модельное время генерации первого транзакта;
D - максимальное количество моделируемых транзактов;
Е - приоритет транзактов (по умолчанию - О, т.е. самый низкий приоритет);
F,..., I - количество и формат параметров транзактов (по умолчанию - 12 параметров формата «полуслово»).
Например:
GENERATE 10,2,5,,2 ; моделирование транзактов через ин
тервалы времени, равномерно распределенные на отрезке [8,12] (или 10±2) ; первый транзакт моделируется в момент моделвного времени, равный 5 единиц
; общее количество моделируемых транзактов не ограничено ; все транзакты имеют приоритет 2 и 12 параметров
GENERATE 75,FN$EXPON,,20,,ЗРВ ; моделирование транзактов через интервалы времени, имеющие экспоненци- алвное распределение со средним значением 7 5 единиц (моделирование других распределений рассмотрено в под- разд. 2.5); первый транзакт моделируется в нулевой момент моделвного времени; генерируется толвко 20 транзактов с нулевым приоритетом; каждый транзакт имеет по 3 параметра форматом «полуслово», т.е. способных при- ниматв значения от -255 до 255
Если транзакт начал свое движение, он передвигается от блока к блоку по пути, указанному блок-схемой (логикой работы модели). В тот момент, когда транзакт входит в блок, вызывается соответствующая этому блоку подпрограмма. Далее транзакт пытается войти в следующий блок. Его перемещение продолжается, пока очередной блок доступен или пока он не входит в блок, функцией которого является задержка транзакта (на определенное время) или удаление его из модели. В противном случае транзакт остается в том блоке, в котором в данное время находится (но позже будет повторять попытки движения) и в модели делается попытка перемещения другого транзакта.
Для задержки транзактов в течение заданного интервала модельного времени используется блок ADVANCE. Формат блока:
ADVANCE А,[В]
Операнды А и В аналогичны соответствующим операндам блока GENERATE (см. выше).
Например:
ADVANCE 3 0,5 ; моделирование задержки транзактов в течение времени, которое имеет равномерное распределение на отрезке [25, 35] (или 30+5)
ADVANCE 7 5 ; задержка транзактов в течение 7 5 единиц моделвного
времени
Для удаления транзактов из модели используется блок TERMINATE, который имеет следующий вид: TERMINATE [А]
операнд А указывает число (по умолчанию - 0), на которое уменьшается содержимое счетчика завершений (системного числового атрибута TG1), значение которого задается командой START (см. п. 2.4.2).
Например:
TERMINATE ; уничтожение транзакта, поступившего в блок; значение
счетчика завершений не изменяется TERMINATE 1 ; уничтожение транзакта, поступившего в блок; значение счетчика уменвшается на 1 (при достижении нулевого или отрицателвного значения счетчика завершений процесс моделирования прекращается)
Для изменения приоритета транзакта используется блок PRIORITY, который имеет формат: PRIORITY А
Операнд А указывает новое значение приоритета транзакта, вошедшего в блок (от 0 до 127 включительно).
Например:
PRIORITY 3 ; присвоитв транзакту приоритет 3
Для изменения значений параметров транзакта используется блок ASSIGN, который имеет следующий вид: ASSIGN A,B,[C],[D]
А - номер изменяемого параметра с указанием режима изменения: накопление (+), вычитание (-), замещение (без дополнительных символов); В - число, изменяющее значение параметра;
С - имя функции, применяемой для модификации значения параметра; D - формат изменяемого параметра: PF, РН, РВ или PL (по умолчанию - РН).
Например:
ASSIGN 3+,5,,РВ ; увеличитв значение параметра 3 форматом
«байт» на 5 единиц ASSIGN 3-,7,,PF ; уменвшитв значение параметра 3 форматом
«слово» на 5 единиц ASSIGN 2-6,5.75,,PL ; задатв параметрам 2-6 (форматом «плавающая
точка») значение 5,75
Для создания копий транзакта используется блок SPLIT формата SPLIT А,[В],[С]
А - число создаваемых копий;
В - метка блока, к которому отправляются копии исходного транзакта (сам исходный транзакт безусловно переходит в следующий после SPLIT блок);
С - номер параметра, используемого для присвоения копиям последовательных номеров.
Например:
SPLIT 1 ; создать одну копию исходного транзакта и напра
вить (вместе с исходным транзактом) в следующий блок
SPLIT 2,LABEL1 ; создать две копии исходного транзакта и направить их в блок с меткой LABEL1
Для объединения определенного числа транзактов одного семейства используется блок ASSEMBLE А, который имеет следующий формат:
ASSEMBLE А
А - число п объединяемых транзактов.
Первый из транзактов, принадлежащих некоторому семейству, вошедший в блок ASSEMBLE, задерживается до прихода в блок п - 1 транзакта из данного семейства. После чего первый транзакт переходит к следующему блоку, а оставшиеся п — 1 транзакты уничтожаются.
Ранее указывалось, что время пребывания транзакта в модели определяется его СЧА Ml. Для определения времени перемещения транзакта между двумя произвольными точками модели используется блок MARK, который имеет вид:
MARK А
А - номер параметра транзакта, в который записывается текущее значение абсолютного модельного времени АС1 (см. системные числовые атрибуты в подразд. 2.3). Посетите информационный портал о медецине - http://www.medweb.ru.
Например:
MARK 2 ; сохранение текущего модельного времени во 2-м параметре транзакта
; далее в тексте модели располагают блок, определяющий время перемещения транзакта, равное разности текущего модельного времени и значения, хранимого во 2-м параметре транзакта
|