Элементы языка SFC (перевод главы 2.6 стандарта МЭК 61131-3)
Re: Элементы языка SFC (перевод главы 2.6 стандарта МЭК 6113
Видишь какое дело... С программой-то ты при этом с трудом справляешься. Все эти ухищрения в видеАвтоматизатор писал(а):Многопоточные графы не использую
наверняка приводят к усложнению понимания работы.Автоматизатор писал(а):реализую это в одной вершине, пряча параллельные процессы в реализации графа.
Вообще - организация взаимосогласованной работы нескольких графов - интересная тема, которую пока мы не научились успешно выполнять. Хотя уже, в принципе, выделились несколько методов:
1. Распараллеливание состояний за счет бинарного кодирования состояний
2. Распараллеливание состояний по методу, выполненному в программе, которую я выложил ранее. Этот метод, в некотором роде, является гибридом бинарного и целочисленного кодирования состояний
3. Распараллеливание состояний за счет использования нескольких графов. Здесь нужно выделить метод взаимодействия графов между собой - за счет флагов взаимодействия "выполни" и "выполнено". Другой вариант взаимодействия графов - независимое исполнение, когда два графа работают полностью независимо.
4. Распараллеливание состояний за счет выполнения действий в вершинах по дополнительному условию (тот хитрый метод, о котором говорил Автоматизатор)
К нашему счастью все 4 метода легко оформляются по нотации SFC.
- Автоматизатор
- Профессионал
- Сообщения: 993
- Зарегистрирован: 09 окт 2012, 05:18
Re: Элементы языка SFC (перевод главы 2.6 стандарта МЭК 6113
Это происходит потому, что еще не сформулировал для себя удобный способ графического отображения взаимодействия отдельных графов. Последний вариант реализации синхронизации параллельно работающих графов был такой: на одной бумажке были нарисованы два графа полностью. А их взаимосвязь была довольно условно показана цветными стрелками. При этом надо сказать, что это уже была доработка на ходу (при ПНР) ранее написанного последовательного алгоритма. (в приложении алгоритм: красные стрелки - это и есть намек на взаимодействие).Михайло писал(а):С программой-то ты при этом с трудом справляешься
У Сименса есть такой продукт Hi-Graph. Так в нем для синхронизации работы используют "граф координатор", на котором в явном виде изображают все взаимосвязи.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Re: Элементы языка SFC (перевод главы 2.6 стандарта МЭК 6113
Неплохо бы обсудить изображение графа-координатора из higraph. У меня нет дистрибутива. Можно как-то выложить сюда скрин что ли?
Алгоритм сложнейший. Особенно как изображен. Представь себе, есть такой язык и у него есть простые понятные термины, которые соответствуют физическим входам и выходам твоего контроллера. Всем понятно, что произошло, если на N-ном входе появилась единичка и т.д. Остальные, внутренние маркеры - это новые слова из твоего тезауруса. Если ты злоупотребляешь новыми терминами, то становится сложно понимать. Многопоточные графы, которые продвигаю я, позволяют вообще не вводить новые "термины". Область маркеров нужна лишь для того, чтобы закодировать состояния. И все. Ну всегда можно воспользоваться возможностью и ввести простой и понятный маркер в тезаурус, если это как-то облегчает понимание. Простыми будут маркеры-флажки "сделай"/"выполнено", но только если они не будут использоваться во многих местах.
Алгоритм сложнейший. Особенно как изображен. Представь себе, есть такой язык и у него есть простые понятные термины, которые соответствуют физическим входам и выходам твоего контроллера. Всем понятно, что произошло, если на N-ном входе появилась единичка и т.д. Остальные, внутренние маркеры - это новые слова из твоего тезауруса. Если ты злоупотребляешь новыми терминами, то становится сложно понимать. Многопоточные графы, которые продвигаю я, позволяют вообще не вводить новые "термины". Область маркеров нужна лишь для того, чтобы закодировать состояния. И все. Ну всегда можно воспользоваться возможностью и ввести простой и понятный маркер в тезаурус, если это как-то облегчает понимание. Простыми будут маркеры-флажки "сделай"/"выполнено", но только если они не будут использоваться во многих местах.
- Автоматизатор
- Профессионал
- Сообщения: 993
- Зарегистрирован: 09 окт 2012, 05:18
Re: Элементы языка SFC (перевод главы 2.6 стандарта МЭК 6113
Сложные вещи невозможно описать просто. Если в приведенном мною примере разбивать параллельные процессы, закодированные у меня в состоянии, на многопоточные, как делаешь ты, то это ухудшит читабельность.
Есть еще один момент. Допустим есть технологическая операция "зажим детали". При этом должны выдвинутся 4 гидроцилиндра. Я пишу на экране дисплея надпись - "4 Зажим детали" - это значит, что выполняется 4 состояние и для оператора "человеческая" расшифровка действия. Т.е. у меня есть некая система: технологическая операция - состояние механизма (закодированное) - действия в состоянии - отображение состояния на экране.
Многопоточные графы - это уже дальше от человеческого восприятия.
Вот ссылка на документацию (на английском)
SIMATIC S7-HiGraph
Есть еще один момент. Допустим есть технологическая операция "зажим детали". При этом должны выдвинутся 4 гидроцилиндра. Я пишу на экране дисплея надпись - "4 Зажим детали" - это значит, что выполняется 4 состояние и для оператора "человеческая" расшифровка действия. Т.е. у меня есть некая система: технологическая операция - состояние механизма (закодированное) - действия в состоянии - отображение состояния на экране.
Многопоточные графы - это уже дальше от человеческого восприятия.
Вот ссылка на документацию (на английском)
SIMATIC S7-HiGraph
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Автоматизатор
- Профессионал
- Сообщения: 993
- Зарегистрирован: 09 окт 2012, 05:18
Re: Элементы языка SFC (перевод главы 2.6 стандарта МЭК 6113
Еще раз посмотрел на граф. Мне не нравится, что он не самодостаточен. Можно еще сделать следующее: вершины, действия в состоянии, переходы закодировать переменными. Тогда на рисунке будет все выглядеть очень компактно. Но чтобы воспользоваться таким графом, надо будет иметь: таблицу символов, таблицу состояний, действий, переходов. В итоге теряется наглядность.
Я предпочитаю иметь большой, но самодостаточный граф.
Я предпочитаю иметь большой, но самодостаточный граф.
Re: Элементы языка SFC (перевод главы 2.6 стандарта МЭК 6113
Итак, граф из примера Higraph. Это граф, который раздает команды "сделай" другим графам и принимает от них ответ "сделано". При чем ответ "сделано" в данном случае удалось упростить и заменить просто на некоторую комбинацию входных сигналов ПЛК, то есть, по сути дела, маркер "сделано" не вводится в "тезаурус". Это большая удача! Пример не очень удачен для изучения сложных взаимодействий графов.
P.S. Сегодня постараюсь тот пример из Higraph выложить во всех 4-5 вариантах нотаций.
Неправда. На многопоточных графах четко видно, что выполняется одновременно, а что последовательно. Что никогда не увидишь на графах с координатором и флажками "сделай"/"выполнено". Там эта информация вскрывается после длительного анализа.Автоматизатор писал(а):Многопоточные графы - это уже дальше от человеческого восприятия.
На том графе в PDF есть все: и вершины, и переходы, и действия. Все на одном графе. Все взаимосвязи отображены графически, что соответствует человеческому восприятию. И никаких лишних тэгов, смысл которых нужно пояснять.Автоматизатор писал(а):Мне не нравится, что он не самодостаточен.
P.S. Сегодня постараюсь тот пример из Higraph выложить во всех 4-5 вариантах нотаций.
Re: Элементы языка SFC (перевод главы 2.6 стандарта МЭК 6113
Проверь:
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Автоматизатор
- Профессионал
- Сообщения: 993
- Зарегистрирован: 09 окт 2012, 05:18
Re: Элементы языка SFC (перевод главы 2.6 стандарта МЭК 6113
Под самодостаточностью я имел ввиду, что для понимания не требуется дополнительных документов. "В состоянии 23 включено К3 пока не сработает S1" - это человеку понятно? Я вот не могу запомнить. Приходится смотреть таблицы символов. Если минимизировать дальше, то можно программировать используя только абсолютную адресацию.
Re: Элементы языка SFC (перевод главы 2.6 стандарта МЭК 6113
Ааа.. Ну как же программист без своего птичьего языка?
- Автоматизатор
- Профессионал
- Сообщения: 993
- Зарегистрирован: 09 окт 2012, 05:18
Re: Элементы языка SFC (перевод главы 2.6 стандарта МЭК 6113
Не вижу на рисунке как взаимодействуют графы.Михайло писал(а):Проверь:
Например:
Михайло писал(а):аа.. Ну как же программист без своего птичьего языка?
Дополнительный пакет S7-HiGraph писал(а):Графическое представление подходит не только для программиста, но и технологам и инженерам - эксплуатационникам.
Re: Элементы языка SFC (перевод главы 2.6 стандарта МЭК 6113
Есть ряд минусов по хайграфу. Первое - это достаточно объемный код, что-то серьезное отобразить на нем, надо задействовать 400 линейку. Второе - это групповой граф, надо быть малость того, чтобы предложить пользователям, идиотскую нотацию по настройке группового графа. Третье - это ограничения при компиляции группового графа, если собираешься добавлять новые графы в свою программу. Т.е. если не предусмотрел резервы в дб группового графа, то без повторной компиляции группового графа, добавить новые нельзя. Это очень неудобно. В общем, я как-то, году в 2005, попробовал использовать его, но, тупо памяти не хватило на объект. Зато есть классное преимущество, работу одиночного графа можно смотреть в онлайн - это сказкаАвтоматизатор писал(а):Графическое представление подходит не только для программиста, но и технологам и инженерам - эксплуатационникам.
Еще, Автоматизатор, Вы к своему алгоритму управления станком, если можно, код выложите - хочу глянуть.
- Автоматизатор
- Профессионал
- Сообщения: 993
- Зарегистрирован: 09 окт 2012, 05:18
Re: Элементы языка SFC (перевод главы 2.6 стандарта МЭК 6113
Согласен. То, что хорошо выглядит в учебном проекте, на реальном объекте не выглядит плохо. Мне понравилась графическая часть: возможность скрывать ненужные детали, оформление. Возможность гибко формировать действия в состояниях и условия переходов.CHANt писал(а):Есть ряд минусов по хайграфу
Объем архива программы 17 Мб, максимальное вложение - 5. Программа разработана в Step7 Basic Version 10.5 SP2, в v11 просто так не мигрирует (выскакивает ошибка). Может кусок выдрать? Что конкретно интересует?CHANt писал(а):код выложите - хочу глянуть
Re: Элементы языка SFC (перевод главы 2.6 стандарта МЭК 6113
Пускай будет кусок. Тогда - Состояния 1-7
- Автоматизатор
- Профессионал
- Сообщения: 993
- Зарегистрирован: 09 окт 2012, 05:18
Re: Элементы языка SFC (перевод главы 2.6 стандарта МЭК 6113
Удалили проект панели - все равно большой объем получается.
Пришлось выкинуть почти все. Осталось по минимуму. Все равно не влезает.
Распечатал только реализацию графа в пдф. И то 6 Мб.
Продолжаю работать над минимизацией
Пришлось выкинуть почти все. Осталось по минимуму. Все равно не влезает.
Распечатал только реализацию графа в пдф. И то 6 Мб.
Продолжаю работать над минимизацией
Re: Элементы языка SFC (перевод главы 2.6 стандарта МЭК 6113
Выкладывай. Ограничение теперь 8 Мб.
Re: Элементы языка SFC (перевод главы 2.6 стандарта МЭК 6113
Граф-координатор соединен с остальными графами нотацией типа CFC. CFC - это расширенный FBD. А расширений тут, я погляжу, особых и не надо. То есть ничто не мешает опять же применять МЭК 61131-3 для документирования любой нашей затеи.
- Автоматизатор
- Профессионал
- Сообщения: 993
- Зарегистрирован: 09 окт 2012, 05:18
Re: Элементы языка SFC (перевод главы 2.6 стандарта МЭК 6113
Вот:
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Re: Элементы языка SFC (перевод главы 2.6 стандарта МЭК 6113
Да, конечно. Когда знаком с принципами IEC 1131-3, тогда проблем с чтением такой документации нет, хоть SFC, хоть LAD... Подход с автоматами Мура, Мили, смешанный тип, также ни у кого из нас не вызывает никаких проблем. Что до того что у всех выглядит по разному - ну тут не вижу никакой крамолы, каждый дошел своим путем, поэтому и столько вариацийМихайло писал(а): То есть ничто не мешает опять же применять МЭК 61131-3 для документирования любой нашей затеи.
Главное, что сам проектный подход работает, облегчает и структурирует программу и всех нас приучает к проектированию программы, а не к тупому программированию, в стиле "получится, не получится" с последующей гордостью о том что я создал нечто уникальное. Эта уникальность, конечной задаче как и пользователю, нафик не нужна. Вот я смотрю на "классических программистов", у меня полпредприятия таких, пишут, пишут, пыжатся в собственных глазах, потом кто-то уходит и вновь принятые, выпучив глаза, начинает пытаться разобраться... Кончается все созданием новой программы и опять ложная "гордость" за свернутые горы и прочее. Но так никого, все эти временные затраты, и не научили проектировать, а не писать в лоб! Попытался UML заинтересовать, куда там - типа зачем время дважды тратить время Понимания ноль.
Автоматизатор спасибо! Структура автомата очень похожа на то что изложено в нотации А.А. Шалыто - 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
При проектировании всё нужно решать в комплексе. Кто бы вот научил? Только не надо говорить что этому сами учатся Понимаю, что оффтопик, но тема злободневная.CHANt писал(а):Главное, что сам проектный подход работает, облегчает и структурирует программу и всех нас приучает к проектированию программы, а не к тупому программированию, в стиле "получится, не получится" с последующей гордостью о том что я создал нечто уникальное.
Начну новую.