Cześć,
W moim przypadku licznik zamontowawłem odwrotnie, i mierzy ilość prądu oddawanego do sieci (fotowoltaika).
Jak to rozwiązałem, po kolei:
1. wyjście impulsowe podpiąłem do wejścia cyfrowego na sterowniku
2. napisałem program zliczający czas między impulsami, który odpala się za każdym razem gdy impuls zewrze wejście (czyli task, type -> triggered by event). Czas między impulsami zamieniam bezpośrednio na KW.
przykład:
timeout := TIME() - newtime;
newtime := TIME();
timeoutreal:=TIME_TO_REAL(timeout);
IF timeoutreal = 0 OR timeoutreal > 36000 THEN timeoutreal :=36000; END_IF;
MocPV := 3600 / timeoutreal;
MocPV:=ROUND(MocPV, 2);
3. napisałem mikroskrypt w shellu czytajacy wartość zmiennej MocPV:
#!/bin/bash
address=$(curl -s "
http://192.168.9.100/PLC/plc_visu.xml" | grep '<variable name=".MocPV">' | grep -o -P "(?<=>).*(?=<)" | sed -r "s/[,]+/|/g")
curl -s --data "|0|1|0|$address|"
http://192.168.9.100/PLC/webvisu.htm | sed 's/[\|]//g'
4. skrypt zwraca gotową do wklejenia gdziekolwiek wartość oddawanej mocy. równolegle podobnymi skryptami odczytuję inne wartości które mnie interesują.
5. Całość wrzucam do zabbix'a - nie wiem czemu wybrałem akurat jego - chciałem się nauczyć.
Wynik widać w załączniku:
Zielona krzywa to moc generowana przez panele, pobierana z inwerterów
Niebieska to moc odczytywana powyższym sposobem z odwróconego licznika
czerwona to aktualne zużycie (bazowane na różnicy między zielonym a czerwonym)
różowy to grzejnik 1kw + wentylator które stoją sobie w piwnicy. Zasada taka - jak oddawana do sieci moc osiągnie 6kW, grzejnik ma się włączyć. Jak moc spadnie do 3kW, grzejnik ma się wyłączyć.
Pozdr