Příklad aplikace obsahuje velmi jednoduché zapojení energetických přístrojů. Aplikace měří jeden činný a jeden jalový odběr. Přístroj supply_meter počítá z těchto vstupů činný a jalový výkon, účiník a odběry ve čtvrthodině a v hodině. Dva přístroje maximum_graph zobrazují průběh čtvrthodinového a hodinového maxima. Přístroj hour_table poskytuje hodnoty čtvrthodinových a hodinových odběrů a přístroj diagram umožňuje zadávání odběrového diagramu a poskytuje hodnoty čtvrthodinového a technického maxima. Synchronizaci zajišťuje přístroj energetic_time, který poskytuje energetický čas a zajišťuje obsluhu synchronizačních impulsů. Pro maximální zjednodušení není do aplikace zařazen přístroj pro odpojovaní sekcí sections. Simulaci průběhu hodnot činného a jalového odběru a synchronizačního signálu zajištuje přístroj program.
const
end_const;
var
Count = real, 0; (* počítadlo pro simulaci sync. impulsu *)
ExtSync15m = boolean, true; (* vnější synchronizační impuls *)
Sync15m = boolean, false; (* čtvrthodinový synchronizační impuls *)
Sync1h = boolean, false; (* hodinový synchronizační impuls *)
Time15m = real, 0; (* čas v probíhající čtvrthodině *)
Time1h = real, 0; (* čas v probíhající hodině *)
Hour = real, 0; (* energetický čas - hodina *)
Minute = real, 0; (* energetický čas - minuta *)
Second = real, 0; (* energetický čas - sekunda *)
Year = real, 0; (* energetické datum - rok *)
Month = real, 0; (* energetické datum - měsíc *)
Day = real, 0; (* energetické datum - den *)
DayInWeek = real, 0; (* energetické datum - den v týdnu *)
ExtkWh = real, 0; (* simulovaný činný odběr *)
ExtkVAh = real, 0; (* simulovaný jalový odběr *)
kWh = real, 0; (* činný odběr *)
kW = real, 0; (* činný výkon *)
kVAh = real, 0; (* jalový odběr *)
kVA = real, 0; (* jalový výkon *)
kWh15m = real, 0; (* činný odběr ve čtvrthodině *)
kWh1h = real, 0; (* činný odběr v hodině *)
kVAh15m = real, 0; (* jalový odběr ve čtvrthodině *)
kVAh1h = real, 0; (* jalový odběr v hodině *)
Maximum = real, 0; (* čtvrthodinové maximum v kW *)
TMaximum = real, 0; (* technické maximum v kW *)
end_var;
driver
end_driver;
channel
end_channel;
timer
sequencer Sequencer;
timer = 1;
end_sequencer;
end_timer;
instrument
window maximum_graph MaximunGraph1Hour;
timer = Sequencer, 6;
owner = background;
position = 5, 43, 240, 257;
win_title = 'Maximum Graph 1 hour';
input_section
kWh = kWh1h;
kW = kW;
maximum_kW = Maximum;
t_maximum_kW = TMaximum;
sync = Sync1h;
time = Time1h;
end_input_section;
duration = 3600;
look = h_ruler, v_ruler, display;
colors
t_maximum_graph = white;
end_colors;
end_maximum_graph;
window maximum_graph MaximumGraph;
timer = Sequencer, 5;
owner = background;
position = 255, 43, 240, 257;
win_title = 'Maximum Graph';
input_section
kWh = kWh15m;
kW = kW;
maximum_kW = Maximum;
t_maximum_kW = TMaximum;
sync = Sync15m;
time = Time15m;
end_input_section;
look = h_ruler, v_ruler, display;
colors
t_maximum_graph = white;
end_colors;
end_maximum_graph;
window hour_table HourTable;
timer = Sequencer, 4;
owner = background;
position = 359, 326, 378, 161;
win_disable = zoom, maximize;
win_title = 'Hour Table';
input_section
kWh = kWh15m;
kVArh = kVAh15m;
sync_15m = Sync15m;
hour = Hour;
minute = Minute;
second = Second;
end_input_section;
end_hour_table;
window diagram Diagram;
timer = Sequencer, 3;
owner = background;
position = 504, 21, 233, 280;
win_disable = zoom, maximize;
win_title = 'Diagram';
input_section
sync = Sync15m;
hour = Hour;
minute = Minute;
day = Day;
month = Month;
day_in_week = DayInWeek;
end_input_section;
output_section
maximum_kW = Maximum;
t_maximum_kW = TMaximum;
end_output_section;
look = power, rate;
end_diagram;
window supply_meter SupplyMeter;
timer = Sequencer, 2;
owner = background;
position = 4, 326, 346, 105;
win_disable = zoom, maximize;
win_title = 'Supply Meter';
input_section
kWh_input = ExtkWh;
kWh_p_Impuls = 1;
maximum = 0;
kVArh_input = ExtkVAh;
kVArh_p_impuls = 1;
wattless_maximum = 0;
sync_15m = Sync15m;
sync_1h = Sync1h;
end_input_section;
output_section
kWh_output = kWh;
kVArh_output = kVAh;
kW_output = kW;
kVA_output = kVA;
kWh_15m = kWh15m;
kVAh_15m = kVAh15m;
kWh_1h = kWh1h;
kVAh_1h = kVAh1h;
end_output_section;
end_supply_meter;
window energetic_time EnergeticTime;
timer = Sequencer, 1;
owner = background;
position = 5, 456, 188, 78;
win_disable = zoom, maximize;
win_title = 'Energetic Time';
ext_sync_15m = ExtSync15m;
time_out = 60;
output_section
sync_15m = Sync15m;
sync_1h = Sync1h;
hour = Hour;
minute = Minute;
second = Second;
year = Year;
month = Month;
day = Day;
day_in_week = DayInWeek;
time_15m = Time15m;
time_1h = Time1h;
end_output_section;
sync_list = SupplyMeter, Diagram, HourTable, MaximumGraph, MaximunGraph1Hour;
end_energetic_time;
program Program;
timer = Sequencer;
begin
if Count = 1 then
ExtSync15m = false;
end;
Count = Count + 1;
if Count = 901 then
ExtSync15m = true;
Count = 0;
end;
ExtkWh = ExtkWh + 0.3;
ExtkVAh = kVAh + 0.03;
end;
end_program;
end_instrument;