счётчик времени работы насоса за последние 24 часа

Ответить
holodaleksey
Лейтенант
Сообщения: 566
Зарегистрирован: 10.01.2016{, 13:47}
Репутация: 14

счётчик времени работы насоса за последние 24 часа

#1

Сообщение holodaleksey » 05.10.2021{, 23:50}

Люди-человеки. Подскажите, пожалуйста, или пните в нужную сторону.
Сразу скажу, проекта ещё нет, потому не знаю с какой стороны его начинать.
точнее знаю, но с неполным желаемым функционалом.
Суть: есть насос, включается по датчику давления. Хотелось бы видеть сколько он времени отработал за последние сутки и сколько раз включался.
Засада для меня в том, как определить, каким образом отсчитать именно эти ПОСЛЕДНИЕ 24 часа, при обращении к просмотру. И эти 24 часа назад он мог стоять, а мог и работать.
На что моей дурнявой фантазии хватает - либо сделать сброс, например, в 00-01, что совсем неиформативно и неудобно,
Либо сделать 24 счётчика, по одному на каждый час, но это же уже даже не костыли, а оглобли.
Вот. Железяку хотелось бы есп8266, входов хватает, да и для визуализации Гугл графики удобны, что на есп для меня реализовать проще.

Мож кто что подскажет?
Подпись удалена мною по требованию администрации форума, что является нарушение демократии )

Аватара пользователя
Serquick
Сержант
Сообщения: 254
Зарегистрирован: 25.11.2019{, 01:07}
Репутация: 46
Откуда: Украина
Имя: Сергей

счётчик времени работы насоса за последние 24 часа

#2

Сообщение Serquick » 06.10.2021{, 00:57}

Записывайте время работы в Unix time.
32 Кб должно хватить для любых задач!!!

Ingwar
Полковник
Сообщения: 1929
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 223
Откуда: Ленобласть
Имя: Игорь

счётчик времени работы насоса за последние 24 часа

#3

Сообщение Ingwar » 06.10.2021{, 02:17}

holodaleksey писал(а):
05.10.2021{, 23:50}
каким образом отсчитать именно эти ПОСЛЕДНИЕ 24 часа
Может раз в час писать в массивы (на 24 ячейки) в стек кол-во срабатываний и время работы за этот час...?
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 65
Имя: Эдуард

счётчик времени работы насоса за последние 24 часа

#4

Сообщение edyapd » 06.10.2021{, 10:25}

Если вы хотите смотреть статистику за ПОСЛЕДНИЕ 24 часа, то обнуление счётчика в 00:01 не вариант. Так как в этом случаи вы будите видеть только статистику за текущие сутки. А это может быть как одна минута, так и 23 часа.
По сути вам надо знать время включения и отключения насоса. У ESP есть файловая система, куда вы можете сохранять это время в UNIX формате (как вам уже подсказали выше).
А вот когда вы захотите посмотреть статистику, то вам надо будет прочитать этот файл или его часть. Найти метку времени которая отстоит на 24 часа от текущего(или , а так же проверить, был насос в этот момент включен или выключен. После этого посчитать сколько у вас меток времени помечены как включение и просуммировать время работы.
Как этот алгоритм сделать в других языках я примерно представляю, в FLProg пока не очень.

holodaleksey
Лейтенант
Сообщения: 566
Зарегистрирован: 10.01.2016{, 13:47}
Репутация: 14

счётчик времени работы насоса за последние 24 часа

#5

Сообщение holodaleksey » 06.10.2021{, 11:49}

О. UNIX для меня пока непонятен, буду пробовать с массивами...
Подпись удалена мною по требованию администрации форума, что является нарушение демократии )

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

счётчик времени работы насоса за последние 24 часа

#6

Сообщение Dryundel » 06.10.2021{, 12:26}

holodaleksey, как часто насос включается, на сколько долго работает и какая точность требуется?

chess
Рядовой
Сообщения: 26
Зарегистрирован: 11.07.2018{, 08:54}
Репутация: 1
Имя: Игорь

счётчик времени работы насоса за последние 24 часа

#7

Сообщение chess » 06.10.2021{, 12:34}

