Показано с 1 по 4 из 4

Тема: Реализация плавного увеличения значения напряжения аналогового выхода.

  1. #1

    По умолчанию Реализация плавного увеличения значения напряжения аналогового выхода.

    Здравствуйте!
    Подскажите с решением задачи:
    Есть сервопривод, управляемый напряжением 0 - 10 В. Нулю вольт соотвествует 0 об/мин. 10 вольт - 3000 об минуту.

    Нужно реализовать плавный разгон, то есть плавное нарастание напряжение управления на выходе ПР от нуля до заданной величины за задаваемое время.

    То есть - есть время в диапазоне от 1 до 10 секунд. Допустим 5 секунд. Есть уставка 1500 оборотов. По внешнему сигналу должно запустится нарастание переменной управления аналоговым выходом от 0 до в данном случае 0.5 и значение 0.5 должно быть получено через dT=10 секунд от старта.

    На микроконтроллере я такую задачу делал так: прерывание по таймеру 10 раз в секунду, домножал уставку времени на 10 - получал число шагов. Далее уставку управления делил на число шагов получая приращение на шаг. И собственно дальше уже вычислял значение переменной увеличивая ее от нуля по прерыванию на величину шага и посылая в АЦП.

    Возможно ли такой алгоритм реализовать на ПР или есть более изящное решение?

    Благодарю.

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

    По умолчанию

    Цитата Сообщение от Дмитрий Александрович Посмотреть сообщение
    Здравствуйте!
    Подскажите с решением задачи:
    Есть сервопривод, управляемый напряжением 0 - 10 В. Нулю вольт соотвествует 0 об/мин. 10 вольт - 3000 об минуту.

    Нужно реализовать плавный разгон, то есть плавное нарастание напряжение управления на выходе ПР от нуля до заданной величины за задаваемое время.

    То есть - есть время в диапазоне от 1 до 10 секунд. Допустим 5 секунд. Есть уставка 1500 оборотов. По внешнему сигналу должно запустится нарастание переменной управления аналоговым выходом от 0 до в данном случае 0.5 и значение 0.5 должно быть получено через dT=10 секунд от старта.

    На микроконтроллере я такую задачу делал так: прерывание по таймеру 10 раз в секунду, домножал уставку времени на 10 - получал число шагов. Далее уставку управления делил на число шагов получая приращение на шаг. И собственно дальше уже вычислял значение переменной увеличивая ее от нуля по прерыванию на величину шага и посылая в АЦП.

    Возможно ли такой алгоритм реализовать на ПР или есть более изящное решение?

    Благодарю.
    Как-то так, например
    Захват-01.png

    Скрытый текст:
    Вложения Вложения
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  3. #3

    По умолчанию

    Спасибо Петр! Отличное решение, которое меня устраивает полностью.

  4. #4

    По умолчанию

    Рампа с заданием скорости увеличения/уменьшения:
    Код:
    FUNCTION RAMP : REAL;
    VAR_INPUT
        Q_FB    : REAL; (* Значение выхода на предыдущем цикле (ОС с задержкой с выхода функции) *)
        X       : REAL; (* Входное значение *)
        VU_MAX  : REAL; (* Скорость увеличения *)
        VD_MAX  : REAL; (* Скорость уменьшения *)
        CYCLE   : REAL; (* Цикл, в СЕК *)
        RST     : BOOL; (* Сброс *)
        
    END_VAR
    
    
        IF 0.0 > VU_MAX THEN VU_MAX := 0.0; END_IF
        IF 0.0 > VD_MAX THEN VD_MAX := 0.0; END_IF
        
        IF RST THEN
            RAMP := X;
            
        ELSIF X > Q_FB THEN
            VU_MAX := VU_MAX * CYCLE;
            VD_MAX := X - Q_FB;
            IF VU_MAX > VD_MAX THEN VU_MAX := VD_MAX; END_IF  
            RAMP := Q_FB + VU_MAX;
            
        ELSIF X < Q_FB THEN
            VD_MAX := -1.0 * VD_MAX * CYCLE;
            VU_MAX := X - Q_FB;
            IF VD_MAX < VU_MAX THEN VD_MAX := VU_MAX; END_IF
            RAMP := Q_FB + VD_MAX;
            
        ELSE 
            RAMP := X;
            
        END_IF
        
    END_FUNCTION

Похожие темы

  1. Использование аналогового выхода 0 10 в
    от ALEX_099 в разделе Программируемые реле
    Ответов: 15
    Последнее сообщение: 23.12.2019, 16:44
  2. Ответов: 2
    Последнее сообщение: 19.07.2018, 12:49
  3. ПЛК150 регулировка аналогового выхода
    от DKFLBVBH в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 22.08.2016, 10:54
  4. ФБ регулировки аналогового выхода
    от AntoNechayuk в разделе ПЛК1хх
    Ответов: 13
    Последнее сообщение: 20.07.2011, 16:20
  5. Ответов: 3
    Последнее сообщение: 30.04.2010, 10:51

Ваши права

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