Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 21

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

  1. #1

    По умолчанию ДРАКОН vs SFC

    Цитата Сообщение от Алексей Геннадьевич Посмотреть сообщение
    Давайте обсудим вот это.
    Язык ДРАКОН
    А давайте.

    Задача: есть кнопка "пуск". Если её нажимают, то нужно запустить насос. Если насос запущен, а через 10 секунд датчик давления не реагирует, считаем, что насос сломался, и пытаемся запустить следующий. Аналогично, если датчик давления потухнет при работающем насосе, тоже считаем насос поломанным.
    Как кнопку "пуск" отпускают насос нужно выключить.

    Собственно, вариант на ДРАКОНе:
    pumps.png

    Поясню:
    1) Схемы выполняются сверху вниз.
    2) Прямоугольники -- это какие-то действия.
    3) Трапеции типа 5, 8, 19, 24, 25 -- это "паузы" алгоритма (я их для наглядности отметил флажками). Как раз в них происходит "возврат управления в PLC_PRG.
    Здесь как раз существенное отличие от SFC. В SFC "за 1 раз" выполняется максимум 1 переход, а тут может выполниться много действий пока очередь не дойдёт до паузы или до конца.
    4) Шаг 7 это "запуск схемы <<запуск насоса>>". Иными словами, в начальный момент схема №2 не выполняется, а 1-ая схема ждёт команду "кнопки пуск". Если команда обнаружена, то запускается схема 2, но при этом схема 1 продолжает работать, она доходит до шага 9, обнаруживает, что "пуск ещё нажат" и возвращает управление, переходя на паузу 8
    5) Схема 2 после своего запуска проходит по шагам 14, 15, 16, 17, 21, 22, 23 и останавливается на 10 секунд на шаге 24 и только там она возвращает управление в основной цикл.
    6) Как только "схема 1" обнаруживает, что кнопку "пуск" отпустили, она просто останавливает схему "запуск насоса". При этом известно, что та находится в какой-то из своих пауз (19, 24, 25), поэтому останавливать её нестрашно.


    Что думаете?

    По-моему, возможность "просто поставить паузу посреди алгоритма" весьма точно выражает происходящее.
    Последний раз редактировалось Владимир Ситников; 07.10.2017 в 21:56.

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

    По умолчанию

    очередной велосипед к существующим ПЛК ?

  3. #3

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    очередной велосипед к существующим ПЛК ?
    А к каким же еще? Ещё к ПР, но, как мы знаем, ПР на Драконе не программируется.
    По-моему, удобнее чем SFC получается.

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

    По умолчанию

    Вопрос, а где код программы ? я вижу только алгоритм, следовательно в самом ПЛК должен храниться код (куски программы) который поддержит данный алгоритм.
    Где же напастись столько памяти ?

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

    По умолчанию

    сама идея не нова, скорее всего "слизана" из степа седьмого, фанаты SFC скорее всего смогут это и в КДС повторить
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

  6. #6

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    Вопрос, а где код программы ? я вижу только алгоритм, следовательно в самом ПЛК должен храниться код (куски программы) который поддержит данный алгоритм.
    Где же напастись столько памяти ?
    Возьмём шаг "23 подать команду на пуск насоса".
    Это может быть просто выдача единицы на DO.
    С точки зрения схемы, либо нажимаем на 23 шаг и пишем "в нем" код, либо пишем в нем вызов существующей функции, блока или макроса.

    Каждый шаг однозначно переводится в обычный код, который пишет составитель программы.

    В более сложных случаях (например, 15 найти рабочий насос) шаг может представлять из себя вызов другой схемы. Я тут не расписывал по какому признаку выбирается насос. По наработке, по количеству включений или ещё как.

    Остаётся вопрос как заставить ПЛК следовать этому алгоритму. В случае ПЛК алгоритм можно превратить в ST код. Например, создаём переменную с номером текущего шага и дальше

    While.. case номер_шага=1:... case номер_шага=2:...

    Возможно, простые действия будет удобнее прямо кодом на самом алгоритме, но это не суть.

    В языке SFC точно так же составляется лишь алгоритм, а сами действия нужно описывать на других языках.

  7. #7

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    сама идея не нова, скорее всего "слизана" из степа седьмого, фанаты SFC скорее всего смогут это и в КДС повторить
    Во-первых, странно слышать, что Дракон, который разрабатывали для Бурана слизан со Step7.

    Во-вторых, от SFC тут два существенных отличия:
    1) В SFC за раз выполняется только 1 действие, а тут - все, пока не дойдёт до паузы. В приведенном примере как раз удобно, что можно логически разбить алгоритм. В результате понятно что происходит, и, с другой стороны, нет никаких накладных расходов в том, чтобы дробить алгоритм. В SFC же один шаг на 2 не раздробить, ведь за 1 цикл ПЛК срабатывает только 1 шаг SFC.

    2) Наглядность Дракона выше, ведь алгоритм всегда выполняется сверху вниз, без пересечений.
    Последний раз редактировалось Владимир Ситников; 08.10.2017 в 10:22.

  8. #8

    По умолчанию

    Владимир, а для чего вы завели эту тему ?

    Читаем - Для создания и редактирования дракон-схем предлагается Интегрированная Среда ДРАКОН. Разработчик программы Тышов Геннадий Николаевич. Программа умеет превращать дракон-схемы в исходные тексты программ на языках семейств 1С, Delphi, C, Oberon, ASM.

    Про языки CoDeSys там ничего нет.
    Последний раз редактировалось Вольд; 08.10.2017 в 11:53.

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

    По умолчанию

    во первых на скрине стоит дата 2008, что на двадцать лет позже чем полет самого бурана, каков там был дракон в самом начале я не видел, но пришел в войска на самую передовую технику и ни чего подобного в те годы не было, не думаю что для бурана рискнули и перешли на что то инновационное в плане управления автоматикой
    во вторых кроме КДС на чем то еще работали, открывали pcs чтоб говорить что sfc вот только такой и не иначе, судя по тому что модуль s7-1222 для Вас плк видимо нет
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

  10. #10

    По умолчанию

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

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

Ваши права

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