Никак понять не могу, если в прерывании по входу или таймеру, обращаюсь к значению скоростного счётчика, это значение свежее, т.е. обновилось т.к. применяется в какой либо инструкции, или значение счётчика устаревшее, то что было на начало цикла?
Для AS200/300 это всё расписано, а в инструкции на DVP на эту тему ни слова не нашёл.
DVP high speed count обновление текущего значения.
Re: DVP high speed count обновление текущего значения.
В обработчике прерывания для одного счетчика можно считать/запомнить текущие значения остальных.
Если этого не делать, ИМХО, то сохраняемые значения счетчиков будут зависеть от времени скана программы.
Если этого не делать, ИМХО, то сохраняемые значения счетчиков будут зависеть от времени скана программы.
Re: DVP high speed count обновление текущего значения.
если вы делаете прерывание по счетчику - вы и так сравниваете значение счетчика с заданным, а вот по другим прерываниям скорее всего нет. там будут не актуальные данные. но может есть функция запроса текущего значения. я не помню. но по факту это абсурд. зачем в прерывании узнавать значение счетчика? скорее наоборот надо из программы ждать когда счетчик дойдет до заданного числа и выполнить что нужно
Re: DVP high speed count обновление текущего значения.
Прерывания у меня не по счётчику, а по входам с датчиков, то, на что эти датчики реагируют, может двигаться мимо датчика с очень разными скоростями. Мне нужно запомнить показания счётчика в прерывании, и потом посчитать например место остановки или разницу между срабатываниями датчиков, и по этой разнице подкорректировать например текущую позицию сервы.
----------
Придётся стенд изобретать и эксперименты городить. У AS228 очень заметно гуляние дельты значений счётчика в прерыванию по таймеру (т.е. разница значений счётчика между циклами прерывания), если изменять время цикла основной проги.
Если обновлять счётчик через REF то зависимости от времени цикла нет. Поэтому и возник вопрос, как это у DVP?
----------
Придётся стенд изобретать и эксперименты городить. У AS228 очень заметно гуляние дельты значений счётчика в прерыванию по таймеру (т.е. разница значений счётчика между циклами прерывания), если изменять время цикла основной проги.
Если обновлять счётчик через REF то зависимости от времени цикла нет. Поэтому и возник вопрос, как это у DVP?
Re: DVP high speed count обновление текущего значения.
Проверил поведение счётчиков для SE.
AS228 делал вид что он энкодер, сигнал с "энкодера" запараллелил на SE для счётчиков C251 и C233, т.е. для твёрдого и мягкого.
На SE запустил прерывание по таймеру в 2 мс. с определением разницы значений счётчиков между циклами.
Для изменения времени цикла SE сделал For Next с вычислениями внутри.
В общем всё нормально, данные с обоих счётчиков свежие, т.е. считываются прогой в момент обращения к ним, а не в начале цикла контроллера. (у AS серии нужно обновлять самому)
----------------
Кстати, при увеличении времени цикла контроллера, начинает заметно подтормаживать связь.
AS228 делал вид что он энкодер, сигнал с "энкодера" запараллелил на SE для счётчиков C251 и C233, т.е. для твёрдого и мягкого.
На SE запустил прерывание по таймеру в 2 мс. с определением разницы значений счётчиков между циклами.
Для изменения времени цикла SE сделал For Next с вычислениями внутри.
В общем всё нормально, данные с обоих счётчиков свежие, т.е. считываются прогой в момент обращения к ним, а не в начале цикла контроллера. (у AS серии нужно обновлять самому)
----------------
Кстати, при увеличении времени цикла контроллера, начинает заметно подтормаживать связь.