Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Базовая модель производственного модуляСодержание книги Поиск на нашем сайте 3. ОСНОВНЫЕ ОБЪЕКТЫ GPSS В данном разделе рассмотрены основные блоки системы GPSS [6, 7]. Работа блоков системы, методы построения моделей и организация экспериментов с ними показана на ряде конкретных примеров. Все блоки GPSS определяются наименованием типа блока и операндами А, В, С, Д, Е, задающими выполняемые функции. Кроме того, каждый блок может иметь символический адрес, записываемый в поле метки блока. Поле метки расположено со 2 по 5 позиции экрана, поле операции (наименование блока) с 8 по 18, поле операндов с 19 позиции и до первого пробела в тексте. Комментарии, как правило, размещаются после 31 позиции.
3.1. Блок generate
generate – блок, через который транзакты могут быть введены в модель. Операнд «А» блока определяет среднее время между последовательными приходами транзактов. Операнд «В» задает половину поля допуска интервалов времени. Таким образом, блок generate 60,50 задает последовательность ввода транзактов с интервалами 60 ± 50 единиц модельного времени. Действительное время ввода транзакта в модель планируется интерпретатором GPSS путем розыгрыша случайного числа в соответствии с заданным распределением вероятности появления интервалов. Следует отметить, что задание временных интервалов таким образом предполагает равномерное распределение точек внутри поля допуска. Для получения более сложных зависимостей (распределения Пуассона, экспоненциального распределения и др.) необходимо в качестве операндов использовать специальную функцию. Кроме рассмотренных операндов «А» и «В» у блока generate имеются следующие возможности: операнд «С» – устанавливает «начальный интервал» – момент времени прихода первого транзакта; операнд «Д» – ограничитель максимального числа создаваемых транзактов; операнд «Е» – уровень приоритета транзактов создаваемых в данном блоке. При кодировании блоков операнды разделяется запятыми. Например: generate 100,23,40,10,3 Данный блок создает транзакты в интервалы модельного времени 100 ± 20 единиц. Первый транзакт этой последовательности будет введен в момент соответствующий 40 единицам модельного времени. Всего будет создано 10 транзактов с приоритетом равным 3. При необходимости ряд параметров может быть опущен. Разделительные запятые при этом сохраняются. Считывание операндов любого блока ведется до первого пробела. Например: generate , , ,5 Данный блок сразу же по началу моделирования создает 5 транзактов и вводит их в модель.
3.2. Блок terminate
terminate – блок, удаляющий транзакты из модели. Блоки terminate всегда позволяют выйти из модели всем транзактам, которые пытаются это сделать. В модели может содержаться любое количество блоков terminate . Блок terminate может иметь операнд «А» как правило равный 1. Операнд «А» является указателем уменьшения счетчика завершений модели. При достижении содержимым счетчика нуля моделирование задерживается. Блок terminate, не имеющий операнда «А», содержимое счетчика завершений не изменяет. Число блоков terminate в модели может быть любым, однако счетчик завершений только один. Начальное значение его задается картой start, в операнд «А» которой заносится число завершений. Например: Вариант 1 generate 3600 terminate 1 start 1
Вариант 2 generate 360 terminatE 1 start 10
Обе последовательности блоков останавливают модель в момент времени 3600 единиц. При этом первая реализует приход транзакта-таймера через 3600, а вторая отсчитывает 10 таких транзактов с интервалом в 360. 3.3. Блок advance
Блок advance существует для реализации задержки транзактов во времени. Информация, необходимая для описания соответствующего времени обслуживания задается операндами «А» и «В». Как и в блоке generate операнд «А» определяет среднее время задержки транзакта, а операнд «В» – половину поля допуска интервалов времени задержки. Блоки advance могут размещаться в любом месте модели, где необходимо организовать временную задержку. Вычисленный интервал задержки может быть любым положительным числом, в том числе и нулем.
3.4. Блоки seize и release
Организация обслуживания на одноканальном обслуживающем аппарате моделируется блоками seize (занять) и release (освободить). Пара этих блоков реализует следующие действия: ожидание в очереди на обслуживании, если это необходимо; занятие обслуживающего аппарата, когда подходит очередь; сохранение состояния занятости обслуживающего аппарата в течение времени обслуживания; освобождение обслуживающего аппарата по окончании обслуживания. Идентификация используемых в модели обслуживающих аппаратов производится по символическому имени. Все символические имена в GPSS/PC должны содержать от трех до пяти символов, причем первые три символа обязательно должны быть буквенными.
Например: seize tst11
Данный блок реализует занятие транзактом устройства с именем tst11. При использовании в модели блоков seize, release необходимо учитывать, что транзакт, пытающийся освободить данное устройство, должен был первоначально занять его. При несоблюдении этого выдается сообщение об ошибке. При использовании этих блоков в модели происходит автоматический сбор статистики о работе моделируемого обслуживающего аппарата.
3.5. Блоки queue и depart
Блоки queue и depart (встать в очередь и покинуть очередь) обеспечивают в модели возможность автоматического сбора данных, описывающих вынужденное ожидание, которое может происходить в различных точках модели. Операнд «А» блоков содержит имя конкретной очереди. Применение блоков queue и depart не является обязательным для всех случаев возникновения очередей в модели, оно необходимо лишь для сбора статистики о той или иной очереди. Теперь, когда мы познакомились с некоторыми блоками системы моделирования GPSS/PC, рассмотрим конкретный пример, поясняющий их работу. 3.6. Пример 1. Модель простейшего производственного модуля
Построить модель производственного модуля, работающего следующим образом. Заготовки с предыдущей операции поступают с интервалами времени 60 ± 50 с. Загрузка модуля осуществляется специальным роботом, время загрузки составляет 10 ± 5 с. Время обработки на станке 60 ± 10 с. Удаление готовой детали происходит автоматически по окончании обработки, без участия робота. Необходимо промоделировать работу производственного модуля в течение 8 часов модельного времени, оценить коэффициенты загрузки оборудования, определить число обработанных за это время деталей, исследовать возможность возникновения очереди на входе модуля. Блок-схема моделирующей программы представлена на рис.3.1. Транзакты-заготовки вводятся в модель блоком generate с параметрами 60, 50. Поскольку необходимо исследовать возникновение очереди на входе обрабатывающего модуля, используем блок queue с именем mod1. Занятие транзактами загрузочного робота моделируется использованием блока seize zrm1. После занятия робота транзакт покидает очередь (блок depart) и задерживается на время операции загрузки в блоке advance 10, 5. Событие занятия станка опережает событие освобождения загрузочного робота. Этим реализуется следующая дисциплина обслуживания – загрузка очередной заготовки не должна начинаться раньше, чем предыдущая деталь покинет станок. Время обработки на станке моделируется блоком advance 60, 10. После этого моделируется событие освобождения станка и транзакт-деталь выводится из модели блоком terminate . Для задания времени моделирования используется второй сегмент модели – таймер. Он состоит из блока generate, создающего транзакт-таймер в момент времени 28800 с и блока terminate с операндом «А» = 1. Счетчик завершений задается равным «1» картой start. Распечатка текста моделирующей программы приведена на рис. 3.2. Результаты моделирования представлены на рис.3.3. Выходные данные [8] начинается результатами модельного времени и накопленной статистикой по списку блоков модели. Так, например, в блок №8 на момент окончания моделирования вошло 477 транзактов, причем один из них находился в это время на обработке, о чем свидетельствует текущее содержимое блока №8 равное 1. По статистике списка блоков можно определить количество изготовленных деталей, оно составило 476 штук. Всего за время моделирования было введено 485 заготовок. Одна из них находится в очереди на обслуживание, одна на обработке и одна – в схвате робота ожидает установки на станок.
Рис. 3.1. Блок-схема моделирующей программы ; GPSS/PC Program File TEST.GPS. (V 2, # 37349) 10-03-2002 11:18:46 10 * 20 * МОДЕЛЬ ПРОИЗВОДСТВЕННОГО МОДУЛЯ 30 * 40 * ПЕРВЫЙ СЕГМЕНТ МОДЕЛИ 50 * ДВИЖЕНИЕ ЗАГОТОВОК 60 * 70 GENERATE 60,50 ;ВВОД ЗАГОТОВКИ 80 QUEUE MOD1 ;ОЧЕРЕДЬ 90 SEIZE ZRM1 ;ЗАНЯТЬ РОБОТ 100 DEPART MOD1 ;ВЫХОД ИЗ ОЧЕРЕДИ 110 ADVANCE 10,5 ;ЗАГРУЗКА 120 SEIZE TST1 ;Занять станок 130 RELEASE ZRM1 ;Освободить робот 140 ADVANCE 60,10 ;Обработка ЗАГОТОВКИ 150 RELEASE TST1 ;Освободить станок 160 TERMINATE ;Вывод из модели 170 * 180 * ВТОРОЙ СЕГМЕНТ МОДЕЛИ 190 * ТАЙМЕР 200 * 210 GENERATE 28800 ;ВРЕМЯ МОДЕЛИРОВАНИЯ 220 TERMINATE 1 ;8 ЧАСОВ 230 * 240 * CONTROL CARDS 250 * 260 START 1
Рис. 3.2. Текст моделирующей программы
GPSS/PC Report file REPORT.GPS. (V 2, # 37349) 10-14-2002 11:46:02 page 1
START_TIME END_TIME BLOCKS FACILITIES STORAGES FREE_MEMORY 0 28800 11 2 0 278400
LINE LOC BLOCK_TYPE ENTRY_COUNT CURRENT_COUNT RETRY 70 1 GENERATE 485 0 0 80 2 QUEUE 485 7 0 90 3 SEIZE 478 0 0 100 4 DEPART 478 0 0 110 5 ADVANCE 478 1 0 120 6 SEIZE 477 0 0 130 7 RELEASE 477 0 0 140 8 ADVANCE 477 1 0 150 9 RELEASE 476 0 0 160 10 TERMINATE 476 0 0 210 11 GENERATE 1 0 0 220 12 TERMINATE 1 0 0
FACILITY ENTRIES UTIL. AVE._TIME AVAILABLE OWNER PEND INTER RETRY DELAY ZRM1 478 0.947 57.12 1 479 0 0 0 7 TST1 477 0.987 59.63 1 478 0 0 0 0
QUEUE MAX CONT. ENTRIES ENTRIES(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY MOD1 12 7 485 36 4.77 283.53 306.26 0
Рис. 3.3. Результаты моделирования Статистика по обслуживающим аппаратам содержит имя аппарата, количество обработанных деталей, среднее время обслуживания транзакта и коэффициенты использования. Так для загрузочного робота (zrm1) число обслуженных транзактов-деталей составило 478 штук, среднее время обслуживания 57,12 с, коэффициент загрузки 94,7%. Аналогично для станка: 477, 59,63 и 98,7%. Выходная статистика об очередях содержит имя очереди mod1; максимальное содержимое – 12 деталей; среднее содержимое – 4,77 штуки; число входов в очередь – 485 раз; из них с нулевым временем ожидания – 36 штук. Среднее время нахождения в очереди (время пролеживания заготовок) составило 283,53 с. То же без учета нулевых входов в очередь – 306,26 с. Текущее содержимое очереди – 7 заготовок. Полученная статистика позволяет сделать следующие выводы о работе модуля. При данных интервалах обработки модуль справляется с поступающим потоком заготовок. Величина очереди за 8 часов работы не превысила 12 заготовок, следовательно емкость промежуточного накопителя может быть выбрана равной 12–13 штук заготовок. Коэффициенты загрузки оборудования достаточно высоки, однако увеличение времени обслуживания загрузочным роботом говорит о задержках заготовок на этой стадии.
В примере 1 была рассмотрена простейшая модель производственного модуля. Ее основные недостатки – малая адекватность и невозможность использования для исследования реальных производственных объектов. Первым рассмотренным способом ввода транзактов в модель является использование блоков generate. Существует также второй способ ввода транзактов. Этот метод требует использования блока split (расщепить).
4.1. Блок split
Как только транзакт, уже находящийся в модели, входит в блок split, происходит ввод в модель нескольких дополнительных транзактов. Число дополнительных транзактов задается операндом «А». Транзакт-родитель из блока split переходит в очередной последующий блок. Вновь созданные транзакты переходят к блоку, символическая метка которого записана в операнде «В».
Например: split 9, met1
Данный блок создает дополнительно 9 транзактов и направляет их в блок с меткой met1. 4.2. Блоки link и unlink
При использовании в модели блока расщепление поступившей партии на отдельные заготовки возникает необходимость моделирования накопителя. Использование очередей для этой цели неудобно, так как транзакты во время ожидания в очереди находятся в активном состоянии и сильно замедляют процесс моделирования, поэтому удобнее воспользоваться для этой цели так называемыми «цепочками пользователя» (ЦП). При помещении в ЦП транзакты удаляется из списка активных событий и сохраняются в пассивном режиме до момента обращения к ним. Цепочка пользователя однозначно определяется парой блоков link (поместить в ЦП) и unlink (удалить из ЦП). Операнд «А» блока link содержит имя ЦП, операнд «В» – порядок формирования очереди, в операнде «С» может быть задана метка перехода.
Например: link bxp1,fifo,next1
Все транзакты, попадающие в блок link, помещаются в цепочку пользователя с именем bxp1. Порядок формирования очереди: fifo – первый пришел, первый обслужен. Возможны и другие способы построения очереди, например, lifo – последний пришел, первый обслужен. Данный способ можно использовать при моделировании складывания заготовок одна на другую. Операнд «С» – next1 задает следующий режим работы: при входе в «пустую» ЦП транзакт, минуя ее, направляется к блоку с указанной в операнде «С» меткой. Вывод транзактов из ЦП осуществляется при помощи блока unlink. Операнды блока задают: «А» – имя ЦП, «В» – метку блока, в которой следует поместить удаляемый транзакт, «С» – количество удаляемых на ЦП транзактов.
4.3. Блок assemble
Блок assemble (собрать) позволяет организовать сбор готовых деталей в транспортные партии. Операнд «А» содержит число собираемых в партию транзактов. На выходе блока assemble формируется один транзакт-партия. При этом необходимо учитывать, что если транзакты создавались блоком split, то операнд «А» блока assemble должен быть равен операнду «А»+1 блока split или меньше и кратен ему.
4.4. Пример 2. Модель обрабатывающего производственного модуля с накопителем и транспортными партиями
Необходимо построить модель обрабатывающего производственного модуля. Заготовки на обработку поступают партиями по 10 штук с интервалом 1 ± 0,5 часа и помещаются в ориентирующий накопитель кассетного типа. Время загрузки – выгрузки составляет 25 ± 10 с. Время обработки 6 ± 1 мин. Промоделировать работу модуля в течение 8 часов. Исследовать возможность сокращения времени обработки до 5 ± 2 мин. Провести прогон модели в установившемся режиме с ненулевыми условиями. Блок-схема модели приведена на рис. 4.1. Ввод партий заготовок осуществляется блоком generate. Затем происходит разделение на отдельные заготовки. В блоке split создаются 9 транзактов-копий, которые вместе с исходным транзактом вводятся блоком link в цепочку пользователя с именем bxp1. Первый транзакт из партии переходит на обработку в блок с меткой next1. Последовательность загрузки, обработки, выгрузки реализована с помощью соответствующих блоков seize, advance, release . К моменту освобождения робота после операции выгрузки необходимо подготовить для загрузки очередную заготовку. Вывод заготовки-транзакта из накопителя – ЦП осуществляется блоком unlink, который играет роль защелки на выходе накопителя. Полная распечатка текста моделирующей программы приведена на рис. 4.2. Рассмотрим использующиеся управляющие карты, первой картой start 1 осуществляется первый прогон модели и вывод выходной статистики. Карта clear возвращает модель в исходное состояние. Для исследования изменения времени обработки заготовки, воспользуемся средством переопределения блоков. Блок advance с меткой met1 повторно записывается с новыми значениями операндов «А» и «В» после карты clear. Повторный запуск модели осуществляется очередной картой start. Для получения статистики о работе в установившемся режиме, необходимо исключить влияние переходного процесса. Для этой цели используется карта reset. Она сбрасывает всю накопленную статистику, оставляя модель в том состоянии, в котором она была остановлена. Таким образом, третий прогон модели осуществляется с начальных условий соответствующих установившемуся режиму работы. Результаты моделирования приведены на рис. 4.3–4.5. Уменьшение времени обработки привело к увеличению числа обработанных деталей, снижению времени пролеживания, уменьшению среднего и максимального содержимого накопителя. Результаты прогона в установившемся режиме показывают более высокие значения коэффициента использования оборудования и увеличение выхода готовых деталей (с 69 до 72 штук). Данная модель может служить в качестве базовой при исследовании различных режимов работы модуля, так как позволяет использовать различные дополнительные подпрограммы. Так, например, на рис. 4.6 приведена блок-схема модели производственного модуля с учетом сбора готовых деталей в транспортные партии по 25 штук. Для этой цели используется блок assemble .
Рис. 4.1. Блок-схема модели
; GPSS/PC Program File TEST.GPS. (V 2, # 37349) 10-03-2002 11:18:46 10 * 20 * ЛАБОРАТОРНАЯ РАБОТА № 2 30 * ИССЛЕДОВАНИЕ РАБОТЫ ПРОИЗВОДСТВЕННОГО МОДУЛЯ 40 * 50 * ВЫПОЛНИЛ:........... 60 * ГРУППА:............. 70 * ПРИНЯЛ:............. 80 * 90 GENERATE 3600,1800 ;Ввод транзакта – заготовки 100 SPLIT 9,BXP1 ;Разделение на заготовки 110 BXP1 LINK BXP1,FIFO,NEXT1 ;накопитель 120 NEXT1 SEIZE ZRM1 ;Занять робот 130 ADVANCE 25,10 ;Загрузка 140 SEIZE TST1 ;Занять станок 150 RELEASE ZRM1 ;Освободить робот 160 MET1 ADVANCE 360,60 ;Обработка ДЕТАЛИ 170 SEIZE ZRM1 ;Занять робот 180 RELEASE TST1 ;Освободить станок 190 ADVANCE 25,10 ;Выгрузка 200 UNLINK BXP1,NEXT1,1 ;Подготовить деталь 210 RELEASE ZRM1 ;Освободить робот 220 TERMINATE ;Вывод из модели 230 * 240 * ВТОРОЙ СЕГМЕНТ МОДЕЛИ 250 * ТАЙМЕР 260 * 270 GENERATE 28800 ;ЗАВЕРШЕНИЕ МОДЕЛИРОВАНИЯ 280 TERMINATE 1 ;ЧЕРЕЗ 8 ЧАСОВ 290 * 300 * CONTROL CARDS 310 * 320 START 1 ;1 ПРОГОН МОДЕЛИ 330 CLEAR ;УСТАНОВКА В ИСХОДНОЕ СОСТОЯНИЕ 340 MET1 ADVANCE 300,120 ;ПЕРЕОПРЕДЕЛЕНИЕ БЛОКОВ 350 START 1 ;2 ПРОГОН МОДЕЛИ 360 RESET ;СБРОС СТАТИСТИКИ 370 START 1 ;3 ПРОГОН МОДЕЛИ
Рис. 4.2. Текст моделирующей программы START_TIME END_TIME BLOCKS FACILITIES STORAGES FREE_MEMORY 0 28800 15 2 0 277888
LINE LOC BLOCK_TYPE ENTRY_COUNT CURRENT_COUNT RETRY 90 1 GENERATE 7 0 0 100 2 SPLIT 7 0 0 110 BXP1 LINK 70 10 0 120 NEXT1 SEIZE 60 0 0 130 5 ADVANCE 60 0 0 140 6 SEIZE 60 0 0 150 7 RELEASE 60 0 0 160 MET1 ADVANCE 60 1 0 170 9 SEIZE 59 0 0 180 10 RELEASE 59 0 0 190 11 ADVANCE 59 0 0 200 12 UNLINK 59 0 0 210 13 RELEASE 59 0 0 220 14 TERMINATE 59 0 0 270 15 GENERATE 1 0 0 280 16 TERMINATE 1 0 0
FACILITY ENTRIES UTIL. AVE._TIME AVAILABLE OWNER PEND INTER RETRY DELAY ZRM1 119 0.104 25.19 1 0 0 0 0 0 TST1 60 0.740 355.27 1 62 0 0 0 0
USER_CHAIN CHAIN_SIZE RETRY AVE.CONT ENTRIES MAX AVE.TIME 3 10 0 6.94 69 17 2897.46
Рис. 4.3
START_TIME END_TIME BLOCKS FACILITIES STORAGES FREE_MEMORY 0 28800 15 2 0 327712
LINE LOC BLOCK_TYPE ENTRY_COUNT CURRENT_COUNT RETRY 90 1 GENERATE 7 0 0 100 2 SPLIT 7 0 0 110 BXP1 LINK 70 0 0 120 NEXT1 SEIZE 70 0 0 130 5 ADVANCE 70 0 0 140 6 SEIZE 70 0 0 150 7 RELEASE 70 0 0 160 8 ADVANCE 70 1 0 170 9 SEIZE 69 0 0 180 10 RELEASE 69 0 0 190 11 ADVANCE 69 0 0 200 12 UNLINK 69 0 0 210 13 RELEASE 69 0 0 220 14 TERMINATE 69 0 0 270 15 GENERATE 1 0 0 280 16 TERMINATE 1 0 0 340 MET1 ADVANCE 0 0 0
FACILITY ENTRIES UTIL. AVE._TIME AVAILABLE OWNER PEND INTER RETRY DELAY ZRM1 139 0.122 25.38 1 0 0 0 0 0 TST1 70 0.713 293.64 1 72 0 0 0 0
USER_CHAIN CHAIN_SIZE RETRY AVE.CONT ENTRIES MAX AVE.TIME 3 0 0 5.73 68 17 3260.90
Рис. 4.4 START_TIME END_TIME BLOCKS FACILITIES STORAGES FREE_MEMORY 29180 57600 15 2 0 327376
LINE LOC BLOCK_TYPE ENTRY_COUNT CURRENT_COUNT RETRY 90 1 GENERATE 8 0 0 100 2 SPLIT 8 0 0 110 BXP1 LINK 80 8 0 120 NEXT1 SEIZE 72 0 0 130 5 ADVANCE 72 0 0 140 6 SEIZE 72 0 0 150 7 RELEASE 72 0 0 160 8 ADVANCE 73 1 0 170 9 SEIZE 72 0 0 180 10 RELEASE 72 0 0 190 11 ADVANCE 72 0 0 200 12 UNLINK 72 0 0 210 13 RELEASE 72 0 0 220 14 TERMINATE 72 0 0 270 15 GENERATE 1 0 0 280 16 TERMINATE 1 0 0 340 MET1 ADVANCE 0 0 0
FACILITY ENTRIES UTIL. AVE._TIME AVAILABLE OWNER PEND INTER RETRY DELAY ZRM1 144 0.123 24.29 1 0 0 0 0 0 TST1 73 0.786 306.34 1 145 0 0 0 0
USER_CHAIN CHAIN_SIZE RETRY AVE.CONT ENTRIES MAX AVE.TIME 3 8 0 5.38 75 14 2040.15
Рис. 4.5
|
||
|
Последнее изменение этой страницы: 2024-06-17; просмотров: 81; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.01 с.) |