Реализация параллельной работы механизмов

Автоматизация технологических процессов, системы управления, АСУ ТП, АСКУЭ, программирование ПЛК, человеко-машинный интерфейс, сетевое оборудование, протоколы
Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Реализация параллельной работы механизмов

Сообщение Михайло »

Немного некорректно... У дизъюнкций и конъюнкций с двойными линиями не могут быть несколько условий переходов. Только одно общее условие перехода. Это важно для синхронизации параллельных потоков. Поэтому граф будет выглядеть несколько сложнее...

Аватара пользователя
Автоматизатор
Профессионал
Сообщения: 993
Зарегистрирован: 09 окт 2012, 05:18

Re: Реализация параллельной работы механизмов

Сообщение Автоматизатор »

Михайло писал(а):Немного некорректно...
Что именно?
Михайло писал(а):У дизъюнкций и конъюнкций с двойными линиями не могут быть несколько условий переходов. Только одно общее условие перехода. Это важно для синхронизации параллельных потоков.
Я взял состояние и расписал параллельные потоки. Одновременно стартуют 10 действий, когда все заканчиваются - выполняется переход. У меня это все скрыто в реализации.
Михайло писал(а):Поэтому граф будет выглядеть несколько сложнее...
Вот, и я про это

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Реализация параллельной работы механизмов

Сообщение Михайло »

Автоматизатор писал(а):Пример надуманный. Не могу решать абстрактные задачи про "сферического коня в вакууме". Столько таймеров отдельно и совместно контролировать пневмоцилиндр?!
Я не согласен про "сферического коня в вакууме". Пока что твой алгоритм является для меня таким же конем, извини. Поэтому я привел пример попроще...
Автоматизатор писал(а):Для сравнения расписал только один кусок. Можете заценить.
Уже гораздо нагляднее! Сразу видно, что несколько механизмов работают параллельно! Хрен с ним, что изображение растолстело.
Автоматизатор писал(а):
Михайло писал(а):Немного некорректно...
Что именно?
В стандарте МЭК четко расписано, как должны расходиться параллельные потоки и как сходиться. Можно, конечно, придумать свой подход, но понимание того, как сходятся параллельные потоки в твоем графе, исчезает и не приходит ничего на ум.
Вопрос на засыпку: когда срабатывает конечник S3, но не сработали остальные конечники, что происходит с реле K2 и K3? На твоем последнем варианте графа это далеко не очевидно...

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Реализация параллельной работы механизмов

Сообщение Михайло »

Обнаружил немного ошибок в своем примере графа:
1. Было несколько одинаково пронумерованных вершин S1.
2. Немного неточно организовал взаимное ожидание цилиндров.
3. Расширил комментарий к графу (слева)

Исправленный вариант:
Пример многопоточной последовательности v2.gif
В этом графе нет каких-то левых переменных, не относящихся к управлению объектом.

И другие варианты:
Пример многопоточной последовательности (метод флагов).gif
Обратите внимание, появились 6 новых переменных (6 флагов) и 4 новых состояния X1, X2, Y0, Z0.
Пример многопоточной последовательности (вложенные графы).gif
Это моя попытка показать вложенные графы. В стандартной нотации МЭК такое чудо отсутствует, хотя там можно чертить внутри прямоугольников цепочки LD, FBD и строчки ST.
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Аватара пользователя
Автоматизатор
Профессионал
Сообщения: 993
Зарегистрирован: 09 окт 2012, 05:18

Re: Реализация параллельной работы механизмов

Сообщение Автоматизатор »

Михайло писал(а):Я не согласен про "сферического коня в вакууме"
Ты считаешь, что пример работы цилиндров, когда один давит 1 с, другой 2 с, а потом они оба давят еще 3 секунды - это типовая задача автоматизации?! Вот далее уже идут примеры поинтересней!

Поправил свой вариант. Теперь лучше и понятней?
Фрагмент.jpg
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Реализация параллельной работы механизмов

Сообщение Михайло »

Автоматизатор писал(а):Поправил свой вариант. Теперь лучше и понятней?
Забыл убрать условия переходов снизу, но в общем уже правильно. Конъюнкция (слияние потоков) происходит следующим образом:
IF все состояния сливающихся потоков активны AND выполняется общее условие (которое должно быть после конъюнкции, а не до), THEN деактивировать все эти состояния; активировать следующее одно состояние.
Автоматизатор писал(а):Ты считаешь, что пример работы цилиндров, когда один давит 1 с, другой 2 с, а потом они оба давят еще 3 секунды - это типовая задача автоматизации?! Вот далее уже идут примеры поинтересней!
Задача нетиповая, однако структура графа довольно-таки замечательная... Давай дальше по более интересным примерам!

P.S. Степа в аське тут поднимал вопрос о принципе разбиения единого графа управления на отдельные подграфы...

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Реализация параллельной работы механизмов

Сообщение Михайло »

Стандарт МЭК разрешает следующую структуру:
Цепочка LD, вложенная в состояние SFC.gif
Такая нотация будет гораздо ближе к той реализации, которую (я подозреваю) ты используешь.
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Аватара пользователя
Автоматизатор
Профессионал
Сообщения: 993
Зарегистрирован: 09 окт 2012, 05:18

Re: Реализация параллельной работы механизмов

Сообщение Автоматизатор »

Михайло писал(а):Стандарт МЭК разрешает следующую структуру:
Тогда уж для компактности сразу писать на ST, так как это будет потом реализовано в коде. Тогда и переходы можно писать на ST. Тогда это будет похоже на Siemens Hi-Graph.

Надо подумать.

Аватара пользователя
Автоматизатор
Профессионал
Сообщения: 993
Зарегистрирован: 09 окт 2012, 05:18

Re: Реализация параллельной работы механизмов

Сообщение Автоматизатор »

Вот для сравнения еще вариант. Так понятнее?
Фрагмент.jpg
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Реализация параллельной работы механизмов

Сообщение Михайло »

Ну да, СТЛ-версия полностью соответствует рисунку:

Изображение

Аватара пользователя
Автоматизатор
Профессионал
Сообщения: 993
Зарегистрирован: 09 окт 2012, 05:18

Re: Реализация параллельной работы механизмов

Сообщение Автоматизатор »

Сделал новый вариант. Добавил граф-координатор (внизу слева), на котором показаны взаимодействия автоматов.
Все переходы и действия в состояниях выполнены на ST. При написании кода просто копируются с чертежа автомата в редактор Step7.

Немного поменялся вид шаблона для реализации (в основном изменился алгоритм контроля времени нахождения в состоянии). Завтра планирую дописать 3-ий автомат и отлаживать код.
Фрагмент.jpg
Реализация 2-х автоматов
Auto.rar
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Реализация параллельной работы механизмов

Сообщение Михайло »

Почему не используешь кириллицу в именах тэгов? С Кодесисом такое, конечно, не пройдет, но в Симатике - на ура.

Аватара пользователя
Автоматизатор
Профессионал
Сообщения: 993
Зарегистрирован: 09 окт 2012, 05:18

Re: Реализация параллельной работы механизмов

Сообщение Автоматизатор »

Михайло писал(а):Почему не используешь кириллицу в именах тэгов?
Один раз уже наступил на грабли - больше не хочу. Кириллица- она плохо отображается, постоянно что-нибудь случается, косяки в шрифтах и т.п. Один раз надо было подключить SCADA Genesis-32 к контроллеру Siemens S7-200. Стал импортировать тэги в PC-Access (это OPC_сервер для S7-200). А они не импортируются. В процессе выяснилось, что причина в символьных именах, которые были сделаны кириллицей.

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Реализация параллельной работы механизмов

Сообщение Михайло »

Надо запретить в именах тэгов все кодировки кроме Юникода...... А в России законодательно запретить использование латинских букв в именах тэгов... :D

Аватара пользователя
CHANt
Профессионал
Сообщения: 565
Зарегистрирован: 13 окт 2012, 15:24

Re: Реализация параллельной работы механизмов

Сообщение CHANt »

Михайло писал(а):Автоматизатор
А какой смысл пользоваться переходами Goto/jump в таком мощном процессоре как у S7-300?
Есть тут один момент. Не вся линейка S-300 поддерживает S7-GRAPH (платный). А S7-GRAPH это все же немного отличный от SFC инструмент, да и памяти кушает не мало, поэтому и не лезет на процессоры 312/313/314. Чистый SFC есть в комплекте PCS7, но, это уже для S7-400. Так что все разумно - тело автомата текстовым языком, координацию подпрограмм можно и графическим. Удобней смотреть в онлайне что на входах/выходах FB/FC

Аватара пользователя
Автоматизатор
Профессионал
Сообщения: 993
Зарегистрирован: 09 окт 2012, 05:18

Re: Реализация параллельной работы механизмов

Сообщение Автоматизатор »

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

Ответить