PDA

Просмотр полной версии : Получить накопленную энергию из мгновенной мощности



Карбофос
28.11.2019, 13:10
Добрый день!

Есть такая задача: к ПЛК110 по модбасу подключен прибор, способный отдавать мгновенное значение электрической мощности. Можно ли как-нибудь вычислить накопленную электрическую энергию, если постоянно измерять мощность? Т.е. что бы ПЛК выступил в качестве элетросчетчика?

Учет сугубо технологический, ни о каком коммерческом учете речи не идет.

melky
28.11.2019, 13:25
можно. я даже формулу когда-то выкладывал, читая МЭ110-1M, вот только понту от этого, если будет свет пропадать например и ПЛК будет отключаться...
хотя и это можно. Ну и с переменными придется повозиться, REAL не хватает, нужен либо LREAL либо как-то иначе..

IVM
28.11.2019, 14:37
Добрый день!

Есть такая задача: к ПЛК110 по модбасу подключен прибор, способный отдавать мгновенное значение электрической мощности. Можно ли как-нибудь вычислить накопленную электрическую энергию, если постоянно измерять мощность? Т.е. что бы ПЛК выступил в качестве элетросчетчика?

Учет сугубо технологический, ни о каком коммерческом учете речи не идет.

Это элементарно делается. Интегрируй мгновенное значение электрической мощности по времени и получишь то, что надо.

W = W + ((P(t) + P(t-1))/2) * dt.

Карбофос
28.11.2019, 15:36
Это элементарно делается. Интегрируй мгновенное значение электрической мощности по времени и получишь то, что надо.

W = W + ((P(t) + P(t-1))/2) * dt.

Если P(t) у нас будет выражено в киловаттах, то W мы получим в киловатт*часах или еще дополнительно нужно умножить на некий коэффициент?

petera
28.11.2019, 15:46
Если P(t) у нас будет выражено в киловаттах, то W мы получим в киловатт*часах или еще дополнительно нужно умножить на некий коэффициент?
Если P(t) у нас будет выражено в киловаттах, а время в секундах, то W - в кило Джоулях
1 кДж = 0,000277778 кВт*ч

Карбофос
28.11.2019, 16:35
Всем спасибо!

IVM
28.11.2019, 17:04
Если P(t) у нас будет выражено в киловаттах, то W мы получим в киловатт*часах или еще дополнительно нужно умножить на некий коэффициент?

Если сделать интервал интегрирования dt, к примеру, 1 сек., то энергию в кВт * час можно считать по формуле:

W = W + (((P(t) + P(t-1))/2) * dt)/3600.

ASo
28.11.2019, 17:04
В принципе, в util.lib есть ФБ интеглала.

Карбофос
29.11.2019, 07:59
Главные слова сказал melky — real не катит. Соответственно не катят все вышеприведенные формулы в данном виде включая интеграл из util.
От себя - базовая размерность это размерность самого измерителя, а dt не секунда, а расчет в момент цифровки и/или получения данных

А что если я возьму DWORD, в котором будет храниться накопленное значение, умноженное на 1000, тогда при масштабировании в скаде или HMI у меня будет точность 3 знака после запятой. Расчет буду производить один раз в секунду при помощи ФБ Блинк - формула выше тогда работать будет?

Ну или как в 110м включить LReal?

melky
29.11.2019, 08:56
Карбофос, где то в свойствах должно включаться в CDS. Просто 100-ка этот формат не поддерживает и когда я использовал формулу, то надо было вбить поаказания счетчика, чтобы типа видеть те же данные что и на счетчике, так вот при большом значении (относительно большом, всего лишь примерно 65000 кВт/ч) ругалось на формат.

Можно приводить к целочисленным без знака DINT в принципе.
Я читал МЭ примерно раз в 0,5 секунды. Соответственно у меня было деление на 7200 а не 3600.
Ну и в идеале заточить формулу, чтобы рассчитывалось время между запросами, тогда погрешность будет меньше. Хотя у меня не сильно большая была при таком опросе. Ну права за пару суток.

IVM
29.11.2019, 11:37
От себя - базовая размерность это размерность самого измерителя, а dt не секунда, а расчет в момент цифровки и/или получения данных

dt - это период опроса мощности. Какой период, такова и величина dt.

Приведенная формула вполне рабочая. Если добавить еще пару выражений, то вопрос с переполнением будет решен.

PROGRAM PLC_PRG

VAR

W: REAL;
W1: DWORD;
P: REAL;
P_1: REAL;
DEL_T: INT := 1;
WP: INT;

END_VAR


W := W + (((P + P_1)/2) * DEL_T)/3600;

WP := REAL_TO_INT(W); (* Целая часть W *)
W := W - INT_TO_REAL(WP); (* Дробная часть W *)

W1 := W1 + WP; (* Энергия в кВт x час *)

P_1 := P;


Валенок, попробуй докопаться. ;)

Сергей0308
30.11.2019, 17:10
Раньше тема попадалась, если не изменяет память, кажется Ситников подобным образом пытался электроэнергию подсчитывать, так расхождение в показаниях со счётчиком доходило до 20%, короче, боюсь никого такая точность не устроит!

melky
30.11.2019, 21:54
PROGRAM Kwt_hours
VAR
kwt_corr: BOOL;
rt1: R_TRIG;
kwt_h: REAL;
kwt_start: REAL;
END_VAR

VAR RETAIN
kwt_summ: REAL;
END_VAR


rt1(CLK:=kwt_corr , Q=> );
IF rt1.Q THEN
kwt_summ:=kwt_start;
kwt_start:=0;
END_IF
kwt_h:=active/7200/1000;
kwt_summ:=kwt_summ+kwt_h;


