Перейти к публикации

Plant Simulation


Рекомендованные сообщения

@geral приветствую! Пытаюсь смоделировать процесс замеса теста, и вроде бы логика системы понятна, но почему-то она не работает. Сделал три источника, с них три ингреда должно быть загружено в миксер (assembly). Дальше удаляем все и создаем новый ПО. Но ничего не выходит. Станция просто не начинает работать. 100% времени в режим ожидания остается. Даже не знаю, то уже попробовать. И на рабочее место доставлял ингреды, и на саму станцию. Стоит автоматическая сборка. Ничего не помогает. Может быть есть идеи, что я делаю не так?

2.jpg

Ссылка на сообщение
Поделиться на других сайтах
  • 3 недели спустя...


@Carkas  Добрый день, Коллега.

Я не совсем уверен, но мне кажется у Вас 2 проблемы:

1. В таблице для сборочной станции, насколько я помню, не указывается подвижный юнит, приходящий по главному входу станции (в Вашем случае по входу 1)

2. Если Вы используете сборку по типам подвижных юнитов, то в таблице следует указывать только типы юнитов без полного пути к ним (в Вашем случае Краситель1, Сахар, Белок, без *.UserObjects....)

Попробуйте поправить эти моменты и запустить модель.

Также, как я понял, сборочная таблица у Вас фиксированная (т.е. в процессе симуляции меняться не будет), поэтому возможно проще было бы использовать сборку по входам.

 

Ссылка на сообщение
Поделиться на других сайтах

Доброго времени суток, Коллеги.

 

Прочитал эту ветку и увидел, что тут существует традиция раз в несколько лет пинать эту тему с вопросом "Существует ли имитационное моделирование в России или это миф?". Решил продолжить эту славную традицию.

Занимается ли кто-то реально имитационным моделированием в РФ? Если да, то в какой области, для каких целей? На разглашение коммерческой тайны или конфиденциальной информации не претендую, просто хотелось бы понять широту охвата и всю глубину, так сказать, наших глубин.

На конференции SIEMENS каждый год выступают толпы пользователей PS практически со всего света и никого из России. Не пользуется популярностью у нас PlantSimualton? Или нам этот междусобойчик просто не интересен?

 

Сам я использую Plant (правда, не очень часто) для проектов в области автомобильного производства для западных заказчиков. Здесь это является обязательным требованием. Правда сама работа предельно унифицирована и стандартизована: можно использовать только специальные библиотеки, модель делать по единому стандарту, расчеты проводить по определенным методикам - негде развернуться фантазии и творчеству )))

Ссылка на сообщение
Поделиться на других сайтах

ЖД промышленность. Оценка рисков невыполнения плана производства с учетом номенклатуры производимых изделий, абсентеизма и особенностей оборудования. Определение производственных параметров. Ни чего нового! :)
На конференции в этом году буду в качестве слушателя. 
Что касается унификации и стандартизации - на крупном предприятии без этого ни куда, иначе "подружить" модели не получится! Отличие в том, что проводим эту работу самостоятельно, а это позволяет разрабатывать собственные библиотеки с учетом специфики производства.

Ссылка на сообщение
Поделиться на других сайтах

@geral Доброго дня, Коллега.

 

Если я правильно понял, Вы используете PS в большей степени как MRP систему? Т.е. для планирования ресурсов и загрузки оборудования? Или я не прав?
Кстати, используете ли Вы в своих моделях вероятностные параметры: отказы оборудования, доступность работников, материалов?

 

Самодельные компоненты и библиотеки - это конечно существенный плюс при разработке. Однако это же в свою очередь тормозит переход на более новые версии софта. В последние годы Siemens, как бешеный принтер, выпускает каждый год новую версию Планта, причем с существенными изменениями, но использовать их в моей работе не возможно - у заказчика все библиотеки по версию v12 заточены.

 

Я на конференцию в этом году не попал. Жаль, темы некоторых презентаций этого года кажутся довольно привлекательными. Надеюсь, Вы найдете для себя что-нибудь полезное на этой конференции. Кстати, я так понимаю, в этом году там выступают Ваши коллеги: "Plant Simulation project for wagon building optimization at Ideal PLM in Russia, Presenter: Anastasiya Pershina, Ideal PLM, Russia"

Ссылка на сообщение
Поделиться на других сайтах
18 часов назад, Zzz123456789 сказал:

