|
Вопросы о программировании Вопросы, касающиеся программирования на FBD |
|
Опции темы | Поиск в этой теме |
30.06.2022, 12:02 | #1 |
Senior Member
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 180
Благодарил(а): 242 раз(а)
Поблагодарили:
166 раз(а) в 158 сообщениях
|
Исторические блоки, обработка результатов
В прицепе скриншот и табличка.
Табличка — отчет с проекта. В скриншоте выделен столбец, который меня интересует, рядом виден тренд, построенный по этому столбцу. Суть — это данные счетчика импульсов расходомера. Счетчик не энергонезависимый, т.е. при сбросе питания накопленное значение сбрасывается. Но в историю значения этого счетчика пишутся постоянно. Вопрос такой: как средствами смлоджика обработать результат, чтобы получить реальную разность последнего значения и первого в этом столбце? В самой табличке я поступаю просто — ищу все локальные максимумы на тренде, их все суммирую, а затем вычитаю самое первое значение. Но как перевести это в лоджик — я пока не очень себе понимаю. Буду признателен за любые подсказки. |
30.06.2022, 12:34 | #2 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 191
Благодарил(а): 15 раз(а)
Поблагодарили:
666 раз(а) в 608 сообщениях
|
Ответ: Исторические блоки, обработка результатов.
Цитата:
Я бы строил алгоритм от обратного. При включении питания искал в хистори максимум (или лучше даже самый поздний достоверный результат - это быстрее), загружал его в счётчик и продолжал считать от него, записывая в хистори уже скорректированные данные. Т.е. график будет хоть и с разрывами на отключение питания, но монотонно возрастающий. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
30.06.2022, 12:39 | #3 |
Senior Member
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 180
Благодарил(а): 242 раз(а)
Поблагодарили:
166 раз(а) в 158 сообщениях
|
Ответ: Исторические блоки, обработка результатов.
ну допустим, а как автоматом получить разность первого и последнего в столбце при заданном диапазоне времени?
|
30.06.2022, 12:59 | #4 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 191
Благодарил(а): 15 раз(а)
Поблагодарили:
666 раз(а) в 608 сообщениях
|
Ответ: Исторические блоки, обработка результатов.
В монотонном графике - получить минимум и максимум.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
Благодарность от: |
30.06.2022, 16:20 | #5 | |
Senior Member
Регистрация: Aug 2013
Сообщения: 3 795
Благодарил(а): 12 раз(а)
Поблагодарили:
194 раз(а) в 190 сообщениях
|
Ответ: Исторические блоки, обработка результатов
Цитата:
20220630_130236_REPORT2.zip По идее монотонку в FBD можно получить аналогично. Отследить min/max тоже. __________________ Не являюсь сотрудником Segnetics !!! |
|
30.06.2022, 20:50 | #6 |
Senior Member
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 180
Благодарил(а): 242 раз(а)
Поблагодарили:
166 раз(а) в 158 сообщениях
|
Ответ: Исторические блоки, обработка результатов.
а как сделать сканер и как получить временные координаты минимума и максимума?
|
01.07.2022, 11:19 | #7 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 191
Благодарил(а): 15 раз(а)
Поблагодарили:
666 раз(а) в 608 сообщениях
|
Ответ: Исторические блоки, обработка результатов.
Не знаю, вы же задали вопрос о "заданном отрезке времени", т.е. координаты нужного отрезка у вас есть, хотя бы его вхождения. А дальше уже дело техники - использовать "функция минимум" и "функция максимум". Координаты вам не даст, но они в поставленной задаче и не нужны - тренд же монотонно возрастает.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
01.07.2022, 11:53 | #8 | |
Senior Member
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 180
Благодарил(а): 242 раз(а)
Поблагодарили:
166 раз(а) в 158 сообщениях
|
Ответ: Исторические блоки, обработка результатов.
Цитата:
|
|
01.07.2022, 12:41 | #9 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 191
Благодарил(а): 15 раз(а)
Поблагодарили:
666 раз(а) в 608 сообщениях
|
Ответ: Исторические блоки, обработка результатов.
А зачем оно внутри контроллера?
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |