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

Тема: Блок регулирования температуры М12М ТЕРМЭКС для MasterOPC+ST программа

  1. #1

    По умолчанию Блок регулирования температуры М12М ТЕРМЭКС для MasterOPC+ST программа

    Добрый день! Выкладываю узел MasterOPC Universal Modbus Server для данного блока управления + программа на ST для MasterScada.
    Программа делалась под себя: удержание температуры заданное количество времени, затем нагрев с заданной скоростью до конечной температуры и "бесконечное" удержание конечной температуры.
    Программа ST:
    PROGRAM MAIN_PROGRAM

    VAR_INPUT
    Start_Stop_Timer:bool;
    Temp_current:real:=20;(*Начальная температура*)
    Temp_end:real:=35;(*Конечная температура*)
    time_Hold_hours:real:=5;(*Время удержания температуры*)
    heat_speed_deg_per_min:real:=0.05;(*Скорость нагрева град\мин*)
    reset_timer:bool; (*Сброс температуры и температурного приращения к начальной температуре*)
    END_VAR
    VAR_OUTPUT
    ustavka:real;(*Значение температуры на запись в термостат*)
    END_VAR
    var
    proba:real;
    shag:real:=0.01; (*Минимальный шаг уставки температуры термостата*)
    z:real; (*Время измнения температуры на 0.01 град в мин *)
    delta:real; (*Приращение температуры*)
    in1:bool;(*Запуск таймера удержания*)
    in2:bool;(*Запуск таймера нагрева*)
    Timer1:TON; (*Таймер для удержания температуры*)
    Timer2:TON; (*Таймер для нагрева*)
    T1:time:=T#1h;(*Время первого таймера для удержания в часах*)
    T2:time:=T#1m;(*Время второго таймера таймера в минутах*)
    out1,out2:bool;(*логика выхода таймера*)
    end_var
    (*TODO: TYPE PROGRAM CODE HERE*)
    in1:=Start_Stop_Timer;
    Timer1(In:=in1,PT:=MUL(T1,time_Hold_hours));
    out1:=Timer1.Q;
    z:=shag/heat_speed_deg_per_min-0.0167;(*минус период опроса программы ST в настройках = 1 секунда в минутах *)
    Timer2(In:=in2,PT:=MUL(T2,z));
    out2:=Timer2.Q;
    if Start_Stop_Timer=true and out2=false and out1=true and (Temp_current+delta+shag)<Temp_end then in2:=true;
    else in2:=false; end_if;
    if out2=true and (Temp_current+delta+shag)<Temp_end then delta:=delta+shag; end_if;
    ustavka:=Temp_current+delta;
    if Start_Stop_Timer=false and reset_timer=true then ustavka:=Temp_current; delta:=0; end_if;

    END_PROGRAM
    Вложения Вложения
    Последний раз редактировалось fizhimik; 16.06.2023 в 11:19. Причина: Поправил программу

  2. #2

    По умолчанию

    Переделал скрипт: убрал постоянную запись значений в уставку - это уменьшает ресурс энергонезависимой памяти, в которой хранятся настройки блока регулирования (БР). А так же включения блока управления - периодическая запись не нужна(хоть и не не затрагивает ресурсы памяти), блок управления (запитанный по RS от ПК) запускает термостат при перезапуске питания термостата.
    Вложения Вложения

  3. #3

    По умолчанию

    Цитата Сообщение от fizhimik Посмотреть сообщение
    Добрый день! Выкладываю узел MasterOPC Universal Modbus Server для данного блока управления + программа на ST для MasterScada.
    Программа делалась под себя: удержание температуры заданное количество времени, затем нагрев с заданной скоростью до конечной температуры и "бесконечное" удержание конечной температуры.
    Программа ST:
    PROGRAM MAIN_PROGRAM

    VAR_INPUT
    Start_Stop_Timer:bool;
    Temp_current:real:=20;(*Начальная температура*)
    Temp_end:real:=35;(*Конечная температура*)
    time_Hold_hours:real:=5;(*Время удержания температуры*)
    heat_speed_deg_per_min:real:=0.05;(*Скорость нагрева град\мин*)
    reset_timer:bool; (*Сброс температуры и температурного приращения к начальной температуре*)
    END_VAR
    VAR_OUTPUT
    ustavka:real;(*Значение температуры на запись в термостат*)
    END_VAR
    var
    proba:real;
    shag:real:=0.01; (*Минимальный шаг уставки температуры термостата*)
    z:real; (*Время измнения температуры на 0.01 град в мин *)
    delta:real; (*Приращение температуры*)
    in1:bool;(*Запуск таймера удержания*)
    in2:bool;(*Запуск таймера нагрева*)
    Timer1:TON; (*Таймер для удержания температуры*)
    Timer2:TON; (*Таймер для нагрева*)
    T1:time:=T#1h;(*Время первого таймера для удержания в часах*)
    T2:time:=T#1m;(*Время второго таймера таймера в минутах*)
    out1,out2:bool;(*логика выхода таймера*)
    end_var
    (*TODO: TYPE PROGRAM CODE HERE*)
    in1:=Start_Stop_Timer;
    Timer1(In:=in1,PT:=MUL(T1,time_Hold_hours));
    out1:=Timer1.Q;
    z:=shag/heat_speed_deg_per_min-0.0167;(*минус период опроса программы ST в настройках = 1 секунда в минутах *)
    Timer2(In:=in2,PT:=MUL(T2,z));
    out2:=Timer2.Q;
    if Start_Stop_Timer=true and out2=false and out1=true and (Temp_current+delta+shag)<Temp_end then in2:=true;
    else in2:=false; end_if;
    if out2=true and (Temp_current+delta+shag)<Temp_end then delta:=delta+shag; end_if;
    ustavka:=Temp_current+delta;
    if Start_Stop_Timer=false and reset_timer=true then ustavka:=Temp_current; delta:=0; end_if;

    END_PROGRAM
    Какой закон регулирования используете в программе ?

  4. #4

    По умолчанию

    Цитата Сообщение от IVM Посмотреть сообщение
    Какой закон регулирования используете в программе ?
    Никакой. В программе идет приращение уставки на 0.01 градуса (минимальный шаг термостата) с периодичностью (0.01/скорость нагрева в минутах)=минуты. Пришлось поступить таким образом потому, что блок управления ограничен снизу в скорости нагрева/охлаждения в базовой прошивке 0.01 град/мин, в модифицированной 0.005 град/мин.

  5. #5

    По умолчанию

    Цитата Сообщение от fizhimik Посмотреть сообщение
    Никакой. В программе идет приращение уставки на 0.01 градуса (минимальный шаг термостата) с периодичностью (0.01/скорость нагрева в минутах)=минуты. Пришлось поступить таким образом потому, что блок управления ограничен снизу в скорости нагрева/охлаждения в базовой прошивке 0.01 град/мин, в модифицированной 0.005 град/мин.
    Уставку надо поддерживать. Каким образом поддерживается уставка ?

  6. #6

    По умолчанию

    Цитата Сообщение от IVM Посмотреть сообщение
    Уставку надо поддерживать. Каким образом поддерживается уставка ?
    Уставка поддерживается самим блоком управления по ПИД закону.

Похожие темы

  1. ТРМ12-У2 с термо датчиком и МЭО заслонка для регулирования температуры
    от konst2 в разделе Контроллеры для систем отопления и ГВС
    Ответов: 6
    Последнее сообщение: 14.04.2023, 04:37
  2. Поддержание температуры в контуре регулирования
    от rutto в разделе Подбор Оборудования
    Ответов: 16
    Последнее сообщение: 19.10.2021, 07:29
  3. подбор оборудования для регулирования температуры
    от kkz.energo@mail.ru в разделе Подбор Оборудования
    Ответов: 5
    Последнее сообщение: 18.06.2010, 12:17
  4. Ответов: 0
    Последнее сообщение: 30.06.2009, 00:24
  5. Программа и функциональный блок
    от Geniu$ в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 27.05.2008, 21:25

Ваши права

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