Портал GPSS.RU

Юрий Толуев

tolujew@iff.fhg.de


Институт организации и автоматизации промышленного производства
общества им. Фраунгофера (
IFF), Магдебург, ФРГ

Основные характеристики
пакета имитационного моделирования
eM
-Plant


 

Пакет eM-Plant является стандартным программным обеспечением для решения задач моделирования, имитации, анимации и оптимизации физических (материальных) процессов в самых различных производственных и логистических системах, а также бизнес-процессов в таких системах. При его разработке в полной мере была реализована концепция объектной ориентации, включающая в себя иерархичность, наследование и полиморфизм. На этой базе был создан удобный графический интерфейс разработчика моделей, эффективный внутренний язык программирования, а также средства для интеграции пакета в информационных системах, предназначенных для планирования и управления производственными и логистическими процессами.

В первый раз пакет eM-Plant был установлен у заказчика в феврале 1992 года. В то время он имел название SIMPLE++ (Simulation in Produktion Logistik und Engineering) и был разработан фирмой AESOP в Штутгарте (ФРГ) в сотрудничестве с институтом общества им. Фраунгофера IPA с применением языка программирования C++. Название eM-Plant пакет получил в 2000 году после того, как фирма AESOP вошла в состав фирмы Tecnomatix.

Сегодня пакет eM-Plant активно используют несколько сотен предприятий, расположенных преимущественно на европейском континенте. В частности, работы с использованием пакета eM-Plant постоянно выполняются во всех автомобилестроительных концернах Германии.

 

1.         Метод создания моделей

Графической формой представления модели является сетевая структура, создаваемая, как правило, разработчиком модели на базе стандартных объектов, содержащихся в библиотеке классов симулятора (Class Library). Замечание «как правило» сделано в связи с тем, что в составе внутренного языка программирования SimTalk имеются средства для автоматической генерации моделей путём проведения диалога с пользователем или на базе текста готовой спецификации модели. В обычном же случае разработчик модели выполняет следующие действия:

-        разрабатывает концептуальную модель системы и эскиз её сетевой структуры «на бумаге»

-        выбирает статические объекты (блоки) eM-Plant в библиотеке классов и составляет из них структуру реальной модели на экране компьютера

-        путём использования объектов типа Connector связывает между собой блоки модели, предназначенные для обработки подвижных объектов, которые в eM-Plant называюся Moving Units (MUs)

-        открывает диалоговое окно каждого блока модели, при необходимости расширяет список атрибутов блока и вводит численные значения его параметров и атрибутов (диалог может не проводиться для тех блоков, которые являются копиями уже предварительно «настроенных» блоков)

-        назначает форматы данных для информационных блоков модели (глобальных переменных, таблиц и списков) и при необходимости вводит в них исходные данные

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

-        с использованием языка SimTalk пишет тексты программ для методов reset, init и endsim, которые автоматически вызываются на соответствующих стадиях прогона модели

-        вводит в состав модели блок EventController и при необходимости задаёт в нём параметры прогона модели (например, скорость моделирования и длительность прогона)

-        с помощью диалогового окна блока EventController управляет прогонами модели

 

Рис. 1: Библиотека объектов eM-Plant

 

На Рис. 1 показана библиотека объектов (классов) eM-Plant (версия 4.6), которая состоит из трёх разделов:

-        раздел MaterialFlow

объекты, используемые для создания модели как целостной структуры: Connector, EventController, Frame, Interface

статические объекты (блоки), предназначенные для обработки подвижных объектов: Source, Drain, SingleProc, ParallelProc, Assembly, DismantleStation, Store, Buffer, Sorter, Line, Track, FlowControl, Broker, Exporter

подвижные объекты: Entity, Container, Transporter

-        раздел InformationFlow

объекты для поддержки программ разработчика модели: Method, Variable, Comment

списки и таблицы: TableFile, CardFile, StackFile, QueueFile, TimeSequence

средства программирования регулярных событий: Trigger, Generator

средства обмена данными с другими программами: FileInterface, FileLink

-        раздел UserInterface

объекты для графического отображения текущих данных и результатов моделирования: Gauge, Plotter, Chart

объекты для конструирования диалогов пользователя: Dialog, IDMInterface

Краткое описание подвижных объектов и почти всех статических объектов (блоков), предназначенных для обработки подвижных объектов, можно найти в Таблице 1. Самые простые сетевые модели могут быть созданы без программирования на языке SimTalk, т.е. без применения объектов типа Method, однако такие модели никогда не встречаются в практике моделирования реальных систем. Примеры сетевых моделей, созданных на eM-Plant, показаны на Рис. 3 и 4.

 

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

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

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

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

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

Часто у разработчика модели появляется необходимость «перехватывать» события определённого типа, чтобы выполнять действия по управлению моделью или фиксировать статистические данные. Для этого он должен связать каждое интересующее его событие с собственной программой, присутствующей в модели в виде объекта типа 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.
 

