文档

通过Modbus读取和控制cFos充电管理器

除 HTTP 和 MQTT 外,cFos 充电管理器还提供 Modbus API。该 API 以SunSpec为模型。您可以在充电管理器配置中的 "SunSpec 地址设置 "下指定一个 TCP 端口或 COM 端口参数和一个 Modbus ID。这将导致 cFos 充电管理器监听指定参数下的 TCP 端口或 COM 端口以及 Modbus ID 和 Modbus ID + 1。在 Modbus ID 下可获得充电管理器的常规值、参数、标志和变量。在充电管理器中设置的设备(壁挂箱和仪表)可在 ID + 1 下查询。作为 Modbus 功能,3 和 4 用于读取,6 和 16 用于写入。注意:在 Raspberry 上,低于 1024 的 TCP 端口是为具有管理员权限的程序保留的。因此,最好选择较高的端口号,如 1502。

SunSpec Modbus 规范规定,Modbus 地址范围以标识符 "SunS "开始,然后包含所谓的 SunSpec 型号。每个型号在偏移量 0 处有一个型号标识号,在偏移量 1 处有属于该型号的其余寄存器的长度说明。 然后,型号的值从偏移量 2 开始。重要提示:应扫描 SunSpec 地址范围,并始终估算偏移量 1 的长度。不要假设长度或寄存器地址是固定的,因为随着时间的推移,我们很可能会为模型添加更多的值。模型 1(通用)总是放在首位,包含制造商、版本号等详细信息。详细信息请从 SunSpec 联盟下载 SunSpec Modbus 规范。cFos 充电管理器的 SunSpec 地址范围从地址 40000 开始。

cFos 充电管理器最初在 Modbus ID 下显示以下值,型号 213(三相电表,浮动)位于 Common 型号之后:
电网消耗量
用户总数
发电机总数
光伏盈余
已用壁挂箱电量
可用壁挂箱电量
故障电量

之后是 "自定义 "型号 60000,其中包含 cFos 充电管理器的设置参数:型号和长度之后目前有 8 个浮动值:最大总电流、储备、超额、每相最大壁挂箱总电流(毫安)、最大相位不平衡(毫安)、负载管理激活(1 = 激活,0 = 非激活)、不平衡(包括用户)(1 = 激活,0 = 非激活)、负载管理激活(1 = 激活,0 = 非激活)、负载管理非激活(1 = 激活,0 = 非激活)、负载不平衡(包括用户)(1 = 激活,0 = 非激活)。负载(1 = 激活,0 = 非激活),最大总电流(百分比)。这些是充电管理器的全局参数,也可在用户界面中设置。对这些值的更改将被保存(最长延迟时间为 150 秒)。例如,以百分比为单位的总电流可用于根据电网运营商的要求动态调整充电功率。

在型号和长度之后有 32 个寄存器(16 位)。这些寄存器可包含 0 和 1 值,并可读取或写入多达 32 个充电管理器标志。这些标志的状态可通过 CM._flag1 至 CM._flag32 的公式查询并用于计算。

接下来是 "自定义 "型号 60002,在型号和长度之后是可能的充电 管理器变量。每个变量有 22 个寄存器。前 20 个寄存器是变量名称的 Modbus 字符串(名称太长会被截断)。接下来的 2 个寄存器包含变量的当前浮点值。如果写入充电管理器变量的浮动值,则会删除任何现有公式并将变量设置为固定值。

在 Modbus ID + 1 下,充电管理器中设置的仪表和墙壁盒显示如下。墙盒交换为 SunSpec 型号 113,由 2 个 16 位寄存器扩展。偏移量 62 包含墙壁盒的状态(1=等待,2=已插入,3=正在充电,4=通风充电,5=错误),偏移量 63 包含设备 ID。1 = E1,2 = E2 等。计数器显示的型号 213 由 2 个 16 位寄存器扩展。偏移量 126 包含电表的作用(0=显示,1=消耗,2=发电,3=电网消耗,4=电动汽车消耗,5=家庭存储,6=所有存储),偏移量 127 包含设备 ID(-1 表示 M1,-2 表示 M2 等)。偏移量 26 同样包含设备 ID。要显示 Modbus ID + 1 下的设备,必须在设备设置中激活 "通过 Modbus 发布设备信息"。

