Страница 8 из 8 ПерваяПервая ... 678
Показано с 71 по 79 из 79

Тема: Пид регулятор Codesys

  1. #71

    По умолчанию

    Цитата Сообщение от divinewinhs Посмотреть сообщение
    Мне нужно и на плюс и на минус, столкнулся с проблемой что мои правки начинает работать на минус , и естественно тогда плюс перестает работать
    Попробуй использовать только блок FT_PID
    на вход подаешь разность между тем что есть и тем что надо (т.е. ошибку) на выходе получаешь либо + либо - причем почти без ограничений. Значение с выхода анализируешь, если от 10 до 100 то включаешь нагреватели на соответствующий процент
    если от -10 до -100 то включаешь холодильник... холодильник можно регулировать ШИМ с периодом 100 секунд например...
    Можешь дополнительные условия прописать например если уставка меньше 10 градусов то запретить работу нагревателей, а если уставка больше 30 градусов то запретить работу холодильника.

  2. #72
    Пользователь Аватар для Эдуард_Н
    Регистрация
    22.09.2014
    Адрес
    Курган
    Сообщений
    1,633

    По умолчанию

    Что за блок FT_PID, откуда?
    Последний раз редактировалось Эдуард_Н; 10.08.2016 в 13:24.

  3. #73

    По умолчанию

    с пятой страницы этой темы библиотека OSCATBasic.zip

  4. #74

    По умолчанию

    Прошу сильно не пинать, только начинаю знакомиться ПИД. Для того, чтобы понять суть, решил написать маленький ФБ где попытался этот самый ПИД реализовть. Всего лишь вычисление трех выходных составляющих, ничего сверхъестественного типа ручного режима и т.д. Данный ФБ вызываю в PLC_PRG с интервалом 1 секунда (переменная t_cycle в коде.
    Хочу спросить, является ли это хоть чем-то похожим на ПИД-регулятор? Правильно ли я понимаю его суть? Надеюсь, что в тему.

    Код:
    err:=SetPoint-ActValue;
    PY:=Kp*err;
    IY:=IY+(Kp/Ti)*err/TIME_TO_WORD(t_cycle)/1000.0;
    DY:=Kp*Td*(err-prev_err)/TIME_TO_WORD(t_cycle)/1000.0;
    
    IF IY<-100.00 THEN
    	IY:=-100.0;
    END_IF
    IF IY>100.0 THEN
    	IY:=100;
    END_IF
    prev_err:=err;
    Y_out:= PY+IY+DY;
    
    IF Y_out<-100.00 THEN
    	Y_out:=-100.0;
    END_IF
    IF Y_out>100.0 THEN
    	Y_out:=100;
    END_IF
    Изображения Изображения
    • Тип файла: jpg PID.JPG (64.7 Кб, Просмотров: 41)
    Последний раз редактировалось Drahtor; 27.11.2016 в 22:09.

  5. #75
    Пользователь Аватар для Пьер
    Регистрация
    26.01.2011
    Адрес
    Земля
    Сообщений
    451

    По умолчанию

    Из библиотеки ОСКАТ
    CTRL_PI

    Input
    ACT: REAL (value measured by the way)
    SET: REAL (default)
    SUP: REAL (noise reduction)
    SFO: REAL (ofset for the output)
    M_I: REAL (input value for manual operation)
    MAN: BOOL (switch to manual mode, MANUAL = TRUE)
    RST: BOOL (asynchronous reset input)
    KP: REAL (proportional part of the controller)
    KI: REAL (integral part of the controller)
    LL: REAL (lower output limit)
    LH: REAL (upper output limit)
    Output
    Y: REAL (output of the controller)
    DIFF: Real (deviation)
    LIM: BOOL (TRUE if the output has reached a limit)


    Что есть?
    SUP: REAL (noise reduction)
    SFO: REAL (ofset for the output)
    M_I: REAL (input value for manual operation)
    с аглицкого не могу понять.
    И как это применяется. Можете простыми словами объяснить?
    Всем заранее спасибо!
    Не зная броду, не суйся в воду. (Пословица.)
    Век живи, век учись(а умрешь дураком).

  6. #76

    По умолчанию

    Предположительно, то есть совсем.
    В смысле, что прочитал по-английски, но дальше никуда не заглядывал.
    SUP: REAL (noise reduction)- возможно, некий порог, ниже которого разница между текущим значением и уставкой не принимается во внимание (для уменьшения шума)
    SFO: REAL (ofset for the output)- скорее всего некая аддитивная составляющая, которая прибавляется к величине на выходе (сдвиг на выходе)
    M_I: REAL (input value for manual operation) Некая входная величина для ручного режима. С тем, что это такое, наверное можно попробовать поразбираться на практике, переведя регулятор в ручной режим (входом MAN). Это может быть величина, которая поступает на вход вместо ACT, либо значение рассогласования.

    ЗЫ. Еще раз подчеркну, что это только предположения.

  7. #77

    По умолчанию

    Добрый день господа! Скажите пожалуйста можно реализовать передачу данных в MySQL с СПК207 . может есть у кого опыт или пример!???

  8. #78

    По умолчанию

    Можно, в CoDeSys Store даже пример видел. Возможно и в Oscat что-то есть.

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

    По умолчанию

    Grampus самый простой способ, читать данные SCADA системой и отправлять в БД.

Страница 8 из 8 ПерваяПервая ... 678

Похожие темы

  1. ПИД регулятор
    от Николаев Андрей в разделе ПЛК (среда программирования CoDeSys V2.3)
    Ответов: 445
    Последнее сообщение: 08.11.2019, 08:42
  2. ПИД регулятор
    от Александр М в разделе ПЛК1хх
    Ответов: 6
    Последнее сообщение: 22.10.2007, 08:47

Ваши права

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