Здравствуйте всем!
как подсчитать среднее значение числа (реал) за единицу времени
ПЛК-150
спасибо
Вид для печати
Здравствуйте всем!
как подсчитать среднее значение числа (реал) за единицу времени
ПЛК-150
спасибо
Посмотрите здесь, похожий вопрос
http://www.owen.ru/forum/showthread....5777#post95777
У меня получилось следующим образом:
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 у меня значения на аналоговом выходе.
Вообще задача стоит усреднить значения получаемые с датчика давления, чтобы частотник не сильно прыгал по оборотам.