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

Тема: регулятор напряжения

  1. #1

    Lightbulb регулятор напряжения

    Здравствуйте. Имеется модуль ввода параметров электрической сети МЭ110-220.3М, который подключен к контроллеру ОВЕН ПЛК100. Модуль измеряет напряжение каждую секунду, и если напряжение выше 230 В, то контроллер подает сигнал на включение контактора, если в течении 10 секунд напряжение ниже 230 В, контроллер подает сигнал на отключение этого контактора. Подскажите каким образом реализовать этот алгоритм?

  2. #2

    По умолчанию

    Навскидку, может быть, так:


    VAR
    out: BOOL; (*Выход управления контактором*)
    in: REAL; (*Вход измерения напряжения*)
    tp1: TP; (*Таймер*)
    END_VAR


    TP1(IN:=(in<230) , PT:=t#10s);
    out:= (in>230) OR (in<230) AND tp1.Q;

    Ну, а там можно и усложнять (гистерезис и.т.д.).
    Последний раз редактировалось kolyan; 12.01.2016 в 13:17.

  3. #3

    По умолчанию

    Или, если ещё проще:
    __________________________________________________ ____________________

    VAR
    TON1: TON;
    in: REAL;
    out1: BOOL;
    END_VAR
    __________________________________________________ ____________________

    TON1(IN:=(in<230), PT:=t#10s );
    out1:=NOT ton1.Q;

    __________________________________________________ ____________________

  4. #4
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    tof1(IN := in >= 230, PT := T#10s, Q => out1);

  5. #5

    По умолчанию

    +1000!
    Вот самый оптимальный код!!!
    Последний раз редактировалось kolyan; 13.01.2016 в 08:16.

  6. #6

    По умолчанию

    На языке CFC собрал вот такую цепьскрин1.png
    Если u1>u то через 10 секунд на out будет подан сигнал true. Если после этого u1<u, то запустится таймер TOF и на out будет сигнал true еще 10 секунд, после чего out изменится на false. Но если значение u1 становится больше u (u1>u) когда уже запущен таймер TOF, то сигнал на out пропадет на некоторое время (разница между t2 и t3) и затем снова появится. Как избежать такой ситуации, когда пропадает сигнал с out?

  7. #7
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    Я честно пытался понять, что вам требуется, но вынужден сдаться.
    Модуль измеряет напряжение каждую секунду
    Что делать с этой информацией? Это часть алгоритма?
    и если напряжение выше 230 В, то контроллер подает сигнал на включение контактора
    Но во втором сообщении вы почему-то включаете его только через 10 секунд после возникновения такой ситуации.
    если в течении 10 секунд напряжение ниже 230 В, контроллер подает сигнал на отключение этого контактора
    В течение этих 10 секунд подаёт сигнал? Или через 10 секунд его подаёт? Русский мой родной язык, и я не могу разобрать это полу-предложение.
    разница между t2 и t3
    Это тоже частью алгоритма должно быть или вы просто наблюдаете по этим переменным?

    Циклограммы в студию, кароч. Иначе фиг поймёшь.

  8. #8

    По умолчанию

    Цитата Сообщение от ohwow Посмотреть сообщение
    На языке CFC собрал вот такую цепьскрин1.png
    Если u1>u то через 10 секунд на out будет подан сигнал true. Если после этого u1<u, то запустится таймер TOF и на out будет сигнал true еще 10 секунд, после чего out изменится на false. Но если значение u1 становится больше u (u1>u) когда уже запущен таймер TOF, то сигнал на out пропадет на некоторое время (разница между t2 и t3) и затем снова появится. Как избежать такой ситуации, когда пропадает сигнал с out?
    Вам же Yegor самый простой пример привел:

    VAR
    tof1: TOF;
    out: BOOL;
    u1: REAL:=235;
    tim: TIME:=t#10s;
    END_VAR
    Изображения Изображения

  9. #9

    По умолчанию

    Все верно, пример, который предложил Yegor действительно работает. Теперь же условие усложнилось и нужно сделать следующее:
    Цитата Сообщение от Yegor Посмотреть сообщение
    Циклограммы в студию, кароч. Иначе фиг поймёшь.
    u1 изменяется каждую секунду и сравнивается со значением 230, значение out:=true. Если u1<230 в течении 10 секунд (допустим 225,226,225,222,...,226), то на выходе таймера out:=false, иначе счетчик обнуляется и значение out остается прежним out:=true. Если u1>=230 в течении 10 секунд (допустим 235,236,235,232,...,236), то на выходе таймера out:=true, иначе счетчик обнуляется и на выходе таймера значение out:=false.

    Прошу прощения за мое корявое описание алгоритма, я только начинаю знакомиться с программированием.

  10. #10

    По умолчанию

    График напряжения от времени нарисуйте.
    И график желаемого значения на выходе.
    И не просто какой-то, а чтобы там были случаи скачков напряжения туда-сюда и т.п.

    Прогаммировать нужно после того, как стало понятно как должна вести себя система.

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

Похожие темы

  1. Ответов: 16
    Последнее сообщение: 29.11.2015, 10:15
  2. Повышение напряжения
    от wecand0it в разделе Подбор Оборудования
    Ответов: 7
    Последнее сообщение: 18.06.2015, 09:13
  3. Ответов: 7
    Последнее сообщение: 19.12.2014, 07:57
  4. Скачки напряжения
    от sink3d в разделе Эксплуатация
    Ответов: 0
    Последнее сообщение: 06.07.2013, 19:25
  5. Тиристорный регулятор напряжения
    от SMH в разделе Трёп (Курилка)
    Ответов: 7
    Последнее сообщение: 28.12.2012, 14:05

Ваши права

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