Самодельные компоненты и библиотеки - это конечно существенный плюс при разработке. Однако это же в свою очередь тормозит переход на более новые версии софта. В последние годы Siemens, как бешеный принтер, выпускает каждый год новую версию Планта, причем с существенными изменениями, но использовать их в моей работе не возможно - у заказчика все библиотеки по версию v12 заточены.

@Zzz123456789 Есть простое решение - при создании библиотеки скопировать в нее используемые объекты (стандартные). В дальнейшем к ним не будут применяться изменении SPS, т.к. они воспринимаются как пользовательский класс. В случае появления действительно полезного функционала, объект меняется на новый с доработкой кода.

Изменено пользователем geral
Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...
Ева_Слободянюк

Добрый день, коллеги! подскажите, пожалуйста, может кто сталкивался с похожими задачами? я пытаюсь смоделировать гибкий производственный участок. есть несколько типов деталей, у каждой свой маршрут, т е обработка идет не последовательно на станках. вместо транспортера, который переносит заготовки с буфера на станки использую worker, так как нужно исключить холостые ходы, после того, как worker унес деталь на станок, должен тем же маршрутом возвращаться к буферу, либо переносить освободившуюся деталь на другой станок. пытаюсь прописать маршрут через method c помощью команды move, но получается при запуске, что не worker забирает деталь, а она сама скачет по станкам, хотя тип выхода ставлю унести деталь, метод ставлю на управление событиями - выход.

zELfZV8fmCU.jpg

Ссылка на сообщение
Поделиться на других сайтах

@Ева_Слободянюк  Доброго времени суток!

Я хоть и не специалист по моделированию Worker, но попробую помочь.

1. Метод "Move" для подвижных элементов с указанием пункта назначения, он принудительно перемещает подвижный элемент в указанный пункт, минуя все промежуточные. То есть у Вас он отрабатывает правильно на все 200%, и он Вам не подходит.

2. Для выходной стратегии "Унести деталь" есть два варианта указать пункт назначения:

2.1 Первый вариант: прописать в свойствах станции/буфера/др. на вкладке выходной стратегии. Проблема - у Вас пункт назначения будет меняться в зависимости от типа деталей. Как вариант - написать метод, меняющий этот аттрибут станции в зависимости от типа детали, находящейся в данный момент на станции. Но так как станцией в начале является буфер, в котором одновременно будут находиться детали с разными пунктами назначения, то это будет проблематично. Поэтому я бы не рекомендовал этот вариант.

2.2 Второй вариант: подвижные элементы имеют аттрибут "Destination", который используется различными объектами при маршрутизации, например Worker, PickAndPlace, и т.д. Чтобы воспользоваться этим вариантом, Вам необходимо всего лишь менять этот аттрибут таким образом, чтобы он все время указывал на следующий пунк назначения для подвижного элемента. Например, при генерации Вы сразу задаете для конкретного типа деталей конкретную станцию, а затем, когда деталь придет в эту станцию, Вы меняете значение этого аттрибута на следующую станцию по процессу, и так далее.

3. Накопитель Store и общее управление процессом. Здесь, как мне кажется, у Вас будет проблема: реальный человек в цеху сам видит, что, куда и в какой момент ему нести, а компьютер - это всего лишь мощный калькулятор, и Вам придется очень четко продумывать стратегию управления рабочим. В противном случае у Вас в какой-то момент времени процесс будет просто блокироваться - рабочий с деталью придет в станцию, где уже лежит деталь - и все, приплыли.

На мой взгляд, здесь мог бы помочь следующий вариант:

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

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

 

werker.thumb.gif.9edcc859d6df4035ea243709a71c2641.gif

Ссылка на сообщение
Поделиться на других сайтах
Ева_Слободянюк

@Zzz123456789 спасибо большое за такой подробный ответ! попробую реализовать 2 вариант.

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

Ссылка на сообщение
Поделиться на других сайтах

@Ева_Слободянюк

Доброго времени суток!


Реализовать постанционный маршрут обработки, на мой взгляд, не очень сложно. Я бы сделал это так:
- каждой детали прописывается дополнительные аттрибуты (прямо во время генерации, в таблице):
1. таблица с маршрутом обработки по станциям, при этом маршрут записывается в обратном порядке от последней станции к первой.
2. К - Колличество операций в маршруте, оно же - номер первой операции в таблице маршрута обработки (так как в таблице маршрут записан в обратном порядке ))))
- когда деталь приходит на какую-либо станцию, то из таблицы маршрута выбирается элемент под номером К, т.е. следующая по маршруту операция, а само К уменьшается на 1, чтобы указывать уже на следующую операциую.
Получается, чем меньше К, тем ближе деталь к завершению маршрута. По этому же параметру можно отбирать детали из буфера )))

 

А вот реализцация маршрутизации рабочего - вот это, как мне кажется, существенная проблема - зря Вы ее так недооцениваете. К сожалению, то условие, которое Вы показывали на картинке выше, не подходит в данном случае - это так не работает.
По хорошему, для управления рабочим нужно сильно заморочиться с обработкой ImportRequest в брокере, так как именно он определяет, куда и зачем пойдет в конкретный момент рабочий. На эту тему я бы порекомендовал покурить примеры, идущие вместе с PlantSimulation: стартовая страница -> примеры моделей -> простые модели и там в меню выбрать Resource и Worker (надеюсь понятно объяснил, где это)
Так как я не спец. по моделированию рабочих, то помочь с методом для брокера не могу. Если Вы разберетесь с этим вопросом, то буду рад почитать Ваши пояснения по этой теме.

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

Я приложил свою модельку. Это всего лишь мой взгляд на решение данной задачи, как илюстрация к написанному выше.
В модели два фрейма: "OnePart" - детальки по одной проходят через систему, для илюстрации способа маршрутизации с помощью дополнительных аттрибутов; "MultiPart" - несколько деталей в системе, для иллюстрации управления рабочим с помощю костылей.

worker.spp

Ссылка на сообщение
Поделиться на других сайтах

Доброго времени суток!
@Zzz123456789, @Ева_Слободянюк, таблица с маршрутом обработки по станциям - это технологический процесс. Почему бы не создать таблицу ТП на каждое ДСЕ, в которой каждой операции будет присвоены номер, наименование, временя и ссылка на оборудование? А атрибут в MU хранит операцию на которой находится ДСЕ. На выход объекта (оборудование) повесить метод который присваивает атрибуту следующую операцию, проверяет ссылку на объект следующей операции и перемещает ДСЕ на следующий объект.
По поводу сложности работы с Брокером, полностью согласен. Решал задачу с распределением заданий экспортерам - закопался в методах, переменных и событиях. По мимо Брокера, вполне возможно необходимо будет проверять как импортера (RequestService), так и Экспортера (Release). Но в данном случае вижу выход стандартными средствами - присвоение разных приоритетов (объект->импорт услуг->Приоритет) операциям. Указывать их в той же таблице ТП.

Изменено пользователем geral
Ссылка на сообщение
Поделиться на других сайтах

@geral  Полностью с Вами согласен по поводу вынесения маршрута обработки в отдельную таблицу. Это позволит собрать в одном месте максимум информации, сделать процесс более гибким (например, если на одной станции детали обрабатываются разное время). Заодно это упростит последующую модификацию и расширение модели. Единственное что я бы оставил - это назначение следующей операции на входе в станцию, а не на выходе из нее. Так как событие "выход" выполняется не единожды, а каждый раз, когда деталь порывается выйти, так что придется постоянно проверять, действительно ли деталь вышла или это ложное срабатывание.

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

Ссылка на сообщение
Поделиться на других сайтах
  • 1 месяц спустя...

@geral Добрый день, а у Вас случайно нет видеоуроков для чайников в plan simulation? а то пытаюсь вставить рабочего (worker) а он ни в какую не хочет

Изменено пользователем ingenerkons
Ссылка на сообщение
Поделиться на других сайтах

Добрый день. Разбираюсь потихоньку с небольшими аспектами программы, все же было бы неплохо запустить серию миниуроков, не обязательно моделировать производственные ситуации хотя неплохо было бы)) Но можно для понятия основ моделировать и бытовые ситуации, как-то например семья из n человек пьет чай при учете, что кому то раньше на работу, кому то в школу, а кто то дома ))) 

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

Изменено пользователем ingenerkons
Ссылка на сообщение
Поделиться на других сайтах

