Это не ошибка ли 500мс?
Не лучше ли подсчитать период следования импульсов в циклах, затем умножить на длит.цикла?. А дальше просто арифметика.
Вид для печати
Все верно, между фронтами импульсов, только нужно обязательно учесть время цикла, и если оно больше чем период следования имп.генератора, то вообще фигня получиться, можно конечно городить огород , а можно просто посчитать кол-во циклов и умножить на его длительность . Мне кажется так будет проще и точнее.
Расход 18м3/час это 5 л/сек, при настройке веса импульса 5 л/импульс, будет 1 импульс в секунду
Расход 55м3/час это 15,28 л/сек, при настройке веса импульса 5 л/импульс, будет 3,056 импульса в секунду
Вы же считаете объем, а значит нужно просто считать импульсы и плевать, за какое время они прошли. А потом уже делить на время, за которое велся подсчет.
Выше я писалЦитата:
В тепловычеслителях, к которым подключены расходомеры, в том числе и питерфлоу, считаются именно импульсы. При чем тут длительность импульса??????
Не длительность импульса ,а период их следования, под длит. импульса подразумевался импульс между передними фронтами двух импульсов датчика.. Для расчета его самого расхода, текущего . А для расчета за час (минуту) конечно посчитали кол-во имп.за час (минуту) и умножили на "вес" имп.Цитата:
Не лучше ли подсчитать период следования импульсов в циклах, затем умножить на длит.цикла?. А дальше просто арифметика.
Как-то делал пример с самым обычным датчиком расхода https://youtu.be/zfS6MxKpct8, первое с чего стоит начать оценить время цикла предполагаемой программы, ну и сама форма импульсов играет роль. Так же время фильтра на входе стоит учитывать.
3 импульса в секунду, можно считать даже на очень тяжелом алгоритме, а вот 200-300 уже могут быть тонкости, все это для входа =24В.
Вы правильно написали... НО и я написал тоже самое, расход 18 м3/ч это будет 1 импульс в секунду... я только указал что если считать за 10 секунды импульсы то их будет 10.
Я понял о чём говорит Ровки.. Если с расходомера 10 импульсов придут за 10,001 секунду... а у Вас подсчёт указан для определения расхода 10 секунд, то программа увидит 9 импульсов и посчитает расход 16.2 а не близко к 18 м3/ч.. вот почему может появится погрешность
Я очень редко программирую ПР, несколько лет назад, благодаря наставлениям Кашуба и Ровки разобрался вроде неплохо, но без постоянной практики всё забывается. А когда у меня стоит задача, я стараюсь не просто сделать вот так.. а понять как это работает. Поэтому мой вопрос был про 500 мсекунд цикла, утрированный, что бы убедится что правильно понимаю, когда импульсы идут например раз в 100 мсек... такой цикл недопустимый, но вопрос какой должен для корректного подсчёта при такой частоте приходящих импульсов
как 1 час? Вы пришли к теплосчётчику посмотреть текущий расход и ждёте 1 час? или смотрите расход за предыдущий час... но тогда это не текущий а архивное значение. В теплосчётчиках ВКТ наверное както считают всё таки время между импульсами (даже скорее всего время за которое приходят несколько импульсов) потому как я заметил, чем больше расход, тем быстрее обновляются текущие показания расхода, а если расход маленький.. то приходится подольше ждать когда изменятся показания на табло
Обычно высчитываю расход по периоду следования импульсов, так достигается максимальное быстродействие, период определяется с точностью до цикла программы, с максимально возможной для ПР точностью, короче, точности нам хватает, но можно увеличить, например определять период между 10(100)-ю импульсами!
Примерно как-то так:
Вложение 54950
Вы что, полагаете, что софт тепловычислителя написан на чём-то подобном Овен Лоджику? Нет, конечно. На STM, например, без проблем делается частотомер, измеряющий до 190МГц! Для этого используются встроенные аппаратные таймеры.
У меня валяется частотомер на PIC 16F628A, измеряющий до 60МГц.
То что Вы написали, только усиливает моё рассуждение, с такой частотой одного часа явно не нужно. Хотя температуру в теплосчётчиках меряют бывает и раз в 6 минут, для экономии батареии.. поэтому мне кажется что хоть там и аппаратные решения, но всё же проще чем думаем
Завтра постараюсь найти время и сделать проект без страшных макросов ...
Этот макрос есть в менеджере компонентов, можно без него обойтись, ранее так и делал на ПР200, смотрел время цикла в меню ПР200(можно в ОЛ после заливки программы в ПР) и вводил с экрана в энергонезависимую переменную для использования в расчётах, так как период следования импульсов подсчитывался в циклах программы, всё!
цикл зависит от сложности программы , пока в ПР не загрузишь не узнаешь. Не знаю какой максимальный вообще можно сделать , у меня цикл в ПРке 34мс с довольно сложной программой. Какая у Вас будет программа не известно, но думаю гораздо быстрее.
Еще важно какой дискретный вход в Вашем ПР.
Прикрепляю два простеньких файла подсчета по циклам, без затей( типа цифрового фильтра защиты от переполнения и тд.) ,один от другого отличается только наличием защиты от деления на 0.
Посмотрите может подойдет ,если что подправьте.
Обновляться значения текущего будут каждый импульс датчика, нужно-ли так часто Вам решать ,для увода ПЧ в сон точно не нужно.
Хорошо, вот проект с этими макросами, кстати я там и расход рассчитываю, только время цикла вручную смотрю и ввожу!
При переносе макроса не забудьте и его настройки перенести(находятся в свойствах макроса), а то первоначально будут значения по умолчанию!
И у меня вес импульса составляет 1000 литров/импульс, нет специальной настройки для веса импульса счётчика, короче, можно добавить или сразу изменить коэффициенты под свой вес импульса счётчика!
Вложение 54958
Я, вроде написал, рассчитывает расход по периоду следования импульсов, чтобы определить период нужно как минимум 2 импульса, короче, сделайте себе блокировку, чтобы пока не придёт минимум 2 импульса со счётчика - расход не показывало(был равен "0"), если Вам это критично, я как бы для себя делал, а для меня это не нужно!
Вложение 54960
Вложение 54961
И "Расход_1" - это целочисленное значение расхода в умноженном на 10 виде, для того чтобы по сети смотреть с точностью до десятых долей м3/ч.
Или так:
Вложение 54965
Вложение 54966
Спасибо за помощь, теперь какое-то понимание приходит по использованию ПР в качестве расходомеров.
Подскажите такой вопрос, как выгоднее использовать ПР200, когда в программе помимо управления насосами, используешь четыре счётчика расхода.. нагляднее будет счётчик сделать как макрос, чем на одном холсте все счётчики располагать с кучей элементов, но при этом (в макросе счётчики) не тратишь ли ты на это какие-то излишние ресурсы ПР?
И хотел бы услышать мнение опытных: планирую ещё сделать помимо расхода, просмотр показаний счётчика через облако, при этом.. нужно что бы был изменяемый параметр, от которого продолжает подсчёт импульсов для показаний. Тоесть, завели вы в ПР показания счётчика, например 100... пришли через месяц.. на счётчике 245.. а в ПР из за пропуска 243... поправили на 245 и так далее..
ещё думаю часовой архив наладить, что бы в облаке видеть за последний час расход
Ну похоже Сергей уже помог ,пока я на работе был , молодец , спасибо ....
Всем спасибо за участие) но убеждаюсь что даже с простыми задачами, надо спрашивать примеры у опытных, потому как пути решения могут быть очень разными
Подкорректировать не проблема любую переменную, хоть с кнопок хоть с облака. Важнее другое- обеспечить надежную и бесперебойную работу оборудования, в тч. питания , особенно учитывая (судя по форуму) чувствительность ПР с питанием 220в к помехам по питанию.И уж не подключайте управление вентилятора шкафа к Пр.Заглючит Пр и все ,регулирование температуры закончится.
Если "протянуть несколько минут " , то без ИБП не обойтись. Другое дело что сильные помехи по линии питания 220, ПР с питанием 220 В "переносят" гораздо хуже чем ПР с питанием на 24В, что вообщем-то не удивительно. В некоторых случаях ,судя по форуму заканчивается "перезаливкой " проекта в ПР.
БП на 24В есть и с резервной АКБ .
я уже собрал схему недавно, ПР меряет температуру и включает вентилятор в щиту при повышении температуры в шкафу(работа как холодильник) Теперь задумался, и наверное сделаю через промежуточное реле с питанием вентилятора через нормально замкнутые контакты реле. В этом варианте ПР будет подавать питание на реле выключая вентилятор. Тогда и при выключении ПР, вентилятор будет работать постоянно.
Это конечно маловероятно ,но представьте, что при глюке выход ПР останется во вкл. состоянии?
Если вентилятор необходим, то лучше управлять им банальным механическим термостатом, особая точность не нужна а вот независимость необходима, "погугите" на эту тему , не только на охлаждение ,но и на обогрев, если это необходимо . А вот контролировать можно как Вы задумали, а можно косвенно ,получая данные о температуре радиатора ПЧ от него самого по Rs485 .
Оказалась для меня не посильная задача. Что бы в ПР занести с экрана показания текущие расходомера, в некоторую переменную, и он продолжал зная вес импульса прибавлять к показаниям.. но по прошествии времени, сверив показания полученные в ПР и на счётчике, можно было подставить в эту переменную обновлённые показания и счётчик в ПР отсчёт стал заново от них.
Понимаю что нужен счётчик который сбрасываться должен при смене данных в переменной показаний.. но как то непонятно как это соединить всё вместе
Ну пока сами не можете придумать, можно воспользоваться тем, что уже есть, странно, всё так как Вы хотели, чем же Вас не устраивает сделать так, как в проекте поста 4369? Там два расходомера и два счётчика объёма с возможностью корректировки показаний с экрана: https://owen.ru/forum/showthread.php?t=17153&page=437