Как бы вы сделали? и какова вероятность того что импульс придет именно в момент выполнения этой конструкции?
Можно просто вынести эту конструкцию в начало программы, в конце оставить только суммирование.
Я же написал готовый код........
(с гарантией сохранения всего, что смог сосчитать ПЛК)
типа вам гарантированно хватит размера на годы и годы, а не на сезон.
А после сохранения в ней делите на кубы.
исходная переменная не содержит ошибок вашего пересчета в циклах.
Спасибо всем за помощь, но все же я не понимаю зачем забивать младшие байты у счетчика в dword да и зачем отнимать предыдущее значение счетчика входа в примере от lara197a?
Как может произойти пропуск импульса если счетчик на входе работает независимо от программы и обнуляется в конце цикла?
Да и даже в теории газовый счетчик не сможет выдать больше одного импульса за 1 цикл программы, физически, проблема не в скорости подачи импульсов а в их длине в 0,7 ... 1,5 мс и что импульс гаснет пока доходит до входа контроллера.
Последний раз редактировалось ghost2; 20.12.2016 в 10:12.
Время выполнения цикла не задано, сколько нужно столько и выполняется
на вход контроллера добавлен модуль счетчика, если я правильно понял документацию, то он просто считает импульсы независимо от времени выполнения основного цикла, далее я просто суммирую количество импульсов пришедшее на вход. уверенность в том что не будет более одного импульса за цикл программы просто в том что при максимальном расходе газа при 10м3 в час будет генерироваться 3 импульса в 1 секунду, думаю что цикл выполняется чаще)
А можно ли использовать одновибратор? Есть мысль, что более длинные импульсы смогут исправить подсчет.
По моему не в длительности импульса дело. В РЭ написано, что вход-счетчик ПЛК100 может считать импульсы с частотой 10 кГц, т.е. длительность импульса может быть 50 мкс. У "Гранд" заявлена минимальная длительность импульсов - 700 ... 1500 мкс.
Надо попробовать посчитать импульсы каким-нибудь другим счетчиком, тогда все станет ясно.
Последний раз редактировалось IVM; 22.12.2016 в 10:24.