@ingenerkons  Добрый день!
На самом деле мини-уроков по ПС достаточно много в том же Youtube (см. линк ниже). Так же хорошо помогают мини-примеры, которые идут в поставке ПС - открываете, смотрите как работает, разбираетесь, делаете что-то свое на этой основе. Если что-то непонятно, то задаете вопрос, здесь или на официальном форуме Plant Simulation.
Если у Вас есть какая-то конкретная ситуация для моделирования или нужен какой-либо пример, то можете написать сюда, попробуем разобраться.
Моделирование производственных ситуаций принципиально ничем не отличается от моделирования непроизводственных. Однако стоимость этого софта достаточно высока, чтобы моделировать с помощью него обычное чаепитее. Да и то, что Вы описали больше походит на агентное моделирование, мне кажется Plant Simulation для него все же не очень подходит.
Свои модели можно использовать для визуализации оборудования в 3D, но насколько я помню только в формате JT, т.е. для компаса и solidworks придется поискать транслятор. Для 2D планировки можно использовать файлы картинок или форматов dwg и dxf.
Для ограничения перемещения рабочих в рамках модели раньше использовались специальные элементы, которые описывали пешеходные дорожки (как в постах чуть выше). В более новых версиях вместо этого стали использовать ограничения - области в которые человеку запрещено заходить. Предполагается, что это сделает модель более гибкой и удобной для оптимизации, но я с этим еще ни разу не работал.


https://www.youtube.com/watch?v=eLUkr0gZtAg&list=PL1m1vu8_quoAaezQsacD6jO_AK8Wvnjg-&index=1

Ссылка на сообщение
Поделиться на других сайтах

@Zzz123456789 Спасибо

Как раз эти уроки пробую)) вот сразу вопрос  по этому в частности уроку https://youtu.be/YeVcBrzvdjo?list=PL1m1vu8_quoAaezQsacD6jO_AK8Wvnjg-

с помощью форума и конкретно участников этой темы (Спасибо отдельно за посты с картинками и пояснениями) увидел что пункт убрали в 15 версии по перемещению детали в транспорт. 

Так вот вопрос в том, что в уроке человек ходит туда-сюда, а у меня проходит один цикл и стоит с деталью на втором станке 

Изменено пользователем ingenerkons
Ссылка на сообщение
Поделиться на других сайтах

@ingenerkons  Добрый день.
Да, Сименс периодически меняет интерфейс, а также синтаксис используемого языка программирования. Но это, увы, неизбежность с которой приходится мириться. Тем более, что если работа выполняется под заказ, то работать приходится с версией заказчика, а у них она как правило очень древняя )))


По поводу Вашей проблемы - было бы неплохо приложить хотя бы скрин модели, желательно прямо в момент "затыка". Без этого диагноз определить достаточно проблематично.

Я не Ванга, но попробую определить "диагноз по юзерпику" - проблема в том, что вторая станция не отрабатывает процесс. В данной модели 1 рабочий предоставляет 2 сервиса: Процесс (обработка детали на станции) и Переноска детали. Процесс выглядит следующим образом:
- деталь приходит на станцию 1 и ждет рабочего
- рабочий приходит на станцию 1, начинается процесс обработки детали
- процесс обработки заканчивается, рабочий берет деталь и несет на станцию 2
- рабочий премещается на рабочее место в станции 2, начинается процесс обработки детали на станции 2
и далее по циклу
Возможная проблема затыка детали после первого цикла состоит в том, что станция 2 не получает сервис "Процесс", соответственно не происходит обработка детали, и она (деталь) не покидает станции. Т.е. человек кладет деталь на станцию 2, и вместо того, чтобы выполнить операцию на станции 2, идет к станции 1. Тогда, когда человек снова придет к станции 2 с деталью, там будет еще находиться предыдущая деталь, и возникнет блокировка в модели.

Я бы для начала предложил убедиться (чисто визуально), что процесс на станции 2 выполняется и деталь покидает станцию. Если тут все Ок, то проблема неочевидная, и без доп.подробностей ее не решить. Если же деталь действительно не обрабатывается, то дальше нужно уже разбираться почему именно не обрабатывается:

- на станции не прописан сервис для Импортера / прописан с ошибкой

- не указано рабочее место для сервиса "Процесс" (кстати, не увидел этого в видео!)

- рабочее место с сервисом "Процесс" не приасайнено к станции 2

- рабочий принудительно перекидывается на станцию 1 брокером (например из-за приоритетов)

