Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КонтрРаботыСМО.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4.49 Mб
Скачать

Задание № 3 Изучение основных окон и команд в системе gpss World Теоретические сведения

Назначение Окон

В системе GPSS World используются следующие окна.

• Окно Blocks – просмотр сущностей Block

• Окно Expressions – просмотр любого выражения PLUS, исполняемого в процесс моделирования

• Окно Facilities – просмотр сущностей Facility

• Окно Logicswitches – просмотр сущностей Logicswitch

• Окно Matrix – просмотр сущностей Matrix

• Окно Plots – просмотр графиков выражений PLUS

• Окно Queues – просмотр всех модельных сущностей Queue

• Окно Savevalues – просмотр сущностей Savevalue, определенных в модели

• Окно Storages – просмотр сущностей Storage

• Окно Table – просмотр сущностей Table и Qtable в виде гистограмм

В дополнение к окнам, обновляемым динамически, в системе GPSS World можно сделать статические снимки одного Транзакта, цепей CEC и FEC, группы Транзактов и Чисел, а также пользовательских цепей (Userchains).

Команды системы GPSS World

Команды системы GPSS World предназначены для построения и выполнения моделей, а так же для определения некоторых сущностей GPSS.

Список команд:

BVARIABLE – определяет сущность Boolean Variable (Логическая Переменная)

CLEAR – обнуляет статистику и освобождает Транзакты

CONDUCT – проводит Эксперимент

CONTINUE – продолжает процесс моделирования

EQU – присваивает значение пользовательской Переменной

EXIT – завершает сеанс работы в системе GPSS World

FUNCTION – определяет сущность Function (Функция)

FVARIABLE – определяет сущность Fvariable

HALT – прерывает моделирование и удаляет все Команды в очереди

INCLUDE – считывает и транслирует вспомогательный файл модели

INITIAL – инициализирует или модифицирует сущности Logicswitch, Savevalue или Matrix

INTEGRATE – автоматически помещает разность времени в пользовательскую Переменную

MATRIX – определяет сущность Matrix

QTABLE – определяет сущность Qtable

REPORT – запрашивает текущий отчет

RESET – обнуляет статистику модели

RMULT – устанавливает значения для первых 7 генераторов случайных величин

SHOW – обрабатывает и выводит на экран значение Выражения

START – устанавливает значение счётчика «Termination Count» и запускает модель

STEP – пытается входить в Блоки ограниченное число раз

STOP – устанавливает условие Stop при попытке войти в Блоки

STORAGE – определяет сущность Storage – многоканальное устройство

TABLE – определяет сущность Table – таблицу

VARIABLE – определяет сущность Variable – переменную

Рассмотрим на примерах некоторые команды и окна.

Методические указания

Команда VARIABLE

Создадим новую модель в GPSS и запишем в неё только 1 блок:

**************************************************************

* Пример переменной

**************************************************************

Var1 Variable 3#3/3

Выполним команду Command/Create Simulation.

В первой строке программы Блок Variable задаёт переменную Var1.

Её значение задано с помощью выражения 3#3/3, в котором # означает умножение, / означает деление.

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

Команда SHOW

Просмотр значений переменных выполняет команды SHOW

ВЫБЕРИТЕ Command / SHOW

В диалоговом окне

ВВЕДИТЕ V$Var1

НАЖМИТЕ OK

Запись V$Var1 содержит V (принадлежность к SNA), $ - соединительный символ, и задаёт выдачу значения переменной Var1.

В статусной строке главного окна видно подсчитанное значение переменной Var1.

В случаях, когда используется имя объекта, система GPSS World назначает этому имени уникальный системный номер.

Если имя используется для обозначения сущности, не надо больше ничего делать. Если имени соответствует определённое значение, надо использовать выражение EQU для того, чтобы присвоить имени значение до того, как сущность будет создана.

В последнем случае система GPSS World присваивает свое собственное значение имени, которое видно в статусной строке.

ВНИМАНИЕ! Если изменить имя после определения сущности, то в дальнейшем нельзя использовать это имя для того, чтобы обращаться к старой сущности. Изменение имени не приводит к переопределению сущности. Любая старая сущность будет иметь номер, отличный от нового значения имени. Нумерацией занимается система GPSS World.

Пример.

Простая телефонная система имеет две внешние линии. Входящие звонки поступают каждые 100±60 секунд. Когда линия занята, звонящий производит повторный набор номера по истечении 5±1 минут. Длительность разговора составляет 3±1 минуты.

Требуется построить таблицу распределения моментов времени, в которые звонящие смогли дозвониться. Сколько времени уйдет на 200 успешных звонков?

Создадим новую модель в GPSS и запишем в неё следующие блоки:

**************************************************************

* Модель телефонной станции с двумя линиями

* Время измеряется в минутах

**************************************************************

Sets STORAGE 2 ; система с 2 каналами (линиями)

Transit TABLE M1,.5,1,20

; создаём таблицу Transit для хранения времени между вызовом и завершением разговора

GENERATE 1.667,1 ; генерируем вызовы в минутах

Again GATE SNF Sets,Occup ; проверка занятости линий

ENTER Sets ; занять линию

ADVANCE 3,1 ; разговор 3+-1 мин.

LEAVE Sets ; освободить линию

TABULATE Transit ; поместить время в таблицу

TERMINATE 1 ; удалить транзакт

Occup ADVANCE 5,1 ; ждать 5+- 1 минут

TRANSFER ,Again ; переход на блок с меткой Again для повтора вызова

Подробно рассмотрим каждый Блок модели.

STORAGE – описывается 2-х канальное устройство, используется для представления двух телефонных линий.

TABLE – определяется таблица Transit для сохранения времени поступающих звонков. В дальнейшем по таблице будет построена гистограмма. Табулирование значения атрибута SNA «time in simulation» происходит перед тем, как Транзакт входит в Блок TERMINATE. Это значение представляет собой интервал времени, проходящий между первой попыткой набора номера и успешным завершением разговора.

GENERATE – Транзакт, представляющий телефонный звонок, создается каждые 100±60 секунд.

GATE – отправляет Транзакт в Блок Occupied, когда обе линии заняты. В этом случае звонящий должен подождать 5+-1 минут перед повторным набором номера.

ENTER – если задействовано 0 или 1 линий, то Транзакт входит в Блок ENTER, занимая линию. После этого остальным Транзактам будем закрыт доступ в Блок GATE. Каждый Транзакт, проходящий в Блок ENTER, означает успешное соединение с вызываемым абонентом.

ADVANCE – Транзакт входит в Блок ADVANCE, который эмулирует звонок длительностью 180±60 секунд. Он будет оставаться в Блоке ADVANCE до тех пор, пока не пройдет указанный интервал модельного времени.

LEAVE – означает освобождение одной линии для других Транзактов.

TABULATE – добавляет время, потраченное на звонок, в таблицу Transit.

TERMINATE – выводит Транзакт из моделирования после того, как звонок был успешно завершён.

ADVANCE – Транзакт приходит в Блок ADVANCE, помеченный Occupied, когда ему не удалось занять линию. В этом случае он представляет звонящего, которому следует подождать перед тем, как произвести повторный набор номера.

TRANSFER – Блок TRANSFER посылает Транзакт к Блоку GATE, помеченному Again. Звонящий пытается повторить набор номера.

Транзакты представляют начатые, но не завершённые звонки. Если обе линии заняты, Блок GATE, помеченный Again, посылает для ожидания в Блок ADVANCE, примерно на 5 минут. После задержки Транзакт возвращается в Блок GATE и пробует пройти ещё раз. Успешный звонок проходит через Блок GATE, задерживается на время разговора и затем покидает модель.

Формирование файла отчёта

Сохраним модель

ВЫБЕРИТЕ File / Save

В диалоговом окне

НАБЕРИТЕ Telephon

Далее необходимо создать объект Simulation

ВЫБЕРИТЕ Command / Create Simulation

Затем

ВЫБЕРИТЕ Command / START

В диалоговом окне заменим значение 1 на 200

ВВЕДИТЕ 200

и

НАЖМИТЕ OK

Моделирование будет завершено после того, как 200 Транзактов войдут в Блок TERMINATE. Они представляют собой 200 успешно завершённых звонков.

GPSS World сохранит отёт в файл Telephon.1.1. Цифры в названии отчёта отражают количество сохранённых объектов Simulation и количество созданных ранее отчётов.

Отчёт автоматически отображается в окне. Если сохранить отчёт, закрыв окно, то позднее его можно открыть, используя команду меню File / Open. Отчёты GPSS World сохраняются в специальном формате, поэтому можно скопировать его в текстовый редактор и отредактировать.

