Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5mzQtxCL1a.doc
Скачиваний:
27
Добавлен:
30.04.2022
Размер:
3.06 Mб
Скачать

11.16. Организация циклов

Циклом будем называть повторяющееся несколько раз прохождение транзакта через определенную группу операторов GPSS-PC. Для организации цикла указывается оператор LOOP. Он всегда является ПОСЛЕДНИМ оператором в группе операторов, образующих цикл. Структура оператора LOOP следующая:

LOOP A,B

где A - номер параметра транзакта, в котором записано количество повторений цикла;

B - метка оператора, с которого начинается цикл.

Значение параметра, указанного в операнде A (счетчик цикла), должно быть задано оператором ASSIGN до начала цикла.

Оператор LOOP работает следующим образом. После входа транзакта в этот оператор значение его параметра, указанного в операнде A, уменьшается на 1. Если значение параметра после этого превышает ноль, то транзакт переходит на метку, указанную в операнде B, т.е. цикл повторяется. Если параметр оказывается равным нулю, то транзакт переходит в оператор, следующий за LOOP, т.е. цикл завершается.

11.17. Логические переключатели

Логические переключатели (называемые также просто переключателями или ключами) - это элементы GPSS-модели, которые могут находиться только в одном из двух состояний: установленном или сброшенном. Логические переключатели обычно используются для разрешения или запрещения движения транзактов через определенную часть модели. Для этого выполняется проверка состояния переключателей, например, с помощью рассматриваемого ниже оператора GATE.

Для управления состоянием логических переключателей используется оператор LOGIC:

LOGIC опер A

где "опер" - обозначение операции, выполняемой с логическим переключателем: S - установка, R - сброс, I - инвертирование (изменение текущего состояния на противоположное);

A - имя переключателя (числовое или символьное), с которым выполняется заданная операция.

Какое-либо объявление логических переключателей не требуется. По умолчанию в начале работы модели все логические переключатели сброшены.

Пример использования логических переключателей рассматривается в следующем разделе.

11.18. Управление движением транзактов в зависимости от состояния элементов модели

Во многих случаях выбор направления движения транзактов производится в зависимости от состояния устройств, многоканальных устройств или переключателей, используемых в модели. Для этого применяется оператор TEST, , и оператор GATE. Формат оператора GATE следующий.

GATE усл A,B

Здесь "усл" - условие. Оператор GATE проверяет, соответствует ли заданный элемент модели указанному условию, и в зависимости от этого выбирает направление дальнейшего движения транзакта (или задерживает этот транзакт на все время, пока заданное условие не выполняется). Некоторые из условий, которые могут задаваться в операторе GATE, следующие (полный список условий имеется в документации по GPSS/PC).

Для устройств: NU - устройство свободно; U - устройство занято; NI - устройство не находится в состоянии прерывания; I - устройство находится в состоянии прерывания; FV - устройство доступно; FNV - устройство недоступно.

Для многоканальных устройств: SE - многоканальное устройство пусто (т.е. в нем нет транзактов); SNE - многоканальное устройство не пусто; SF - многоканальное устройство заполнено; SNF - многоканальное устройство не заполнено; SV- многоканальное устройство доступно; SNV - многоканальное устройство недоступно.

Для логических переключателей: LS - переключатель установлен, LR - переключатель сброшен.

Назначение операндов оператора GATE следующее.

A - имя устройства, многоканального устройства или логического переключателя, для которого проверяется заданное условие.

B - метка оператора, на который должен перейти транзакт, если заданное условие не выполняется для элемента модели, указанного в операнде A.

Операнд A обязателен, B - необязателен.

Оператор GATE работает следующим образом. Для элемента модели, указанного в операнде A, проверяется заданное условие. Если оно выполняется, то транзакт пропускается на оператор, следующий за GATE. Если оно не выполняется, то транзакт передается на оператор, метка которого указана в операнде B, а если операнд B не указан - то задерживается на все время, пока не выполняется условие.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]