Просмотр полной версии : подсчёт среднего значения
Здравствуйте всем!
как подсчитать среднее значение числа (реал) за единицу времени
ПЛК-150
спасибо
Здравствуйте всем!
как подсчитать среднее значение числа (реал) за единицу времени
ПЛК-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-среднее арифметическое*)
У меня получилось следующим образом:
n:=n+1;(*Счетчик количества итераций*)
sum:=sum+T;(*Т-температура , мгновенное значение на момент увеличения значения счетчика*)
SA:=sum/n;(*SA-среднее арифметическое*)
а более подробный код можно посмотреть?
1 -как и что, счетчик количества операций
2 и как узнать сколько раз sum = sum
У меня получилось так
модуль СТАТИСТИК_РЕАЛ-далее- ПОВТОРИТЕЛЬ ПО УСЛОВИЮ, где условие это импульс в заданное время. Вроде всё нормаль, но косяк в том что (модуль статистик это FBD а повторитель то CFC.
Александр Ч.
15.04.2013, 10:39
В программе просто ручной ввод чисел , далее "считать"
Спасибо А.Ч.!
может кто ещё какими нибудь способами среднее считает, например с использованием архива и ли ещё как нибудь?
http://www.owen.ru/forum/showpost.php?p=61379&postcount=3
Вот что-то набросал на скорую руку. 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 у меня значения на аналоговом выходе.
Вообще задача стоит усреднить значения получаемые с датчика давления, чтобы частотник не сильно прыгал по оборотам.
Сначала объявить переменную в окне объявлений вверху: NUM:REAL; Затем в программе присвоить NUM:=P1;
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot