Блок GENERATE является источником потока сообщений в модели. В данном блоке производится подготовка сообщений и запуск их в модель через интервалы времени, заданные пользователем. Кроме задания правильной временной последовательности, пользователь может в блоке GENERATE задать некоторую информацию об атрибутах сообщений.
Блок GENERATE имеет следующий формат записи:
GENERATE [A],[B],[C],[D],[E]
А – время, которое определяет интервал между моментами генерации сообщений блоком GENERATE.
В – задается модификатор, который изменяет значения интервала генерации сообщений по сравнению с интервалом, указанным в поле А.
С – задается начальная задержка. Начальная задержка - это момент времени, в который первое сгенерированное сообщение должно выйти из блока GENERATE; поля А и В на задержку сообщения влияния не имеют.
D – задается предел генерации. Эта величина представляет собой максимальное число сообщений, которое будет создано в блоке GENERATE.
Е – определяет приоритет сообщений. По умолчанию – ноль.
Блок TERMINATE имеет следующий формат записи:
TERMINATE [A]
Блок TERMINATE удаляет из модели входящие сообщения. В поле А задается число единиц, на которое этот блок изменяет содержимое счетчика завершений, определяющего момент окончания моделирования. Если поле А пусто, то сообщение уничтожается, а содержимое счетчика не изменяется.
Когда пользователь подготавливает модель, он задает время счета, указывая в операторе START значение счетчика завершений. Поскольку различные пути сообщений в модели имеют различные смысловые значения, каждый блок TERMINATE может либо уменьшать, либо не уменьшать содержимое счетчика завершений. Если содержимое счетчика уменьшилось до 0, счет завершается. TG1 возвращает содержимое счетчика завершений, которое уменьшается блоком TERMINATE при заданном операнде А. Эта величина первоначально задается оператором START и указывает на завершение моделирования, когда становится равной 0.
Блок ADVANCE имеет следующий формат записи:
ADVANCE A,[B]
Блок ADVANCE задерживает продвижение сообщения на заданный период времени. В поле А задается среднее время пребывания сообщения в блоке ADVANCE. Если время задержки равно 0, сообщение помещается в список текущих событий перед сообщениями с таким же приоритетом. Если в поле В записан модификатор-функция, то вычисленное значение атрибута, заданного в поле А, умножается на значение функции, заданной в поле В. Результат округляется до целого значения и используется как время задержки.
Блок ASSIGN имеет следующий формат записи:
ASSIGN A,B,[C]
Блок ASSIGN заменяет, увеличивает или уменьшает текущее значение параметра сообщения на заданное значение. В поле А задается номер параметра, которому присваивается значение. Если значение параметра нужно увеличить или уменьшить, то справа в поле А ставится знак сложения или вычитания. Например, аргумент поля А может быть закодирован следующим образом:
1) 2 -заменяется текущее значение параметра 2;
2) 2- -вычитается заданное значение из текущего значения параметра 2;
3) 2+ -прибавляется заданное значение к текущему значению параметра 2;
Поле В определяет значение, которое следует добавить или вычесть из значения параметра, заданного аргументом поля А, или заменить его. Если такой параметр не существует, то он создается.
Блок MARK имеет следующий формат записи:
MARK [A]
Блок MARK либо заменяет значение отметки времени сообщения на текущее значение абсолютного условного времени (операнд А не определен), либо записывает значение условного времени в заданный параметр сообщения (при использовании операнда А).
Блок COUNT имеет следующий формат записи:
COUNT X A,B,C,[D],[E]
- здесь и далее -обозначение используемого логического или условного операторов. Данный операнд может принимать следующие значения:
FNV,FV,I,LS,LR,NI,NU,SE,SF,CNE,SNF,SNV,SV,U,'E','G','GE','L','LE',MIN,MAX или 'NE'.
Блок COUNT определяет число объектов, удовлетворяющих заданному условию. Например, пользователю может понадобиться узнать число свободных устройств в определенном диапазоне номеров устройств или число памятей с коэффициентом использования меньше 50 (в частях от 1000) и т.д.
В поле А задается номер параметра вошедшего в блок сообщения, в котором будет организован счетчик числа объектов. Операнд А может быть именем, положительным целым числом, СЧА или СЧА*<параметр>.
В поле В определяется нижняя граница диапазона изменения номеров или имен объектов, для которых проверяется заданное условие. Операнд В может быть именем, положительным целым числом, СЧА или СЧА*<параметр>.
В поле С определяется верхняя граница диапазона изменения номеров или имен объектов, для которых проверяется заданное условие. Операнд С может быть именем, положительным целым числом, СЧА или СЧА*<параметр>. Значение поля С должно быть больше либо равно значению, заданному в поле В. Номер проверяемых объектов не должен превышать 32768.
Поле D задает сравниваемое значение (величина сравнения) для аргумента поля Е. Операнд D может быть именем, любым целым числом, СЧА или СЧА*<параметр>. Это значение используется совместно с заданными условными операторами ('E', 'NE', 'G', 'GE', 'L', 'LE'). Значение СЧА сравнивается со значением объекта, заданного аргументом поля Е. Если условный оператор не используется, поле D можно не задавать.
Поле Е используется совместно с аргументом поля D и условным оператором. В поле Е задается какой-либо из стандартных числовых атрибутов просматриваемых объектов. Необходимо только записывать мнемоническое обозначение атрибута, поскольку диапазон изменения номеров объектов задан полями В и С.
Блок SELECT имеет следующий формат записи:
SELECT X A,B,C,[D],[E],[F]
Блок SELECT выбирает первый объект в заданном диапазоне, который удовлетворяет определенному условию. Номер этого объекта записывается в заданный параметр вошедшего в блок сообщения. В основном, действия блока SELECT аналогичны действиям блока COUNT.
Блок PRIORITY имеет следующий формат записи:
PRIORITY A,[B]
Блок PRIORITY присваивает сообщению нужный приоритет. Приоритет сообщений влияет на порядок обработки сообщений процедурой просмотра и порядок занятия сообщениями объектов оборудования.
Поле А задает новое значение приоритета. Операнд А может быть именем, любым целым числом, СЧА или СЧА*<параметр>. Новое значение приоритета может быть меньше, больше или равно текущему значению приоритета.
Поле В определяет режим BUFFER, в нем указывается значение "BU".
Блок BUFFER имеет следующий формат записи:
BUFFER
Блок BUFFER используется для немедленного прекращения обработки сообщения и возврата интерпретатора к началу списка текущих событий. Обрабатываемое сообщение помещается в список текущих событий после сообщений с тем же классом приоритетов. |