Здравствуйте всем!
как подсчитать среднее значение числа (реал) за единицу времени
ПЛК-150
спасибо
Здравствуйте всем!
как подсчитать среднее значение числа (реал) за единицу времени
ПЛК-150
спасибо
Посмотрите здесь, похожий вопрос
http://www.owen.ru/forum/showthread....5777#post95777
Последний раз редактировалось petera; 12.04.2013 в 12:57.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
У меня получилось следующим образом:
n:=n+1;(*Счетчик количества итераций*)
sum:=sum+T;(*Т-температура , мгновенное значение на момент увеличения значения счетчика*)
SA:=sum/n;(*SA-среднее арифметическое*)
а более подробный код можно посмотреть?
1 -как и что, счетчик количества операций
2 и как узнать сколько раз sum = sum
У меня получилось так
модуль СТАТИСТИК_РЕАЛ-далее- ПОВТОРИТЕЛЬ ПО УСЛОВИЮ, где условие это импульс в заданное время. Вроде всё нормаль, но косяк в том что (модуль статистик это FBD а повторитель то CFC.
В программе просто ручной ввод чисел , далее "считать"
Спасибо А.Ч.!
может кто ещё какими нибудь способами среднее считает, например с использованием архива и ли ещё как нибудь?
Вот что-то набросал на скорую руку. T1 - время, за которое надо усреднять, NUM - сами значения, OUT - усредненные значения за время T1.
Код:PROGRAM PLC_PRG VAR N : INT := 0; SUM : REAL; T1 : TIME := T#1s; TIMER : TON; NUM : REAL := 1.25; OUT: REAL; END_VAR TIMER(IN:= NOT TIMER.Q , PT:= T1 ); SUM := SUM + NUM; N := N + 1; IF TIMER.Q THEN TIMER(IN:= NOT TIMER.Q , PT:= T1); OUT := SUM /N; N := 0; SUM := 0; END_IF
Подскажите почему при назначении переменной NUM параметра REAL выдает ошибку Неверное начальное значение?
прописываю
NUM : REAL := Р1;
Р1 у меня значения на аналоговом выходе.
Вообще задача стоит усреднить значения получаемые с датчика давления, чтобы частотник не сильно прыгал по оборотам.