holodaleksey писал(а):
05.10.2021{, 23:50}
сторону
интернета - beebotte или narodmon, или beebotte + narodmon, вот сколько отработал насос твердотоплевного котла за последних 24:
СпойлерПоказать
Изображение
еще лучше narodmon:
СпойлерПоказать
Изображение

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

счётчик времени работы насоса за последние 24 часа

#8

Сообщение Dryundel » 06.10.2021{, 13:31}

Короче, идея такая.
Делаем три стека: Последняя минута(60сек), Последний час(60мин), Последние сутки(24часа)
Ставим их в цепочку и таймерами в каждый записываем сумму с предыдущего.

Можно было бы сделать один стек на 84600 секунд (байт), но памяти МК не хватит.
Как то так...Показать
Время работы насоса.jpg
Время работы насоса.flp
(153.78 КБ) 28 скачиваний
Отправлено спустя 6 минут 41 секунду:
Наверное правильней сделать:
- За последнюю минуту
- За последние 59 минут
- За последние 23 часа
А потом сплюсовать.

fok52
Рядовой
Сообщения: 98
Зарегистрирован: 15.09.2016{, 09:44}
Репутация: 10

счётчик времени работы насоса за последние 24 часа

#9

Сообщение fok52 » 06.10.2021{, 16:45}

есть пример функционального блока от кодесиса с массивом может пригодится по аналогии (в нем средняя температура за последние 30 дней считается)
может кто владеет обоими языками сделает блок в flprog
СпойлерПоказать
FUNCTION_BLOCK FB1
VAR_INPUT
in1:BOOL;
ai1:REAL;
END_VAR
VAR_OUTPUT
qr1,qr2,qr3,qr4,qr5,qr6,qr7,qr8,qr9,qr10,qr11,qr12,qr13,qr14,qr15,qr16,qr17,qr18,qr19,qr20,qr21,qr22,qr23,qr24,qr25,qr26,qr27,qr28,qr29,qr30,qr31:REAL;
END_VAR
VAR
rt1:R_TRIG;
at1:ARRAY [0..30] OF REAL;
k:WORD;

END_VAR


rt1(CLK:=in1 , Q=> );

IF rt1.Q=TRUE THEN
FOR k:=0 TO 29 DO

at1[30-k]:=at1[30-k-1];

END_FOR
at1[0]:=ai1;
END_IF
qr1:=at1[0];
qr2:=at1[1];
qr3:=at1[2];
qr4:=at1[3];
qr5:=at1[4];
qr6:=at1[5];
qr7:=at1[6];
qr8:=at1[7];
qr9:=at1[8];
qr10:=at1[9];
qr11:=at1[10];
qr12:=at1[11];
qr13:=at1[12];
qr14:=at1[13];
qr15:=at1[14];
qr16:=at1[15];
qr17:=at1[16];
qr18:=at1[17];
qr19:=at1[18];
qr20:=at1[19];
qr21:=at1[20];
qr22:=at1[21];
qr23:=at1[22];
qr24:=at1[23];
qr25:=at1[24];
qr26:=at1[25];
qr27:=at1[26];
qr28:=at1[27];
qr29:=at1[28];
qr30:=at1[29];
qr31:=at1[30];

holodaleksey
Лейтенант
Сообщения: 566
Зарегистрирован: 10.01.2016{, 13:47}
Репутация: 14

счётчик времени работы насоса за последние 24 часа

#10

Сообщение holodaleksey » 06.10.2021{, 22:30}

Спасибо всем откликнувшимся!

Отправлено спустя 2 минуты 7 секунд:
Dryundel писал(а):
06.10.2021{, 12:26}
holodaleksey, как часто насос включается, на сколько долго работает и какая точность требуется?
Как часто и насколько долго - это и хочется понимать, такое ощущение что всегда, и останавливается по защите перегрева обмоток.
Точность: +/- полчаса за сутки - более чем отличный вариант.
ЗЫ. Сегодня посмотрел плоттером из СОМ-а по датчику давления - не, останавливается по давлению, работает примерно 50/50.

Отправлено спустя 4 минуты 24 секунды:
chess писал(а):
06.10.2021{, 12:34}
holodaleksey писал(а):
05.10.2021{, 23:50}
сторону
интернета - beebotte или narodmon, или beebotte + narodmon, вот сколько отработал насос твердотоплевного котла за последних 24:
СпойлерПоказать
Изображение
еще лучше narodmon:
СпойлерПоказать
Изображение
Спасибо, но нет, зачем мне сторонний ресурс, если все реализуемо на месте.