End Time показывает время к моменту успешного завершения 200-го звонка. Прогоны модели будут давать немного различные результаты, в зависимости от распределения случайных величин, например, 359.156 минут.

Исследование модели

Закроем окно Report.

Исследуем значения СЧА с помощью окна Expression. Проверим итоговое модельное время

ВЫБЕРИТЕ Window / Simulation Window / Expression Window

Теперь, в поле Label

ВВЕДИТЕ Time

В поле Expression

ВВЕДИТЕ AC1

Это позволит увидеть текущее время.

ЩЕЛКНИТЕ НА кнопке View

и

ЩЕЛКНИТЕ НА кнопке Memorize

Далее смотрим коэффициент загрузки устройства, представленный числом, которое надо поделить на 1000, чтобы получить истинное значение.

В диалоговом окне заменим текущее значение в поле Label

ВВЕДИТЕ Util

в поле Expression

ВВЕДИТЕ SR$Sets

ЩЕЛКНИТЕ НА кнопке View

ЩЕЛКНИТЕ НА кнопке Memorize

Также добавим среднее время занятости телефонной линии.

В диалоговом окне заменим текущее значение в поле Label

ВВЕДИТЕ Avg.C T

в поле Expression

ВВЕДИТЕ ST$Sets

ЩЕЛКНИТЕ НА кнопке View

ЩЕЛКНИТЕ НА кнопке Memorize

НАЖМИТЕ OK

Телефонные линии используются на 84% от возможной ёмкости. Не смотря на то, что часть времени была не использована, задержки в очереди могут быть недопустимы.

Закроем окно Expression.

Откроем несколько графических окон.

ВЫБЕРИТЕ Window / Simulation Window / Storages Window

Окно Storages в расширенном режиме просмотра. Здесь так же отображается значение занятости устройств, составляющее 84%.

Видно, что в разное время моделирования были заняты 0, 1 или 2 линии.

Окно Table позволяет увидеть гистограмму интервалов времени, потраченных на успешный звонок

ВЫБЕРИТЕ Window / Simulation Window / Table Window

Поскольку в модели только одна таблица, в выпадающем меню по умолчанию будет выбран TRANSIT.

НАЖМИТЕ OK

Данное окно предоставляет ту же информацию, что и таблица в отчёте.

Среднее время разговора составляет 3 минуты в соответствии с атрибутом ST из окна Expression, но общее среднее время, включающее повторный дозвон, составляет 14.27, что видно из окна Table. Звонящие тратят огромное количество времени на повторную попытку позвонить.

Выясним местоположение Транзактов.

ВЫБЕРИТЕ Window / Simulation Window / Blocks Window

Обратите внимание, что 15 человек ждут попытки перезвонить.

В Блок ADVANCE входил 561 Транзакт. Но при этом было произведено только лишь 200 успешных звонков.

Можно проследить за окном Blocks, используя клавишу [F5]. Пошагово отслеживаем процесс моделирования, делая 15-20 шагов. Видно, что большая часть звонящих обнаруживает, что линия занята, и становится в очередь ожидания.

Закроем все окна, кроме Blocks, Journal и Model.

Окно Expression

Откроем Expression, восстановив использованные ранее выражения, а также добавив количество активных Транзактов.

ВЫБЕРИТЕ Window / Simulation Window / Expression Window

В диалоговом окне, в поле Label

ВВЕДИТЕ Call no.

в поле Expression

ВВЕДИТЕ XN1

ЩЕЛКНИТЕ НА кнопке View

ЩЕЛКНИТЕ НА кнопке Memorize

Перед тем как открыть окно, следует вернуть все сохраненные в прошлый раз выражения. Для каждого выражения из списка сохраненных выражений

ЩЕЛКНИТЕ НА кнопке Expression

затем

ЩЕЛКНИТЕ НА кнопке View

Когда все выражения окажутся в списке Window Contents

НАЖМИТЕ OK

Закроем окно Expressions.

Команда моделирования «вручную»

Можно ввести выражение Block, используя диалоговое окно Custom Command, расположенное в меню Command главного окна.

Когда объект Simulation получает выражение Block, он инициирует попытку входа Активным Транзактом во временный Блок, описываемый этим выражением. Этот метод называется моделированием вручную.

Такой Блок не помещается в транслированную модель, поэтому сущность Blocks не становится постоянным членом модели.

Обнулим статистику. В главном меню

ВЫБЕРИТЕ Command / Clear

Проследим за окном Blocks.

Далее

ВЫБЕРИТЕ Command / Custom

ВВЕДИТЕ RMULT1

Т.о. обнулён генератор случайных чисел под номером 1, т.к. команда Clear не делает этого.

НАЖМИТЕ OK

Обратите внимание на записи в Журнале!

В окне Blocks подводим курсор мыши к последнему Блоку модели (Блок TRANSFER)

ЩЕЛКНИТЕ НА Блоке Transfer

и

ЩЕЛКНИТЕ НА кнопке Place панели Debug

Расположим окна Blocks, Journal и Expression таким образом, чтобы все они были видны.

ВЫБЕРИТЕ Command / START

В диалоговом окне заменим значение 1 на 200,

НАЖМИТЕ OK

Моделирование будет приостановлено при первой же попытке войти в Блок TRANFSER. Это означает, что клиент не смог дозвониться. Продолжаем моделировать.

НАЖМИТЕ [F2]

ещё 4 раза после того, как модель будет приостановлена по условию Stop.

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

В окне Journal видны отладочные сообщения, обозначающие номер остановившегося Транзакта.

Поскольку в модели присутствует только один Блок GENERATE, можно по номеру Транзакта увидеть, как часто клиенту необходимо ждать и есть ли в очереди клиенты, повторно ожидающие освободившейся линии.

Убираем условие Stop. В окне Blocks

ЩЕЛКНИТЕ НА Блоке Transfer

ЩЕЛКНИТЕ НА кнопке Remove панели Debug

Закрываем окна Blocks и Expression.

Окно Storages

Открываем окно Storages в упрощенном режиме просмотра.

ВЫБЕРИТЕ Window / Simulation Window / Storages Window

В главном меню

ВЫБЕРИТЕ View / Entity Details

для того чтобы включить упрощённый режим.

Одновременно смотрим построение гистограммы задержек

ВЫБЕРИТЕ Window / Simulation Window / Table Window

НАЖМИТЕ OK

Продолжим работу модели

НАЖМИТЕ [F2]

Таблица Transit является динамической гистограммой, состояние которой можно посмотреть в любой момент. Она показывает, что большое количество клиентов не обслуживаются в данный момент.

Команды CLEAR, Custom

Теперь моделируем 4 линии связи вместо двух.

Команда CLEAR необходима для переопределения многоканального устройства

ВЫБЕРИТЕ Command / CLEAR

затем

ВЫБЕРИТЕ Command / Custom

В диалоговом окне

ВВЕДИТЕ Sets Storage 4

НАЖМИТЕ [Enter]

На следующей строке

ВВЕДИТЕ RMULT1

НАЖМИТЕ OK

Эта последовательность команд переопределит количество телефонных линий. Действие будет зафиксировано в журнале.

Запускаем моделирование

ВЫБЕРИТЕ Command / START

В диалоговом окне заменим значение 1 на 200,

НАЖМИТЕ OK

Коэффициент занятости телефонных линий значительно меньше, чем виденный ранее в секции Storages отчёта.

Изучаем гистограмму продолжительности звонков

ВЫБЕРИТЕ Window / Simulation Window / Table Window

НАЖМИТЕ Ok

Здесь положение улучшилось: ни одному клиенту не приходилось перезванивать. Четыре линии работают лучше, чем две.

Но такое решение проблемы может оказаться неоправданно дорогим.

Смотрим, как будут работать 3 телефонных линии:

ВЫБЕРИТЕ Command / CLEAR

затем

ВЫБЕРИТЕ Command / Custom

В диалоговом окне

ВВЕДИТЕ Sets Storage 3

НАЖМИТЕ [Enter]

ВВЕДИТЕ RMULT1

НАЖМИТЕ OK

Моделируем

ВЫБЕРИТЕ Command / START

В диалоговом окне заменим значение 1 на 200

НАЖМИТЕ OK

Наблюдаем за графическими окнами, затем их закрываем, ждём окончания моделирования.

Три линии справляются достаточно эффективно.

В отчёте следует выяснить, какому числу клиентов пришлось перезвонить.

STORAGE CAP. REM. MIN. MAX. ENTRIES AVL. AVE.C. UTIL. RETRY DELAY

SETS 3 1 0 3 202 1 1.845 0.615 0 0

TABLE MEAN STD.DEV. RANGE RETRY FREQUENCY CUM.%

TRANSIT 3.397 1.936 0

Статистика Table показывает, что среднее время Transit составляет всего лишь 3.397 минуты. Если не ожидается увеличение количества звонков, то данные показатели можно считать вполне удовлетворительными.

ПРИЛОЖЕНИЕ 1

Блок GENERATE предназначен для создания потока транзактов и может содержать до 5 операндов:

GENERATE A, B, C, D, E

A – временной интервал появления транзакта;

B – половина интервала возможного отклонения времени появления;

C – начальная временная задержка;

D – максимальное число транзактов, которое должно быть сгенерировано;

E – приоритет генерируемых транзактов.

Примеры:

GENERATE 14

означает, что каждый новый транзакт появляется непрерывно через каждые ровно 14 единиц времени и имеет приоритет 0.

GENERATE 14,5

означает, что каждый новый транзакт появляется непрерывно через каждые 14±5 единиц времени (с равномерным распределением времени появления в интервале от 9 до 19 единиц времени) и имеет приоритет 0.

GENERATE 14,5,100

означает, что первый транзакт появится через 100 единиц времени, а каждый последующий новый транзакт будет появляться непрерывно через каждые 14±5 единиц времени (с равномерным распределением времени появления в интервале от 9 до 19 единиц времени) с приоритетом 0.

GENERATE 14,5,100,86

означает, что первый транзакт появится через 100 единиц времени, а каждый последующий новый транзакт будет появляться непрерывно через каждые 14±5 единиц времени (с равномерным распределением времени появления в интервале от 9 до 19 единиц времени), всего будет сгенерировано 86 транзактов, каждый - с приоритетом 0

GENERATE 14,5,100,86,47

означает, что первый транзакт появится через 100 единиц времени, а каждый последующий новый транзакт будет появляться непрерывно через каждые 14±5 единиц времени (с равномерным распределением времени появления в интервале от 9 до 19 единиц времени), всего будет сгенерировано 86 транзактов, каждый - с приоритетом 47.

Любой из указанных операндов может быть опущен: если опускаются все последние операнды, то они не записываются; если опускается промежуточный операнд, то вместо него ставится запятая, например:

GENERATE 14,,,,7

означает, что каждый новый транзакт появляется непрерывно через каждые ровно 14 единиц времени и имеет приоритет 7.

Операндами могут быть числа, переменные, в качестве которых могут выступать СЧА, функции FUNCTON и переменные VARIABLE.

GENERATE (Exponential(1,0,60))

в поле операнда А используется встроенное экспоненциальное распределение вероятностей, причём

1 – номер генератора случайных чисел,

0 – параметр λ экспоненциального распределения,

60 – параметр β экспоненциального распределения.

GENERATE (Normal(1,22,3))

в поле операнда А используется встроенное нормальное распределение вероятностей, причём

1 – номер генератора случайных чисел,

22 – параметр a нормального распределения,

3 – параметр σ нормального распределения.

Generate (Exponential(1,0,65))

генерирует тракзакты по экспоненциальному закону распределения, в среднем 65 тракзактов.

Блок TERMINATE предназначен для вывода транзакта из модели (с освобождением занимаемых им ячеек памяти) и уменьшения значения Счётчика завершения может содержать до 1 операнда или ни одного:

TERMINATE A

A – число, на которое уменьшается значение Счётчика завершения, задаваемое перед началом моделирования командой START, при вхождении транзакта в блок TERMINATE.

В модели может быть много блоков TERMINATE.

В сложных моделях, как правило, большинство блоков TERMINATE не имеют операнда, а потому только уничтожают транзакты.

Если не будет ни одного блока TERMINATE с ненулевым операндом, то программа сможет работать бесконечно с возможностью прерывания её командой HALT. Возможна также работа в пошаговом режиме STEP. Но в этом случае не появляется автоматически Стандартный отчёт. Для автоматического окончания работы хотя бы один блок TERMINATE должен иметь ненулевой операнд с воздействием на уменьшение значения Счётчика завершения.

Блок TRANSFER предназначен для измененения направления движения транзактов, может работать в 9 режимах и имеет следующий синтаксис:

TRANSFER A,B,C,D

Операнды:

A – указатель режима, который может иметь значения (ключевые слова):

пробел – безусловный переход;

число с точкой – статистический режим;

BOTH – выбор незанятого устройства из двух;

ALL – выбор незанятого устройства из нескльких;

PICK – случайный выбор направления из нескольких;

