110 L1 GENERATE 30,5
Первый сегмент модели
2....6.8.................18 ..19.............................................................70
<метка><название> <поле переменных>
<комментарии>
В поле переменных выделяют подполя,
разделяемые при записи запятыми и служащие для указания чисел, стандартных
числовых атрибутов (СЧА), символов, обозначающих метки, идентификаторов,
указателей разновидностей операторов и т.п. Подполя могут быть пустыми.
Возможна запись комментария после
последнего непустого поля через пробел.
Стандартные числовые атрибуты служат для сокращенного
указания различных величин, фигурирующих в модели.
Примеры СЧА: К126 - константа, равная 126;
V2 - переменная N 2; Q4 - длина очереди N 4; X5 - хранимая величина N 5;
FN7 - функция N 7; P4 - значение параметра N 4 транзакта; *6 - содержимое
параметра N 6 транзакта; S*3 (или FN*3) - память (или функция), определенная
в параметре N 3 транзакта.
GENERATE 12,4,50,5,1 - генерация транзактов, интервалы времени между появлениями транзактов распределены равномерно в диапазоне [12-4, 12+4], первый транзакт появится с задержкой в 50 единиц модельного времени, всего будет создано 5 транзактов, приоритет транзактов равен единице.
GENERATE 12,4,50,,1 - то же, но количество генерируемых транзактов неограничено.
GENERATE 6, FN$FFF,50,5,1 - то же, но интервал времени между появлениями транзактов есть целая часть произведения числа 6 на значение функции FFF.
FNK FUNCTION
RN1,C4
0,0/0.1,0.8/0.5,1.6/1.0,1.9
- описание функции FNK, ее аргументом является случайная величина (на
это указывает значение RN1), равномерно распределенная в диапазоне [0,1],
функция является непрерывной числовой (указатель С), заданной таблично
четырьмя точками: (0;0), (0.1; 0.8), (0.5, 1.6), (1.0; 1.9).
FNK FUNCTION
*2,D4
0,12/1,9/2,8/3,6
- то же, но аргументом является значение второго параметра транзакта,
для которого вычисляется значение дискретной величины (D) числовой
функции FNK, заданной таблично четырьмя узловыми точками. Это текущее значение
округляется до ближайшего большего значения аргумента в узловой точке.
SEIZE PLOT - занятие устройства PLOT приходящим на его вход транзактом; если устройство занято, то транзакт задерживается в очереди к этому устройству.
RELEASE PLOT - освобождение устройства PLOT обслуженным транзактом.
ENTER MEM,12 - занятие транзактом 12 единиц емкости в накопителе MEM.
LEAVE MEM,*2 - освобождение k единиц памяти в накопителе MEM, гдк k - значение 2-го параметра транзакта.
STR STORAGE 4096 - описание накопителя STR емкостью 4096 единиц.
TERMINATE 3 - удаление транзакта из системы, при этом содержимое итогового счетчика уменьшается на 3 единицы, моделирование заканчивается, если содержимое счетчика станет равным или меньше нуля.
ADVANCE A,B - задержка транзакта на время, определенное содержимым полей A и B, смысл величин, записываемых в этих подполях , такой же, как и в блоке GENERATE.
SPLIT 3,LLL,6 - копирование транзактов, в данном случае создаются три копии исходного транзакта, исходный транзакт направляется в следующий по порядку блок, а созданные копии - в блок с меткой LLL, при этом параметр 6 основного транзакта увеличивается на единицу, а транзактов - копий - на 2, 3, 4 соответственно.
ASSEMBLE 5 - объединение транзактов, первый из вошедших в блок транзактов продолжит движение в системе после того, как в блок придут еще четыре транзакта.
ASSIGN 2,NAP - изменение параметров транзактов, в данном случае второй параметр транзакта получит значение NAP.
ASSIGN 3+,V4 - изменится значение третьего параметра транзакта - к нему прибавится значение V4.
TRANSFER ,MET - безусловная передача управления оператору с меткой (номером) MET.
TRANSFER BOTH,LAB1,UNN - переход к оператору с меткой LAB1, если он невозможен, то к оператору с меткой UNN , если и он невозможен, то транзакт задерживается до следующего момента дискретного модельного времени, в который повторяются указанные попытки перехода.
TRANSFER .4,AAA,LAB - транзакт с вероятностью 0.4 переходит к оператору с меткой LAB и с вероятностью 0.6 к оператору с меткой AAA.
TRANSFER PICK,STK7,STK21 - равновероятный переход к операторам с номерами STK7, STK7+1, STK7+2, . . . , STK21.
TRANSFER FN,AAA,5 - переход к оператору, метка которого равна сумме значения функции AAA и числа 5.
TRANSFER P,4,41 - переход к оператору, метка которого равна сумме значения параметра N 4 транзакта и числа 41.
TRANSFER SBR,PRC,7 - переход к оператору PRC с записью в параметр N 7 транзакта метки данного оператора.
LOOP 6,MET - организация цикла - переход 5 раз к оператору с меткой MET и на шестой раз - к следующему по порядку оператору.
TEST E V7,K256,LAB - переход по условию (условная передача управления): в позициях 13-18 записывается знак отношения, в первых двух подполях поля переменных записываются сравниваемые величины, если условие выполняется, то перехода нет, иначе переход есть к оператору с меткой LAB. Символы отношений: G - больше, L - меньше, E - равно, NE - неравно, LE - меньше или равно, GE - больше или равно. В данном примере перехода нет, если V7 = 256, иначе переход к оператору с номером LAB.
QUEUE SQV - оператор организации очереди, длина очереди SQV увеличивается на единицу.
DEPART SQV - то же, но длина очереди уменьшается на единицу.
PRIORITY 2 - транзакту присваивается приоритет 2.
SIMULATE - начальная карта программы, если разработчик намерен выполнить прогон модели. Если эта карта отсутствует, то интерпретатор проверяет правильность записи модели на языке GPSS, но прогона модели не выполняет.
START 100,,25 - занесение значения 100 в итоговый счетчик, вывод накопленных статистических данных производится с интервалом изменения содержимого итогового счетчика в 25 единиц.
TABULATE MAT7 - в соответствующий интервал гистограммы с именем MAT добавляется единица.
MAT7 TABLE P3,8,1,5 - описание таблицы (гистограммы) MAT7, предназначенной для табулирования величины, значения которой находятся в третьем параметре транзакта, входящего в оператор TABULATE MAT7, верхний предел левого интервала гистограммы равен 8, ширина каждого последующего интервала равна 1, всего интервалов 5.
5 VARIABLE X2 - K25 - вычислительный оператор, в данном случае из хранимой величины N 2 вычитается число 25 и результат присваивается переменной N 5.
SAVEVALUE 5,*3 - хранимая величина N 5 (X5) получает значение третьего параметра транзакта.
SAVE <имя файла> - сохранить текст модели
DISPLAY[<строка N 1>],[< строка N 2>] - вывести на экран текст модели, начиная со строки N1 , до строки N 2.
DELETE [<строка N 1>],[<строка N 2>] - удалить из программы текст, начиная со строки N1 , до строки N 2.
EDIT <номер строки> - отредактировать строку текста
CLEAR - сбросить всю статистику модели в ноль (включая таймеры абсолютного и относительного модельного времени), возвратить все транзакты в пассивный буфер .
END - завершить работу интерпретатора.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1-й сегмент модели 2-й сегмент модели 3-й сегмент модели |
Детали второго типа Таймер |
А1 А2 А3 |
операции 1 и операции 4 операции 2 и операции 6 операции 3 и операции 5 |
АА1 АА2 АА3 |
Общая очередь к станку А2 Общая очередь к станку А3 |
; GPSS/PC Program File EX1. (V 2, # 39560) 03-01-1999 12:36:18 100 SIMULATE 110 GENERATE 30,5 Первый сегмент модели 120 QUEUE AA1 130 SEIZE A1 140 DEPART AA1 150 ADVANCE 5,2 160 RELEASE A1 170 QUEUE AA2 180 SEIZE A2 190 DEPART AA2 200 ADVANCE 20,4 210 RELEASE A2 220 QUEUE AA3 230 SEIZE A3 240 DEPART AA3 250 ADVANCE 10,3 260 RELEASE A3 270 TERMINATE 280 GENERATE 20,5 Второй сегмент модели 290 QUEUE AA1 300 SEIZE A1 310 DEPART AA1 320 ADVANCE 7,3 330 RELEASE A1 340 QUEUE AA3 350 SEIZE A3 360 DEPART AA3 370 ADVANCE 15,5 380 RELEASE A3 390 QUEUE AA2 400 SEIZE A2 410 DEPART AA2 420 ADVANCE 15,5 430 RELEASE A2 440 TERMINATE 450 GENERATE 480 Третий сегмент модели (таймер) 460 TERMINATE 1
В данном примере таймер настроен на выполнение
моделирования в течение 8 часового рабочего дня. Для выполнения моделирования
в течение 5 дней таймер длжен быть откорректирован.
GPSS/PC Report file REPORT.GPS. (V 2, # 39560) 03-02-1999 13:45:52 page 1 START_TIME END_TIME BLOCKS FACILITIES STORAGES FREE_MEMORY 0 480 36 3 0 13264 LINE LOC BLOCK_TYPE ENTRY_COUNT CURRENT_COUNT RETRY 110 1 GENERATE 15 0 0 120 2 QUEUE 15 0 0 130 3 SEIZE 15 0 0 140 4 DEPART 15 0 0 150 5 ADVANCE 15 0 0 160 6 RELEASE 15 0 0 170 7 QUEUE 15 4 0 180 8 SEIZE 11 0 0 190 9 DEPART 11 0 0 200 10 ADVANCE 11 1 0 210 11 RELEASE 10 0 0 220 12 QUEUE 10 0 0 230 13 SEIZE 10 0 0 240 14 DEPART 10 0 0 250 15 ADVANCE 10 0 0 260 16 RELEASE 10 0 0 270 17 TERMINATE 10 0 0 280 18 GENERATE 24 0 0 290 19 QUEUE 24 0 0 300 20 SEIZE 24 0 0 310 21 DEPART 24 0 0 320 22 ADVANCE 24 0 0 330 23 RELEASE 24 0 0 340 24 QUEUE 24 0 0 350 25 SEIZE 24 0 0 360 26 DEPART 24 0 0 370 27 ADVANCE 24 1 0 380 28 RELEASE 23 0 0 390 29 QUEUE 23 7 0 400 30 SEIZE 16 0 0 410 31 DEPART 16 0 0 420 32 ADVANCE 16 0 0 430 33 RELEASE 16 0 0 440 34 TERMINATE 16 0 0 450 35 GENERATE 1 0 0 460 36 TERMINATE 1 0 0 FACILITY ENTRIES UTIL. AVE._TIME AVAILABLE OWNER PEND INTER RETRY DELAY A1 39 0.479 5.90 1 0 0 0 0 0 A2 27 0.918 16.33 1 29 0 0 0 11 A3 34 0.877 12.38 1 40 0 0 0 0 QUEUE MAX CONT. ENTRIES ENTRIES(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY AA1 1 0 39 32 0.03 0.41 2.29 0 AA2 12 11 38 1 5.08 64.16 65.89 0 AA3 2 0 34 10 0.28 3.97 5.63 0
Распечатка выходных данных для моделирования
работы участка цеха в течение рабочей недели.
GPSS/PC Report file REPORT.GPS. (V 2, # 39560) 03-03-1999 11:27:02 page 1 START_TIME END_TIME BLOCKS FACILITIES STORAGES FREE_MEMORY 0 2400 36 3 0 7056 FACILITY ENTRIES UTIL. AVE._TIME AVAILABLE OWNER PEND INTER RETRY DELAY A1 199 0.522 6.31 1 0 0 0 0 0 A2 139 0.983 16.99 1 142 0 0 0 59 A3 174 0.955 13.18 1 139 0 0 0 1 QUEUE MAX CONT. ENTRIES ENTRIES(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY AA1 1 0 199 155 0.06 0.74 3.36 0 AA2 59 59 198 1 29.26 354.67 356.47 0 AA3 3 1 175 23 0.88 12.06 13.89 0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Общее число обработанных деталей в течение 8 часов
равно 40, в течение рабочей недели - 142. Эти данные могут служить основанием
для расчета необходимого размера склада готовой продукции. Из результатов
моделирования можно сделать вывод, что первый станок А1 загружен на 50%.
Перегружен станок А2 (об этом говорит средний процент использования 98%
и длина очереди - 59).
Станок А3 загружен оптимально.
Для повышения эффективности работы данного
участка цеха при данном потоке деталей можно использовать два станка А2.
Для проверки данного предположения надо внести в программу модели изменения.
; GPSS/PC Program File EX2. (V 2, # 39560) 03-03-1999 12:51:15 100 SIMULATE 105 A2 STORAGE 2 Второй станок моделируется как накопитель 110 GENERATE 30,5 120 QUEUE AA1 130 SEIZE A1 140 DEPART AA1 150 ADVANCE 5,2 160 RELEASE A1 170 QUEUE AA2 180 ENTER A2 190 DEPART AA2 200 ADVANCE 20,4 210 LEAVE A2 220 QUEUE AA3 230 SEIZE A3 240 DEPART AA3 250 ADVANCE 10,3 260 RELEASE A3 270 TERMINATE 280 GENERATE 20,5 290 QUEUE AA1 300 SEIZE A1 310 DEPART AA1 320 ADVANCE 7,3 330 RELEASE A1 340 QUEUE AA3 350 SEIZE A3 360 DEPART AA3 370 ADVANCE 15,5 380 RELEASE A3 390 QUEUE AA2 400 ENTER A2 410 DEPART AA2 420 ADVANCE 15,5 430 LEAVE A2 440 TERMINATE 450 GENERATE 2400 460 TERMINATE 1Распечатка выходных данных для моделирования работы участка цеха в течение рабочего дня.
GPSS/PC Report file REPORT.GPS. (V 2, # 39560) 03-03-1999 12:48:55 page 1 START_TIME END_TIME BLOCKS FACILITIES STORAGES FREE_MEMORY 0 480 36 2 1 13888 FACILITY ENTRIES UTIL. AVE._TIME AVAILABLE OWNER PEND INTER RETRY DELAY A1 39 0.462 5.69 1 40 0 0 0 0 A3 35 0.927 12.71 1 38 0 0 0 3 QUEUE MAX CONT. ENTRIES ENTRIES(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY AA1 1 0 39 27 0.08 0.95 3.08 0 AA2 1 0 36 31 0.04 0.58 4.20 0 AA3 3 3 38 3 1.38 17.47 18.97 0 STORAGE CAP. REMAIN. MIN. MAX. ENTRIES AVL. AVE.C. UTIL. RETRY DELAY A2 2 1 0 2 36 1 1.30 0.649 0 0Распечатка выходных данных для моделирования работы участка цеха в течение рабочей недели.
GPSS/PC Report file REPORT.GPS. (V 2, # 39560) 03-03-1999 12:53:35 page 1 START_TIME END_TIME BLOCKS FACILITIES STORAGES FREE_MEMORY 0 2400 36 2 1 12896 FACILITY ENTRIES UTIL. AVE._TIME AVAILABLE OWNER PEND INTER RETRY DELAY A1 200 0.509 6.11 1 201 0 0 0 0 A3 184 0.985 12.85 1 186 0 0 0 14 QUEUE MAX CONT. ENTRIES ENTRIES(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY AA1 1 0 200 155 0.07 0.78 3.49 0 AA2 1 0 190 170 0.03 0.37 3.50 0 AA3 16 14 198 3 7.49 90.79 92.19 0 STORAGE CAP. REMAIN. MIN. MAX. ENTRIES AVL. AVE.C. UTIL. RETRY DELAY A2 2 1 0 2 190 1 1.34 0.672 0 0По результатам данного варианта моделирования можно сделать вывод: использование двух станков А2 позволило ликвидировать очередь к данному станку, снизив среднюю загрузку станков А2 до 67% (чего и следовало ожидать). Но при этом перераспределилась нагрузка на станок А3: при средней нагрузке в 99% максимальная очередь на обработку станком А3 возрасла до 16. Можно продолжить моделирование с целью определения оптимальной структуры участка цеха при заданном потоке деталей.