Просмотр полной версии : Сбор данных с архивом на спк107
Добрый день знатокам и программистам!
Задался вопросом ведения архива на спк-107:
программа на получение данных написана, теперь не могу понять как эти данные сложить в архив по суткам.
может кто уже делал такую задачу? если есть простейший пример то буду очень признателен!!
За ранее благодарен!!
Не понятно, что конкретно вы хотите
Не понятно, что конкретно вы хотите
вести архив данных получаемых с приборов.
например: есть емкости, с них происходит слив продукта, в спк приходят и обрабатываются данные с счетчика, литры записываю в переменную, теперь мне необходимо сделать архив посуточный сколько было слито за сутки.
допустим вид следующий: |дата|литров слито|
сутки отсчитываются с 08:00 по 08:00
В принципе не сложно, время чуть появится - помогу, если раньше никто не подскажет.
В принципе не сложно, время чуть появится - помогу, если раньше никто не подскажет.
буду признателен!
Ну если коротко, то я это вижу примерно так:
Создаете структуру из массивов времени и расхода, например:
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
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot