- •Моделирование транспортных систем
- •Моделирование транспортных систем
- •Содержание
- •Введение
- •Общая и сравнительная характеристика методов моделирования
- •Общая характеристика метода имитационного моделирования
- •Имитационная система истра
- •Понятие имитационной системы
- •Назначение и исходные предпосылки
- •Структура имитационной системы
- •Элементы
- •Операции
- •Оператор управления
- •Оптимизация на имитационной модели
- •Представление результатов имитационной модели
- •Операции
- •Некоторые синтаксические конструкции языка моделирования системы истра для создания операций
- •Предельное время задержки операции
- •Действия с логическими элементами
- •Действие с параллельным элементом
- •Действия с фиксаторами
- •Действия с бункерными элементами
- •Проверки элементов
- •Изменение емкости на явно указанную величину
- •Снятие явно указанной емкости
- •Занесение емкости с запоминанием остатка и занесения остатка
- •Изменение емкости элементов при помощи ссылки на другие элементы
- •Строки, описывающие натурный лист
- •Расформирование
- •Расписание прибытия
- •Приоритеты в имитационной системе
- •Ждать (оп1, оп2 затем оп3) затем оп4
- •Оп1 затем (оп2 затем оп3) оп4 затем оп5
- •Оп1 затем ((оп2 затем( оп3))( оп4 затем (оп5))
- •Оп1 затем оп2 затем оп3 оп4 затем оп5
- •Оперативная очередь операций
- •Принципы построения автоматизированной имитационной модели
- •Методика автоматизированного представления структуры станции в элементах модели
- •Заключение
- •Библиографический список
Ждать (оп1, оп2 затем оп3) затем оп4
Операция 4 будет поставлена в очередь только после выполнения операций 1 и 3.
Наконец конструкция ACT может быть задано именем общей цепочки:
“cchain”
Имя cchain должно быть определенным ранее пользователем именем общей цепочки. Вместо этого имени подставляется сама общая цепочка.
Общая цепочка задается записью вида
ЦЕПЬ “cchain” CHAIN
Требования к имени cchain те же, что и в записи ГРУППА и УСЛОВИЕ.
Если имя " cchain" описывает разветвляющую цепочку, то такое звено может быть только последним в цепочке, то есть после него не должно быть слова ЗАТЕМ.
Примеры цепочек:
Оп1 затем (оп2 затем оп3) оп4 затем оп5
Эта цепочка означает, выполняется операция 1, затем в очередь ставятся операции 2 и 4. После выполнения операции 2 выполняется операция 3, а после операции 4 – операция 5.
Отметим, что по данному выше описанию эту цепочку надо записывать в виде:
Оп1 затем ((оп2 затем( оп3))( оп4 затем (оп5))
Однако те скобки, которые не влияют на порядок действий можно опускать.
В то же время эту цепочку нельзя записать в виде
Оп1 затем оп2 затем оп3 оп4 затем оп5
поскольку такая запись означает, что после операции 1 выполняется операция 2, после нее ставятся на выполнение операции 3 и 4, а после выполнения операции 4 – операция 5.
Аналогичное правило опускания скобок справедливо и для звеньев-условий:
ЕСЛИ Ф1=1 ТО (ОП1 ЗАТЕМ ЕСЛИ (Ф2=2 ТО ОП2)) ИНАЧЕ (ОП3) И (ОП4)
эквивалентно
ЕСЛИ Ф1=1 ТО (ОП1 ЗАТЕМ ЕСЛИ Ф2=2 ТО ОП2) ИНАЧЕ ОП3 И ОП4
и означает что в случае выполнения условия Ф1=1 выполняется операция1, после выполнения которой в случае, если Ф2=2, выполняется операция 2. Если же Ф1 не равен 1, то вместо операции 1 выполняются операции 3 и 4.
Однако запись
ЕСЛИ Ф1=1 ТО ОП1 ЗАТЕМ ЕСЛИ Ф2=2 ТО ОП2 ИНАЧЕ ОП3 И ОП4
означает, что в случае выполнения условия Ф1=1 выполняется операция1, после выполнения которой в случае, если Ф2=2, выполняется операция 2. Из-за отсутствия скобок слово ИНАЧЕ относится здесь ко второму слову ЕСЛИ, поэтому операции 3 и 4 будут выполняться после операции 1, если Ф2 не будет равен 2.
В заключении пример полной записи, включающей в себя все типы звеньев.
ЦЕПЬ "Моя_Цепь" ЕСЛИ Ф1=1 ТО ОП10 ИНАЧЕ ОП11 ЗАТЕМ ОП12
ПРИ ОП1 (ЕСЛИ БУ8>60 ТО
ЖДАТЬ (ОП2(УНИК), MIN[БУ9:ОП2(ПР15,ВХ7), БУ10:ОП3(ПР15,ВХ7)]) ЗАТЕМ "Моя_Цепь"ИНАЧЕ "Моя_Цепь")
ОП15 ЗАТЕМ ЕСЛИ Ф3=1 ТО ОП20 ИНАЧЕ ЕСЛИ Ф3=2 ТО ОП21 ИНАЧЕ ОП22(Т-15)
Рекомендация:
Как видно, сложные цепочки трудны для восприятия, поэтому по возможности сложную запись лучше представить в виде нескольких более простых. Например, запись
ПРИ ОП1 (ЕСЛИ Ф1=1 ТО ОП2 ЗАТЕМ ЕСЛИ БУ1>50 ТО ОП3 ИНАЧЕ ОП4)
ЕСЛИ Ф1=2 ТО ОП5 ЗАТЕМ ЕСЛИ БУ1>50 ТО ОП6 ИНАЧЕ ОП7
можно заменить следующими записями, более легкими для восприятия.
ПРИ ОП1 ЕСЛИ Ф1=1 ТО ОП2
ЕСЛИ Ф1=2 ТО ОП5
ПРИ ОП2 ЕСЛИ БУ1>50 ТО ОП3 ИНАЧЕ ОП4
ПРИ ОП5 ЕСЛИ БУ1>50 ТО ОП6 ИНАЧЕ ОП7
Однако, сложная цепочка может быть полезна для задания параллельных процессов:
ПРИ ОП1 ЖДАТЬ(ОП2, ОП3) ЗАТЕМ ОП4
Кроме того, с помощью сложной записи можно сократить, например, следующую конструкцию.
ПРИ ОП1 ЕСЛИ Ф1=1 ТО ОП2 ИНАЧЕ ОП3
ПРИ ОП2 ОП4
ПРИ ОП3 ОП4
ПРИ ОП4 ЕСЛИ Ф1=1 ТО ОП5 ИНАЧЕ ОП6
Ее можно записать как
ПРИ ОП1 ЕСЛИ Ф1=1 ТО ОП2 ЗАТЕМ ОП 4 ЗАТЕМ ОП5
ИНАЧЕ ОП3 ЗАТЕМ ОП4 ЗАТЕМ ОП6
Пример, иллюстрирующий использование ключевого слова ВСЕГДА .
ПРИ ОП1 ЗАТЕМ ОП2 ЗАТЕМ ОП3
ПРИ ОП2 ОП4
ПРИ ОП2 ВСЕГДА ОП5
При выполнении операции 1 будет выполняться операция 2, после выполнения которой стартуют операции 3 и 5. Операция 4 не стартует, так как операция 2 является промежуточной операцией цепочки.
В заключение еще один пример, иллюстрирующий ключевые слова ЦЕПЬ и УСЛОВИЕ
ЦЕПЬ “ПАРАЛЛЕЛЬ” ЖДАТЬ(ОП1,ОП2)
УСЛОВИЕ “МОЕ_УСЛОВИЕ” Бу1>50 & Ф1=2
ПРИ ОП3 ЕСЛИ “МОЕ_УСЛОВИЕ” ТО “ПАРАЛЛЕЛЬ” ЗАТЕМ ОП3