3.         Особенности пакета eM-Plant как программного продукта для имитационного моделирования

Пакет eM-Plant относится к классу так называемых «индустриальных симуляторов». Отмеченные ниже особенности пакета характеризуют его именно с этой стороны. Именно в условиях производства возникает необходимость создавать в сравнительно короткие сроки большие и сложные модели, которые должны работать в режиме реального времени и взаимодействовать с другими программными продуктами.

3.1.      Поддержка иерархического принципа создания моделей и возможность расширения библиотеки объектов

Любой связанный фрагмент некой исходной сетевой модели может рассматриваться как «подмодель», т.е. как модель более низкого уровня иерархии. Этот фрагмент может быть заменён на один новый объект в структуре исходной сетевой модели. У нового объекта должны быть сохранены все входные и выходные связи, которые соединяли заменяемый фрагмент с остальными блоками исходной модели. Новый объект создаётся на базе библиотечного объекта типа Frame, который является графическим окном, предназначенным для создания сетевой модели. В этом смысле любая размещённая в пределах одного графического окна сетевая модель симулятора eM-Plant является объектом типа Frame. Таким образом, путём выполнения обычных операций Copy&Paste фрагмент исходной модели может быть размещён в новом (пустом) окне типа Frame, которому даётся при этом произвольное имя. Этот новый объект автоматически появляется в составе библиотеки объектов симулятора. В первую очередь одну его реализацию помещают, конечно, в структуру исходной модели, удаляя при этом заменяемый фрагмент. Начиная с этого момента структура исходной модели становится иерархической, так как в ней находится объект типа Frame, представляющий из себя самостоятельную структуру. Количество уровней иерархии не ограничено, т.е. любой объект типа Frame может иметь в своей структуре другие объекты типа Frame.

В описанном примере новый библиотечный объект возникает в результате укрупнения некой исходной структуры модели. Конечно, такие объекты разработчик модели может конструировать ещё и до существования общей структуры модели, которую впоследствии можно будет создать именно на базе заранее подготовленных библиотечных объектов типа Frame. Собственную библиотеку объектов типа Frame разработчик модели может развивать так, как он считает нужным. Он может создавать копии или новые поколения объектов, расширять или модифицировать эти объекты с ориентацией на применение в новых моделях.

Последнее высказывание относится также к библиотекам и объектам, которые попадают в руки разработчика модели как «чужие продукты». Таковыми могут быть, например, демонстрационные модели, поставляемые вместе с симулятором, или специализированные библиотеки, предлагаемые фирмой Tecnomatix (см. ниже). Данное свойство симулятора eM-Plant характеризует его как открытый продукт, на базе которого пользователи могут создавать собственные библиотеки и специализированные симуляторы.

На Рис. 4 можно видеть три объекта типа Frame, представляющие собой локальные модели. Объекты Strom_LKW и Strom_Schleppzug (слева внизу рисунка) используются как модели источников входных потоков грузовых автомашин. В каждом таком источнике реализуется сложное расписание прибытия автомашин от разных поставщиков и рассчитываются подробные модели для определения состава и объёма груза. Объект GMD содержит полную модель логистических процессов на предприятии, которое является получателем грузов, отправляемых из моделируемого логистического центра. По размеру его сетевая модель сравнима с моделью верхнего уровня, показанной на Рис. 4.

3.2.      Интерфейс пользователя и программные интерфейсы пакета

С помощью объектов типа Dialog разработчик модели может создавать специальные диалоговые окна, предназначенные для ввода исходных данных, управления процессом моделирования или анализа результатов моделирования. Чаще всего это делается в случаях, когда с моделью должен работать пользователь, не знакомый с базовым интерфейсом eM-Plant. Весь интерфейс пользователя eM-Plant является многоязычным. В настоящее время стандартные диалоги поддерживаются на английском, немецком и японском языке. Для создания собственного диалога пользователя на любом другом языке должна быть заполнена текстовыми блоками только одна таблица.

Специальный интерфейс позволяет пользователю автоматически создавать документацию для модели в формате HTML, в состав которой он может включать также материалы, относящиеся к результатам моделирования и ссылки на страницы в Интернете. Полное документирование самой модели и результатов моделирования в формате HTML может производиться также автоматически в любой момент времени при обработке модели.

К интерфейсу пользователя относятся методы визуализации моделируемых процессов. Уже упомянуты были объекты типа Gauge, Plotter и Chart.

Анимация процессов в eM-Plant может быть выполнена на трёх качественно различных уровнях:

-        отображение дискретных позиций подвижных объектов на фоне сетевой структуры модели (стандартная 2D-анимация, которая не требует никаких усилий от разработчика модели)

-        отображение напрерывного движения объектов на фоне произвольного графического двумерного изображения модели (2D-анимация, которая может быть создана средствами встроенного графического редактора eM-Plant)

