cFos Charging Manager では、数式を動的に評価することができます。この機能は、タイプ "Expression" のメーターと、タイプ "Formula" の充電ルールで利用できます。
そのため、他のメーターやEVSEから値を計算するメーターを設定し、それらを準備して表示することができます。また、充電ルールでは、数式を使用して充電電流を動的に計算したり、メーターやEVSE(「式」タイプのメーターを含む)にアクセスすることも可能です。
数式を使った以下の操作が可能です。
+ - * / % | 加算、減算、乗算、除算、微分積分 |
& | | ビット毎AND・OR |
^ | べき乗計算、例:10^2 = 100 |
min(x,y) | xとyの最小値、2つ以上の引数が可能 |
max(x,y) | xとyの最大値、2つ以上の引数可能 |
abs(x) | xの絶対値、例:abs(-2)=2 |
clamp(x,min,max) | 値 x = min(x<minの場合)、x = max(x>maxの場合)、それ以外はxのまま |
round(x) | xを整数に丸める。例:小数点以下1桁に丸める:round(10*x)/10. |
sqrt(x) | xの平方根 |
exists(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を使用することで、太陽光の余剰電力、グリッドドロー、"Power avail. for EVSEs"(ウォールボックスで使用できる電力)などの仮想メーターにアクセスすることが可能です。
そして、ポイントによってユニットの個々の値にアクセスすることができます。これらは以下のように呼び出されます。
current_l1 | 第1相の電流(mA |
current_l2 | 第2相の電流(mA |
current_l3 | 第3相の電流(mA |
current | 電流フェーズの電流 (mA) (充電ルールでは、充電マネージャはすべてのフェーズを順番にクエリします。タイプ「式」のメータでは、式が参照するそれぞれのフェーズが適用されます)。電流 L1」に対して数式を指定した場合、電流 L2 と L3 のフィールドを省略することができます。その場合、電流 L1 の数式が使用されます。) |
power_w | 現在の有効電力(ワット |
offered | ウォールボックス電流(mA |
import_wh | エネルギー消費量(単位:Wh |
export_wh | 注入エネルギー(単位:Wh |
dt | 過去の最終更新からの経過時間(秒) |
inputN | 本機の入力番号N、1=アクティブ、0=インアクティブ |
soc | SOC、充電量(%)(メーター/ストレージ |
id | デバイスID、Modbus ID |
txn_duration | 現在のトランザクションの継続時間(秒)(EVSE |
txn_energy | 今回の取引における充電電力量(単位:Wh)(EVSE |
min_current | 最小充電電流(mA)(EVSE) |
max_current | 最大充電電流(mA)(EVSE) |
state | ステータス1待機中、2接続中、3充電中、4換気しながら充電中、5エラー、6オフライン(EVSE) |
cphases | 充電フェーズ数(0~3) |
pphases | 充電予測フェーズ数(0~3) |
budget | 現行予算でのkWh |
budget_amount | 現在の予算の最大kWhについて |
budget_used | 現在の予算で使用したkWh |
com_err | COM エラーがある場合は 1、それ以外は 0 |
com_err2 | COMエラーが12秒以上存在する場合は1、それ以外は0 |
M1.current_l1 | メーターM1、相1の電流 |
E2.import_wh | EVSE E2の消費電力量 |
E3.power_w | E3の現在の充電電力(ワット |
式」タイプのメーターの計算式を使用する場合、デバイス ID を省略することもできる。その場合、フィールド名はこのメーターを参照し、例えば'power_w'はこのメーターの電力(ワット)である。dt'を使用することで、例えば "Expression "タイプのメーターで、いくつかの拡張関数を実現することができる:
import_wh + M1.power_w * dt / 3600は
、過去の更新時間中の電力に基づき、供給エネルギーを更新する。(power_w * (20 - dt) + M1.power_w * dt) / 20は
、過去20秒間の電力を平滑化する。date
date.year | 当年度 |
date.month | 0~11の月 |
date.day | 1...31からの日数 |
date.weekday | 平日 月=0, 火=1, ...日=6 |
date.yearday | 0から366までの年間日数 |
date.hour | 時間 0〜23 |
date.minute | 分(0~60 |
date.second | 0〜60秒 |
date.daysecond | 今日の2番目 0から86399まで |
date.dayminute | この日の分数(0~1439)。 |
date.dst | 0=冬時間、1=夏時間 |
PB (nur cFos Power Brain)
PB.input1 | S0 Input 1, 1 = アクティブ、0 = 非アクティブ |
PB.input2 | S0 Input 2, 1 = アクティブ、0 = 非アクティブ |
CM チャージング・マネージャーの変数
これらの変数は、管理者が「設定」で設定することができる。例えば、管理者が変数'var_x'を1.5に設定すると、CM.var_xは値1.5を返します。
定義済みの変数です。
_num_charging:現在充電中のウォールボックスの数
_num_charging1: 現在充電中のウォールボックスの数、充電中のものがない場合は1。
max_total_current:ハウスコネクションの最大電流(mA)/相
_max_total_evse_current:ウォールボックスの各相の最大電流(mA単位
価格:現在の電気料金
_price_level: 現在の電気料金の水準、-2=非常に高い、-3=高い、-4=普通、-5=安い、-6=非常に安い
surplus:現在の太陽電池の余剰電力(ワット)。
org_surplus:課金管理者が独自の計算式で算出したであろう太陽電池の余剰分。
グローバルオブジェクトの使用:
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からフラットの消費電力を引いた値に制限している。