3 weeks ago I installed 3 watt-hour meters and I started to analyze what and when uses energy. Each of the meters got installed on one phase, their impulse outputs are connected to the PLC. With the use of simple graphs, visualizations and tables I managed to catch the main energy consumers.
I do not expect to have a return on this investment i.e. to save an equivalent of the meters’ price on energy. I do, however, expect to get information about how much energy my house uses and if there are differences to the indication of the official power station’s meter. I also want to have the possibility to study the behaviors of the house occupants and the most common appliances.
I do not need to ‘trust’ the commercials offering energy-saving light bulbs – their consumptions is clearly visible on the graph. I also have exact data about the cost of turning the lights in the evening on. I see how much a working Ethernet switch or a TV on standby cost.
Take a look at 2 graphs from 2 days in January:
It seems to be regular day. We wake up quite early and start boiling up watter for tea. One can see a radical increase of energy uasge. Then comes the noon, the time of 2nd breakfast and lunch. Next around 4 p.m. the dinner is prepared. One can see how the lights are turned on gradually - it gets dark quite early in January. In the evening the kitchen oven was used as well.
I wanted to get more information. The 'saw' on the green line and the violet line, which was never null were interesting. I looked at a graph from a day when we were not home:
The scale is different and it is easier to read. Here are the answeres that I have found:
A few words about programming. In your PLC:
VAR ENERGY1_DURATION :DWORD; (*przechowuje odstępy między impulsami*) ENERGY1_TIME :TIME; (*przechowuje czas ostatniego impulsu*) ENERGY1_CONSUM :REAL; (*zużycie w W*) ENERGY1_TRIGGER :R_TRIG; (*sygnalizator impulsu*) END_VAR VAR RETAIN PERSISTENT ENERGYCOUNTER1 :DWORD; (*zlicza impulsy*) END_VAR * * * * * ENERGY1_TRIGGER(CLK:=IN1); (*impuls z licznika podpięty jest pod IN1*) IF ENERGY1_TRIGGER.Q THEN ENERGYCOUNTER1:=ENERGYCOUNTER1+1; ENERGY1_DURATION:=TIME_TO_DWORD(TIME()-ENERGY1_TIME); ENERGY1_TIME:=TIME(); ENERGY1_CONSUM:=3600000/(ENERGY1_DURATION); END_IF;
In order to configure the graphs one needs to:
- in case of bar display': Configure-->Variable/Scale-->Variable: PLC_PRG.ENERGY1_CONSUM
- in case of line graph: Configure-->Trend-->Choose variable-->Add....