Segnetics

Вернуться   Segnetics > Форум Segnetics > Вопросы о программировании

Вопросы о программировании Вопросы, касающиеся программирования на FBD

Ответ
 
Опции темы Поиск в этой теме
Старый 20.11.2018, 12:37   #1
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 157
Благодарил(а): 240 раз(а)
Поблагодарили: 165 раз(а) в 157 сообщениях
По умолчанию Расходомер

что-то голову уже сломал..
есть импульсный вход с датчика расхода на пч,
у пч есть 16-битный инкрементирующий счетчик.
по 485му забираю его значение на контроллер и теперь надо получить минутный, часовой, суточный и суммарный расходы.
понятно что надо брать разность по отсчётам, понятно что надо суммировать часовые, непонятно что делать при переходе счетчика через нуль.
при отладке от программного счетчика у меня вместо ровной линии получается ступенька.
https://photos.app.goo.gl/Kb3fhdWrad7gJeUF9

м.б. кто-то поделится боле-мене готовым макросом?
Вложения
Тип файла: zip Расходомер имп. v2.zip (25.3 Кбайт, 37 просмотров)


__________________
C уважением, LordN

Последний раз редактировалось LordN, 20.11.2018 в 12:50 Причина: *
LordN вне форума   Ответить с цитированием
Старый 20.11.2018, 14:47   #2
ATS
Senior Member
 
Регистрация: Aug 2013
Сообщения: 3 784
Благодарил(а): 12 раз(а)
Поблагодарили: 194 раз(а) в 190 сообщениях
По умолчанию Ответ: Расходомер

Цитата:
Сообщение от LordN Посмотреть сообщение
понятно что надо брать разность по отсчётам, понятно что надо суммировать часовые, непонятно что делать при переходе счетчика через нуль.
Ну запихнуть все отсчеты надо в лонг чтобы со знаками не плутать. При переходе через 0 (новый отсчет меньше) вычесть старый из 65536 и добавить новый. Все суммировать в новом итоговом лонге и анализировать уже его изменения для контроля расхода, так как полученные по 485-му цифры будут не привязаны ко времени контроллера.
ATS вне форума   Ответить с цитированием
Старый 20.11.2018, 20:05   #3
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 157
Благодарил(а): 240 раз(а)
Поблагодарили: 165 раз(а) в 157 сообщениях
По умолчанию Ответ: Расходомер

Цитата:
Сообщение от ATS Посмотреть сообщение
Ну запихнуть все отсчеты надо в лонг чтобы со знаками не плутать. При переходе через 0 (новый отсчет меньше) вычесть старый из 65536 и добавить новый. Все суммировать в новом итоговом лонге и анализировать уже его изменения для контроля расхода, так как полученные по 485-му цифры будут не привязаны ко времени контроллера.
почему 65536 а не 65535?
вопщем все так примерно и делаю, но...
спасибо, попробую этот рецепт.


__________________
C уважением, LordN
LordN вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать свои сообщения

BB code is Вкл.
[IMG] код Вкл.
HTML код Выкл.



Часовой пояс GMT +4, время: 16:05.


Версия vBulletin: 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Segnetics 2005 - 2024