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

Тема: Задание значения с заданной периодичностью

  1. #1

    По умолчанию Задание значения с заданной периодичностью

    Подскажите пожалуйста, что следует использовать в Master SCADA 3 для управления скоростью нагрева/охлаждения чиллера. По сути нужно с заданной периодичностью (раз в минуту, две минуты ...) посылать значение температуры, затем его увеличивать на 0.01. А так же требуется удерживать до нагрева температуру заданное количество времени=просто задержка перед началом нагрева(например 5 часов). Какие следует использовать функциональные блоки? Либо надо писать программу ST(есть ли там функционал по управлению временем)?

  2. #2

    По умолчанию

    Цитата Сообщение от fizhimik Посмотреть сообщение
    Подскажите пожалуйста, что следует использовать в Master SCADA 3 для управления скоростью нагрева/охлаждения чиллера. По сути нужно с заданной периодичностью (раз в минуту, две минуты ...) посылать значение температуры, затем его увеличивать на 0.01. А так же требуется удерживать до нагрева температуру заданное количество времени=просто задержка перед началом нагрева(например 5 часов). Какие следует использовать функциональные блоки? Либо надо писать программу ST(есть ли там функционал по управлению временем)?
    В палитре раздел "Работа со временем". На ST также можно. Вот раздел справки: https://support.mps-soft.ru/MasterSC...st_script.html
    Спасибо.

  3. #3

    По умолчанию

    Цитата Сообщение от SCADAMaster Посмотреть сообщение
    В палитре раздел "Работа со временем". На ST также можно. Вот раздел справки: https://support.mps-soft.ru/MasterSC...st_script.html
    Спасибо, попробую.
    Вот еще вопрос: а есть какой ни будь режим для эмуляции/отладки для проверки программы?

  4. #4

    По умолчанию

    Цитата Сообщение от fizhimik Посмотреть сообщение
    Спасибо, попробую.
    Вот еще вопрос: а есть какой ни будь режим для эмуляции/отладки для проверки программы?
    Ну вы запускайте проект в любом удобном вам режиме1.jpg без подключения к оборудованию - вот вам и эмуляция. Сигналы сами имитируете.
    Спасибо.

  5. #5

    По умолчанию

    Добрый день! Подскажите пожалуйста что я делаю не так - почему код таймера не зациклен бесконечно? Режим опроса периодический. Почему переменная VAR_INPUT не меняет своего значения по условию программы?
    Еще узнал что локальные переменные при их задании через меню с каждым тактом сбрасываются.
    Скрытый текст:
    PROGRAM MAIN_PROGRAM

    VAR_INPUT
    in:bool;
    T1:time;

    END_VAR

    VAR_OUTPUT
    out:bool;
    outT:time;
    END_VAR
    var
    in1:bool;
    Timer:TP;
    T2:time:=T#10s;
    interval:time:=T#10s;
    end_var
    (*TODO: TYPE PROGRAM CODE HERE*)
    in1:=in;
    Timer(In:=in1,PT:=T2);
    out:=Timer.Q;
    outT:=Timer.ET;
    if outT=interval then
    in:=False;
    end_if;

    END_PROGRAM

  6. #6

    По умолчанию

    Цитата Сообщение от fizhimik Посмотреть сообщение
    Добрый день! Подскажите пожалуйста что я делаю не так - почему код таймера не зациклен бесконечно? Режим опроса периодический. Почему переменная VAR_INPUT не меняет своего значения по условию программы?
    Еще узнал что локальные переменные при их задании через меню с каждым тактом сбрасываются.
    Скрытый текст:
    PROGRAM MAIN_PROGRAM

    VAR_INPUT
    in:bool;
    T1:time;

    END_VAR

    VAR_OUTPUT
    out:bool;
    outT:time;
    END_VAR
    var
    in1:bool;
    Timer:TP;
    T2:time:=T#10s;
    interval:time:=T#10s;
    end_var
    (*TODO: TYPE PROGRAM CODE HERE*)
    in1:=in;
    Timer(In:=in1,PT:=T2);
    out:=Timer.Q;
    outT:=Timer.ET;
    if outT=interval then
    in:=False;
    end_if;

    END_PROGRAM
    Немного разобрался - надо работать только с локальными переменными, а глобальными переменными управлять для старт-стоп всего таймера.

  7. #7

    По умолчанию

    Добрый день! Подскажите пожалуйста по моей тестовой программе:
    1. Правильно ли я делаю - уменьшая время работы таймера, из за периодического опроса блока с программой в 1000 мс-заметил что интервалы на тренде увеличения параметра(температуры) начали расти
    2. Как можно поменять условие в программе чтобы вначале работал таймер, потом шло приращение температуры - по моему первому IF температура сразу приращается, если условия поменять - то не работает как надо.
    программа:
    PROGRAM MAIN_PROGRAM

    VAR_INPUT
    Start_Stop:bool;
    Temp_Hold:real:=10;(*Начальная температура*)
    Temp_end:real:=15;(*Конечная температура*)
    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
    shag:real:=0.01; (*Минимальный шаг уставки температуры термостата*)
    z:real; (*Время измнения температуры на 0.01 град в мин *)
    delta:real; (*Приращение температуры*)
    in1:bool;(*Запуск таймера*)
    Timer1:TP; (*Таймер, пока один*)
    Ti2:time:=T#1m;(*Время таймера в минутах*)
    out:bool;(*смотреть что на выходе для отладки*)
    outT:time;(*смотреть что на выходе для отладки*)
    outint:time;(*смотреть что на выходе для отладки*)
    periodOprosa:real:=0.0167; (*Период опроса программы ST в настройках = 1 секунда в минутах *)
    period:real;(*уменьшение времени таймера из за периода опроса программы ST*)
    end_var
    (*TODO: TYPE PROGRAM CODE HERE*)
    z:=shag/heat_speed_deg_per_min-period;
    Timer1(In:=in1,PT:=MUL(Ti2,z));
    out:=Timer1.Q;
    outT:=Timer1.ET;
    outint:=MUL(Ti2,z);
    if Start_Stop=true and out=false then in1:=true; delta:=delta+shag; period:=period-periodOprosa;
    else in1:=false;
    end_if;
    ustavka:=Temp_Hold+delta;
    if Start_Stop=false and reset_timer=true then ustavka:=Temp_Hold; delta:=0; period:=0;
    end_if;
    END_PROGRAM

  8. #8

    По умолчанию

    Цитата Сообщение от fizhimik Посмотреть сообщение
    1. Правильно ли я делаю - уменьшая время работы таймера, из за периодического опроса блока с программой в 1000 мс-заметил что интервалы на тренде увеличения параметра(температуры) начали расти
    Что значит "интервалы на тренде увеличения параметра(температуры) начали расти"? Пришлите скриншоты демонстрирующие проблему

    Цитата Сообщение от fizhimik Посмотреть сообщение
    2. Как можно поменять условие в программе чтобы вначале работал таймер, потом шло приращение температуры - по моему первому IF температура сразу приращается, если условия поменять - то не работает как надо.
    У вас как то странно сделано.
    Логичнее эту операцию помещать в if и увеличивать когда выполнится таймер.
    ustavka:=Temp_Hold+delta;
    Спасибо.

  9. #9

    По умолчанию

    Цитата Сообщение от SCADAMaster Посмотреть сообщение
    Что значит "интервалы на тренде увеличения параметра(температуры) начали расти"? Пришлите скриншоты демонстрирующие проблему
    У вас как то странно сделано.
    Логичнее эту операцию помещать в if и увеличивать когда выполнится таймер.
    ustavka:=Temp_Hold+delta;
    При подготовке скриншотов понял, что не правильно интерпретировал показания тренда. Получается, что после суммирования чисел проходит 1 такт в 1000мс, что и отображается на графике. А я думал изменение будет мгновенное, П-образное. Теперь понятно откуда лишние секунды берутся и почему (скорость нагрева)*время ~=показаниям тренда. Надо просто 1 секунду вычесть.
    тренд:

    Подскажите как сравнить два значения времени - задание времени в таймере Timer1.PT и время на выходе из таймера Timer1.ET, я по этому и не смог загнать операцию под IF. Программа ругается на некорректный тип операндов.
    В принципе получилось загнать все (TIME_TO_REAL(Timer1.ET)-TIME_TO_REAL(Timer1.PT))=0, но это условие не выполняется, а как еще подцепится к сработавшему таймеру не понимаю.
    Последний раз редактировалось fizhimik; 08.06.2023 в 17:09.

  10. #10

    По умолчанию

    А зачем так делать вообще?
    Когда ET дойдет до TP у вас включится выход таймера
    Спасибо.

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

Похожие темы

  1. Ответов: 3
    Последнее сообщение: 09.03.2018, 19:20
  2. Нагрев воды с заданной скоростью.
    от khvatov в разделе Подбор Оборудования
    Ответов: 28
    Последнее сообщение: 14.04.2017, 08:16
  3. Ответов: 2
    Последнее сообщение: 11.03.2013, 10:10
  4. Регулирование температуры по заданной характеристике
    от Иван П в разделе Подбор Оборудования
    Ответов: 12
    Последнее сообщение: 14.07.2011, 07:48
  5. Ответов: 20
    Последнее сообщение: 30.11.2010, 09:02

Ваши права

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