Элементы языка SFC (перевод главы 2.6 стандарта МЭК 61131-3)

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

Re: Элементы языка SFC (перевод главы 2.6 стандарта МЭК 6113

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

Понятно.

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

Re: Элементы языка SFC (перевод главы 2.6 стандарта МЭК 6113

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

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

Вообще - организация взаимосогласованной работы нескольких графов - интересная тема, которую пока мы не научились успешно выполнять. Хотя уже, в принципе, выделились несколько методов:
1. Распараллеливание состояний за счет бинарного кодирования состояний
2. Распараллеливание состояний по методу, выполненному в программе, которую я выложил ранее. Этот метод, в некотором роде, является гибридом бинарного и целочисленного кодирования состояний
3. Распараллеливание состояний за счет использования нескольких графов. Здесь нужно выделить метод взаимодействия графов между собой - за счет флагов взаимодействия "выполни" и "выполнено". Другой вариант взаимодействия графов - независимое исполнение, когда два графа работают полностью независимо.
4. Распараллеливание состояний за счет выполнения действий в вершинах по дополнительному условию (тот хитрый метод, о котором говорил Автоматизатор)

К нашему счастью все 4 метода легко оформляются по нотации SFC.

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

Re: Элементы языка SFC (перевод главы 2.6 стандарта МЭК 6113

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

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

У Сименса есть такой продукт Hi-Graph. Так в нем для синхронизации работы используют "граф координатор", на котором в явном виде изображают все взаимосвязи.
У вас нет необходимых прав для просмотра вложений в этом сообщении.

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

Re: Элементы языка SFC (перевод главы 2.6 стандарта МЭК 6113

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

Неплохо бы обсудить изображение графа-координатора из higraph. У меня нет дистрибутива. Можно как-то выложить сюда скрин что ли?

Алгоритм сложнейший. Особенно как изображен. Представь себе, есть такой язык и у него есть простые понятные термины, которые соответствуют физическим входам и выходам твоего контроллера. Всем понятно, что произошло, если на N-ном входе появилась единичка и т.д. Остальные, внутренние маркеры - это новые слова из твоего тезауруса. Если ты злоупотребляешь новыми терминами, то становится сложно понимать. Многопоточные графы, которые продвигаю я, позволяют вообще не вводить новые "термины". Область маркеров нужна лишь для того, чтобы закодировать состояния. И все. Ну всегда можно воспользоваться возможностью и ввести простой и понятный маркер в тезаурус, если это как-то облегчает понимание. Простыми будут маркеры-флажки "сделай"/"выполнено", но только если они не будут использоваться во многих местах.

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

Re: Элементы языка SFC (перевод главы 2.6 стандарта МЭК 6113

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

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

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

Многопоточные графы - это уже дальше от человеческого восприятия.

Вот ссылка на документацию (на английском)
SIMATIC S7-HiGraph
У вас нет необходимых прав для просмотра вложений в этом сообщении.

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

Re: Элементы языка SFC (перевод главы 2.6 стандарта МЭК 6113

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

Еще раз посмотрел на граф. Мне не нравится, что он не самодостаточен. Можно еще сделать следующее: вершины, действия в состоянии, переходы закодировать переменными. Тогда на рисунке будет все выглядеть очень компактно. Но чтобы воспользоваться таким графом, надо будет иметь: таблицу символов, таблицу состояний, действий, переходов. В итоге теряется наглядность.

Я предпочитаю иметь большой, но самодостаточный граф.

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

Re: Элементы языка SFC (перевод главы 2.6 стандарта МЭК 6113

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

Итак, граф из примера Higraph. Это граф, который раздает команды "сделай" другим графам и принимает от них ответ "сделано". При чем ответ "сделано" в данном случае удалось упростить и заменить просто на некоторую комбинацию входных сигналов ПЛК, то есть, по сути дела, маркер "сделано" не вводится в "тезаурус". Это большая удача! Пример не очень удачен для изучения сложных взаимодействий графов.
Автоматизатор писал(а):Многопоточные графы - это уже дальше от человеческого восприятия.
Неправда. На многопоточных графах четко видно, что выполняется одновременно, а что последовательно. Что никогда не увидишь на графах с координатором и флажками "сделай"/"выполнено". Там эта информация вскрывается после длительного анализа.
Автоматизатор писал(а):Мне не нравится, что он не самодостаточен.
На том графе в PDF есть все: и вершины, и переходы, и действия. Все на одном графе. Все взаимосвязи отображены графически, что соответствует человеческому восприятию. И никаких лишних тэгов, смысл которых нужно пояснять.

P.S. Сегодня постараюсь тот пример из Higraph выложить во всех 4-5 вариантах нотаций.

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

Re: Элементы языка SFC (перевод главы 2.6 стандарта МЭК 6113

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

Проверь:
Граф Drilling machine (с графом-координатором).gif
У вас нет необходимых прав для просмотра вложений в этом сообщении.

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

Re: Элементы языка SFC (перевод главы 2.6 стандарта МЭК 6113

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

Под самодостаточностью я имел ввиду, что для понимания не требуется дополнительных документов. "В состоянии 23 включено К3 пока не сработает S1" - это человеку понятно? Я вот не могу запомнить. Приходится смотреть таблицы символов. Если минимизировать дальше, то можно программировать используя только абсолютную адресацию.

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

Re: Элементы языка SFC (перевод главы 2.6 стандарта МЭК 6113

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

Ааа.. Ну как же программист без своего птичьего языка?

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

Re: Элементы языка SFC (перевод главы 2.6 стандарта МЭК 6113

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

Михайло писал(а):Проверь:
Не вижу на рисунке как взаимодействуют графы.

Например:
Изображение
Михайло писал(а):аа.. Ну как же программист без своего птичьего языка?
Дополнительный пакет S7-HiGraph писал(а):Графическое представление подходит не только для программиста, но и технологам и инженерам - эксплуатационникам.

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

Re: Элементы языка SFC (перевод главы 2.6 стандарта МЭК 6113

Сообщение CHANt »

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

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

Re: Элементы языка SFC (перевод главы 2.6 стандарта МЭК 6113

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

CHANt писал(а):Есть ряд минусов по хайграфу
Согласен. То, что хорошо выглядит в учебном проекте, на реальном объекте не выглядит плохо. Мне понравилась графическая часть: возможность скрывать ненужные детали, оформление. Возможность гибко формировать действия в состояниях и условия переходов.
CHANt писал(а):код выложите - хочу глянуть
Объем архива программы 17 Мб, максимальное вложение - 5. Программа разработана в Step7 Basic Version 10.5 SP2, в v11 просто так не мигрирует (выскакивает ошибка). Может кусок выдрать? Что конкретно интересует?

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

Re: Элементы языка SFC (перевод главы 2.6 стандарта МЭК 6113

Сообщение CHANt »

Пускай будет кусок. Тогда - Состояния 1-7

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

Re: Элементы языка SFC (перевод главы 2.6 стандарта МЭК 6113

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

Удалили проект панели - все равно большой объем получается.
Пришлось выкинуть почти все. Осталось по минимуму. Все равно не влезает.
Распечатал только реализацию графа в пдф. И то 6 Мб.

Продолжаю работать над минимизацией

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

Re: Элементы языка SFC (перевод главы 2.6 стандарта МЭК 6113

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

Выкладывай. Ограничение теперь 8 Мб.

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

Re: Элементы языка SFC (перевод главы 2.6 стандарта МЭК 6113

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

Граф-координатор соединен с остальными графами нотацией типа CFC. CFC - это расширенный FBD. А расширений тут, я погляжу, особых и не надо. То есть ничто не мешает опять же применять МЭК 61131-3 для документирования любой нашей затеи.

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

Re: Элементы языка SFC (перевод главы 2.6 стандарта МЭК 6113

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

Вот:
У вас нет необходимых прав для просмотра вложений в этом сообщении.

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

Re: Элементы языка SFC (перевод главы 2.6 стандарта МЭК 6113

Сообщение CHANt »

Михайло писал(а): То есть ничто не мешает опять же применять МЭК 61131-3 для документирования любой нашей затеи.
Да, конечно. Когда знаком с принципами IEC 1131-3, тогда проблем с чтением такой документации нет, хоть SFC, хоть LAD... Подход с автоматами Мура, Мили, смешанный тип, также ни у кого из нас не вызывает никаких проблем. Что до того что у всех выглядит по разному - ну тут не вижу никакой крамолы, каждый дошел своим путем, поэтому и столько вариаций :)
Главное, что сам проектный подход работает, облегчает и структурирует программу и всех нас приучает к проектированию программы, а не к тупому программированию, в стиле "получится, не получится" с последующей гордостью о том что я создал нечто уникальное. Эта уникальность, конечной задаче как и пользователю, нафик не нужна. Вот я смотрю на "классических программистов", у меня полпредприятия таких, пишут, пишут, пыжатся в собственных глазах, потом кто-то уходит и вновь принятые, выпучив глаза, начинает пытаться разобраться... Кончается все созданием новой программы и опять ложная "гордость" за свернутые горы и прочее. Но так никого, все эти временные затраты, и не научили проектировать, а не писать в лоб! Попытался UML заинтересовать, куда там - типа зачем время дважды тратить время :D Понимания ноль.
Автоматизатор спасибо! Структура автомата очень похожа на то что изложено в нотации А.А. Шалыто - http://is.ifmo.ru/progeny/, предметней даже в этой работе - http://is.ifmo.ru/progeny/_metod065.pdf, и этой http://is.ifmo.ru/progeny/_s7300.pdf Особенно сброс всех команд в начале автомата. Я также этим пользуюсь.

Аватара пользователя
san
Специалист
Сообщения: 117
Зарегистрирован: 13 окт 2012, 17:17
Откуда: Киев
Контактная информация:

Re: Элементы языка SFC (перевод главы 2.6 стандарта МЭК 6113

Сообщение san »

CHANt писал(а):Главное, что сам проектный подход работает, облегчает и структурирует программу и всех нас приучает к проектированию программы, а не к тупому программированию, в стиле "получится, не получится" с последующей гордостью о том что я создал нечто уникальное.
При проектировании всё нужно решать в комплексе. Кто бы вот научил? Только не надо говорить что этому сами учатся :-) Понимаю, что оффтопик, но тема злободневная.
Начну новую.

Ответить