cFosチャージングマネージャー - 計算式

cFos Charging Manager では、数式を動的に評価することができます。この機能は、タイプ "Expression" のメーターと、タイプ "Formula" の充電ルールで利用できます。

そのため、他のメーターやEVSEから値を計算するメーターを設定し、それらを準備して表示することができます。また、充電ルールでは、数式を使用して充電電流を動的に計算したり、メーターやEVSE(「式」タイプのメーターを含む)にアクセスすることも可能です。

数式を使った以下の操作が可能です。

+ - * /加算、減算、乗算、除算
^べき乗計算、例:10^2 = 100
min(x,y)xとyの最小値、2つ以上の引数が可能
max(x,y)xとyの最大値、2つ以上の引数可能
abs(x)xの絶対値、例:abs(-2)=2
sqrt(x)xの平方根

さらに、以下の論理表現が可能である。

==(等),!=(不等),<(小),<=(小-等),>(大),>=(大-等),!(非),||(論理 OR),&&(論理 And),?(条件演算子。例:x ? y : z、x が真のときは y、それ以外はz を返す。)

これにより、例えば、条件によって電流を切り替えたりすることができる。M1.current >= 6500 ?M1.current : 0はM1の電流が6.5A以上であれば返し、そうでなければ0を返し、充電を一時停止させる。このような条件では、入力に問い合わせることも可能である(下記参照)。

以下のような名称が考えられる。

MxユニットIDがxのメーター、例:M1
Ex機器IDがxのEVSE、例:E1

また、メーターを設定し、対応するデバイスIDを数式で使用することで、太陽光の余剰電力、グリッドドロー、「EVSEの電力使用量」などの仮想メーターにアクセスすることが可能です。

そして、ポイントによってユニットの個々の値にアクセスすることができます。これらは以下のように呼び出されます。

current_l1第1相の電流(mA
current_l2第2相の電流(mA
current_l3第3相の電流(mA
current電流フェーズの電流 (mA) (充電ルールでは、充電マネージャはすべてのフェーズを順番にクエリします。タイプ「式」のメータでは、式が参照するそれぞれのフェーズが適用されます)。電流 L1」に対して数式を指定した場合、電流 L2 と L3 のフィールドを省略することができます。その場合、電流 L1 の数式が使用されます。)
power_va現在の電力(Watt/VA)(メーターの種類によっては、皮相電力または有効電力がここに供給されることがあります。
import_whエネルギー消費量(単位:Wh
export_wh注入エネルギー(単位:Wh
dt過去の最終更新からの経過時間(秒)
inputN本機の入力番号N、1=アクティブ、0=インアクティブ
socSOC、充電量(%)(メーター/ストレージ
txn_duration現在のトランザクションの継続時間(秒)(EVSE
txn_energy今回の取引における充電電力量(単位:Wh)(EVSE
min_current最小充電電流(mA)(EVSE)
max_current最大充電電流(mA)(EVSE)
stateステータス1待機中、2接続中、3充電中、4換気しながら充電中、5エラー、6オフライン(EVSE)

M1.current_l1メーターM1、相1の電流
E2.import_whEVSE E2の消費電力量
E3.power_vaE3からの現在の充電電力

式」のタイプのメーターの数式を使用する場合、デバイスIDを省略することもできます。その場合、フィールド名はこのメーターを参照し、例えば、'power_va'はこのメーターの電力(Watt/VA)である。dt' を使用して、例えば "Expression" タイプのメーターで、いくつかの拡張関数を実現することができます。

  • import_wh」の計算式として、import_wh + M1.power_va * dt / 3600は、過去の更新時間の電力に基づいて供給されるエネルギーを更新します。
  • power_va'の式として(power_va * (20 - dt) + M1.power_va * dt) / 20は、過去20秒間の電力を平滑化する。

グローバル変数

date

date.year当年度
date.month0~11の月
date.day1...31からの日数
date.weekday平日 月=0, 火=1, ...日=6
date.yearday0から366までの年間日数
date.hour時間 0〜23
date.minute分(0~60
date.second0〜60秒
date.daysecond今日の2番目 0から86399まで
date.dayminuteこの日の分数(0~1439)。
date.dst0=冬時間、1=夏時間

PB (cFos Power brain only)

PB.input1S0 Input 1, 1 = アクティブ、0 = 非アクティブ
PB.input2S0 Input 2, 1 = アクティブ、0 = 非アクティブ

CM チャージングマネージャーの変数

これらの変数は、管理者が「設定」で設定することができます。例えば、管理者が変数 'var_x' を 1.5 に設定すると、CM.var_x は値 1.5 を返します。

定義済みの変数です。
_num_charging:現在充電中のEVSEの台数
_num_charging1: 現在充電中のEVSEの数、充電中がない場合は1。
_max_total_power:家の接続の最大電力(単位:W
_max_total_evse_power:EVSEの最大電力(単位:W

Benutzung der globalen Objekte:
charge 8A starting at 8:00am: date.dayminute >= 480 ? 8000 : 0
charge 16A on Saturday and Sunday: date.weekday == 5 || date.weekday == 6 ? 16000 : 0
charge 6A if input 2 active: PB.input2 ? 6000 : 0 charge 6A if CM variable non-zero: cm.var1 ? 6000 : 0

アプリケーション例

フラットの消費電力計に関して、充電電流を追加で制限したい。そのためには、16000 - M1.currentの式で充電ルールを設定することができます。
M1はフラットの消費量を計測するメーターです。cFos Charging Managerの負荷管理は、まず住宅接続電力に対する最大電流をEVSEに供給しようとするが、これを16Aからフラットの消費電力を引いた値に制限している。