Dobrý den,
jakým způsobem lze resetovat (vynulovat) hodnoty EP+ a EP- ?
V knihovně CFoxLib jsou pouze funkce pro vyčítání (což funguje spolehlivě), ale nenašel jsem žádnou funkci, kterou bych do příslušných registrů zapsal nové (nulové) hodnoty.
Radek P.
Odpovědi 3
Hodnoty EP+ a EP- jsou kumulativní za celou dobu používání elektroměru, v podstatě se nepočítá s tím, že by tyto údaje někdo nuloval. Zapsat do těchto registrů z vnějšku pomocí funkčního bloku fbReadConf_C_EM_0300M nelze. Ale asi by byla cesta, jak modul elektroměru k tomuto přemluvit. Uvnitř modulů C-EM-0300M je měřicí část od firmy KMB. Na webu se dá stáhnout kompletní popis Modbus komunikace s jejich zařízeními modbus-manual-v3-0-en Na straně 11 je v kap. 3.6 uvedeno, že zápisem do registru 0x0600 a výš lze některé hodnoty resetovat. Nejsou tam vysloveně uvedené parametry EP+ a EP-, ale odhaduju, že by to na ně mohlo platit také.
Protože funkční blok z knihovny CFoxLib se zápisem do těchto registrů nepočítá, musel byste při požadavku na reset zakázat vykonávání instance funkčního bloku fbReadConf_C_EM_0300M zapsáním hodnoty 0 do vstupu Go a pak byste musel vyslat zprávu do elektroměru přes výstupní zónu AREGO "ručně". To znamená, do AREGO.VALO[0] až AREGO.VALO[3] byste zapsal 0, do AREGO.REGO byste zapsal dekadicky 1536, tj 0x0600, což je číslo registru, který podle mně způsobí vymazání těch hodnot elektroměrů a v AREGO.CONT byste musel nastavit bity LV3 a WR do 1 (povel pro zápis jedné 32 bitové hodnoty) a zalternovat hodnotu horního bitu ACN pro vyslání zprávy. Pak byste musel pohlídat ve vstupní zóně AREGI překlopení bitu ARC ve stavovém bytu AREGI.STAT, to signalizuje přijetí nové zprávy a zkontrolovat nastavení bitu VLDR v AREGI.STAT, zda je v 1 a zároveň AREGI.REGI obsahuje hodnotu 0x0600. Tím by se ověřilo, že zápis do registru proběhl úspěšně. Poté už by se pouze nastavil zpátky vstup Go té příslušné instance fbReadConf_C_EM_0300M do 1, čímž by se funkční blok opět vrátil k průběžnému vyčítání hodnot z elektroměru podle připravených příkazů. Viz popis obsluhy modulu C-EM-0300M v příručce Periferní moduly na CIB na straně 100.
Případně to můžu do toho příkladu z příručky ke knihovně CFoxLib dopsat, zatím to píšu pouze teoreticky a prakticky jsem to neprověřoval.
Dále pak existuje možnost si zapsat stav těch registrů EP+ a EP- s časovou značkou jako počáteční hodnotu a od průběžně načítaných hodnot odečítat počáteční hodnotu a rozdíl uložit jako zálohovanou proměnnou do RETAIN paměti s tím, že vás nebude zajímat ta absolutní hodnota, ale pouze ta rozdílová vztažená k zaznamenané časové značce.
Děkuji za odpověď
Vyřešil jsem to uložením stavu a času registrů EP+ a EP- do retain paměti (děkuji za Tip).
P.S. ještě pro reset existuje možnost dočasně přenastavit hodnotu proudu kleští (po změně se registry vynulují).
Ano, to je pravda. Když změníte ty hodnoty pro přepočet proudu, tzn. konstanty pro CT ve funkčním bloku, tak to reset počítadel udělá. To mě hned nenapadlo, ale taky to je řešení.
Vaše odpověď
Pro vložení odpovědi je nezbytné být přihlášený. Pokračujte na přihlášení.