Принципы появления и обработки событий в сетевой модели

 

Событие в сетевой модели чаще всего происходит тогда, когда какой-то подвижный объект пытается покинуть блок, в котором он находился до данного момента времени, или он уже входит в следующий блок. Если разработчик модели не принял меры для специального управления процессом перехода объекта из блока в блок, то действует основной принцип под названием «передача-блокировка»:

-        предшественник пытается передать готовый к выходу объект своему последователю

-        если у последователя есть возможность принять объект, то он принимает его

-        если у последователя такой возможности нет, предшественник продолжает попытки передать объект во все последующие моменты модельного времени до тех пор, пока ему не удастся передать объект

Часто у разработчика модели появляется необходимость «перехватывать» события определённого типа, чтобы выполнять действия по управлению моделью или фиксировать статистические данные. Для этого он должен связать каждое интересующее его событие с собственной программой, присутствующей в модели в виде объекта типа Method. Симулятор eM-Plant позволяет сделать это в диалоговом окне того блока, в котором появляется соответствующее событие. В разделе Controls этого окна разработчик модели может указать имя программы, которая должна вызываться при любом из показанных на Рис. 2 типе события. Важнейшим является событие, при котором объект пытается покинуть блок. Только при обработке этого типа события (например, с помощью программы Exit_Front на Рис. 2) у разработчика модели появляется возможность назначить новый блок, к которому должен быть направлен объект, вызвавший данное событие. Во всех других случаях сохраняется возможность лишь зафиксировать информацию о событии или предпринять любые другие действия при предположении, что блок, принявший данный объект, точно известен. Такая возможность обработки событий имеет особое значение в случаях, когда выполняется моделирование, «ориентированное на длину». При таком моделировании может точно учитываться позиция Front и позиция Rear каждого объекта, который находится внутри блока типа Line или Track (см. Таблицу 1), одним из параметров которых является длина. Длина задаётся также в качестве параметра динамических объектов, проходящих через блоки типа Line или Track.

 

Рис. 2: Четыре типа событий в сетевой модели eM-Plant

 

Рис. 3: Фрагмент модели, содержащий объект типа Method

На Рис. 3 показан пример модели, в которой программа SourceControl вызывается каждым объектом, который появляется на выходе источника Source или источника ContainerSource. При этом она работает как программа Exit_Front на Рис. 2 и управляет движением объектов из обоих источников. Если при вызове программы SourceControl в одном из источников находится вызвавший её объект, а в другом источнике объект отсутствует, то никаких действий выполнено не будет и объект останется в своём источнике ожидать появления «парного» объекта. Если при вызове программы SourceControl «парный» объект обнаруживается в другом источнике, то производится «загрузка» объекта, поступившего из блока ContainerSource, и этот загруженный объект-контейнер направляется к блоку Line.

 
назад

вперед