Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 18

Тема: Алгоритм управления задвижкой или двигателем

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

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

    По умолчанию Алгоритм управления задвижкой или двигателем

    Стоит такая задача. Необходимо реализовать алгоритм управления двигателем или задвижкой на языке FBD. Входными сигналами , например, для задвижки должны быть "Команда открыть", "Команда закрыть", "Задвижка открыта", "Задвижка закрыта". Выходными сигналами являются "Выходной импульс открыть", "Выходной импульс закрыть", "Статус устройства". Модуль должен выдавать информацию о состоянии задвижки: открыта, закрыта, открывается, закрывается, ошибка открытия, ошибка закрытия. Аналогом такого блока является, например, в DeltaV ФУНКЦИОНАЛЬНЫЙ БЛОК УПРАВЛЕНИЕ УСТРОЙСТВОМ. во вложении алгоритм управления в виде автоматного программирования.
    Вложения Вложения

  2. #2
    Пользователь Аватар для rovki
    Регистрация
    03.01.2010
    Адрес
    Чехов
    Сообщений
    12,125

    По умолчанию

    Цитата Сообщение от melandr Посмотреть сообщение
    Стоит такая задача. Необходимо реализовать алгоритм управления двигателем или задвижкой на языке FBD.
    Так может стоит поиграться на ПР ,а потом ,если нужно перенесите в ПЛК
    электронщик до мозга костей и не только

  3. #3

    По умолчанию

    Цитата Сообщение от rovki Посмотреть сообщение
    Так может стоит поиграться на ПР ,а потом ,если нужно перенесите в ПЛК
    Что такое ПР? Или я не правильно спрашиваю?Нужны алгоритмы управления двигателем, задвижкой типа как в приложенном файле, только на ФБД.

  4. #4
    Пользователь Аватар для rovki
    Регистрация
    03.01.2010
    Адрес
    Чехов
    Сообщений
    12,125

    По умолчанию

    Цитата Сообщение от melandr Посмотреть сообщение
    Что такое ПР? Или я не правильно спрашиваю?Нужны алгоритмы управления двигателем, задвижкой типа как в приложенном файле, только на ФБД.
    Пр110 -программируемое реле ,язык ФБД (овен лоджик)
    Если вам диплом ,то делайте как задали (на ПЛК) ,если для себя ,то можно и на ПР110 сделать , а потом и на ПЛК переложить......
    электронщик до мозга костей и не только

  5. #5
    Пользователь
    Регистрация
    10.12.2009
    Адрес
    Воронеж
    Сообщений
    673

    По умолчанию

    Чей-то вы рано активизировались, до сессии вроде далеко.

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

    По умолчанию

    те кто изучал КДС, знают что можно конвертировать любой язык в фбд

  7. #7

    По умолчанию

    А по интересуещей теме, никто ничего сказать не может?

  8. #8

    По умолчанию

    Это не диплом. проблема состоит не в чем делать, а как сделать правильно. Я работаю в SCADA DeltaV. Так вот в ее библиотеке есть такой функциональный блок DC(управление устройством). Он реализует логику управления или задвижкой, или двигателем с 2-мя или 3-мя состояниями. При этом контролируется полностью работа управляемого механизма. Например, при поступлении команды на запуск, если через заданное время не пришел сигнал подтверждения, происходит отключение механизма с выдачей аварии. Также на выходе статуса выдается состояние устройства: стоит, работает, авария, запускается и т.д.. У меня стоит задача реализовать такое же управление только на чистом FBD, используя элементы И, ИЛИ, НЕ, триггеры, таймеры. Просто пытаюсь делать, но не хватает опыта.
    Последний раз редактировалось melandr; 20.04.2013 в 00:24.

  9. #9
    Пользователь Аватар для rovki
    Регистрация
    03.01.2010
    Адрес
    Чехов
    Сообщений
    12,125

    По умолчанию

    Цитата Сообщение от melandr Посмотреть сообщение
    Это не диплом. проблема состоит не в чем делать, а как сделать правильно. Я работаю в SCADA DeltaV. Так вот в ее библиотеке есть такой функциональный блок DC(управление устройством). Он реализует логику управления или задвижкой, или двигателем с 2-мя или 3-мя состояниями. При этом контролируется полностью работа управляемого механизма. Например, при поступлении команды на запуск, если через заданное время не пришел сигнал подтверждения, происходит отключение механизма с выдачей аварии. Также на выходе статуса выдается состояние устройства: стоит, работает, авария, запускается и т.д.. У меня стоит задача реализовать такое же управление только на чистом FBD, используя элементы И, ИЛИ, НЕ, триггеры, таймеры. Просто пытаюсь делать, но не хватает опыта.
    Потому вас и отсылаю к ПР (Овен лоджик),что там вам помогут в освоении данного языка и составлении алгоритма (проекта) ,а потом уже реализуете на чем хотите . .Но я не настаиваю -решать вам .
    электронщик до мозга костей и не только

  10. #10
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,841

    По умолчанию

    Цитата Сообщение от melandr Посмотреть сообщение
    Это не диплом. проблема состоит не в чем делать, а как сделать правильно. Я работаю в SCADA DeltaV. Так вот в ее библиотеке есть такой функциональный блок DC(управление устройством). Он реализует логику управления или задвижкой, или двигателем с 2-мя или 3-мя состояниями. При этом контролируется полностью работа управляемого механизма. Например, при поступлении команды на запуск, если через заданное время не пришел сигнал подтверждения, происходит отключение механизма с выдачей аварии. Также на выходе статуса выдается состояние устройства: стоит, работает, авария, запускается и т.д.. У меня стоит задача реализовать такое же управление только на чистом FBD, используя элементы И, ИЛИ, НЕ, триггеры, таймеры. Просто пытаюсь делать, но не хватает опыта.
    Цитата Сообщение от melandr Посмотреть сообщение
    Пытаюсь это сделать в Кодесис. Подключил библиотеку OSCAT. Но те модули, которые есть в библиотеке работают не так, как мне нужно. И нет нормального описания, для того чтобы понять, как работает каждый модуль
    Обратите внимание на то, что кроме "oscat_basic.lib" есть еще и "oscat_building_100.lib".
    В этой библиотеке уже есть похожие ФБ
    ACTUATOR_3P

    Тип Функциональный блок
    Входы VAL : REAL (Входной управляющий сигнал 0 - 1)
    FORCE : BOOL (Режим управления ON / OFF, если TRUE)
    ON : BOOL (Управляющий сигнал, когда FORCE = TRUE)
    END_POS : BOOL (Вход для позиционного переключателя)
    DIAG : BOOL (Запуск диагностики)
    Выходы OUT1 : BOOL (Управляющий сигнал на открытие клапана)
    OUT2 : BOOL (Управляющий сигнал на закрытие клапана)
    POS : REAL (Имитация положения клапана)
    BUSY : BOOL (TRUE, когда клапан работает)
    ERROR : BOOL (Выход ошибки)
    Настройки MIN_ONTIME : TIME (Минимальное время работы двигателя)
    MIN_OFFTIME : TIME (Минимальное время простоя двигателя)
    MAX_RUNTIME : TIME (Максимальное время работы двигателя)
    AUTO_DIAG_TIME : TIME (Врмя, после которого автоматически осуществляется диагностика)
    CAL_RUNTIME : TIME (Время работы двигателя, после которого автоматически выполняется калибровка.)
    SWITCH_AVAILABLE : BOOL (TRUE, если концевой выключатель подключен)
    ACTUATOR_3P представляет собой интерфейс трехпозиционного привода для управления исполнительными устройствами (например, клапанами) с управляющими сигналами на открытие и закрытие.
    Сигнал на входе IN преобразуется в управляющие импульсы на выходах OUT1 и OUT2, которые соответственно управляют двигателем.
    Входной сигнал IN обрабатывается, а состояния обоих выходов (OUT1 и OUT2) изменяются таким образом, что при входном значении 0 клапан закрыт, при значении 1 клапан открыт, при 0.5 клапан полуоткрыт, и т.д.
    Если вход FORCE установлен в TRUE, то положение клапана соответствует не входному сигналу IN, а двоичному управляющему сигналу ON. Значение ON=FALSE означает, что клапан закрыт, а ON=TRUE означает, что клапан на 100% открыт.
    В режиме FORCE промежуточные положения невозможны. Клапан может быть только на 100% открытым или закрытым.
    Блок может также обрабатывать состояние концевых выключателей.
    Концевые выключатели должны быть подключены таким образом, чтобы при достижении как верхнего, так или нижнего положения, вход END_POS принимал значение TRUE и тем самым указывал, что клапан достиг одного из крайних положений.
    Чтобы включить функцию обработки концевых выключателей, настроечная переменная SWITCH_AVAILABLE должна иметь значение TRUE, в противном случае состояние концевых выключателей игнорируется.
    Вход диагностики (DIAG) позволяет в любое время запустить диагностику клапана и двигателя.
    После этого блок проводит цикл диагностики и сообщает об ошибке с помощью выхода ERROR. Цикл диагностики возвращает клапан в положение 0%, затем отрабатывает открытие 0% - 100% и следом закрытие до 0%.
    При этом также проверяется функционирование концевых выключателей (в том случае, если они были активированы настроечной переменной SWITCH_AVAILABLE).
    По завершении диагностического цикла клапан возвращается в положение, определяемое входом IN.
    Измеренные при прохождении диагностики времена хода используются при работе, чтобы максимально точно позиционировать клапан в заданную позицию.
    С помощью настроечной переменной AUTO_DIAG_TIME указывается, по истечении какого срока диагностика запускается автоматически, без её активации входом DIAG.
    При запуске, диагностический цикл автоматически проводится всегда. Если это значение равно 0, автоматический цикл диагностики не проводится.

    Выход BUSY показывает, что клапан меняет свое положение в данный момент или же проводится диагностика, и на выходе POS присутствует сигнал 0 – 1, соответствующий текущей позиции клапана.
    Для предотвращения биений клапана и, в случае мощных двигателей, для учета времени выбега привода можно установить минимальное время работы (MIN_ONTIME) и минимальное время простоя (MIN_OFFTIME).

    Клапан обычно то открывается, то закрывается, принимая различные положения. Чем больше перемещается клапан, тем сильнее он отклоняется от идеальной абсолютной позиции, поскольку с каждым шагом возникает небольшая ошибка в позиционировании, которая накапливается в течение множества перемещений.
    Чтобы бороться с этой ошибкой, с помощью настроечной переменной CAL_RUNTIME можно по прошествии определенного времени работы (совокупного времени всех перемещений) клапана автоматически выполнять калибровку.
    При этой калибровке двигатель переводит клапан в закрытое положение, а затем возвращает клапан в состояние, заданное значением входной переменной IN.
    Значение 0 для CAL_RUNTIME означает, что автоматическая калибровка не осуществляется.
    Настроечная переменная MAX_RUNTIME устанавливает максимальное время, которое требуется двигателю для полного хода от 0% до 100% или наоборот.

    Вызывает: T_PLC_MS, _RMP_NEXT

    Использует библиотеку Oscat Basic
    Что бы посмотреть программный код библиотечного ФБ, нужно открыть библиотеку как проект.
    Еще похожие ФБ из "oscat_building_100.lib"
    ACTUATOR_2P - является интерфейсом для двухпозиционных приводов, таких как электромагнитные клапаны.

    ACTUATOR_A

    ACTUATOR_A служит для управления исполнительными приводами с аналоговым входом. Блок имеет два входа (I1 и I2), значения которых от 0 до 255 перекрывают весь рабочий диапазон выхода Y. Выход Y имеет тип WORD, и его рабочий диапазон задается настроечными переменными OUT_MIN и OUT_MAX. Входное значение 0 формирует выходное значение OUT_MIN, а входное значение 255 формирует значение OUT_MAX на выходе.
    ACTUATOR_COIL - служит для управления простыми клапанами. Выход OUT при этом меняет состояние вслед за входным сигналом IN. Если для настроечной переменной SELF_ACT_CYCLE установлено значение больше 0, клапан автоматически активируется на время SELF_ACT_TIME в случае, если он был выключен в течение времени SELF_ACT_CYCLE. Совместимый с ESR выход состояния передает изменения состояния клапана для дальнейшей обработки или для архивации.
    ACTUATOR_PUMP

    ACTUATOR_PUMP представляет собой интерфейс насоса со счетчиком часов наработки. Насос может включаться входом IN либо MANUAL. Переменные настроек MIN_ONTIME и MIN_OFFTIME задают минимальную периодичность включения и минимальную продолжительность работы. Если вход IN установлен в TRUE меньшее, чем MIN_ONTIME время, то насос продолжает работать, пока не будет достигнута минимальная продолжительность его работы. Если вход IN установлен в TRUE дольше, чем MIN_ONTIME, то насос работает, пока IN снова не станет FALSE.

    Если насос нужно запустить снова через короткое время, блок ожидает, пока не истечет время MIN_OFFTIME, и только затем насос снова включается. С помощью настроечной переменной RUN_EVERY задается время простоя насоса, после которого он автоматически включается, чтобы предотвратить блокировку насоса. В этом случае после автоматического включения насос работает в течение времени MIN_ONTIME. Установкой RUN_EVERY = T#0s можно отключить автоматический запуск насоса.

    Встроенный счетчик часов наработки подсчитывает время работы насоса в часах, а также количество циклов включения. Оба значения могут быть сброшены в ноль подачей TRUE на вход RST. Значение счетчика является реманентным и не теряется при потере питания или сбросе контроллера. И RUNTIME, и CYCLES являются значениями типа REAL, и поэтому не переполняются, как обычные TIME, после 50 дней.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

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

Похожие темы

  1. управление двигателем 12в
    от slava2006 в разделе Эксплуатация
    Ответов: 1
    Последнее сообщение: 04.12.2009, 22:15
  2. САУ-МП алгоритм 20
    от незарегистрированный в разделе Подбор Оборудования
    Ответов: 15
    Последнее сообщение: 15.12.2008, 17:56
  3. Алгоритм ПВУ
    от Назаров Александр в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 05.06.2008, 21:21
  4. управление задвижкой
    от незарегистрированный в разделе Подбор Оборудования
    Ответов: 11
    Последнее сообщение: 29.11.2007, 09:22

Ваши права

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