- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Нахождение разности показаний температур датчика за час в Codesys 2.x
-
- новенький
- Сообщения: 1
- Зарегистрирован: 21 сен 2019, 13:48
- Имя: Вячеслав
Нахождение разности показаний температур датчика за час в Codesys 2.x
Необходимо реализовать задачу термометрирования и его завершения при выполнении условия: конечную температуру считают установившейся, когда скорость возрастания температуры не превышает 2 К/ч. Понимаю, что необходимо создавать массив температур и времени и вычислять разность температур за час, но как это реализовать на Codesys на языкеST в виде функционального блока?
-
- освоился
- Сообщения: 277
- Зарегистрирован: 28 авг 2014, 09:30
- Имя: Воднев Александр Васильевич
- Страна: РФ
- город/регион: Томск
- Благодарил (а): 22 раза
- Поблагодарили: 28 раз
Нахождение разности показаний температур датчика за час в Codesys 2.x
А какое отношение этот вопрос имеет к контроллеру ОВЕН?
-
- почётный участник форума
- Сообщения: 1041
- Зарегистрирован: 29 апр 2014, 09:57
- Имя: Рыбкин Владимир Геннадьевич
- Страна: Россия
- город/регион: Тверь
- Благодарил (а): 55 раз
- Поблагодарили: 134 раза
Нахождение разности показаний температур датчика за час в Codesys 2.x
Чтобы найти скорость роста температуры - её дифференцируют, чтобы найти среднее значение - фильтруют. Учебник по численным методам обработки достаточно толстый и каждой из этих операций посвящено немалое число страниц. Выбор и настройки метода зависят от требований к точности, скорости и наукообразности используемого метода.Vyacheslav писал(а): ↑21 сен 2019, 14:04 Необходимо реализовать задачу термометрирования и его завершения при выполнении условия: конечную температуру считают установившейся, когда скорость возрастания температуры не превышает 2 К/ч. Понимаю, что необходимо создавать массив температур и времени и вычислять разность температур за час, но как это реализовать на Codesys на языкеST в виде функционального блока?
-
- почётный участник форума
- Сообщения: 5635
- Зарегистрирован: 07 окт 2011, 09:12
- Имя: Гаско Вячеслав Эриевич
- Страна: Россия
- город/регион: Рязань
- Благодарил (а): 601 раз
- Поблагодарили: 758 раз
Нахождение разности показаний температур датчика за час в Codesys 2.x
Вы удивитесь - есть рекурсивные формулы, которым массивы не нужны.Vyacheslav писал(а): ↑21 сен 2019, 14:04 Понимаю, что необходимо создавать массив температур и времени и вычислять разность температур за час,
И Вам уже рекомендовали обратиться к учебникам и также намекнули, что ни тип PLC, ни тип IDE к заявленной задаче отношения не имеют. Это общий вопрос цифровой обработки сигнала (ЦОС). Буквари Вам в помощь.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
-
- освоился
- Сообщения: 226
- Зарегистрирован: 26 мар 2017, 13:05
- Имя: Денис
- Страна: Россия
- город/регион: Самара
- Благодарил (а): 13 раз
- Поблагодарили: 37 раз
Нахождение разности показаний температур датчика за час в Codesys 2.x
Позвольте позанудствовать, но синтаксис языка ST всё же неодинаков в разных IDE, поэтому уточнение ТС про версию Кодесис и ПЛК не лишне.
Скорее всего, автор не отказался бы от готового sample, чтобы не тратить время на изобретение велосипеда. Может быть, кто-то поделится готовым куском кода.
-
- почётный участник форума
- Сообщения: 1041
- Зарегистрирован: 29 апр 2014, 09:57
- Имя: Рыбкин Владимир Геннадьевич
- Страна: Россия
- город/регион: Тверь
- Благодарил (а): 55 раз
- Поблагодарили: 134 раза
Нахождение разности показаний температур датчика за час в Codesys 2.x
Если сумеете правильно рассчитать коэффициенты, то может хватить 3 строчек: dT = k1*(Tizm - Talt); Talt = Tizm; dTfilt = k2*dT + (1-k2)*dTfilt; А может и не хватить. :)
-
- не первый раз у нас
- Сообщения: 320
- Зарегистрирован: 17 июн 2016, 14:18
- Имя: Максим
- Благодарил (а): 7 раз
- Поблагодарили: 113 раз
Нахождение разности показаний температур датчика за час в Codesys 2.x
При вызове блока раз в минуту:
Код: Выделить всё
FUNCTION_BLOCK RM
VAR_INPUT
T_IN : REAL; (*Входная температура*)
RAMP : REAL := 2; (*Скорость изменения температуры - 2К в час*)
CYCLE : REAL := 60; (*Цикл вызова блока (раз в мин. = 60 раз в час)*)
END_VAR
VAR_OUTPUT
OUT : BOOL; (*Выход*)
END_VAR
VAR
T_PREV : REAL; (*Предыдущая температура*)
END_VAR
IF (T_IN - T_PREV) > (RAMP / CYCLE) THEN
OUT := FALSE;
ELSE
OUT := TRUE;
END_IF;
T_PREV := T_IN;