Вариантов масса. В этом и заключается отладка модели.

Ссылка на сообщение
Поделиться на других сайтах

Добрый день. @Zzz123456789 . Постарался сделать скрин с настройками устройств. Рабочий отрабатывает цикл и стоит с деталью возле второго станка на рабочем месте

 

Сейчас конечно еще не понимаю совсем принципов того что сделал, алгоритма так сказать не сложилось. Физически представляю реальную ситуацию на базе этого урока так

-есть небольшой склад с деталями возле станка (сменное задание)

-станка 2 рабочий 1 и обслуживает их оба

-станок 1 обрабатывает деталь к примеру 10 минут

-станок 2 обрабатывает 3 минуты при чем только после первого станка может работать

(наладку и подготовку станка к работе пока не принимаю в расчет)

На выходе хотелось бы получить диаграмму со временем работы и простоя оборудования, и со временем занятости человека, вернее узнать сколько человек бегает и соответственно планировать варианты с двумя работниками или с промежуточными буферами

 

На скрине отметил стрелками какие настройки к чему относятся

Так же сделал небольшое видео отработки заданных настроек

https://youtu.be/jI0iIi2C3qY

 

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

Скрин урока.jpg

Ссылка на сообщение
Поделиться на других сайтах

@ingenerkons  Добрый день.

 

Извиняюсь за поздний ответ. Спасибо за доп. информацию. Я посмотрел видео, и мне кажется, у меня появилась идея, что может быть Вашей проблемой. Давайте разберем его по шагам:
- Деталь из источника приходит в первую станцию через коннектор (синенькая стрелочка между источником и станцией). Здесь все Ок.
- Человек из пула идет к первой станции. Тоже все Ок.
- Человек обрабатывает деталь на первой станции. Все Ок.
- Обработка детали на первой станции завершена, человек идет к месту выемки детали. Все Ок.
- Человек берет деталь с первой станции и несет ее на вторую. Все Ок.
- Человек закладывает деталь на вторую станцию и идет к позиции обработки детали на второй станции. Все Ок.
- Человек закончил обработку детали на второй станции пошел к первой станции. Деталь на второй станции должна покинуть ее через коннектор. Но деталь остается на станции! Вот это не Ок! Вот здесь есть отклонение от запланированного процесса, и надо разбираться из-за чего оно возникает.
Ладно, смотрим дальше, может будет понятнее.
- Человек завершает обработку детали на первой станции. По циклу он должен взять деталь с первой станции о понести ее на вторую. После этого по идее симуляция должна остановиться, так как рабочему некуда положить деталь.
НО! Вместо этого человек идет ко второй станции и берет оттуда деталь! Этого не было запланировано, деталь должна была покинуть станцию через коннектор.
Значит проблема скорее всего в выходе детали с второй станции. Человек не должен брать деталь оттуда, а он берет. Т.е. у станции должна быть обычная выходная стратегия, а сейчас стоит транспортировка детали человеком!
Поэтому мой совет: проверить, что на второй станции на вкладке транспортировка деактивирована, если нет - деактивировать ее. Проверить отдельно, что деталь может покинуть станцию без проблем через коннектор.

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

 

По поводу уроков по PS на русском - увы, их практически нет. Единственный хороший источник информации по этой программе на русском языке - Владимир Медведев. Но он один, а Россия большая)))
К тому же, как мне кажется, в РФ очень небольшой спрос на данный инструмент и на иммитационное моделирование вообще. Иначе уже давно, кто-нибудь бы занялся этим вопросом.

 

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

 

worker_example.spp

Ссылка на сообщение
Поделиться на других сайтах

@Zzz123456789  Добрый день спасибо большое помог совет.

В частности на второй станции была активна услуга транспорта, деактивировал и помогло))

 

Согласен что спрос небольшой, опять же сейчас больше для себя смотрю возможности программы, постараюсь после НГ применить к реальной задаче, вот тогда вопросы и посыпятся)). На практике же сталкивался с запуском мебели в серию, вот честно сказать проблемы решались, скажем так по мере поступления, то каркасов много то, чехлов много, то набрали людей, то уволили, то склад заполнен, то машин мало, а скажем так научного подхода даже с укрупненным расчетом никто не делал. Да и любому директору предприятия нужно, как правило показывать результат готовый. и серийных производств по сути немного.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.



×
×
  • Создать...