Необходимо написать программу на контроллере S7 для управления процессом перемещения зерна в элеваторе (около 80 транспортеров, распределителей потока и т.д., около 500 дискретных датчиков).
Может кто-то сталкивался с подобными объектами.
Меня интересует алгоритм поиска оптимальных маршрутов от одной заданной точки к другой.
А так-же посоветуйте с выбором контроллера (1 панель оператора и около 6-ти ET200). S7-300 или же S7-400 серия (с S7-400 раньше не работал)?
Спасибо.
[?]: Алгоритм управления зерновым элеватором
-
- Posts: 52
- Joined: Fri Oct 14, 2005 1:09 pm
- Location: Ukraine
-
- Posts: 122
- Joined: Fri Aug 11, 2006 6:16 pm
- Location: Russia, Komi
-
- Posts: 50
- Joined: Sun Nov 27, 2005 7:46 pm
- Location: Russia
-
- Posts: 122
- Joined: Fri Aug 11, 2006 6:16 pm
- Location: Russia, Komi
да ошибаетесь, ибо какой-то из конвейеров, между, может сломаться, придётся выбрать менее оптимальный маршрут. А следующий по степени оптимальности, как на зло, известно что будет занят, но благо его не поздно пересмотреть. и тдLittle_Cat wrote:...И трудно себе представить 5 маршрутов насыпки на 1 склад. Могу и ошибаться.
однозначно, решить задачу ТМО не зная ТМО, то же самое что решать задачу ТАУ не зная ТАУ. Скорее всего решить получиться, ибо любая теория это "лакированный" здравый смысл. но можете быть уверенным - результат будет далёк от оптимального.
-
- Posts: 58
- Joined: Wed Dec 13, 2006 6:54 am
- Location: Russia
Прям как GPS навигатор должен получится...
Если маршруты не нужно искать автоматом и они заранее определены тогда так:
Маршрут это скорее всего массив, число в массиве-устройство через которое нужно пройти, указатель-последовательность прохождения.
Для каждого транспортёра и распределителя числовое свойство пропорциональное времени прохождения продукта и другим факторам, суммируем всё в маршруте, где число меньше, там оптимальный.
Каждое свойство это однозначно массив, где указатель-номер устройства. Авария на устройстве это тоже свойство.
перебрать все определённые маршруты в цикле (for next), определить нужные и сравнить расчитанные свойства. Если сименс не дружит с массивами, тогда через косвенную адресацию, но сложнее...
Если маршруты не нужно искать автоматом и они заранее определены тогда так:
Маршрут это скорее всего массив, число в массиве-устройство через которое нужно пройти, указатель-последовательность прохождения.
Для каждого транспортёра и распределителя числовое свойство пропорциональное времени прохождения продукта и другим факторам, суммируем всё в маршруте, где число меньше, там оптимальный.
Каждое свойство это однозначно массив, где указатель-номер устройства. Авария на устройстве это тоже свойство.
перебрать все определённые маршруты в цикле (for next), определить нужные и сравнить расчитанные свойства. Если сименс не дружит с массивами, тогда через косвенную адресацию, но сложнее...
-
- Posts: 52
- Joined: Fri Oct 14, 2005 1:09 pm
- Location: Ukraine
-
- Posts: 52
- Joined: Fri Oct 14, 2005 1:09 pm
- Location: Ukraine
Re: [?]: Алгоритм управления зерновым элеватором
Подскажите, а чем можно удаленно (через интернет) редактировать программу S7-300 контроллера? Например как при помощи Teleservice (только он работает, как я понимаю, только через телефонную линию)...
-
- Posts: 15
- Joined: Wed Nov 15, 2006 8:47 am
- Location: Russia
Re: [?]: Алгоритм управления зерновым элеватором
Сталкивался с подобной задачей несколько лет назад. И как раз на зерновом элеваторе.
Если решать задачу так как ты ее озвучил, то это теория графов. Ориентированный граф с весовыми коэффициентами каждой ветви (не уверен в корректности формулировки, но по смыслу правильно). Автоматический поиск пути - что-то созвучное с "задачей коммивояжера". Я не стал идти по такому пути.
Я создал программу для управления элеватором, в которой нет информации о маршрутах. Последовательность устройств и параметры загружаются в соответствующий DB для обработки. Алгоритм способен обработать любой маршрут. Редактор маршрутов сделан на WinCC. Можно создать любое количество маршрутов. Выбор и запуск маршрута производится оператором.
Несложное развитие моей программы позволит:
перебрать определенное количнство готовых маршрутов и определить готовность каждого из них, а также выбрать наиболее приоритетный из готовых.
Например: создаешь 20 маршрутов из точки А в точку Б. Назначаешь каждому из них весовой коэффициент или приоритет. Это может быть потребляемая мощность, время прохождения зерна или что-угодно другое. При необходимости поиска оптимального пути программа проверяет все 20 маршрутов на готовность к запуску и запускает тот, что имеет больший/меньший весовой коэффициент.
Будут вопросы - обращайся. Я нахожусь в Казани.
Если решать задачу так как ты ее озвучил, то это теория графов. Ориентированный граф с весовыми коэффициентами каждой ветви (не уверен в корректности формулировки, но по смыслу правильно). Автоматический поиск пути - что-то созвучное с "задачей коммивояжера". Я не стал идти по такому пути.
Я создал программу для управления элеватором, в которой нет информации о маршрутах. Последовательность устройств и параметры загружаются в соответствующий DB для обработки. Алгоритм способен обработать любой маршрут. Редактор маршрутов сделан на WinCC. Можно создать любое количество маршрутов. Выбор и запуск маршрута производится оператором.
Несложное развитие моей программы позволит:
перебрать определенное количнство готовых маршрутов и определить готовность каждого из них, а также выбрать наиболее приоритетный из готовых.
Например: создаешь 20 маршрутов из точки А в точку Б. Назначаешь каждому из них весовой коэффициент или приоритет. Это может быть потребляемая мощность, время прохождения зерна или что-угодно другое. При необходимости поиска оптимального пути программа проверяет все 20 маршрутов на готовность к запуску и запускает тот, что имеет больший/меньший весовой коэффициент.
Будут вопросы - обращайся. Я нахожусь в Казани.