Обработка транзактов, принадлежащих одному семейству

Кроме блока GENERATE, для создания транзактов может ис­пользоваться блок SPLIT (РАЗДЕЛИТЬ), который выполняет функ­цию копирования транзакта, входящего в него. Этот транзакт назы­вается начальным или порождающим. Все копии формируются в момент входа начального транзакта в блок SPLIT. Каждая новая ко­пия становится членом семейства {ансамбля) транзактов, порож­денных одним начальным транзактом, который был создан блоком GENERATE.

Блок имеет такой формат:

SPLIT A,[B1],[C1]

Таблица 4.47

Операнд Значение Результат по умолчанию
А Число создаваемых копий транзакта Ошибка
В Метка блока, куда направляются ко­пии  
С Параметр, в котором запоминаются номера копий транзактов  

Операнд А может быть положительным целым, СЧА, СЧА*СЧА. Если вычисленное значение операнда А равно нулю, то блок SPLIT не выполняет никаких операций. После создания копий начальный транзакт пытается перейти к очередному блоку.

Операнд В задает блок, в который переходят копии начального транзакта. Операнд может быть именем (меткой), положительным целым, СЧА, СЧА*СЧА (в трех последних случаях операнд В задает номер блока). Значение операнда В вычисляется для каждой копии отдельно.

Операнд С задает параметр транзакта, который используется для присвоения копиям последовательных номеров. Операнд С может быть именем, положительным целым, СЧА, СЧА*СЧА.

Транзакты, принадлежащие одному семейству, объединяются интерпретатором в список. По связям внутри семейства транзактов невозможно установить, какой из транзактов семейства является на­чальным. Если копия транзакта входит в блок SPLIT, то повторная копия становится членом того же семейства, что и первичная копия. Таким образом, каждый транзакт является членом одного и только одного семейства. Семейство может состоять из произвольного числа транзактов. Когда транзакт уничтожается, интерпретатор автомати­чески исключает его из членов соответствующего семейства. Таким образом, семейство существует до тех пор, пока из модели не удалит­ся последний из ее членов.

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

Пример 4.50

В цех каждые 14±3 мин поступают партии деталей. Каждая пар­тия состоит из 3±2 деталей. Все детали поступают на обработку стан­ком. Время обработки составляет 3±1 мин.

COPY FUNCTION RN1,C2

GENERATE 14,3

SPLIT FNSCOPY

SEIZE MACHINE

ADVANCE 3,1

RELEASE MACHINE


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



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