Вспомогательный операнд X содержит код состояния проверяемого аппаратного объекта, а в поле A указывается имя или номер этого объекта. Если проверяемый объект находится в заданном состоянии, то блок GATE пропускает транзакт к следующему блоку. Если же заданное в блоке условие не выполняется, то транзакт переходит к блоку, указанному в поле B, а если это поле пусто, то задерживается перед блоком GATE.
Операнд X может принимать следующие значения: U (устройство занято); NU (устройство свободно); I (устройство захвачено); NI (устройство не захвачено); SE (МКУ пусто); SNE (МКУ не пусто); SF (МКУ заполнено); SNF (МКУ не заполнено); LS (ЛП включен), LR (ЛП выключен).
При использовании блока GATE модель принимает вид, показанный в программе ниже по тексту. В этом варианте транзакт проходит в блок ENTER, если условие "МКУ STO2 не заполнено" истинно.
STO2 STORAGE 2
EXP FUNCTION RN1,C24
,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915
.7,1.2/.75,1.38/.8,1.6/.84,1.85/.88,2.12/.9,2.3
.92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5/.98,3.9
.99,4.6/.995,5.3/.998,6.2/.999,7/.9998,8
GENERATE 100,FN$EXP
|
|
ENT1 GATE SNF STO2,REFUS
ENTER STO2
ADVANCE 160,FN$EXP
LEAVE STO2
TERMINATE 1
REFUS TRANSFER.1,,OUT
ADVANCE 250,FN$EXP
TRANSFER,ENT1
OUT TERMINATE 1
Блоки, работающие с памятью
Для хранения в памяти отдельных числовых значений и массивов таких значений используются сохраняемые величины и матрицы сохраняемых величин. Сохраняемые величины могут использоваться в модели для хранения исходных данных, которые надо изменять при различных прогонах модели, промежуточных значений и результатов моделирования. В начале моделирования все сохраняемые величины устанавливаются равными 0. Для установки отличных от 0 начальных значений сохраняемых величин используется оператор INITIAL, имеющий следующий формат:
INITIAL X$ имя, значение
INITIAL Xj,значение
Здесь имя и j - соответственно имя и номер сохраняемой величины, а значение - присваиваемое ей начальное значение (константа).
Для изменения сохраняемых величин в процессе моделирования служит блок SAVEVALUE (сохранить величину), имеющий следующий формат: