Текст программы. 20 generate 7,2; генерация транзактов, изображающих заявки

10 SIMULATE

20 GENERATE 7,2; генерация транзактов, изображающих заявки

30 VB1 VARIABLE RN1/200+13; вычисление максимально возможного времени пребывания транзакта в очереди

40 ASSIGN 3,0; разница между временем входа транзакта в очередь и текущим моментом времени

50 ASSIGN 2,V$VB1; запись максимального времени

60 ASSIGN 1,X1; время входа транзакта в очередь

70 TEST NE X3,0,ENR; если очередь пуста, переход к проверке занятости АЗС

80 ENO QUEUE OZD; регистрация в очереди

90 SAVEVALUE 3+,1; увеличение размера очереди

100 ADC ADVANCE 1; задержка транзакта в ожидании свободного места на АЗС

110 GATE SF CCL,DPT; если на АЗС есть место, покинуть очередь

120 SAVEVALUE 2,X1; запись текущего времени

130 SAVEVALUE 2-,P1; вычисление разницы между текущим временем и временем входа транзакта в очередь

140 ASSIGN 3,X2; и запись разницы

150 TEST LE P3,P2,DPT; если разница превысила время ожидания, покинуть очередь,

160 TRANSFER,ADC; в противном случае, вновь ожидать одну минуту

170 DPT SAVEVALUE 3-,1; уменьшение числа транзактов в очереди

180 DEPART OZD; транзакт покидает очередь

190 TEST G P3,P2,EN1; если разница не превышает времени ожидания, занять место на АЗС,

200 TERMINATE; в противном случае, покинуть АЗС

210 ENR GATE SNF CCL,ENO; если на АЗС нет мест, встать в очередь,

220 EN1 ENTER CCL; в противном случае занять свободное место

230 MARK; отметка начала обслуживания транзакта на АЗС

240 TRANSFER.333,CP1,UP1; трети АТП отпускается бензин и ГСМ, а остальным только бензин

250 UP1 SEIZE UPD; транзакт занимает место для отпуска ГСМ

260 ADVANCE 5,1; и обслуживается некоторое время,

270 RELEASE UPD; затем покидает систему отпуска ГСМ

280 CP1 ENTER COM; и занимает место на одной из двух ТРК,

290 ADVANCE 3,1; обслуживается в течение нескольких минут

300 LEAVE COM; и покидает ТРК

310 TABULATE MWT; фиксация времени пребывания транзакта на АЗС

320 TERMINATE; транзакт покидает АЗС

330 GENERATE 1; моделирование времени работы АЗС

340 SAVEVALUE 1+,1; счетчик времени (в минутах)

350 TRM TERMINATE 1; одна минута системного времени истекла

360 CCL STORAGE 8; накопитель – АЗС вместимостью 8 транзактов

370 COM STORAGE 2; накопитель – 2 ТРК емкостью 2 транзакта

380 MWT TABLE M1,15,15,15; описание таблицы распределения общего времени обслуживания транзакта

390 START 480; работа системы в течение 8 часов (60*8=480 часов)

В программе используются следующие объекты:

ПЕРЕМЕННЫЕ И ПАРАМЕТРЫ

VB1 – значение максимально возможного времени ожидания транзактом обслуживания (вычисляется для каждого транзакта в отдельности);

X1 – счетчик системного времени в минутах;

P1 – параметр транзакта, определяющий его время вхождения в оче­редь;

P2 – максимальное время пребывания транзакта в очереди;

P3 – время пребывания транзакта в очереди (изменяется в процессе движения транзакта внутри очереди);

X2 – переменная, используемая для промежуточных вычислений;

X3 – количество транзактов в очереди.

УСТРОЙСТВА, НАКОПИТЕЛИ, ОЧЕРЕДЬ И ТАБЛИЦА

OZD – очередь на АЗС;

CCL – накопитель, изображающий АЗС, емкостью 8 транзактов;

UPD – устройство, изображающее систему отпуска ГСМ;

COM – накопитель, изображающий две ТРК, емкостью 2 транзакта;

MWT – таблица распределения общего времени обслуживания транзакта.

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

Ниже представлена схема проведения имитационных экспериментов с моделями сложных систем.


Схема проведения имитационных экспериментов с моделями сложных систем



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: