Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 21

Тема: ДРАКОН vs SFC

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    во первых на скрине стоит дата 2008, что на двадцать лет позже чем полет самого бурана, каков там был дракон в самом начале я не видел, но пришел в войска на самую передовую технику и ни чего подобного в те годы не было, не думаю что для бурана рискнули и перешли на что то инновационное в плане управления автоматикой
    На wikipedia пишут: "ДРАКОН Разрабатывался с 1986 года как часть космической программы «Буран»..."

    Картинку я делал в редакторе "ИС Дракон Тышова". 2008 это дата создания конкретного редактора.
    Пока читал S7 увидел, что, да, картинки там весьма похожие. Возможно, авторы "вдохновлялись" чем-то одним.


    Цитата Сообщение от capzap Посмотреть сообщение
    во вторых кроме КДС на чем то еще работали, открывали pcs чтоб говорить что sfc вот только такой и не иначе, судя по тому что модуль s7-1222 для Вас плк видимо нет
    Конечно, со Step7 я не работал. Сейчас глянул ихние описания SFC, но так и не понял "сколько действий выполняется за 1 цикл ПЛК".
    Нашёл, что можно настраивать "как часто" будет вызываться SFC программа (например, каждый 16-ый цикл ПЛК). Но вот не нашёл того, сколько переходов по SFC может выполниться за 1 раз и как регулируется это количество.

    Не знаю как в стандарте (не смог найти), но в КДС уж точно новые шаги выполняются только в следующем цикле ПЛК.
    Если в S7 можно как-то этим управлять, то, по-моему, хорошо. Можете подробнее рассказать как оно там настраивается?

  2. #2
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,606

    По умолчанию

    Цитата Сообщение от Владимир Ситников Посмотреть сообщение
    Если в S7 можно как-то этим управлять, то, по-моему, хорошо. Можете подробнее рассказать как оно там настраивается?
    я не поклонник SFC, в деталях мне нечего рассказать, помню что на занятиях уводили sfc-схему в прерывание, выполняли произвольный код, затем так же по условию возвращались в основную схему на то же место(шаг). На ST есть CASE, он вполне может заменить sfc-схему и там тоже только один кейс выполняется за один цикл контроллера
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  3. #3

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    я не поклонник SFC, в деталях мне нечего рассказать, помню что на занятиях уводили sfc-схему в прерывание, выполняли произвольный код, затем так же по условию возвращались в основную схему на то же место(шаг)
    Ясно.

    Цитата Сообщение от capzap Посмотреть сообщение
    На ST есть CASE, он вполне может заменить sfc-схему и там тоже только один кейс выполняется за один цикл контроллера
    Да, в ST есть CASE, но программа на CASE менее выразительна, чем Дракон-схема.

  4. #4

    По умолчанию

    Вот хорошая тема на форуме была: http://forum.easyelectronics.ru/view...8992&start=475
    Последний раз редактировалось Вольд; 08.10.2017 в 12:08.

  5. #5
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,085

    По умолчанию

    в любом языке за раз выполняется 1 действие.

  6. #6

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    в любом языке за раз выполняется 1 действие.
    Не понимаю смысла этой фразы.
    В КДС SFC, за 1 срабатывание происходит максимум 1 переход к следующему квадратику (параллельные выполнения пока опустим).
    И КДС никак не заставишь выполнить "вот эти 5 переходов между квадратиками в одном цикле ПЛК".

    А тут же я предлагаю, чтобы наоборот: всё выполнялось в рамках одного цикла ПЛК, а деление на циклы было явным (на паузах).

  7. #7

    По умолчанию

    Цитата Сообщение от Владимир Ситников Посмотреть сообщение
    Суть в том, что, есть же Hardella IDE, куда можно добавить Дракон, о чём Алексей Геннадьевич и говорил.
    Но, разумеется, перед тем, как что-то куда-то добавлять я хочу примериться "а как оно вообще".
    Какова будет реакция официальных представителей фирмы "ОВЕН" заранее известно, к сожалению.

    Но если вы действительно добавите Дракон в Hardella IDE, то простые пользователи CoDeSys, которые не сильны в вопросах программирования вам спасибо точно скажут.

    Лично я Hardella IDE использую когда возникает потребность работать с ШД и энкодерами. Все работает в реальном проекте. Есть одна проблема при управлении ШД, но я думаю она решаема.

    У SIEMENS есть язык подобный Дракон (дополнительный пакет S7-GRAPH).

    Послал в личку ссылку на документ.
    Последний раз редактировалось Newcomer; 08.10.2017 в 15:10.

  8. #8

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Ну это если сама эта программа не вызывается из внешней пользовательской.
    Кстати, да. Ступил. Если SFC вызвать несколько раз из прикладного кода, то она, конечно, запросто может сдвинуться на несколько шагов.

    Но "вызывать SFC вручную" выглядит странной затеей. По сути вызывающий код должен понимать алгоритм по которому действует эта SFC схема, чтобы её пнуть нужное количество раз.
    Зачем тогда нужно SFC, если к ней нужен внешний пинатель, который понимает всё про возможные состояния этой SFC схемы?

    В этом плане Дракон-схема самоходная. Т.е. её вызов просто добавляем 1 раз в PLC_PRG и она прокручивается на нужное количество шагов.

    Цитата Сообщение от Валенок Посмотреть сообщение
    Вы хотите вклеить эти внешние возможности сразу в среду исполнения ?
    Непонятен вопрос. Можете поподробнее?
    Последний раз редактировалось Владимир Ситников; 08.10.2017 в 20:05.

  9. #9

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    PS
    например внешний код с флажком "еще хочу" очевиден

    Код:
    t := time();
    repeat
      sfc(ещё := false);
    until (time() - t) > дануна or not sfc.ещё  //ещё - input, при необходимости поднимается внутрях
    end_until
    Да, чего-то туплю я. Получается, если в SFC проставлять флаг "ещё хочу" (или альтернативный "довольно"), то оно будет такое же самоходное.
    Ну, там где я в Дракон схеме проставил флаг "хватит, пауза", там же и в SFC будет аналогичный флаг.

    Получается, разница сводится к:
    1) Разным картинкам. В SFC нет IF'ов. В Драконе они есть. В SFC только Jump'ы, а в Дракон'е более наглядные ветки (вертикальные). Т.е. формулировать алгоритм на Драконе по-моему, проще.
    2) Немного разной смысловой нагрузкой шагов: в SFC развиты параметры "минимальная-максимальная длительность выполнения шага", "входные-выходные" действия (CDS может всё это рисовать). А в Драконе так сказать, штатных, средств отображения всех этих параметров нет. Наколхозить, конечно, можно, но Паронджанов о подобных штуках не пишет.
    3) В SFC много внимания уделяется переходам между шагами (можно прямо код выполнять в переходах), а в Драконе как таковые переходы вообще за сущности не считаются, и все действия выполняются в квадратиках действий.
    4) В SFC нужно не забывать выставлять флаг "ещё хочу". Может, и не так страшно. С одной стороны, оно делает SFC гибким (можно и так и сяк сделать), а с другой, я думал, что нужно делать какую-то одну модель выполнения, и прятать от программиста необходимость управления этим флагом.
    5) В велосипедах можно сделать "запуск вложенной схемы", и т.п. На SFC, вроде, есть проблемы с вкладыванием.

    Ну и собственно, вопрос: оно вообще в кассу или нет?
    Последний раз редактировалось Владимир Ситников; 08.10.2017 в 21:59.

  10. #10

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    1.Что значит нет if'ов ? Просто по сравнению с Драконом - из условия нет 2х выходов (неудобней). Но параллелится. Дальше тоже самое.
    Так я об этом и говорю, что нет квадратика с двумя выходами и прочее.
    Да, Дракон удобнее, вроде.

    Цитата Сообщение от Валенок Посмотреть сообщение
    4."что нужно делать какую-то одну модель выполнения, и прятать от программиста необходимость управления этим флагом" Так если спрятать - тогда 1 шаг/цикл
    Скажу по-другому. Делать так, чтобы флаг "довольно" генерировался на основе визуально-отличимого признака. Например, в паузах в алгоритме (ну, которые трапециями на картинке рисуются).
    Возможно, только я так туплю, но почему-то не видно примеров "ещё-дануна" вариантов использования SFC.

    Цитата Сообщение от Валенок Посмотреть сообщение
    Лично мне - нет.
    Ясно, спасибо за пояснения.

    Посмотрим, может ещё кто-нибудь что-нибудь скажет.

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •