Вход

Просмотр полной версии : счетчик на дискретном входе плк-150 220



Vini74
09.06.2009, 16:40
и все же, какая максимальная частота измеряется с помощью дискретного входа плк и подмодуля счетчик? у нас расхождение с показаниями генератора начинается с 3кгц. а в документации написано до 10кгц со скважностью 50%. подключение выполнено с помощью оптронной развязки. может есть ли ограничения на частоту работы оптронных развязок?

Филоненко Владислав
09.06.2009, 21:53
для 10 кгц должно выполнятся условия - полный размах сигнала и скважность 1. дополнительная развязка ухудшает характеристики.
к тому же указана максимальная частота, работать на ней нельзя, она приводится для оценки запаса по частоте. он, для нормального функционирования (в зависимости от задачи) должен быть от 2 до 3 раз.
и как вы выставили настройки фильтрации? по прерыванию? иначе максимальная скорость не будет достигнута.

P.s. 10 кгц - частота семплирования - соответственно частота генератора сигнала в 2 раза меньше.

Vini74
10.06.2009, 08:06
настройки фильтрации стоят в -1. как выставить "по прерыванию"? потом о каком размахе идет речь? там работает на замыкание-размыкание дискретный вход, если я что-то понимаю правильно.

Филоненко Владислав
10.06.2009, 11:42
замыкаете вы через оптопару? вы уверены, что оптопара позволяет передать такую частоту? если надо передавать сигнал в 10 кгц, оптопару лучше брать на 100 кгц.

а размах - в зависимости от сопротивления контакта. чем меньшн-тем лучше.

Vini74
11.06.2009, 14:15
вот сигнал с осциллографа, который снят со входа плк. это 5кгц. на наш взгляд достаточно чистый сигнал. программа на плк выдает 4250 гц, при подсчете за 4 сек.

Дмитрий Артюховский
12.06.2009, 13:11
1. В качестве опорного времени берите отсчеты системного таймера, а не количество циклов. Как мы недавно выяснили, цикл ни разу не 1 мс.
2. Используйте только модуль COUNTER 16 bit - остальные могут лажать.
3. Сбрасывайте счетчик в буфер в каждом цикле.
4. Весь цикл измерения должен быть в одном блоке (если используете SFC)

Vini74
15.06.2009, 10:56
Да в общем то все так и делаем.
в течении 4х секунд (по системному таймеру) накапливаем кол-во импульсов в переменную. Потом делим это число на разницу во времени между началом сбора и окончанием.
единственно, что MinCycleLength = 50

Дмитрий Артюховский
15.06.2009, 23:18
у вас счетчик переполняется... длину цикла ставьте 1 - 2 мс ... у вас стоит 50 мс, и переменная счетчика ( длина 16 бит ) переполняется