PDA

Просмотр полной версии : подсчёт среднего значения



evgnik
12.04.2013, 11:44
Здравствуйте всем!
как подсчитать среднее значение числа (реал) за единицу времени
ПЛК-150

спасибо

petera
12.04.2013, 12:52
Здравствуйте всем!
как подсчитать среднее значение числа (реал) за единицу времени
ПЛК-150

спасибо
Посмотрите здесь, похожий вопрос
http://www.owen.ru/forum/showthread.php?p=95777#post95777

Александр Ч.
12.04.2013, 13:21
У меня получилось следующим образом:
n:=n+1;(*Счетчик количества итераций*)
sum:=sum+T;(*Т-температура , мгновенное значение на момент увеличения значения счетчика*)
SA:=sum/n;(*SA-среднее арифметическое*)

evgnik
15.04.2013, 06:16
У меня получилось следующим образом:
n:=n+1;(*Счетчик количества итераций*)
sum:=sum+T;(*Т-температура , мгновенное значение на момент увеличения значения счетчика*)
SA:=sum/n;(*SA-среднее арифметическое*)

а более подробный код можно посмотреть?
1 -как и что, счетчик количества операций
2 и как узнать сколько раз sum = sum

У меня получилось так
модуль СТАТИСТИК_РЕАЛ-далее- ПОВТОРИТЕЛЬ ПО УСЛОВИЮ, где условие это импульс в заданное время. Вроде всё нормаль, но косяк в том что (модуль статистик это FBD а повторитель то CFC.

Александр Ч.
15.04.2013, 10:39
В программе просто ручной ввод чисел , далее "считать"

evgnik
16.04.2013, 05:43
Спасибо А.Ч.!
может кто ещё какими нибудь способами среднее считает, например с использованием архива и ли ещё как нибудь?

capzap
16.04.2013, 06:51
http://www.owen.ru/forum/showpost.php?p=61379&postcount=3

JIexa21
16.04.2013, 08:20
Вот что-то набросал на скорую руку. 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

evgnik
17.04.2013, 06:22
----спасибо!----

Sudya
09.02.2019, 14:19
Подскажите почему при назначении переменной NUM параметра REAL выдает ошибку Неверное начальное значение?
прописываю
NUM : REAL := Р1;
Р1 у меня значения на аналоговом выходе.

Вообще задача стоит усреднить значения получаемые с датчика давления, чтобы частотник не сильно прыгал по оборотам.

alex55
09.02.2019, 14:59
Сначала объявить переменную в окне объявлений вверху: NUM:REAL; Затем в программе присвоить NUM:=P1;