ドキュメント

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

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
dtExpression "カウンタのみ、CM._dtも参照。
inputNデバイスの入力番号N、1 = アクティブ、0 = 非アクティブ、Nは1から始まる入力番号。
socSOC、パーセント単位の充電レベル(カウンター/メモリー) - デバイスがサポートしている場合
idデバイスID、Modbus ID
txn_duration現在のトランザクションの継続時間(秒)(EVSE
charging_dur現在の取引の実際の充電時間(秒)(ウォールボックス
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)
lb_cur_l1mA単位で計算されたフェーズ1の電流(ウォールボックス)。ウォールボックス充電ルールの計算中のみ。
lb_cur_l2現在計算されているフェーズ2の電流(mA)(ウォールボックス)。ウォールボックスの充電ルールの計算中のみ。
lb_cur_l3mA単位で計算された第3相の電流(ウォールボックス)。ウォールボックス充電ルールの計算中のみ。
lb_cur電流フェーズで計算された電流(mA)(ウォールボックス)。チャージングマネージャーは全てのフェーズに次々と問い合わせを行う。
surplus_pcurPV過電流/(予測)フェーズ(mA
surplus_wantedPVサープラス・ルールがすでに適用されている場合は1、そうでない場合は0
budget現在の予算におけるkWhまたは分数
budget_amount現在の予算における最大kWhまたは分数
budget_used現在の予算で使用されたkWhまたは分数
com_errCOM エラーがある場合は 1、それ以外は 0
com_err2COMエラーが12秒以上存在する場合は1、それ以外は0
reactive_powerワット単位の無効電力仕様(デバイスでサポートされている場合)、正の値:正の値:誘導性、負の値:容量性
switch_phases位相切替付きウォールボックスの場合:手動位相切替、1 = 1相、3 = 3相、-1 = 自動位相切替
departureISO 15118の出発時刻をタイムスタンプの単位とする(これをサポートするウォールボックスの場合。)
req_energyISO 15118 必要エネルギー(単位:Wh)(これをサポートするウォールボックスの場合。
plugin_startUnixタイムスタンプ、ケーブル挿入時刻
plugin_energyケーブルが接続された時点から、前回充電されたエネルギーがWhで表示される

M1.current_l1メーターM1、相1の電流
E2.import_whEVSE E2の消費電力量
E3.power_wE3の現在の充電電力(ワット

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

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

グローバル変数

date

date.year当年度
date.month0~11の月
date.day1...31からの日数
date.weekday平日SO=0、月=1、火=2、...土=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=夏時間
date.timestampUnix timespamp, secs since 1.1.1970

PB (nur cFos Power Brain)

PB.input1S0 Input 1, 1 = アクティブ、0 = 非アクティブ
PB.input2S0 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:課金管理者が独自の計算式で算出したであろう太陽電池の余剰分。
_storage_home_max_capacity:メーターの設定で指定されている場合、ストレージ、ホームの合計容量(単位:Wh
_storage_home_capacity:メーターの設定で指定されている場合、ストレージ、ホームの現在の容量(単位:Wh
_storage_all_max_capacity:カウンタ構成で指定されている場合、ストレージの総容量、All、単位:Wh
_storage_all_capacity:ストレージの現在の容量、カウンタ構成で指定されている場合はAll、単位はWh
max_total_current_prc:利用可能な最大合計充電電流のパーセンテージ。この変数は、(カウンタ定義と充電マネージャ変数によって)次のように書くこともできます。
dt:前回の更新からの経過時間(秒)。

グローバルオブジェクトの使用:
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
備考:
また、「カスタムカウンター」では、チャージングマネージャーのグローバル変数と出力を使った計算式の使い方も紹介されています。

GM グローバル・カウンター

GM.grid_demandメイン・リファレンス
GM.consumed消費
GM.produced世代
GM.consumed_evse消費 電子自動車
GM.available_evse利用可能な電力
GM.surplusPVサープラス
GM.storage_homeメモリー・ホーム
GM.storage_allメモリー・エブリシング
GM.errorエラーによるパフォーマンス

グローバル・カウンターの使用
Jeder Zähler hat die Felder power_w, current, current_l1, current_l2, current_l3, import_wh und export_wh,
z.B. GM.prod_pwr.current_l1 oder GM.cons_pwr.power_w
. Bei 'current' wird der Strom der gerade betrachteten Phase ausgewertet. Ströme werden in mA geliefert, Leistung in W, Energie in Wh.

アプリケーション例

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

機能

min_price(s),max_price(s)を使用すると、現在時刻から当日または翌日の最大s秒までの価格が検索され、例えばmin_price(25200)は午前7:00までの最安値を返します。例えば、CM._price <= min_price(25200)という条件で充電ルールを作成し、最も有利な時間帯に充電したいが、例えば8:00から充電を開始したい(充電時間は1時間と仮定)という条件を設定することができます。同様に、min_price_secs(s)とmax_price_secs(s)という2つの関数があり、開始した日の最安値の開始時刻を秒単位で返します。例えば、これらをdate.daysecondと比較することができる。