Dobrý den,
prosím o pomoc, snažím se v poli teplot definovaném jako GLOBAL RETAIN najít minimum a maximum pomocí funkce z OSCAT knihovny.
VAR_GLOBAL RETAIN
GraphData15min : ARRAY [1..48] OF REAL;
END_VAR
...
Tmax15m := ARRAY_MAX(ADR(GraphData15min), SIZEOF(GraphData15min));
Tmin15m := ARRAY_MIN(ADR(GraphData15min), SIZEOF(GraphData15min));
...Zkoušel jsem i adresu prvniho prvku v poli ARRAY_MAX(ADR(GraphData15min[1]), SIZEOF(GraphData15min));
ale nic nefunguje, obě funkce pořád vrací hodnotu prvního provku v poli.
Kde dělám chybu?
Díky.
Odpovědi 2
M.B.
20. 1. 2026 12:50
Dobrý den,
v OSCAT knihovně je ve zmíněných funkcích chyba při výpočtu koncového indexu. Ve funkcích má být
stop := (size -SIZEOF(REAL)) / SIZEOF(REAL);
místo
stop := (size -SIZEOF(pt)) / SIZEOF(pt);
Opravenou knihovnu přikládám.
K.K.
20. 1. 2026 19:28
Funguje, díky za opravu!
Tento dotaz je vyřešený.
Čeština