damianlisu - dzięki wielkie !!!
Jeśli by kogoś interesowało, to poniżej jest skrypcik pokazujący ile kocioł pracował z mocą minimalną (czyli na podtrzymaniu) a ile faktycznie grzał. Przyjąłem minimalne uproszczenie, że moc sprawdzam w momencie zmiany cyklu podajnika, zamiast sprawdzania jak ta moc się rozkładała w czasie danego cyklu.
Kod:
var
Petla, i, Podaw: Integer;
Praca, Podtrz, Cykli: double;
begin
Podaw:=4; //czas podawania ekogroszku
Cykli:=0;
for Petla:=0 to High(TablicaProbek) do //Pętla od 0 do maksymalnego rozmiaru tablicy próbek
begin
if (Petla=0) then i:=TablicaProbek[Petla].CyklePodajnika;
if (TablicaProbek[Petla].CyklePodajnika<>i) then
begin
Cykli:=Cykli+(TablicaProbek[Petla].CyklePodajnika-i);
if (TablicaProbek[Petla].MocKotla<>TablicaProbek[Petla].MinimalnaMocKotla) then Praca:=Praca+(TablicaProbek[Petla].CyklePodajnika-i)
else Podtrz:=Podtrz+(TablicaProbek[Petla].CyklePodajnika-i);
end;
i:=TablicaProbek[Petla].CyklePodajnika;
end;
writeln('Cykli: ' + FormatFloat('0',Cykli) + ' Długość cyklu: ' + FormatFloat('0',Podaw) + 's');
writeln('Łączny czas pracy podajnika: ' + FormatFloat('0', (Cykli*Podaw)) + 's');
writeln('Grzanie: ' + FormatFloat('0',Praca*Podaw) + 's, Procent: ' + FormatFloat('0.00',Praca/Cykli*100));
writeln('Podtrzymanie: ' + FormatFloat('0',Podtrz*Podaw) + 's, Procent: ' + FormatFloat('0.00',Podtrz/Cykli*100));
end.
do zmiennej "Podaw" trzeba wprowadzić ustawiony na kotle czas podawania.
U mnie w wyniku skryptu wyszło np.:
Kod:
Skrypt poprawnie skompilowany
Cykli: 169 Długość cyklu: 4s
Łączny czas pracy podajnika: 676s
Grzanie: 308s, Procent: 45.56
Podtrzymanie: 368s, Procent: 54.44
Czyli ponad połowa zużytego groszku idzie na samo podtrzymanie - w mojej ocenie to chyba trochę za dużo. Jak to zmienić? Mam moc minimalną na trzy procent, ale patrząc na moje poprzednie problemy z zawleczkami trochę się boję ją zmniejszać...
PS. Kurde blaszka - w którym wątku mamy pisać???? Co z tym połączeniem??? Uda się???