Вызначаныя карыстальнікам лічыльнікі

Заўвага: cFos Charging Manager можа счытваць большасць сонечных інвертараў з дапамогай SunSpec (тып прылады «SunSpec Solar Inverter / Meter»). У гэтым выпадку вам не трэба ствараць уласнае вызначэнне лічыльніка.

cFos Charging Manager дазваляе ствараць уласныя вызначэнні лічыльнікаў для падтрымкі лічыльнікаў, якіх няма ў стандартным рэпертуары. У цяперашні час існуе два тыпу: лічыльнікі Modbus і лічыльнікі HTTP/JSON. Файлы вызначэння для гэтых лічыльнікаў вельмі падобныя. Лічыльнікі Modbus чытаюць свае дадзеныя праз Modbus з пэўных рэгістроў, у той час як/JSON атрымліваюць свае дадзеныя праз HTTP -запыт і аналізуюць JSON у якасці адказу. cFos Charging Manager выкарыстоўвае невялікі "мову запытаў" для сінтаксічнага разбору.

У дадатак да шэрагу загадзя зададзеных зменных, такіх як ток і напружанне, лічыльнікі, якія вызначаюцца карыстальнікам, таксама могуць счытваць невядомыя, зададзеныя карыстальнікам зменныя, уводныя запыты і задаваць выхады. Чытанне зменных і заданне вывадаў дазваляе ацэнку формул. У спалучэнні са зменнымі Charging Manager і глабальнымі выхадамі Charging Manager, апісанымі ніжэй, гэта магутная функцыя, якая нават дазваляе выконваць пэўныя задачы хатняй аўтаматызацыі і кіраваць вонкавымі прыладамі, такімі як назапашвальнік батарэі. Калі вы выконваеце кантрольныя задачы з гэтым, калі ласка, дайце нам водгук. Мы вельмі зацікаўлены ў тым, чым людзі кіруюць з дапамогай cFos Charging Manager, і гэта дапамагае нам далей развіваць Charging Manager у адпаведнасці з патрэбамі кліентаў.

Вось прыклад вызначэння для Modbus і аднаго для HTTP/JSON:
Загрузіце ўзор вызначэння вымяральніка Modbus
Загрузіце ўзор вызначэння для вымяральніка/

У дыспетчар зарадкі ўжо ёсць некалькі такіх файлаў, але вы можаце загрузіць свае ўласныя файлы ў раздзеле "Канфігурацыя сістэмы" і зноў выдаляць іх.
Тут вы знойдзеце вялікую частку вызначэнняў лічыльнікаў, якія мы прапануем:
Спампаваць прыведзеныя вызначэнні лічыльнікаў

Калі вы стварылі свой уласны файл лічыльніка, і ён можа быць актуальны для іншых карыстальнікаў, мы былі б вельмі ўдзячныя, калі б вы змаглі зрабіць яго даступным для нас. Тады мы паставім яго з будучымі версіямі дыспетчара зарадкі.

Спампуйце азначэнні лічыльнікаў для атрымання дадатковай колькасці лічыльнікаў

Структура файла вызначэння:

Вызначэнні лічыльнікаў - гэта файлы JSON з глабальным аб'ектам JSON, які мае ўласцівасці і падаб'екты. 'rtype' вызначае тып аперацыі чытання: 0 = Modbus, 1 = HTTP/JSON. Вы можаце ўказваць лікі ў дзесятковай або шаснаццатковай форме з прэфіксам 0x. Акрамя таго, дапускаюцца каментарыі ў адзін радок з выкарыстаннем // . Мы рэкамендуем запускаць файлы азначэнняў праз валідатар JSON5, напрыклад, гэты валідатар JSON5

Абавязкова прачытайце раздзел « Формулы », каб зразумець, якія значэнні можна выкарыстоўваць у формулах у наступным даведніку.

Вызначэнні Modbus маюць аб'ект 'rtu' з наступнымі ўласцівасцямі:

перыяд_цішыні, у мсек. вызначае працягласць паўзы перад доступам Modbus RTU, каб прылада распазнавала пачатак паведамлення.
silence_same_slave, праўда: Паўза захоўваецца нават пры шматразовым доступе да адной прылады.
retries: Колькасць паўтораў, калі прылада не адказвае.
rcv_timeout: у мс. максімальны час чакання на доступ, пакуль прылада не адкажа.

Гэтыя глабальныя ўласцівасці прымяняюцца да Modbus TCP і RTU:

modbus_read: нумар функцыі каманды чытання Modbus, звычайна 3 ці 4.
modbus_read_max_registers: Максімальная колькасць рэгістраў, якія можна прачытаць за адзін раз.
modbus_allow_gaps: true = Нявыкарыстаныя вобласці рэгістра могуць быць прачытаны ў аперацыі чытання.