Отправлено спустя 7 минут 49 секунд:
fok52 писал(а):
06.10.2021{, 16:45}
есть пример функционального блока от кодесиса с массивом может пригодится по аналогии (в нем средняя температура за последние 30 дней считается)
может кто владеет обоими языками сделает блок в flprog
СпойлерПоказать
FUNCTION_BLOCK FB1
VAR_INPUT
in1:BOOL;
ai1:REAL;
END_VAR
VAR_OUTPUT
qr1,qr2,qr3,qr4,qr5,qr6,qr7,qr8,qr9,qr10,qr11,qr12,qr13,qr14,qr15,qr16,qr17,qr18,qr19,qr20,qr21,qr22,qr23,qr24,qr25,qr26,qr27,qr28,qr29,qr30,qr31:REAL;
END_VAR
VAR
rt1:R_TRIG;
at1:ARRAY [0..30] OF REAL;
k:WORD;

END_VAR


rt1(CLK:=in1 , Q=> );

IF rt1.Q=TRUE THEN
FOR k:=0 TO 29 DO

at1[30-k]:=at1[30-k-1];

END_FOR
at1[0]:=ai1;
END_IF
qr1:=at1[0];
qr2:=at1[1];
qr3:=at1[2];
qr4:=at1[3];
qr5:=at1[4];
qr6:=at1[5];
qr7:=at1[6];
qr8:=at1[7];
qr9:=at1[8];
qr10:=at1[9];
qr11:=at1[10];
qr12:=at1[11];
qr13:=at1[12];
qr14:=at1[13];
qr15:=at1[14];
qr16:=at1[15];
qr17:=at1[16];
qr18:=at1[17];
qr19:=at1[18];
qr20:=at1[19];
qr21:=at1[20];
qr22:=at1[21];
qr23:=at1[22];
qr24:=at1[23];
qr25:=at1[24];
qr26:=at1[25];
qr27:=at1[26];
qr28:=at1[27];
qr29:=at1[28];
qr30:=at1[29];
qr31:=at1[30];
давно я с кодесиськой не общался, и вспоминать что-то страшно)
Подпись удалена мною по требованию администрации форума, что является нарушение демократии )

chess
Рядовой
Сообщения: 26
Зарегистрирован: 11.07.2018{, 08:54}
Репутация: 1
Имя: Игорь

счётчик времени работы насоса за последние 24 часа

#11

Сообщение chess » 07.10.2021{, 09:42}

holodaleksey писал(а):
06.10.2021{, 22:44}
все реализуемо на месте.
давайте смоделируем такую ​​ситуацию, вы в 8:00 посмотрели на статистику данных с МК, прошли почти сутки и за каких-то непонятных обстоятельств в МК сработал WDT (7:55), в 8:00 - как всегда, вы делать очередную выборку данных с МК за последних 24 часа и что вы там - увидите ..?

Аватара пользователя
Nano
Рядовой
Сообщения: 48
Зарегистрирован: 31.05.2018{, 09:39}
Репутация: 2
Имя: Сергей

счётчик времени работы насоса за последние 24 часа

#12

Сообщение Nano » 07.10.2021{, 10:44}

holodaleksey писал(а):
06.10.2021{, 22:44}
зачем мне сторонний ресурс, если все реализуемо на месте.
вырезал из рабочего проекта, вместо блоков mqtt поставьте UART там и смотрите (или в брокере), если мало значений, добавьте переменных "время 11,12...." или через стек попробуйте, но так нагляднее. Если в уарт все сразу показания не нужны(накопленные в переменных , то в уарт отправте с переменной "время0" и смотрите не отключая комп
вторая часть схемы тогда не нужна"
СпойлерПоказать
сдвиг пер.jpg
а так то? почему включено/выключено не отправлять на брокера, где есть графики.
у меня такая морока с переменными стоит для того, что если не было у меня связи, я мог увидеть позже по запросу то , что сохранилось в МК, в охранной системе стоит, типа маленький архив сработок в МК с привязкой ко времени.

Ответить

Вернуться в «Помогите, а то я "нимагу"»