Баннер
Баннер

Программирование в GPSS - Изменение параметров транзактов

Оглавление
Программирование в GPSS
прагматический аспект
Классы объектов языка GPSS
Интерпретации транзактов
Интерпретаций устройст
Элементы реальных систем
Очереди и таблицы
Блоки
Модельное время
Общеалгоритмические средства GPSS
Стандартные числовые атрибуты
Арифметические переменные
Логические (булевы) переменные
Функции
Ячейки и матрицы ячеек
Задание начальных значений ячеек и матриц
Объектно-ориентированные средства GPSS
Создание и уничтожение транзактов
Задержка транзактов в блоках ADVANCE
Операции занятия и освобождения устройств
Операции захвата и освобождения устройств
Операции блокирования и разблокирования устройств
Описание памятей и работа с ними
Операции с ключами
Блок GATE
Синхронизация транзактов
Изменение параметров транзактов
Управление маршрутами транзактов в модели
Сбор статистики с помощью очередей
Сбор статистики с помощью таблиц
Стандартные числовые атрибуты
Атрибуты транзактов
Атрибуты блоков
Системные атрибуты
Атрибуты оборудования
Статистические атрибуты
Атрибуты ячеек SAVEVALUE
Функции и переменные
Атрибуты списков пользователя
Атрибуты группы
Системные атрибуты
Блоки COUNT и SELECT
Все страницы
Изменение параметров и стандартных числовых атрибутов транзактов

Основным средством задания параметров транзактов является блок ASSIGN (назначить). В поле A этого блока указывается номер параметра, в поле В определяется записываемое в параметр значение.

Приписывая к номеру параметра в поле A символ + или -, можно обеспечить не запись значения поля В в параметр, а добавление или вычитание этого значения из значения параметра.

Если в поле C указано какое-либо имя, оно интерпретируется как имя функции. В этом случае вычисляется указанная функция и значение поля В модифицируется путем умножения на значение функции. Примеры:

 

ASSIGN 1,475 ;ЗАНЕСТИ 475 В Р1

ASSIGN 12+,45 ;ДОБАВИТЬ 45 В Р1

ASSIGN 11,С1 ;ЗАПИСАТЬ ВРЕМЯ В Р11

ASSIGN 8,42,FFF ;ЗАПИСАТЬ 42*FN$FFF В Р8.

В блоке ASSIGN P1,P2 содержимое второго параметра будет записано в па­раметр, номер которого нужно прочесть в первом параметре. В блоке ASSIGN P*1,P2 содержимое второго параметра будет записано в параметр, номер ко­торого записан в другом параметре, номер которого нужно прочесть в параметре Р1.

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

Для задания приоритетов транзактов кроме блока GENERATE можно использовать блок PRIORITY. Поле A этого блока определяет значение присваиваемого приоритета. Например, при прохождении через блок

 

PRIORITY 3

 

транзакту будет присвоен приоритет 3.

Отметка времени — это запись в транзакте текущего момента времени, которая автоматически производится в момент порождения транзакта блоком GENERATE и может меняться только в блоке MARK. Если транзакт не проходил блока MARK, то время существования транзакта в модели может быть определено как разность между текущим значением модельного времени и отметкой времени транзакта. При прохождении блока MARK с пустым полем A отметка времени транзакта заменяется на новую, равную моменту прохождения этого блока.

Если в поле A указано некоторое значение, то оно рассматривается как номер параметра транзакта и текущее время записывается в этот параметр. Отметка времени транзакта при этом не меняется, т.е. сохраняет свое старое значение.

Например, блок

 

MARK

 

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

MARK 1

 

записывает текущее время только в Р1.

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





Читайте также:

Добавить комментарий


Защитный код
Обновить




Разделы



Главная GPSS Программирование в GPSS