Недавно мы писали об изменениях в новой версии AnyLogic. Эми Грир, наша коллега из компании MOSIMTEC и консультант по ИМ с 15-летним стажем, протестировала AnyLogic 8.3 и рассказала о своих впечатлениях в группе пользователей AnyLogic в LinkedIn. Мы попросили Эми расширить её пост и опубликовали его в английском блоге, а теперь публикуем перевод. Посмотрите на обновления AnyLogic глазами пользователя!
Что нового в AnyLogic 8.3?
Несмотря на вспомогательный номер версии, AnyLogic 8.3 скрывает значительные изменения в продукте. Почему я считаю их значительными?
- Новый анимационный движок помогает клиентам лучше воспринимать внешний вид модели.
- Возможности конвейеров и транспортёров новой библиотеки изменят мой подход к моделированию.
- Другие маленькие, но приятные новшества этой версии упростят процесс моделирования.
Давайте разберёмся в них по порядку.
1 — Новый анимационный движок
Сначала меня напугала эта новость. HTML5 полностью заменил старый Java Swing, и я думала, что мои старые модели перестанут работать. Это относилось и к нашему корпоративному шаблону модели: в нём мы с коллегами храним компоненты, которые часто используем в работе, включая компоненты анимации. В новой версии анимация моделей работает без ошибок, так что переход с 8.2 на 8.3 прошёл без проблем.
Во время работы с новой версией я столкнулась с двумя ошибками компиляции. Одну я решила, изменив приведение к типу с (Experiment) на (ExperimentHost). Другая относилась к тому, как я пыталась изменить панель управления в окне анимации. Поддержка AnyLogic ответила через несколько часов, и теперь наш шаблон работает на 8.3.
Так как теперь модели из AnyLogic запускаются в браузере, возник ещё один вопрос – как представлять модели клиентам, у которых не установлен AnyLogic? Для этого вместе с моделью, которая выгружается из AnyLogic, экспортируется портативный браузер Chromium. С помощью него и запускается модель. Кстати, теперь окно анимации выглядит современнее, чем в предыдущих версиях.
2 — Библиотека производственных процессов
Основное изменение в этой версии – Библиотека производственных процессов (Material Handling Library). Сейчас у неё две главных особенности:
- Конвейерные сети – новый элемент разметки пространства.
- Транспортёры (например, AGV, automated guided vehicle)
Вспомните блок Conveyor из стандартной Библиотеки моделирования процессов с его довольно базовыми возможностями. Элемент с таким же названием в новой библиотеке стал универсальнее; мы рассмотрим только часть его фичей.
Блок Conveyor из Библиотеки моделирования процессов не позволял задавать ускорение/замедление конвейера и маршрутизацию. Если нужно было провести объект через конвейерную сеть, приходилось вручную указывать все точки маршрута: от А до В, от В до С и т.д. В новой версии маршрут через конвейерную сеть строится автоматически.
В новой библиотеке в свойствах блока Convey, который задаёт логику движения объектов, можно оставить настройки по умолчанию, тогда объект будет двигаться по кратчайшему пути. Также можно вручную исключать отдельные конвейеры из пути объекта, например, если объект слишком большой и может не войти в зону конвейера, или включать их в обязательный маршрут, если объект требует дополнительной обработки в конкретной зоне.
Кроме того, что путь объекта по конвейеру задаётся автоматически, можно также указать обязательные сегменты, по которым объект должен пройти.
Классно, что можно задать программно последовательность сегментов конвейера и возможность включать/исключать сегменты из пути объекта. Настройки могут быть уникальными для каждого агента в системе и задаются либо на основе любого компонента модели, либо на основе входных данных.
Я рада, что разработчики добавили низкоуровневое управление для конвейерных сетей. Оно позволяет не только задавать ускорение/замедление для конкретных сегментов, но и менять эти параметры на лету. Я думала, что AnyLogic вылетит, когда меняла скорость объектов на конвейере во время работы модели. Однако конвейер постепенно переходил на нужную скорость, а если сегменты конвейера были соединены и работали с разной скоростью, объекты накапливать в очередь.
На этой картинке показано положение объекта на конвейере и мой код, который выполнится при наступлении события – входе переднего торца в точку на конвейере или выходе заднего торца из неё. Так агент связывается не только с конвейером, на котором находится, но и с другими агентами и сегментами конвейерной сети. Таким образом, пользовательские функции позволяют синхронизировать движение материальных потоков по конвейеру – важная задача на реальном производстве.
Я ещё не работала с транспортёрами, но зная, как хорошо работает Пешеходная библиотека, я уверена, что в AnyLogic уже есть разные опции по движению транспортёра по маршрутам и взаимодействию транспорта с конвейером. Ждите постов на эту тему!
Новая библиотека включает много фичей, и я перечислила только несколько из них. Советую вам протестировать библиотеку и построить модель из простых элементов.
3 — Другие особенности новой версии
Кроме Библиотеки производственных процессов и обновлённого анимационного движка в новой версии есть и другие, небольшие изменения, которые облегчат работу с программой. Вот те, которые я заметила:
- Добавлен аргумент self – отсылка к текущему элементу диаграммы состояния.
- Теперь при экспорте модели в виде приложения создаются файлы, которые позволяют запускать её на всех операционных системах.
- Для функции traceln() теперь можно задать аргумент Color, определяющий цвет текста в консоли.
- Добавлены новые функции toDate()
- Добавлен метод ResourcePool.getRequests(), чтобы следить за очередью запросов к другим ресурсам.
- Если у вас уже установлена 8-я версия AnyLogic, новую версию можно установить параллельно.
⭐Хотите поделиться мыслями или моделью с читателями блога? Пишите нам!
⚡Какие новшества AnyLogic 8.3 понравились вам больше всего? Расскажите в комментариях.