P – переход по значению параметра;

FN – переход по значению функции;

SIM – переход по индикатору задержки;

SBR – переход на подпрограмму с возможностью возврата;

B,С,D – параметры режимов (для каждого режима – свои).

Режим безусловного перехода

В этом режиме входящий в блок TRANSFER транзакт направляется на указанную метку:

TRANSFER ,met

Список операндов начинается с запятой; это означает, что вместо операнда A записан пробел как указатель режима безусловного перехода. На месте операнда B размещается метка met, на которую перенаправляется транзакт.

Статистический режим

Входящий в блок TRANSFER транзакт направляется на одну из двух меток с заданной вероятностью:

TRANSFER A,met1,met2

Здесь:

A – десятичная дробь (число с точкой), показывающее, какую долю транзактов необходимо направить на метку met2; на метку met1 направляется (1-A) доля транзактов;

met1 – метка, на которую направляется (1-A) транзактов;

met2 – метка, на которую направляется A транзактов.

Режим BOTH выбор незанятого устройства из двух

Входящий в блок TRANSFER транзакт направляется на один из двух блоков модели, готовых принять транзакт:

TRANSFER BOTH,met1,met2

Здесь:

met1 – первая метка;

met2 – вторая метка.

В режиме BOTH при входе транзакта в блок TRANSFER начинается просмотр меток (вначале первая, затем вторая) и проверяется, может ли транзакт войти в блок, помеченный проверяемой меткой. Эти метки могут соответствовать различным типам блоков. Некоторые блоки (SEIZE, ENTER) могут находиться в режиме "свободно" или "занято". Именно в этом случае целесообразно применение блока TRANSFER в режиме BOTH. Если блок с проверяемой меткой свободен (в блоке SEIZE нет транзактов, в блоке ENTER транзактами заняты не все каналы), то активный транзакт направляется в этот блок. Если блок с проверяемой меткой занят транзактами (в блоке SEIZE присутствует 1 транзакт, в блоке ENTER транзактами заняты все каналы), то транзакт остаётся в блоке TRANSFER и начинает проверяться блок, помеченный второй меткой. Если и второй блок занят, то транзакт остаётся в блоке TRANSFER до следующей проверки, пока не освободится какой-либо блок из помеченных метками.

Блок TRANSFER может удерживать любое количество транзактов, которые внутри него выстраиваются в очередь с учётом приоритетов.

Режим ALL выбор незанятого устройства из нескольких

Входящий в блок TRANSFER транзакт направляется на один из нескольких блоков модели, готовых принять транзакт:

TRANSFER ALL,met1,met2,N

Здесь:

met1 метка первого целевого блока в диапазоне;

met2 метка последнего целевого блока в диапазоне;

N приращение (в строках).

Режим PICK – случайный выбор направления из нескольких

Входящий в блок TRANSFER транзакт направляется на один из блоков модели, выбранный случайным образом:

TRANSFER PICK,met1,met2

Операнды:

met1 метка первого целевого блока в диапазоне;

met2 метка последнего целевого блока в диапазоне

Режим P – переход по значению параметра

Входящий в блок TRANSFER транзакт направляется на один из блоков модели, выбранный по параметру:

TRANSFER P,Param,met

Операнды:

Param номер или имя параметра активного транзакта, содержащего целые число;

met метка: к номеру строки с этой меткой прибавляется значение Param, чтобы получить номер строки, на которую направляется транзакт.

Режим FN – переход по значению функции

В этом режиме входящий в блок TRANSFER транзакт направляется на один из блоков модели, выбранный по значению функции:

TRANSFER FN,Fun,N

Операнды:

Fun – номер или имя функции, в которой заданы метки для перехода транзактов;

N – целое число, прибавляемое к строке с меткой, определённой с помощью Fun, чтобы получить номер строки, на которую направляется транзакт.

Режим SIM – переход по значению индикатора задержки

В этом режиме входящий в блок TRANSFER транзакт направляется на один из блоков модели, выбранный в зависимости от состояния Индикатора задержки:

TRANSFER SIM,Loc1,Loc2

Операнды:

Loc1 – строка, на которую транзакт направляется, если Индикатор задержки выключен;

Loc2 – строка, на которую транзакт направляется, если Индикатор задержки включен.

Режим SIM (одновременный) обеспечивает возможность передачи транзакта с учётом того, был ли он задержан.

ПРИЛОЖЕНИЕ 2