_drop

Plant Simulation

52 posts in this topic

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

2.jpg

Share this post


Link to post
Share on other sites


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

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

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

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

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

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

 

Share this post


Link to post
Share on other sites

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

 

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

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

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

 

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

 

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

 

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

 

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

Share this post


Link to post
Share on other sites

ID: 46   Posted (edited)

18 часов назад, Zzz123456789 сказал:

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

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

Edited by geral
1 person likes this

Share this post


Link to post
Share on other sites

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

zELfZV8fmCU.jpg

Share this post


Link to post
Share on other sites

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

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

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

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

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

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

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

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

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

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

 

werker.thumb.gif.9edcc859d6df4035ea243709a71c2641.gif

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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


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

 

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

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

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

worker.spp

Share this post


Link to post
Share on other sites

ID: 51   Posted (edited)

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

Edited by geral

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.



  • Сообщения

    • 12Х18Н10Т
      Формула используется для плоского напряжённого состояния, причём с одним нулевым нормальным напряжением. Кратко: 1). Главные напряжения (при нулевом нормальном напряжении в направлении, например, y) по формуле на 1-ой картинке. 2). Подставляются в формулу эквивалентных напряжений по 4-ой теории прочности (картинка 2) и получаем формулу, которую Вы привели
    • vasillevich68
      @Aleksandar во избежание дальнейших придирок к Вашему "русскому", наверное Вам стоит уточнить, что русский язык для Вас, не родной.
    • Ветерок
      производиТСя
    • neotor2011@yandex.ru
      Забыл добавить. Весь анализ допусков спроектированного агрегата производиться в сборке с помощью TolAnalyst
    • vasillevich68
      Посетитель пивной, продавщице: - Девушка, а что это у вас пиво, такое пенистое??? Девушка: - Ну, что вы, мужчина!!! Разве можно о пиве, по латыни???
    • neotor2011@yandex.ru
      Здравствуйте. Эта "штука" очень полезная вещь. Когда проектируешь большую цепочку взаимодействующих деталей, в конце которой нужно, например биение наконечника 0,005. Проставляешь сразу допуски на изготовление. Не секрет, что чем уже допуск, тем дороже деталь в изготовлении. В конце проектирования, по проставленным допускам, программа формирует отчет о конечном (набежавшем) биении. Вот чтобы не перемудрить, и не наставить слишком "узкие" или слишком большие допуски, и не допустить неоправданного удорожания изготовления детали,  и нужна эта "штука". Вот как-то так.......
    • KorovnikovAV
      Трубный торцеватель. Но если скажете нотчер вас сантехники тоже в основном поймут.
    • BSV1
      Все-таки было бы полезно прояснить этот вопрос именно для настроек СИ 16-ой версии. @SAPRonOff , может посмотрите, повторив хотя бы тот пример, который я выкладывал? Вдруг действительно какой-то косячок?
    • KorovnikovAV
      Все куда банальнее, просто поспешил и щелкнул размер по умолчанию. Как и с лишним радиусом.   Фаза 2.SLDPRT Предлагаю обратный челлендж. Построить за максимальное количество ОПРАВДАННЫХ построений, исключая отдельные операции вроде уклонов и скруглений.  Ну или условия про минимальное количество построений остается а задание меняется на 2019. Тык   Hide  
    • SAPRonOff
      неееееее, SW тут сломается =)