Не нужно рассказывать - не бывает.Надеюсь, не нужно рассказывать, что способа вычислить "частоту" импульсов без усреднений вообще не бывает?
Просто - есть.
Не нужно рассказывать - не бывает.Надеюсь, не нужно рассказывать, что способа вычислить "частоту" импульсов без усреднений вообще не бывает?
Просто - есть.
FREQ_MEASURE
Данный функциональный блок измеряет (усредненную) частоту (в Герцах) входного сигнала типа BOOL. Вы можете задать количество периодов для усреднения. Под периодом понимается время между двумя передними фронтами сигнала.
А Уж частоту перасчитываем в объём от веса импульса.
Так как же всетаки все это можн оприменить в CFC?
См. мой проект, в нём Функц. блок "Freq_metr" на CFC для подсчёта мгновенного расхода, накопительного за предыдущий час ...
Каминский_11_2015_Телеофис_Счёт воды_Уст времени.pro
Вы его код видели?
Как думаете для чего у FREQ_MEASURE выход VALID?
И знаете, что если между двумя импульсами будет "очень большая задержка", то блок просто перейдёт в VALID=FALSE состояние и значение OUT вообще меняться перестанет.
А после этого блок опять станет копить "нужное количество импульсов" для усреднения.
Посмотрел проект -- там вообще PERIODS==1.
Т.е. использовать блок FREQ_MEASURE для того, чтобы вычислить 1/интервал_между_двумя_импульсами это сильно.
В проекте "Объём прогозируемый за час" это "текущая скорость * 3600с".
Понимаете чем это отличается от "средний расход за последний час"?
И какой же ваш простой способ?
Я смотрел на код freq_measure, и понял, что он может иметь смысл только для каких-то специфических требований. А если "просто посчитать частоту", он непригоден.
В чём вопрос?
Создаёшь program и task для вычисления средних (см мой код или приложенный проект).
Результат используешь как averages.last1m в том месте, где нужно. Хоть в cfc, хоть где.
Это не сильно. Это максимально точное получение мгновенного расхода в общем случае.
А для некоторых частных - есть еще там PERIODS. А совсем узкие (высокочастотные) задачи - решаются другим железом (например модули с 10кГц) или аппаратно (см. быстрые di)
1. До второго импульса - расход не валид. Абсолютно правильно.Как думаете для чего у FREQ_MEASURE выход VALID?
2. Нет импульсов в течении 3периодов. Это да - не гибко. Ну так и свет клином на freq_measure не сошелся. Все мы тут - программисты. Или Вы думали что форум проктологов ?
Боюсь сказать - Ваш способ не то чтобы не пригоден, вообще непонятно что касаемо мгн.расхода. В отличие от адекватных, в определенных пределах, показаний freq_measure.А если "просто посчитать частоту", он непригоден
Почему не понятно ? Так определитесь с размерностью Вашего результата.
Последний раз редактировалось Валенок; 11.01.2016 в 00:00.
Господа споры спорами а до дела так и не дошло ни у кого. Дайте же уже кто нибудь кусок кода cfc для счетчикаи не замудреного для чайника!! либо чтоза библиотека где этот блок лежит