Ну если коротко, то я это вижу примерно так:
Создаете структуру из массивов времени и расхода, например:
Код:
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