Реализация параллельной работы механизмов
Re: Реализация параллельной работы механизмов
Немного некорректно... У дизъюнкций и конъюнкций с двойными линиями не могут быть несколько условий переходов. Только одно общее условие перехода. Это важно для синхронизации параллельных потоков. Поэтому граф будет выглядеть несколько сложнее...
- Автоматизатор
- Профессионал
- Сообщения: 993
- Зарегистрирован: 09 окт 2012, 05:18
Re: Реализация параллельной работы механизмов
Что именно?Михайло писал(а):Немного некорректно...
Я взял состояние и расписал параллельные потоки. Одновременно стартуют 10 действий, когда все заканчиваются - выполняется переход. У меня это все скрыто в реализации.Михайло писал(а):У дизъюнкций и конъюнкций с двойными линиями не могут быть несколько условий переходов. Только одно общее условие перехода. Это важно для синхронизации параллельных потоков.
Вот, и я про этоМихайло писал(а):Поэтому граф будет выглядеть несколько сложнее...
Re: Реализация параллельной работы механизмов
Я не согласен про "сферического коня в вакууме". Пока что твой алгоритм является для меня таким же конем, извини. Поэтому я привел пример попроще...Автоматизатор писал(а):Пример надуманный. Не могу решать абстрактные задачи про "сферического коня в вакууме". Столько таймеров отдельно и совместно контролировать пневмоцилиндр?!
Уже гораздо нагляднее! Сразу видно, что несколько механизмов работают параллельно! Хрен с ним, что изображение растолстело.Автоматизатор писал(а):Для сравнения расписал только один кусок. Можете заценить.
В стандарте МЭК четко расписано, как должны расходиться параллельные потоки и как сходиться. Можно, конечно, придумать свой подход, но понимание того, как сходятся параллельные потоки в твоем графе, исчезает и не приходит ничего на ум.Автоматизатор писал(а):Что именно?Михайло писал(а):Немного некорректно...
Вопрос на засыпку: когда срабатывает конечник S3, но не сработали остальные конечники, что происходит с реле K2 и K3? На твоем последнем варианте графа это далеко не очевидно...
Re: Реализация параллельной работы механизмов
Обнаружил немного ошибок в своем примере графа:
1. Было несколько одинаково пронумерованных вершин S1.
2. Немного неточно организовал взаимное ожидание цилиндров.
3. Расширил комментарий к графу (слева)
Исправленный вариант: В этом графе нет каких-то левых переменных, не относящихся к управлению объектом.
И другие варианты: Обратите внимание, появились 6 новых переменных (6 флагов) и 4 новых состояния X1, X2, Y0, Z0.
Это моя попытка показать вложенные графы. В стандартной нотации МЭК такое чудо отсутствует, хотя там можно чертить внутри прямоугольников цепочки LD, FBD и строчки ST.
1. Было несколько одинаково пронумерованных вершин S1.
2. Немного неточно организовал взаимное ожидание цилиндров.
3. Расширил комментарий к графу (слева)
Исправленный вариант: В этом графе нет каких-то левых переменных, не относящихся к управлению объектом.
И другие варианты: Обратите внимание, появились 6 новых переменных (6 флагов) и 4 новых состояния X1, X2, Y0, Z0.
Это моя попытка показать вложенные графы. В стандартной нотации МЭК такое чудо отсутствует, хотя там можно чертить внутри прямоугольников цепочки LD, FBD и строчки ST.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Автоматизатор
- Профессионал
- Сообщения: 993
- Зарегистрирован: 09 окт 2012, 05:18
Re: Реализация параллельной работы механизмов
Ты считаешь, что пример работы цилиндров, когда один давит 1 с, другой 2 с, а потом они оба давят еще 3 секунды - это типовая задача автоматизации?! Вот далее уже идут примеры поинтересней!Михайло писал(а):Я не согласен про "сферического коня в вакууме"
Поправил свой вариант. Теперь лучше и понятней?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Re: Реализация параллельной работы механизмов
Забыл убрать условия переходов снизу, но в общем уже правильно. Конъюнкция (слияние потоков) происходит следующим образом:Автоматизатор писал(а):Поправил свой вариант. Теперь лучше и понятней?
IF все состояния сливающихся потоков активны AND выполняется общее условие (которое должно быть после конъюнкции, а не до), THEN деактивировать все эти состояния; активировать следующее одно состояние.
Задача нетиповая, однако структура графа довольно-таки замечательная... Давай дальше по более интересным примерам!Автоматизатор писал(а):Ты считаешь, что пример работы цилиндров, когда один давит 1 с, другой 2 с, а потом они оба давят еще 3 секунды - это типовая задача автоматизации?! Вот далее уже идут примеры поинтересней!
P.S. Степа в аське тут поднимал вопрос о принципе разбиения единого графа управления на отдельные подграфы...
Re: Реализация параллельной работы механизмов
Стандарт МЭК разрешает следующую структуру:
Такая нотация будет гораздо ближе к той реализации, которую (я подозреваю) ты используешь.
Такая нотация будет гораздо ближе к той реализации, которую (я подозреваю) ты используешь.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Автоматизатор
- Профессионал
- Сообщения: 993
- Зарегистрирован: 09 окт 2012, 05:18
Re: Реализация параллельной работы механизмов
Тогда уж для компактности сразу писать на ST, так как это будет потом реализовано в коде. Тогда и переходы можно писать на ST. Тогда это будет похоже на Siemens Hi-Graph.Михайло писал(а):Стандарт МЭК разрешает следующую структуру:
Надо подумать.
- Автоматизатор
- Профессионал
- Сообщения: 993
- Зарегистрирован: 09 окт 2012, 05:18
Re: Реализация параллельной работы механизмов
Вот для сравнения еще вариант. Так понятнее?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Re: Реализация параллельной работы механизмов
Ну да, СТЛ-версия полностью соответствует рисунку:
- Автоматизатор
- Профессионал
- Сообщения: 993
- Зарегистрирован: 09 окт 2012, 05:18
Re: Реализация параллельной работы механизмов
Сделал новый вариант. Добавил граф-координатор (внизу слева), на котором показаны взаимодействия автоматов.
Все переходы и действия в состояниях выполнены на ST. При написании кода просто копируются с чертежа автомата в редактор Step7.
Немного поменялся вид шаблона для реализации (в основном изменился алгоритм контроля времени нахождения в состоянии). Завтра планирую дописать 3-ий автомат и отлаживать код.
Реализация 2-х автоматов
Все переходы и действия в состояниях выполнены на ST. При написании кода просто копируются с чертежа автомата в редактор Step7.
Немного поменялся вид шаблона для реализации (в основном изменился алгоритм контроля времени нахождения в состоянии). Завтра планирую дописать 3-ий автомат и отлаживать код.
Реализация 2-х автоматов
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Re: Реализация параллельной работы механизмов
Почему не используешь кириллицу в именах тэгов? С Кодесисом такое, конечно, не пройдет, но в Симатике - на ура.
- Автоматизатор
- Профессионал
- Сообщения: 993
- Зарегистрирован: 09 окт 2012, 05:18
Re: Реализация параллельной работы механизмов
Один раз уже наступил на грабли - больше не хочу. Кириллица- она плохо отображается, постоянно что-нибудь случается, косяки в шрифтах и т.п. Один раз надо было подключить SCADA Genesis-32 к контроллеру Siemens S7-200. Стал импортировать тэги в PC-Access (это OPC_сервер для S7-200). А они не импортируются. В процессе выяснилось, что причина в символьных именах, которые были сделаны кириллицей.Михайло писал(а):Почему не используешь кириллицу в именах тэгов?
Re: Реализация параллельной работы механизмов
Надо запретить в именах тэгов все кодировки кроме Юникода...... А в России законодательно запретить использование латинских букв в именах тэгов...
Re: Реализация параллельной работы механизмов
Есть тут один момент. Не вся линейка S-300 поддерживает S7-GRAPH (платный). А S7-GRAPH это все же немного отличный от SFC инструмент, да и памяти кушает не мало, поэтому и не лезет на процессоры 312/313/314. Чистый SFC есть в комплекте PCS7, но, это уже для S7-400. Так что все разумно - тело автомата текстовым языком, координацию подпрограмм можно и графическим. Удобней смотреть в онлайне что на входах/выходах FB/FCМихайло писал(а):Автоматизатор
А какой смысл пользоваться переходами Goto/jump в таком мощном процессоре как у S7-300?
- Автоматизатор
- Профессионал
- Сообщения: 993
- Зарегистрирован: 09 окт 2012, 05:18
Re: Реализация параллельной работы механизмов
Нашел уже ошибку: сохранение значения таймера в состоянии не нужно. Сделал, чтобы автоматом писалось в одном месте.Автоматизатор писал(а):Немного поменялся вид шаблона для реализации (в основном изменился алгоритм контроля времени нахождения в состоянии)