• обязательно заполнить свой профиль на русском языке кириллицей
  • не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему
  • дублирование сообщений приравнивается к спаму
  • за поиск и предложение пиратского ПО - бан без предупреждения
  • рекламу и частные объявления мы не размещаем ни на каких условиях

Нахождение разности показаний температур датчика за час в Codesys 2.x

Ответить

Автор темы
Vyacheslav
новенький
новенький
Сообщения: 1
Зарегистрирован: 21 сен 2019, 13:48
Имя: Вячеслав

Нахождение разности показаний температур датчика за час в Codesys 2.x

Сообщение Vyacheslav »

Необходимо реализовать задачу термометрирования и его завершения при выполнении условия: конечную температуру считают установившейся, когда скорость возрастания температуры не превышает 2 К/ч. Понимаю, что необходимо создавать массив температур и времени и вычислять разность температур за час, но как это реализовать на Codesys на языкеST в виде функционального блока?

Аватара пользователя

vodav
освоился
освоился
Сообщения: 205
Зарегистрирован: 28 авг 2014, 08:30
Имя: Воднев Александр Васильевич
Страна: РФ
город/регион: Томск
Благодарил (а): 12 раз
Поблагодарили: 14 раз

Нахождение разности показаний температур датчика за час в Codesys 2.x

Сообщение vodav »

А какое отношение этот вопрос имеет к контроллеру ОВЕН?


rwg
корифей
корифей
Сообщения: 738
Зарегистрирован: 29 апр 2014, 08:57
Имя: Рыбкин Владимир Геннадьевич
Страна: Россия
город/регион: Тверь
Благодарил (а): 23 раза
Поблагодарили: 57 раз

Нахождение разности показаний температур датчика за час в Codesys 2.x

Сообщение rwg »

Vyacheslav писал(а):
21 сен 2019, 14:04
Необходимо реализовать задачу термометрирования и его завершения при выполнении условия: конечную температуру считают установившейся, когда скорость возрастания температуры не превышает 2 К/ч. Понимаю, что необходимо создавать массив температур и времени и вычислять разность температур за час, но как это реализовать на Codesys на языкеST в виде функционального блока?
Чтобы найти скорость роста температуры - её дифференцируют, чтобы найти среднее значение - фильтруют. Учебник по численным методам обработки достаточно толстый и каждой из этих операций посвящено немалое число страниц. Выбор и настройки метода зависят от требований к точности, скорости и наукообразности используемого метода.


Ryzhij
почётный участник форума
почётный участник форума
Сообщения: 4471
Зарегистрирован: 07 окт 2011, 08:12
Имя: Гаско Вячеслав Эриевич
Страна: Россия
город/регион: Рязань
Благодарил (а): 223 раза
Поблагодарили: 371 раз

Нахождение разности показаний температур датчика за час в Codesys 2.x

Сообщение Ryzhij »

Vyacheslav писал(а):
21 сен 2019, 14:04
Понимаю, что необходимо создавать массив температур и времени и вычислять разность температур за час,
Вы удивитесь - есть рекурсивные формулы, которым массивы не нужны.
И Вам уже рекомендовали обратиться к учебникам и также намекнули, что ни тип PLC, ни тип IDE к заявленной задаче отношения не имеют. Это общий вопрос цифровой обработки сигнала (ЦОС). Буквари Вам в помощь.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может». Жан-Поль Сартр


Velt
осмотрелся
осмотрелся
Сообщения: 100
Зарегистрирован: 26 мар 2017, 13:05
Имя: Денис
Страна: Россия
город/регион: Самара
Поблагодарили: 10 раз

Нахождение разности показаний температур датчика за час в Codesys 2.x

Сообщение Velt »

Ryzhij писал(а):
23 сен 2019, 09:04
что ни тип PLC, ни тип IDE к заявленной задаче отношения не имеют
Позвольте позанудствовать, но синтаксис языка ST всё же неодинаков в разных IDE, поэтому уточнение ТС про версию Кодесис и ПЛК не лишне.
Скорее всего, автор не отказался бы от готового sample, чтобы не тратить время на изобретение велосипеда. Может быть, кто-то поделится готовым куском кода.


rwg
корифей
корифей
Сообщения: 738
Зарегистрирован: 29 апр 2014, 08:57
Имя: Рыбкин Владимир Геннадьевич
Страна: Россия
город/регион: Тверь
Благодарил (а): 23 раза
Поблагодарили: 57 раз

Нахождение разности показаний температур датчика за час в Codesys 2.x

Сообщение rwg »

Velt писал(а):
23 сен 2019, 15:31
Может быть, кто-то поделится готовым куском кода.
Если сумеете правильно рассчитать коэффициенты, то может хватить 3 строчек: dT = k1*(Tizm - Talt); Talt = Tizm; dTfilt = k2*dT + (1-k2)*dTfilt; А может и не хватить. :)


SMax
здесь недавно
здесь недавно
Сообщения: 42
Зарегистрирован: 17 июн 2016, 14:18
Имя: Максим
Благодарил (а): 1 раз
Поблагодарили: 9 раз

Нахождение разности показаний температур датчика за час в Codesys 2.x

Сообщение SMax »

При вызове блока раз в минуту:

Код: Выделить всё

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;

Ответить

Вернуться в «ОВЕН»