Aufstellung Start-Addressen der Modelle:
Modbus ID:
Model: 1, Addr: 40002
Model: 213, Addr: 40070, Netzbezugszähler
Model: 213, Addr: 40196, Summe Verbraucher
Model: 213, Addr: 40322, Sume Erzeuger
Model: 213, Addr: 40448, PV Überschuss
Model: 213, Addr: 40574, Genutzte Wallboxleistung
Model: 213, Addr: 40700, Verfügbare Wallboxleistung
Model: 213, Addr: 40826, Fehler-Leistung
Model: 60000, Addr: 40952
Model: 60001, Addr: 40970
Model: 60002, Addr: 41004
Die konkreten Start-Addressen können bei späteren Versionen des cFos Charging Managers variieren, daher sollte der Register-Bereich, wie oben beschrieben, gescannt werden.
Modbus ID + 1:
Modelle und Startadressen hängen von den eingeblendeten Geräten ab.

型号 213 的数值列表:
偏移 0: 213
偏移 1: 长度
偏移 2: L1-L3 总电流 (A)
偏移 4: L1 电流 (A)
偏移 6: L2 电流 (A)
偏移 8: L3 电流 (A)
偏移 10: 电压 (V)
偏移 12:偏移 12:电压 L1 (V)
偏移 14:电压 L2 (V)
偏移 16:电压 L3 (V)
偏移 26:50 赫兹
偏移 28:功率 (W)
偏移 30:功率 L1 (W)
偏移 32:功率 L2 (W)
偏移 34:功率 L3 (W)
偏移 36:偏移 36: 视在功率 (VA)
偏移 38: 视在功率 L1 (VA)
偏移 40: 视在功率 L2 (VA)
偏移 42: 视在功率 L3 (VA)
偏移 44: 无功功率 (VAr)
偏移 60: 出口,有功功率 (Wh)
偏移 68:进口,有功功率(Wh)
偏移 126:角色(用于 Modbus ID + 1)
偏移 127:设备 ID(用于 Modbus ID + 1)

型号 113 的值列表:
偏移 0:113
偏移 1:长度
偏移 2:L1-L3 总电流(A)
偏移 4:偏移 6: 电流 L1 (A)
偏移 6: 电流 L2 (A)
偏移 8: 电流 L3 (A)
偏移 16: 电压 L1 (V)
偏移 18: 电压 L2 (V)
偏移 20: 电压 L3 (V)
偏移 22: 功率 (W)
偏移 24: 50 Hz
偏移 26:
偏移 32:输入、有功功率(Wh)
偏移 62:状态(对于 Modbus ID + 1)
偏移 63:设备 ID(对于 Modbus ID + 1)

124 型的值列表:
偏移 0:124
偏移 1:长度
偏移 2:最大充电/放电功率(瓦)
偏移 3: 当前充电功率限制百分比
偏移 4: 当前放电功率限制百分比
偏移 8: 以百分比表示的充电状态
偏移 18: 偏移 2 的缩放系数
偏移 19:偏移 3 和偏移 4 的比例因子
偏移 26:设备 ID(用于 Modbus ID + 1)

型号 60000 的值列表:
所有值均为浮动值,读/写访问会导致闪存更新,即不要经常更改以避免损坏。即不要经常更改以避免损坏。
偏移量 0:60000(unt16,只读)
偏移量 1:长度(uint16,只读)
偏移量 2:最大总电流(mA) 总电流(毫安)
偏移 4:功率储备(毫安)
偏移 6:超额消耗(毫安)
偏移 8:最大壁挂箱总电流(毫安)
偏移 10:最大相位不平衡(毫安) 偏移 11:最大相位不平衡(毫安) 偏移 12:最大相位不平衡(毫安) 偏移 13:最大相位不平衡(毫安)
偏移 12:1 = 激活负载管理,0 = 未激活
偏移 14:1 = 将家庭消耗量添加到不平衡中,0 = 未激活
偏移 16:最大总电流的百分比,未保存,可经常更改。

型号 60001 的值列表:
所有值 0 或 1,int16,读/写访问,不保存,可经常更改。
偏移量 0:60001(uint16,只读)
偏移量 1:长度(uint16,只读)
偏移量 2:CM._flag1
..
.偏移量 33:CM._flag32

型号 60002 的值列表:
所有值浮动,读/写访问,不保存,可经常更改。偏移量 0: 60002 (uint16, 只读)
偏移量 1: 长度 (uint16, 只读)
偏移量 2...22: 名称 充电管理器变量 1
偏移量 23...24: 值 充电管理器变量 1
偏移量 25...45: 名称 充电管理器变量 2
偏移量 46...47: 值 充电管理器变量 2
...