при условии вызова опроса раз в 0,5 секунды. Погрешность тоже будет. А вот если считать время между опросами и вместо 7200 подставлять точное значение между получения ответов, то погрешность будет меньше.

з.ы. считать при помощи ПЛК в принципе БРЕД, либо нужна скорость куда выше. Это вам не счетчик раз в 250 мкс расчет...

IVM
01.12.2019, 11:19
PROGRAM Kwt_hours
VAR
kwt_corr: BOOL;
rt1: R_TRIG;
kwt_h: REAL;
kwt_start: REAL;
END_VAR

VAR RETAIN
kwt_summ: REAL;
END_VAR


rt1(CLK:=kwt_corr , Q=> );
IF rt1.Q THEN
kwt_summ:=kwt_start;
kwt_start:=0;
END_IF
kwt_h:=active/7200/1000;
kwt_summ:=kwt_summ+kwt_h;


при условии вызова опроса раз в 0,5 секунды. Погрешность тоже будет. А вот если считать время между опросами и вместо 7200 подставлять точное значение между получения ответов, то погрешность будет меньше.

з.ы. считать при помощи ПЛК в принципе БРЕД, либо нужна скорость куда выше. Это вам не счетчик раз в 250 мкс расчет...

melky вычисляет площадь прямоугольника. Я в своем коде вычисляю площадь трапеции, я думаю это повысит точность вычисления энергии.

Переменная kwt_summ, объявленная у melky как REAL быстро переполнится. В моем коде накопленная энергия хранится в переменной DWORD.

Будет много лучше использовать таймер 20 мкс для измерения временных интервалов (прерываться можно раз в 100 мкс). В программе прерывания по таймеру надо делать вычисление энергии.

melky
01.12.2019, 12:44
IVM я про это и писал выше, что REAL не подходит, а это мой код из ПЛК100. В любом случае я от него отказался, так как счетчик электроэнергии с интерфейсом считает все куда лучше

Да, тут еще есть и экономическая составляющая, если токи у нас до 100А то счетчик выгоднее и занимает меньше места.
Например Меркурий 236 с интерфейсом стоит 5 с чем-то. А МЭ110 3-х фазный + трансы будет стоить дороже и добавит головняков с расчетами.

IVM
01.12.2019, 13:06
IVM я про это и писал выше, что REAL не подходит, а это мой код из ПЛК100. В любом случае я от него отказался, так как счетчик электроэнергии с интерфейсом считает все куда лучше

Да, тут еще есть и экономическая составляющая, если токи у нас до 100А то счетчик выгоднее и занимает меньше места.
Например Меркурий 236 с интерфейсом стоит 5 с чем-то. А МЭ110 3-х фазный + трансы будет стоить дороже и добавит головняков с расчетами.

Никто не говорит, что надо ставить ПЛК и МЭ110 вместо счетчика, просто у автора темы ситуация такая сложилась. Но как известно все проблемы решаемы.

Нет никаких головняков с расчетами, все предельно просто.

melky
01.12.2019, 13:19
да есть головняки.
1. скорость опроса по интерфейсу
2. скорость опроса самим прибором

отсюда и погрешность. ну не способен ПЛК в связке с прибором по RS485 дать скорость расчета 250 мкс.

IVM
01.12.2019, 13:36
да есть головняки.
1. скорость опроса по интерфейсу
2. скорость опроса самим прибором

отсюда и погрешность. ну не способен ПЛК в связке с прибором по RS485 дать скорость расчета 250 мкс.

Измерители мощности бывают с интерфейсом Ethernet (на Али таких море и недорого). ПЛК110 [М02] может вести расчеты с периодом от 20 мкс.

e.filatov
01.12.2019, 13:59
Взять 701-й, который сам накапливает мощности? не, не слышал

melky
01.12.2019, 14:04
нафига? если счетчик прекрасно накапливает мощность ? :) взять 701-й это когда надо и большая система. Ну и кроме 701-ого есть куча других производителей если так рассматривать ситуацию. Опять же, 701-й требует трансформаторов тока, как и многие другие приборы

Filini
01.12.2019, 19:19
Если P(t) у нас будет выражено в киловаттах, а время в секундах, то W - в кило Джоулях
1 кДж = 0,000277778 кВт*ч

или 1кДж = 1 кВт*сек

Карбофос
01.12.2019, 19:57
нафига? если счетчик прекрасно накапливает мощность ? :) взять 701-й это когда надо и большая система. Ну и кроме 701-ого есть куча других производителей если так рассматривать ситуацию. Опять же, 701-й требует трансформаторов тока, как и многие другие приборы

А я скажу нафига. Потому что измерять будем параметры сети 10 кВ, объект со дня на день собирается запускаться, а заказчики про**** покупку соответствующих счетчиков, а у тех очень нехорошие сроки поставки (как мне объяснили), и теперь слезно умоляют в качестве временного решения получить данные с блоков релейной защиты (дабы не получить люлей от начальства). А блоки эти могут только отдать значение активной/реактивной мощности, но не накопленной энергии.

Развлекаемся как можем:)

melky
01.12.2019, 23:34
Карбофос, тогда лучше конечно применить 701 или аналогичное, что умеет считать и энергию и не заниматься мазохизмом. Хотя если уже купили, то занимайтесь.
А по секрету скажу, счётчики можно включать через трансформаторы тока и напряжения. Ужас просто...

Сергей0308
02.12.2019, 03:14
А по секрету скажу, счётчики можно включать через трансформаторы тока и напряжения. Ужас просто...

Что значит можно? Вы вроде писали что имели к этому отношение(к подстанциям)?
Иначе и не возможно сделать для сетей 10кВ!
Можно, это когда более одного способа(варианта)!