
- •Лекции по gpss
- •Блоки и транзакты
- •Транзакт входит в блок, функцией которого является удаление транзакта из модели.
- •Транзакт входит в блок, функцией которого является задержка транзакта на некоторое определенное в модели время.
- •Удаление транзактов из модели и завершение моделирования
- •Занятие и освобождение одноканального устройства
- •Когда транзакт поступает в устройство, он должен обслуживаться там некоторое время.
- •Сбор статистики
- •Управление продолжительностью моделирования
- •Логика работы интерпретатора
- •1. Он находится в каком-либо конкретном блоке.
- •2. Он находится (отмечен) в одном или нескольких цепях (списках) gpss.
- •1) Единица модельного времени определяется разработчиком модели, который задает все временные интервалы в одних и тех же, выбранных им, единицах;
- •Занятие и освобождение многоканального устройства (памяти)
- •Абсолютное и относительное время. Команды clear и reset
- •0 Относительное
- •Изменение значений параметров транзактов
- •Числовые и символьные имена. Команда equ
- •Блоки, изменяющие маршруты транзактов
- •Блок transfer
- •Блок test
- •Блок gate
- •Блок loop
- •Команды table и qtable. Таблицы. Блок tabulate
- •Сохраняемые величины и матрицы сохраняемых величин
- •Initial Xj, значение
- •Initial mXj( a,b), значение
- •Арифметические переменные. Команды variable (fvariable)
- •Генераторы случайных чисел
- •1. Разыгрывается случайное число, равномерно распределенное в диапазоне 0;1;
- •2. Полученное число преобразуется в эквивалентное ему значение, но уже принадлежащее интересующей нас выборке.
- •Функции gpssw. Команда function
- •Модель смо
- •Блоки для работы со списками пользователя
- •Моделирование сетей массового обслуживания
- •1,2 Узел – 1 канал,3 узел – 2 канала
- •1,2 Устройства – одноканальные, 3-4 канала
- •Моделирование захвата прибора
- •Логические переключатели
- •Булевские переменные. Команда bvariable
- •Обработка транзактов, принадлежащих одному ансамблю
Логические переключатели
К аппаратным объектам относятся также логические переключатели (ЛП), которые могут находиться в двух состояниях: "включено" и "выключено". В начале моделирования все ЛП находятся в состоянии "выключено". Отдельные переключатели могут быть установлены в начальное состояние "включено" с помощью оператора INITIAL (инициализировать), имеющего следующий формат:
INITIAL LS$имя
INITIAL LSj
Здесь имя 0и j - соответственно имя и номер ЛП, устанавливаемого в начальное состояние "включено". Например:
INITIAL LS$Key1
Здесь начальное состояние переключателя Key1 равно 1, т.к. значение параметра B блока INITIAL по умолчанию равно 1.
Для включения, выключения и инвертирования логических переключателей в процессе моделирования служит блок LOGIC (установить ЛП), имеющий следующий формат:
имя LOGIC X A
В поле A указывается имя или номер ЛП. Вспомогательный операнд X указывает вид операции, которая производится с логическим переключателем при входе транзакта в блок: S - включение, R - выключение, I - инвертирование. Например:
LOGIC S 9
LOGIC R FLAG
Логические переключатели имеют один СЧА с названием LS. Значение СЧА равно 1, если ЛП включен, и 0, если он выключен.
Примеры:
TEST NE LS$Lock, 1
Здесь транзакт входит в блок TEST и продолжает движение, если логический переключатель Lock сброшен (выключен). Если же Lock включен, то транзакт остается в блоке, из которого он пытался войти в TEST, и присоединяется к цепи повторных проверок переключателя Lock.
ADVANCE (X1 – LS$Alarm#X2)
В этом примере интервал задержки равен значению сохраняемой величины X1, если ЛП с именем Alarm сброшен в 0, или равен разности значений сохраняемых величин 1 и 2, если ЛП Alarm установлен в 1.
Часто для проверки состояния ЛП используется блок GATE с условным оператором LS или LR:
LS – проверка условия «установлен в 1»; проверка истинна, если ключ в положении 1и ложна в противном случае.
LR – проверка условия «установлен в 0»; проверка истинна, если ключ установлен в 0 и ложна в противном случае.
Операндом a блока GATE задается имя проверяемого переключателя. Если операнд В отсутствует, то блок работает в режиме отказа. Пример:
GATE LR Switch
Транзакт проходит дальше, если ЛП Switch установлен в 0 (сброшен).
Булевские переменные. Команда bvariable
Выполнение набора логических условий, если таковые необходимо реализовать в соответствии с логикой работы модели, можно проверить в нескольких последовательно включенных блоках TEST или GATE. Однако количество блоков можно уменьшить, если воспользоваться булевской переменной. Для задания такой переменной используется команда BVARIABLE, в поле имени которой стоит имя этой переменной, а в поле операндов – булевское выражение. Например;
CC1 BVARIABLE X$BBB’E’9 + R$BOX’GE’2
Значение булевской переменной является системным числовым атрибутом BV$имя. Значение СЧА BV$имя равно1, если выражение истинно, или 0, если ложно. Например:
TEST E BV$CC1, 1, МЕТ3
В булевской переменной используются операторы отношения: ‘G’ – больше, ‘GE’ – больше или равно, ‘E’- равно, ‘NE’ – не равно, ‘L’ – меньше, ‘LE’ – меньше или равно.