Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
~Экзамен~ / 2002_Лекции.doc
Скачиваний:
27
Добавлен:
19.04.2013
Размер:
370.18 Кб
Скачать

Унифицированный имитационный блок.

УИБ – замкнутая система многоканального массового обслуживания, с помощью которой можно генерировать времена выполнения отдельных изделий. Значит, в данной модели имеется несколько обслуживающих элементов (Wait), которые регулируют выполнение на них нескольких технологических маршрутов. Технологический маршрут – последовательность технологических операций, причем технологическая операция характеризуется временем выполнения и тем обслуживающим элементом, на котором она выполняется.

Указанная модель программы разбирается на примере обработки на станках двух изделий. Причем имеется один станок 1-го типа и два станка 2-го типа. Имеется возможность расширения количества станков и видов изделий.

Тип станка

1

2

1

1

2

10

Длит тех операц

3

7

2

4

7

-

Тип станка

1

1

2

2

1

10

Длит тех операц

4

2

5

6

4

-

Программа:

# Станок первого типа.

L С11.н=wait(OC22.ПН)

# СТАНОК №1 ВОТРОГО ТИПА

L C21.H=WAIT(OC21.ПН)

# СТАНОК №2 ВТОРОГО ТИПА

L C22.H=WAIT(OC22.ПН)

# ОЧЕРЕДЬ НОМЕРА ИЗДЕЛИЯ НА СТАНКЕ ПРВОГО ТИПА

L OH11.H=FIFO(И11.ПН, ХИ11.ПН, С11.Н, 1,5)

# ОЧЕРЕДЬ НОМЕРА ИЗДЕЛИЯ НА СТАНКЕ 1 ВТОРОГО ТИПА.

L OH21.H=FIFO(И21.ПН, ХИ21.ПН, С21.Н, 1,6)

# ОЧЕРЕДЬ НОМЕРА ИЗДЕЛИЯ НА СТАНКЕ 2 ВТОРОГО ТИПА.

L OH22.H=FIFO(И22.ПН, ХИ22.ПН, С22.Н, 1,7)

На данной диаграмме потока обслуживающим элементом является С11, который открывает по выходу темп ОС11, где хранится длительность очередной технологической операции. Призванный хранить номер изделия, технологическая операция из которого в текущий момент имитируется с помощью С11. Чтобы исключить "наползание" двух информаций, С11 сначала открывает ОИ11 по выходу "очищая" уровень, потом, с задержкой на 1 шаг через темп ХИ11 открываем по входу уровень 11-FIFO и на ОИ11 поступает номер изделия

# переменная, характеризующая проверку запроса

D СИ111.Н=ОН11.Н-1

D СИ112.Н=ОН11.Н-2

D СИ211.Н=ОН21.Н-1

D СИ212.Н=ОН21.Н-2

D СИ221.Н=ОН22.Н-1

D СИ222.Н=ОН22.Н-2

# НОМЕР ИЗДЕЛИЯ ПО ЗАПРОСУ СТАНКА

D НИ111.Н=SWITCH(1,0,СИ111.Н)

D НИ112.Н=SWITCH(1,0,СИ112.Н)

D НИ211.Н=SWITCH(1,0,СИ211.Н)

D НИ212.Н=SWITCH(1,0,СИ212.Н)

D НИ221.Н=SWITCH(1,0,СИ221.Н)

D НИ222.Н=SWITCH(1,0,СИ222.Н)

Указанная схема характеризует дешифратор числового значения номера изделия в сигнал, указывающий, со станка какого типа, какого номера и какого изделия пришел соответствующий сигнал по И. НИ212 соответствует тому, что сигнал на дешифрацию пришел со станка 2-го типа, 1-го станка, 2-го изделия.

___________________________________________________________________________________

26.02.2002

Блок "анализатор номера изделия" давал на м на выходе дешифратора анализ, с какого технологического маршрута была взята технологическая операция только что выполненного станком определенного типа. Ясно, что следующая операция должна быть взята из того же технологического маршрута. Для этого в данной модели используется оператор Quant для которого известно, что выбор из массива, задаваемого аргументом1 осуществляется, когда аргумент2 равен 0. Процесс зациклен. Поэтому извне надо задать запуск. Тогда из технологического маршрута нужно выбрать номер станка, на котором будет выполняться очередная операция и ее тип.

{init}

# сценарий запуска изделий

С зап1(1:3)=fillarr(1,0,0)

С зап2(1:3)=fillarr(0,1,0)

# Первый технологический маршрут.

# Станки технологического цикла.

С СТЦ1(1:6)=FILLARR(1,2,1,1,2,10)

# Длительность технологического маршрута.

С ДТЦ1(1:6)=FILLARR(3,7,2,4,7,0)

# Второй технологический маршрут

С СТЦ2(1:6)=FILLARR(1,1,2,2,1,10)

С СТЦ2(1:6)=FILLARR(4,2,5,6,4,0)

{model}

# текущее разрешение на выбор очередных операций по изделиям.

D ТРИ1.Н=1-(НИ111.Н+НИ211.Н+НИ221.Н)

D ТРИ1.Н=1-(НИ112.Н+НИ212.Н+НИ222.Н)

! В скобках только один шаг может появиться единица.

# автономный запуск изделий

D АЗИ1.Н=TABLE(ЗАП1(1:3), TIME,1,1)

D АЗИ1.Н=TABLE(ЗАП1(1:3), TIME,1,1)

Так как в модели не предусмотрена одновременная обработка операций на станках 1-го типа (всего 1 станок), то первое изделие запускается в 1-й момент, а 2-е – в следующий.

# Разрешение на выбор очередной операции по изделию.

D РИ1.Н=ТРИ1-АЗИ1.Н

D РИ2.Н=ТРИ2-АЗИ2.Н

В момент запуска изделия ТРИ1 и ТРИ2 равны 1, т.к. скобки, а АЗИ тоже равно 1 значит РИ равно 0.

# Номер станка для текущей операции по изделию.

D НСИ1.Н=QUANT(СТЦ1(1:6), РИ1.Н)

D НСИ2.Н=QUANT(СТЦ2(1:6), РИ2.Н)

# Длительность отдельных работ по изделию.

D ДР1.Н=QUANT(ДТЦ1(1:6), РИ1.Н)

D ДР2.Н=QUANT(ДТЦ2(1:6), РИ2.Н)

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

# Проверка окончания маршрута.

D ПОМ1.Н=НСН1.Н-10

D ПОМ2.Н=НСН2.Н-10

# Маршрут окончен.

D МО1.Н=SWITCH(0,1,ПОМ1.Н)

D МО2.Н=SWITCH(0,1,ПОМ2.Н)

# КЛЮЧ ПО ВХОДУ

D КВХ1.Н=1-АЗИ1.Н

D КВХ2.Н=1-АЗИ2.Н

# окончание маршрута.

D ОМ1.Н=FIFO(TIME, КВХ1.Н,МО1.Н,20,10)

D ОМ2.Н=FIFO(TIME, КВХ2.Н,МО2.Н,20,10)

# Длительность маршрута.

D ОМ1.Н=FIFO(TIME-ОМ1.Н)*SWITCH(0,1,ОМ1.Н)

D ОМ2.Н=FIFO(TIME-ОМ2.Н)*SWITCH(0,1,ОМ2.Н)

Как только НСИ становится равна 0. Ключ по входу становится равным 0 в момент запуска изделия1 и изделия2. Соответственно, окончание маршрута есть очередь, в котором в момент запуска при открытом ключе КВХ записывается время запуска, а когда МО становится равным 0, время запуска присваивается равным ОМ, и длительность равняется текущему времени – ОМ.

# переменные проверки номера станка

D ПС11.Н=НСП1.Н-1

D ПС21.Н=ПС11.Н-1

D ПС12.Н=НСП2.Н-1

D ПС22.Н=ПС12.Н-1

# номер станка (первый индекс – номер станка, второй – тип изделия)

D НС11.Н=SWITCH(0,1,ПС11.Н)

D НС21.Н=SWITCH(0,1,ПС21.Н)

D НС12.Н=SWITCH(0,1,ПС12.Н)

D НС22.Н=SWITCH(0,1,ПС22.Н)

Последний блок – соединительно-распределительный, выполняемый через многоканальные СМО, при этом в fifo1 записывается длительности выполнения операций на станке1. В fifo2 – номер изделия, из которого взята операция, выполняемая на станке n1. Fifo 4 – массив номера изделия, в котором хранится Fifo1и fifo3, работают как темпы на станках с21, с22 fifo2 и fifo4 работают на уровне ОИ. Темпы служат для временной задержки обработки уровней ОИ.

# переменные, служащие для занесения заявки.

D ДРС11.Н=FIFO(ДРИ1.Н, НС11.Н,1,2,1)

D ДРС12.Н=FIFO(ДРИ2.Н, НС12.Н,1,2,1)

D ДРС21.Н=FIFO(ДРИ1.Н, НС21.Н,1,2,3)

D ДРС22.Н=FIFO(ДРИ2.Н, НС22.Н,1,2,3)

# ПЕРЕМЕННАЯ, Соответствующая номеру станка.

D ИОС11.Н=FIFO(И1.Н, ИС11.Н,1,2,2)

D ИОС12.Н=FIFO(И2.Н, ИС12.Н,1,2,2)

D ИОС21.Н=FIFO(И1.Н, ИС21.Н,1,2,4)

D ИОС22.Н=FIFO(И2.Н, ИС22.Н,1,2,4)

# Очередь на станок определенного типа

T ОС11.НБ=FIFO(0,1,С11.Н,2,1)

T ОС21.НБ=FIFO(0,1,С21.Н,2,3)

T ОС22.НБ=FIFO(0,1,С22.Н,2,3)

# НОМЕР ИЗДЕЛИЯ

T И11.НБ=FIFO(0,1,С11.Н,2,2)

T И21.НБ=FIFO(0,1,С21.Н,2,4)

T И22.НБ=FIFO(0,1,С22.Н,2,4)

# ВЫХОД СООТВЕТСТВУЮЩЕГО ИЗДЕЛИЯ НА СТАНОК

Т ХИ11.НБ=С11.Н

Т ХИ21.НБ=С21.Н

Т ХИ22.НБ=С22.Н

05.03.2002

Соседние файлы в папке ~Экзамен~