Блок ASSEMBLE
используется для объединения определенного числа транзактов, являющихся членами
одного ансамбля. Число объединяемых ансамблей указывается в поле А. Транзакты,
принадлежащие одному ансамблю, будут задерживаться в блоке ASSEMBLE до тех пор,
пока не поступит заданное число транзактов этого ансамбля. В результате на выходе
блока появляется один (первый) транзакт ансамбля, а остальные транзакты уничтожаются.
В одном блоке ASSEMBLE могут накапливаться транзакты разных ансамблей, транзакты
одного ансамбля могут накапливаться в разных блоках ASSEMBLE. Если число
собираемых членов ансамбля задается с помощью косвенной адресации, то для его
установления используется параметр первого пришедшего транзакта. Рассмотрим
примеры использования блока ASSEMBLE:
ASSEMBLE 5
(т, е. собирается пять транзактов, четыре уничтожаются, один переходит в следующий
блок);
ASSEMBLE *1
(т. е. собирается число транзактов, равное значению параметра «1» первого транзакта
ансамбля).
Пример 6. Построить программу модели процесса прохождения 100 деталей,
поступление которых подчиняется равномерному закону в интервале (8 ± 2) единицы
времени и обработка производится параллельно двумя рабочими, каждый из которых
выполняет свою операцию независимо друг от друга со временем (5 ± 3) единицы,
распределенным равномерно. В результате моделирования требуется определить ко-
эффициент занятости рабочих.
Программа имеет вид:
SIMULATE Начало моделирования
GENERATE 8,2 Приход деталей
SPLIT l,THIS Начало обработки детали
SEIZE 1 Первый рабочий
ADVANCE 5,3
RELEASE 1
TRANSFER ,THAT
THIS SEIZE 2 Второй рабочий
ADVANCE 5,3
RELEASE 2
THAT ASSEMBLE 2 Окончание обработки детали
TERMINATE 1
START 100
END
Действие блока GATHER аналогично действию блока ASSEMBLE. Отличие состоит в
том, что после накопления в блоке числа транзактов, указанного в поле А, они все
передаются в следующий блок. Блок GATHER позволяет синхронизировать движение
транзактов одного ансамбля при их движении по одному пути. Приведем пример
использования блока GATHER:
GATHER 3
(т. е. после прихода трех транзактов они поступают в следующий блок).
Пример 7. Построить программу модели процесса прохождения 80 деталей. На
производственный участок сборки подшипников поступают обоймы и шарики с.
интервалом времени (25 ± 4) единицы. На контроль обоймы затрачивается (4 ± 1) единица
времени; контроль шариков производится последовательно со временем (2 ± 1) единица
времени на шарик. Операция сборки требует одновременного поступления обоймы и всех
шариков и производится со временем (4 ± 2) единицы. Все процессы подчиняются
равномерному закону. В результате моделировании требуется определить коэффициенты
занятости paбочих участка.
Программа имеет вид:
S1MULATE Начало моделирования
GENERATE 25,4
SPLIT 8,THAT Разделение обоймы и шариков
SEIZE 1
ADVANCE 4,1 Контроль обоймы
RELEASE 1
TRANSFER ,FINAL
THAT SEIZE 2
ADVANCE 2,1 Контроль шариков
RELEASE 2
GATHER 8
FINAL ASSEMBLE 9 Комплектация
SEIZE 3
ADVANCE 4,2 Сборка
RELEASE 3
TERMINATE 1
START 80
END 3
Блок MATH предназначен для синхронизации продвижения двух транзактов одного
ансамбля, движущихся по разным путям. Для синхронизации необходимы два блока
MATCH, находящиеся в соответствующих местах блок-диаграммы и называемые
сопряженными. В поле А каждого блока MATCH указывается метка сопряженного ему
блока. При подходе транзакта к блоку MATCH проверяется наличие в сопряженном ему
блоке транзакта из того же ансамбля. Если в обоих блоках имеются транзакты одного
ансамбля, то они одновременно пропускаются через блоки MATCH. Если в сопряженном
блоке нет ни одного транзакта данного ансамбля, то поступивший транзакт будет ожидать
поступления транзакта того же ансамбля в сопряженный блок MATCH, после чего они
оба будут пропущены в следующие за блоками MATCH блоки.
Одна и та же пара блоков MATCH может одновременно синхронизировать любое
число пар транзактов из разных ансамблей. Транзакты одного ансамбля также могут
синхронизировать в любом числе пар блоков MATCH. Следует отметить, что блок
MATCH может быть сопряжен сам себе. При этом его действие будет аналогично
действию блока GATHER с параметром 2 в поле А. Рассмотрим соответствующие
примеры использования блока MATCH
ААА MATCH BBB
…..
ВВВ MATCH ААА
(в этом случае транзакт ААА будет ожидать прихода члена того же ансамбля в блок
MATCH с меткой ВВВ);
ССС MATCH CCC
(здесь транзакт будет ждать прихода члена того же ансамбля в этот же блок MATCH).
Пример 2.8. Построить программу модели прохождения 500 деталей. Детали
поступают с интервалом времени (300 ± 50) единиц. Обработку производят двое рабочих,
которые выполняют по две операции. После первой операции, выполняемой первым
рабочим со временем (70 ± 20) единиц и вторым со временем (60 ± 30) единиц,
производится операция сверки, время выполнения которой принимается равным нулю.
После сверки выполняется вторая операция первым рабочим со временем (20 ± 10) единиц
и вторым — (50 ± 20) единиц. Затем третий рабочий производит сборку изделия из этих
деталей со временем (50 ± 20) единиц. Все процессы подчиняются равномерному закону.
В результате моделирования необходимо определить коэффициенты занятости рабочих.
Программа имеет вид:
SIMULATE Начало моделирования
GENERATE 300,50 Поступление деталей
MANA SEIZE 1
ADVANCE 70,20 Первый рабочий, первая операция
HERE MATCH THERE Сверка
ADVANCE 20,10 Первый рабочий, вторая операция
RELEASE 1
TRANSFER ,MANC
MANB SEIZE 2
ADVANCE 60,30 Второй рабочий, первая операция
THERE MATCH HERE Сверка
ADVANCE 30,20 Второй рабочий, вторая операция
RELEASE 2
MANC ASSEMBLE 2
SEIZE 3
ADVANCE 50,20 Сборка
RELEASE 3
TERMINATE 1
START 500
END
|