-        реалистическое отображение движения объектов модели в трёхмерном пространстве (3D-анимация, которая может быть создана с помощью библиотеки трёхмерных объектов, предлагаемой 3D-компонентом самого пакета eM-Plant, или с помощью библиотек типа OpenGL Optimizer)

В последних версиях eM-Plant эффективно могут использоваться специальные объекты (группа Tools), разработанные для поддержки работ по анализу процессов:

Bottleneck Analyzer:    поиск «узких мест» в системах обработки материальных потоков на базе визуализации стандартной статистики о загрузке блоков модели

Sankey-Chart:              визуализация плотности потоков подвижных объектов, проходящих через выбранные пользователем блоки модели

Для пакета eM-Plant фирма Tecnomatix поставляет специальные компоненты, расширяющие его функциональные возможности и возможности для программной интеграции с другими продуктами:

eM-Plant ActiveX:       использованние компонентов ActiveX в моделях на eM-Plant

eM-Plant Aris:             связь с пакетом для моделирования бизнес-процессов фирмы IDS Scheer AG

eM-Plant C:                 создание программ на языке C для вызова из моделей внешних программ в форме DLL

eM-Plant DDE:            взаимодействие моделей с другими программами, работающими под Windows

eM-Plant Gantt:           интерактивная работа с процессами в моделях, изображёнными с помощью диаграмм Ганта

eM-Plant GA:              применение генетических алгоритмов для оптимизации процессов, воспроизводимых моделями

eM-Plant ODBC:         двухстороннее взаимодействие с серверами ODBC, работающими под Windows

eM-Plant Socket:         взаимодействие с другими программами в реальном времени на базе протокола TCP/IP

eM-Plant SQL:            двухстороннее взаимодействие с банками данных, реализованными с помощью ORACLE

3.3.      Специализированные наборы объектов

Специализированные наборы (библиотеки) объектов были разработаны с целью ускорить процесс разработки моделей в тех отраслях производства и логистики, где достаточно регулярно возникает необходимость создавать аналогичные по своим функциям модели. Кроме того, как отмечалось выше, такие библиотеки могут использоваться как исходный материал при разработке пользователями собственных специализированных библиотек.

На сегодняшний день фирма Tecnomatix предлагает следующие специализированные наборы объектов eM-Plant:

eM-Plant AGVS:         (Automated Giuded Vehicle System) моделирование мобильных средств перемещения грузов, в особенности, систем робокаров

eM-Plant Airport:         моделирование потоков пассажиров на территории аэропорта

eM-Plant Assembly:     моделирование, анимация и анализ сборочных процессов

eM-Plant Carbody:      моделирование, анимация и анализ процессов на предприятиях автомобилестроительной промышленности (до этапа «покраска кузова»)

eM-Plant Conveyor:     моделирование стационарных средств перемещения грузов (конвейерных систем)

eM-Plant EOM:           (Electrical Overhead Monorail) моделирование подвесной монорельсовой системы перемещения грузов

eM-Plant HBW:           (High Bay Warehouse) моделирование буферных зон и высотных автоматизированных складов

eM-Plant Paintshop:     моделирование, анимация и анализ установок для выполнения работ по покраске изделий

eM-Sequencer:            решение задач типа «job shop scheduling» на базе применения генетических алгоритмов

eM-Plant Shop:            моделирование процессов, протекающих в условиях «мануфактурного» производства

 

 

Рис. 4: Фрагмент имитационной модели логистического центра

 

Таблица 1: Классы объектов для моделирования логистических систем

Название класса

Примеры объектов реального мира или примеры использования в моделях

Динамические объекты

Entity

Единица груза, деталь, пассажир.

Container

Коробка, ящик, поддон, контейнер.

Transporter

Транспортное средство или мобильное средство перемещения грузов.

Статические объекты

Source

Входной поток грузов, товаров, пассажиров или транспортных средств. Поток заявок на выпонение транспортных операций.

Drain

Граничный объект в структуре, через который динамические объекты покидают модель.

SingleProc

Ресурс системы, предназначенный для одновременной обработки лишь одного динамического объекта: подъёмный кран, лифтовый подъёмник, робот-манипулятор, станок, рабочее место.

ParallelProc

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

Buffer

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

Store

Место хранения динамических объектов, покидать которое они могут только в ответ на поступление соответствующих команд.

Line

Участок конвейерной системы транспортировки грузов, транспортёр.

Track

Участок пути, по которому премещаются объекты класса Transporter. Используется как элемент транспортной системы с автоматическим поиском маршрутов.

Assembly

Рабочее место, на котором происходит объединение нескольких динамических объектов: место сборки изделий, пункт загрузки транспортных средств.

DismantleStation

Рабочее место, на котором происходит разделение динамических объектов: место разборки изделий, пункт разгрузки транспортных средств.

 


Распечатано с портала GPSS.RU
(c) Юрий Толуев, 2004 г.