счётчик времени работы насоса за последние 24 часа
-
- Лейтенант
- Сообщения: 595
- Зарегистрирован: 10 янв 2016, 13:47
- Благодарил (а): 1 раз
счётчик времени работы насоса за последние 24 часа
Люди-человеки. Подскажите, пожалуйста, или пните в нужную сторону.
Сразу скажу, проекта ещё нет, потому не знаю с какой стороны его начинать.
точнее знаю, но с неполным желаемым функционалом.
Суть: есть насос, включается по датчику давления. Хотелось бы видеть сколько он времени отработал за последние сутки и сколько раз включался.
Засада для меня в том, как определить, каким образом отсчитать именно эти ПОСЛЕДНИЕ 24 часа, при обращении к просмотру. И эти 24 часа назад он мог стоять, а мог и работать.
На что моей дурнявой фантазии хватает - либо сделать сброс, например, в 00-01, что совсем неиформативно и неудобно,
Либо сделать 24 счётчика, по одному на каждый час, но это же уже даже не костыли, а оглобли.
Вот. Железяку хотелось бы есп8266, входов хватает, да и для визуализации Гугл графики удобны, что на есп для меня реализовать проще.
Мож кто что подскажет?
Сразу скажу, проекта ещё нет, потому не знаю с какой стороны его начинать.
точнее знаю, но с неполным желаемым функционалом.
Суть: есть насос, включается по датчику давления. Хотелось бы видеть сколько он времени отработал за последние сутки и сколько раз включался.
Засада для меня в том, как определить, каким образом отсчитать именно эти ПОСЛЕДНИЕ 24 часа, при обращении к просмотру. И эти 24 часа назад он мог стоять, а мог и работать.
На что моей дурнявой фантазии хватает - либо сделать сброс, например, в 00-01, что совсем неиформативно и неудобно,
Либо сделать 24 счётчика, по одному на каждый час, но это же уже даже не костыли, а оглобли.
Вот. Железяку хотелось бы есп8266, входов хватает, да и для визуализации Гугл графики удобны, что на есп для меня реализовать проще.
Мож кто что подскажет?
счётчик времени работы насоса за последние 24 часа
Записывайте время работы в Unix time.
32 Кб должно хватить для любых задач!!!
-
- Полковник
- Сообщения: 1928
- Зарегистрирован: 28 окт 2015, 22:47
- Откуда: Ленобласть
- Имя: Игорь
- Поблагодарили: 2 раза
счётчик времени работы насоса за последние 24 часа
Может раз в час писать в массивы (на 24 ячейки) в стек кол-во срабатываний и время работы за этот час...?
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
счётчик времени работы насоса за последние 24 часа
Если вы хотите смотреть статистику за ПОСЛЕДНИЕ 24 часа, то обнуление счётчика в 00:01 не вариант. Так как в этом случаи вы будите видеть только статистику за текущие сутки. А это может быть как одна минута, так и 23 часа.
По сути вам надо знать время включения и отключения насоса. У ESP есть файловая система, куда вы можете сохранять это время в UNIX формате (как вам уже подсказали выше).
А вот когда вы захотите посмотреть статистику, то вам надо будет прочитать этот файл или его часть. Найти метку времени которая отстоит на 24 часа от текущего(или , а так же проверить, был насос в этот момент включен или выключен. После этого посчитать сколько у вас меток времени помечены как включение и просуммировать время работы.
Как этот алгоритм сделать в других языках я примерно представляю, в FLProg пока не очень.
По сути вам надо знать время включения и отключения насоса. У ESP есть файловая система, куда вы можете сохранять это время в UNIX формате (как вам уже подсказали выше).
А вот когда вы захотите посмотреть статистику, то вам надо будет прочитать этот файл или его часть. Найти метку времени которая отстоит на 24 часа от текущего(или , а так же проверить, был насос в этот момент включен или выключен. После этого посчитать сколько у вас меток времени помечены как включение и просуммировать время работы.
Как этот алгоритм сделать в других языках я примерно представляю, в FLProg пока не очень.
-
- Лейтенант
- Сообщения: 595
- Зарегистрирован: 10 янв 2016, 13:47
- Благодарил (а): 1 раз
счётчик времени работы насоса за последние 24 часа
О. UNIX для меня пока непонятен, буду пробовать с массивами...
- Dryundel
- Полковник
- Сообщения: 2451
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 6 раз
- Поблагодарили: 31 раз
счётчик времени работы насоса за последние 24 часа
[ref]holodaleksey[/ref], как часто насос включается, на сколько долго работает и какая точность требуется?
счётчик времени работы насоса за последние 24 часа
интернета - beebotte или narodmon, или beebotte + narodmon, вот сколько отработал насос твердотоплевного котла за последних 24:
[spoiler]

еще лучше narodmon:
[spoiler]

- Dryundel
- Полковник
- Сообщения: 2451
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 6 раз
- Поблагодарили: 31 раз
счётчик времени работы насоса за последние 24 часа
Короче, идея такая.
Делаем три стека: Последняя минута(60сек), Последний час(60мин), Последние сутки(24часа)
Ставим их в цепочку и таймерами в каждый записываем сумму с предыдущего.
Можно было бы сделать один стек на 84600 секунд (байт), но памяти МК не хватит.
[spoiler=Как то так...] [/spoiler]
Отправлено спустя 6 минут 41 секунду:
Наверное правильней сделать:
- За последнюю минуту
- За последние 59 минут
- За последние 23 часа
А потом сплюсовать.
Делаем три стека: Последняя минута(60сек), Последний час(60мин), Последние сутки(24часа)
Ставим их в цепочку и таймерами в каждый записываем сумму с предыдущего.
Можно было бы сделать один стек на 84600 секунд (байт), но памяти МК не хватит.
[spoiler=Как то так...] [/spoiler]
Отправлено спустя 6 минут 41 секунду:
Наверное правильней сделать:
- За последнюю минуту
- За последние 59 минут
- За последние 23 часа
А потом сплюсовать.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
счётчик времени работы насоса за последние 24 часа
есть пример функционального блока от кодесиса с массивом может пригодится по аналогии (в нем средняя температура за последние 30 дней считается)
может кто владеет обоими языками сделает блок в flprog
[spoiler]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];
[/spoiler]
может кто владеет обоими языками сделает блок в flprog
[spoiler]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];
[/spoiler]
-
- Лейтенант
- Сообщения: 595
- Зарегистрирован: 10 янв 2016, 13:47
- Благодарил (а): 1 раз
счётчик времени работы насоса за последние 24 часа
Спасибо всем откликнувшимся!
Отправлено спустя 2 минуты 7 секунд:
Точность: +/- полчаса за сутки - более чем отличный вариант.
ЗЫ. Сегодня посмотрел плоттером из СОМ-а по датчику давления - не, останавливается по давлению, работает примерно 50/50.
Отправлено спустя 4 минуты 24 секунды:
Отправлено спустя 7 минут 49 секунд:
Отправлено спустя 2 минуты 7 секунд:
Как часто и насколько долго - это и хочется понимать, такое ощущение что всегда, и останавливается по защите перегрева обмоток.Dryundel писал(а): 06 окт 2021, 12:26 [ref]holodaleksey[/ref], как часто насос включается, на сколько долго работает и какая точность требуется?
Точность: +/- полчаса за сутки - более чем отличный вариант.
ЗЫ. Сегодня посмотрел плоттером из СОМ-а по датчику давления - не, останавливается по давлению, работает примерно 50/50.
Отправлено спустя 4 минуты 24 секунды:
Спасибо, но нет, зачем мне сторонний ресурс, если все реализуемо на месте.chess писал(а): 06 окт 2021, 12:34интернета - beebotte или narodmon, или beebotte + narodmon, вот сколько отработал насос твердотоплевного котла за последних 24:
[spoiler][/spoiler]
еще лучше narodmon:
[spoiler][/spoiler]
Отправлено спустя 7 минут 49 секунд:
давно я с кодесиськой не общался, и вспоминать что-то страшно)fok52 писал(а): 06 окт 2021, 16:45 есть пример функционального блока от кодесиса с массивом может пригодится по аналогии (в нем средняя температура за последние 30 дней считается)
может кто владеет обоими языками сделает блок в flprog
[spoiler]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];
[/spoiler]
счётчик времени работы насоса за последние 24 часа
давайте смоделируем такую ситуацию, вы в 8:00 посмотрели на статистику данных с МК, прошли почти сутки и за каких-то непонятных обстоятельств в МК сработал WDT (7:55), в 8:00 - как всегда, вы делать очередную выборку данных с МК за последних 24 часа и что вы там - увидите ..?
счётчик времени работы насоса за последние 24 часа
вырезал из рабочего проекта, вместо блоков mqtt поставьте UART там и смотрите (или в брокере), если мало значений, добавьте переменных "время 11,12...." или через стек попробуйте, но так нагляднее. Если в уарт все сразу показания не нужны(накопленные в переменных , то в уарт отправте с переменной "время0" и смотрите не отключая комп
вторая часть схемы тогда не нужна"[spoiler] [/spoiler]
а так то? почему включено/выключено не отправлять на брокера, где есть графики.
у меня такая морока с переменными стоит для того, что если не было у меня связи, я мог увидеть позже по запросу то , что сохранилось в МК, в охранной системе стоит, типа маленький архив сработок в МК с привязкой ко времени.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя