Ну если коротко, то я это вижу примерно так:
Создаете структуру из массивов времени и расхода, например:
Код:
TYPE arhiv :
STRUCT
data :ARRAY[0..1000] OF STRING;
rashod :ARRAY[0..1000] OF DWORD;
END_STRUCT
END_TYPE
И затем её заполняете данными, например:
Код:
PROGRAM PLC_PRG
VAR
hh :INT;
dt2str :STRING;
rashod_tek :DWORD;
rashod_old :DWORD;
rashod_razn :DWORD;
dd :INT;
mh :INT;
yy :INT;
rtr_arch :R_TRIG;
arh :arhiv;
i :INT;
END_VAR
//преобразуем текущую дату в строку
dt2str:=INT_TO_STRING (yy);
dt2str:=CONCAT(STR1:= dt2str, STR2:= '/');
dt2str:=CONCAT(STR1:= dt2str, STR2:= INT_TO_STRING (mh));
dt2str:=CONCAT(STR1:= dt2str, STR2:= '/');
dt2str:=CONCAT(STR1:= dt2str, STR2:= INT_TO_STRING (dd));
IF hh=8 THEN
rtr_arch(CLK:= TRUE, Q=> );
IF rtr_arch.Q THEN
rashod_razn:=rashod_tek-rashod_old;
arh.data[i]:=dt2str;
arh.rashod[i]:=rashod_razn;
i:=i+1;
rashod_old:=rashod_tek;
IF i=1000 THEN i:=0; END_IF
END_IF
END_IF