Для Modbus TCP і HTTP/JSON існуе аб'ект "tcp" з наступнымі ўласцівасцямі:

час чакання злучэння: мс. максімальны час чакання TCP-злучэння.
затрымка_пасля_злучэння: у мс. Зрабіце паўзу пасля ўстанаўлення злучэння перад адпраўкай першай каманды.

Абодва тыпу азначэнняў (Modbus і HTTP/JSON) таксама маюць наступныя ўласцівасці:

upd_delay: у мс. вызначае інтэрвал, у якім можна счытваць прыладу. Некаторыя прылады перагружаюцца пры занадта частым апытанні.
вытворца: радок, назва вытворцы. Гэта паказана ў пашыранай інфармацыі пліткі.
delay_accumulated: true = Назапашаныя значэнні (кВт·гадз) запытваюцца толькі кожныя 3 секунды або пры дастатковай магутнасці. false = Гэтыя значэнні заўсёды запытваюцца.
ui_addr: URL, калі адрозніваецца ад адраса прылады для выкліку вэб-інтэрфейсу.
зарэзервавана: масіў са значэннямі, якія інтэрпрэтуюцца як 0 (карысна, калі прылада падтрымлівае пэўныя значэнні ў залежнасці ад мадэлі).

Калі вы прапусціце ўласцівасці, пералічаныя вышэй, cFos Charging Manager прыме значэнні па змаўчанні, якія ў большасці выпадкаў працуюць нармальна.

Наступны крок у вызначэнні JSON - гэта вызначэнне зменных, якія лічыльнік выкарыстоўвае для счытвання або разліку значэнняў току, напружання і г.д. Менеджэр зарадкі распазнае наступныя зменныя:
type_designation, version, firmware_version, serial: яны ўтвараюць пазначэнне мадэлі, як паказана ў пашыранай інфармацыі пліткі. Яны запытваюцца адзін раз пры наладжванні або абнуленні лічыльніка.
voltage_l1..voltage_l3, current_l1..current_l3, power_w, power_var, power_va, power_w_l1..power_w_l3, power_w_l1_minus..power_w_l3_minus, power_w_import, power_w_export: cFos Charging Manager спрабуе з гэтых значэнняў для voltage_l1..l3 са знакам current_l1.. l3, вылічыць power_w і power_va. Вам не трэба ўказваць усе зменныя. cFos Charging Manager спрабуе вылічыць значэнні з існуючых зменных.
import_wh, export_wh, import_wh_l1..import_wh_l3, export_wh_l1..export_wh_l3: Менеджэр спагнання платы выкарыстоўвае гэтыя зменныя для разліку import_wh і export_wh. Вам не трэба ўказваць усе зменныя. cFos Charging Manager спрабуе вылічыць значэнні з існуючых зменных.

Акрамя таго, вы можаце вызначыць іншыя зменныя з рознымі імёнамі, якія чытаюцца пры кожным абнаўленні або разлічваюцца па формулах.

Вызначэнне зменнай:

Аб'ект названы ў гонар зменнай, пералічанай вышэй, і мае наступныя ўласцівасці:
fixed: радок з фіксаваным значэннем. Карысна, калі, напрыклад, нельга вызначыць значэнне, напрыклад, для абазначэння_тыпу або напружання.
expr: радок, зменная не счытваецца, а вылічваецца як формула.
type: Калі не фіксаваны або expr, тып зменнай: int16, int32, float, int64, string Гэта важна для Modbus для чытання рэгістраў у правільным фармаце. З JSON/HTTP вы можаце ў асноўным выкарыстоўваць float.
дазвол: float, прачытанае значэнне памнажаецца на «раздзяленне». Значэнні напружання павінны быць у вольтах, сілы току ў міліамперах, магутнасці ў ватах, энергіі ў ват-гадзінах (Вт·ч). З адмоўным "раздзяленнем" вы можаце інвертаваць значэнне, калі яно мае супрацьлеглы знак.
адрас: лік (Modbus) або радок (HTTP/JSON), нумар рэестра Modbus або URL HTTP значэння, якое трэба прачытаць.
query: Радок, з HTTP JSON спецыфікацыя на мове запытаў Charging Manager, з дапамогай якой ён знаходзіць значэнне для чытання ў адказе JSON.
парадак: Радок, для Modbus парадак байтаў, альбо "hl", альбо "lh", у якім прысутнічае значэнне. length: лік, з Modbus даўжыня радка ў рэгістрах. Для зменных «version» і «firmware_version» «length» выкарыстоўваецца для стварэння радкоў з кропкамі з лікавых версій. Для "даўжыні" дазволены значэнні 2 або 4, якія ў выніку дадуць фарматы версіі ab і abcd. З "length" 2 і тыпам "int16" менеджэр зарадкі падзяляе малодшы і старэйшы байт кропкай, з int32 малодшым і высокім словам, з "int64" нізкім і высокім двум словам. З «lenth» 4 і «int32» дыспетчар спагнання платы разбівае значэнне на 4 байты, падзеленыя кропкамі. З 'int64' 4 словы адпаведна.

Вызначэнне ўваходных дадзеных:

Менеджэр зарадкі можа запытваць да 32 значэнняў уводу з розных рэестраў або элементаў JSON на прыладу. Уласцівасць "Inputs" - гэта масіў JSON. Вы павінны вызначыць наступныя ўласцівасці для кожнага ўваходу:
адрас: адрас (рэестр Modbus або URL).
count: колькасць уваходных бітаў, прачытаных з гэтым запытам.
query: для HTTP/JSON, мова запытаў, каб знайсці значэнне ў адказе.

Пры кожным абнаўленні cFos Charging Manager счытвае ўсе ўводы, вызначаныя такім чынам, і змяшчае біты ўнутры ў масіў, які потым можна запытваць у формулах Input1..InputN.

Вызначэнне выхадаў:

Дыспетчар зарадкі можа пераключаць да 32 выхадаў на прыладу. Усе выхады пераключаюцца ў канцы кожнага цыкла абнаўлення, калі статус адпаведнага выхаду змяніўся.
Вы павінны вызначыць наступныя ўласцівасці для кожнага ўваходу:
адрас: HTTP URL з дадатковым метадам HTTP, напрыклад,//http://www.example.com?output1=${var1}. Каб усталяваць рэгістры Modbus, вы можаце выкарыстоўваць HTTP API cFos Charging Manager. Менеджэр аплаты распазнае адпаведны доступ да лакальнага хоста і перанакіроўвае запыт да ўнутранага апрацоўшчыка, так што вам не патрэбна аўтарызацыя, як у выпадку доступу да знешняга HTTP API.
цела: Дадатковае цела HTTP для POST або PUT.
У URL-адрасе і целе вы можаце выкарыстоўваць формулы ${expr}, якія спасылаюцца на глабальныя зменныя Charging Manager або з адпаведнага лічыльніка. Формула 'expr' вылічваецца, калі вывад зададзены і заменены ў тэксце URL-адраса або цела. У прыведзеным вышэй прыкладзе, калі http://www.example.com?output1=1 задае вывад, а//ачышчае яго, вы можаце вызначыць зменную "//" і задаць яе у 1 па жаданні або ўсталюйце 0. Такім чынам вы таксама можаце запісваць лікавыя значэнні для кіравання прадукцыйнасцю памяці ў рэгістрах Modbus, якія вы раней захоўвалі ў зменнай з дапамогай формулы.
Калі замест перадачы лікавага значэння ў URL-адрасе вам трэба замяніць тэкст іншым у залежнасці ад формулы, напрыклад, з гняздамі Shelly WLAN, вы можаце запісаць гэта так: ${if expr`text1`text2}. "Апостраф" - гэта зваротная галачка (код ASCII 96). Калі 'expr' != 0, выкарыстоўваецца тэкст1, інакш тэкст2. URL для сокета Shelly WLAN выглядае так, напрыклад: http://<ip-addr>/relay/0?turn=${if expr`on`off}, г. зн., калі expr != 0, тады Charging Manager выклікае http ://<ip-addr>/relay/0?turn=on on, інакш http://<ip-addr>/relay/0?turn=off.

Калі вы ўводзіце адносны шлях у якасці URL-адраса, Charging Manager выкарыстоўвае адрас, настроены для адпаведнай прылады. Калі вы ўводзіце ў якасці дамена "localhost", Charging Manager прымае адрас прылады, на якой ён працуе. Калі ён выяўляе доступ да ўласнага API, ён выкарыстоўвае ўнутраны апрацоўшчык замест выканання поўнага доступу HTTP, так што вам не трэба захоўваць імя карыстальніка і пароль у вызначэнні лічыльніка. URL-адрас, які пачынаецца з * , прымушае дыспетчар плацяжоў заўсёды выконваць поўны доступ HTTP.

Вызначэнне мовы запытаў:

У цяперашні час імёны членаў і аператары «.» могуць выкарыстоўвацца ў пошукавых выразах «запыту». і "[]" выкарыстоўваюцца, прыклады:

тэстЭлемент з імем "тэст"
name1.name2Элемент з імем "name2" у даччыным аб'екце "name1"
імя [idx]Элемент "idx" элемента аб'екта "імя". "idx" можа быць лікам, напрыклад, для масіваў або радка
імя ["u2"]Элемент "u2" элемента аб'екта "name" адпавядае "name.u2"
імя [{"el1": "v1", "el2": 3}].значэннеВыберыце элемент масіва, які задавальняе умовам абазначэння аб'екта, і ацаніце элемент з імем «значэнне». Вось, напрыклад, элемент выбіраецца ў масіве 'name', які мае элементы аб'екта 'el1' са значэннем 'v1' і 'el2' са значэннем 3, а затым з гэтага аб'екта вяртаецца значэнне элемента 'value' .

Зменныя Global Charging Manager:

Вы можаце ствараць зменныя ў канфігурацыі Charging Manager. У якасці значэння можна выкарыстоўваць фіксаванае значэнне або формулу. У канцы кожнага цыкла абнаўлення дыспетчар спагнанняў пры неабходнасці пераразлічвае значэнне гэтай зменнай. Затым вы можаце выкарыстоўваць іх у (пэўных) параметрах дыспетчара зарадкі, правілах зарадкі або для кіравання выхадамі. Вы таксама можаце напісаць E x.member або M x.member у якасці зменнай. Тут E x і M x - гэта ідэнтыфікатар прылады насценнай скрынкі або лічыльніка, наладжанага ў Charging Manager. член - гэта «вызначаная карыстальнікам» зменная, якая захоўваецца ў адпаведнай прыладзе. Некаторыя зменныя могуць мець асаблівае значэнне: у KEBA "out1" з'яўляецца пераключальным выхадам, у лічыльніках ABB B23 "out1" і "out2" з'яўляюцца пераключальнымі выхадамі (для мадэляў, якія падтрымліваюць гэта). 1 пераключае выхад, 0 зноў выключае.

Выхады Global Charging Manager:

У канфігурацыі Charging Manager вы можаце наладзіць глабальныя выхады, як апісана вышэй у вызначэнні лічыльніка ў раздзеле "Выхад". Яны ўсталёўваюцца ў канцы кожнага цыкла абнаўлення, калі іх статус змяніўся. Калі вы хочаце кіраваць камутацыйнымі выхадамі ў прыладах, якія вызначаюцца карыстальнікам, рэкамендуецца прыведзенае вышэй пагадненне (гл. Зменныя дыспетчара зарадкі): вы ўсталёўваеце зменныя з назвамі "out1", "out2" і г.д. у лічыльніку, які вызначаецца карыстальнікам, і наладжваеце выхады ў вызначаным карыстальнікам лічыльніку, якія знаходзяцца ў Пераключыць выхад у залежнасці ад значэння гэтай зменнай.

Global Modbus API дыспетчара зарадкі:

Modbus API дыспетчара зарадкі выкарыстоўваецца для кіравання прыладамі Modbus, якія маюць любы адрас Modbus RTU або TCP (які можа быць даступны дыспетчару зарадкі). Увядзіце COMx,bd,8,p,s у якасці адраса для Modbus RTU, як у канфігурацыі асобных прылад, дзе x - нумар COM-порта, bd - хуткасць перадачы, p - цотнасць ('N', ' E' або 'O'), а s - колькасць стопавых бітаў (1 або 2). У Modbus TCP адрас - гэта IP-адрас прылады ў сетцы Charging Manager, уключаючы нумар порта.
URL (для HTTP GET) Modbus API:
/cnf?cmd=modbus_get або /cnf?cmd=modbus_set
cFos Charging Manager падтрымлівае наступныя дадатковыя параметры запыту:
addr: Вышэйзгаданы адрас прылады Modbus RTU або TCP.
func: нумар функцыі Modbus, напрыклад, 3 або 4 для чытання, 6 або 16 для запісу.
id: Ідэнтыфікатар прылады Modbus.
reg: нумар рэгістра Modbus. Значэнне можа быць указана ў дзесятковай або шаснаццатковай форме (з прэфіксам 0x).
val: лік, значэнне для запісу ў рэестр. пропуск пры чытанні.
тып: 'w' 16 біт (па змаўчанні), d = 32 біты, f = плавае, q = 64 біты, s = радок.
cnt: лік, максімальная даўжыня радка ў рэгістрах, прапусціць для іншых тыпаў або ўсталяваць у 1.
парадак: Радок, які змяшчае парадак байтаў, альбо "hl", альбо "lh".

Заўвага: калі ваш «Лічыльнік» у асноўным выкарыстоўваецца ў мэтах кантролю, вы можаце праверыць опцыю «Схаваць прыладу» ў наладах гэтай пліткі, каб гэта прылада не адлюстроўвалася на пачатковай старонцы.

Заўвага: некаторыя лічыльнікі, якія чытаюць праз HTTP, патрабуюць імя карыстальніка/пароля ў якасці аўтарызацыі. Вы можаце пазначыць гэта ў адрасе для HTTP-доступу, напрыклад, праз http://username:password@192.168.2.111. Калі ваша імя карыстальніка або пароль утрымліваюць "@", вы павінны замяніць яго на "%40".