PDA

Просмотр полной версии : ПЛК150+МДВВ+Обороты



nemo_1977
18.10.2011, 12:24
Вот почитал тут про подщет оборотов, и возможно недопонял,..
а возможно кто уже так делал:
Двигатель+Инициатор--ВходМДВВ---ПЛК
На вале двигателя есть 6 меток, безконтактный инициатор подключен к плате МДВВ, в програме на плк я считываю количество импульсов за 2 сек, и получаю обороты в минуту
Как - то так


T_obertu(in:=TRUE,pt:=t#2s);
IF T_obertu.Q=TRUE THEN
new_counter:=%IW11.1.22.0;(*значение счетчика импульсов МДВВ*)
obertu_in:=(new_counter-old_counter)*5;
IF obertu_in<0 THEN obertu_in:=obertu_in*(-1); END_IF;
old_counter:=new_counter;
T_obertu(in:=FALSE);
T_obertu(in:=TRUE,pt:=t#2s);


Но мне кажется, что это криво и не красиво. да и если выставить время в 1 с так обороты сильно скачут, а диапазон нужен от 0 до 1000

Может есть покрасивее алгоритмы?
П.С. Примера с МДВВ не нашел.
Спасибо

ASo
18.10.2011, 12:49
Сколько об./с делает двигатель в т. установки датчика?

nemo_1977
19.10.2011, 09:17
1000 об/мин ~17 об/с
Частота срабатывания датчика максимум 110Гц (на вале двигателя 6 меток)

ASo
19.10.2011, 09:22
При таких частотах надо измерять период между импульсами, а не частоту.

nemo_1977
19.10.2011, 09:49
Дак тут и загвоздка, если б подключено было в ПЛК там бы наверное так и сделал, а тут в МДВВ и опрос по модбасу - грабли со временем опроса не вилезут?
Может кто с таким стыкался?

rovki
19.10.2011, 12:13
Так выкиньте МДВВ и прям на ПЛК заведите ,что этому мешает?Расстояние то какое от датчика до ПЛК?

lara197a
19.10.2011, 14:22
не получите нормальной точности на МДВВ.
Заводите на ПЛК и считайте время между к примеру 60 импульсами

nemo_1977
20.10.2011, 09:11
да, про ПЛК я в курсе, да как-то неохота вести более 100 м. И там с рельэфом не все так просто, цеха оборудование,...

rovki
20.10.2011, 11:30
А для каких целей вам нужны обороты -индикация ,контроль ,управление....????.От этого будут зависеть алгоритмы.

nemo_1977
20.10.2011, 11:40
А для каких целей вам нужны обороты -индикация ,контроль ,управление....????.От этого будут зависеть алгоритмы.

Для контроля управления ну и индикации.
В ПЛК втикнуть никак по двум причинам
1. Расстояние.
2. Отсутствие свободных дискретных входов.
В связи с этим подумиваю над енкодером с аналоговым выходом.
Но если есть отработаные алгоритмы - могу потестить на реальном оборудовании.

rovki
20.10.2011, 13:12
Я это к тому спрашиваю ,что можно применить (в ПЛК) алгоритм "скользящего окна ",позволяющий сгладить "болтанку" показаний" .

nemo_1977
20.10.2011, 13:29
думал тоже про него, но тут не те скорости. мне не хватит измеренных значений чтоб среднюю строить. или делать много лепестков и измерять время между импульсами. но с МДВВ это трудно и неточно будет.
Если на оборотах около 1000 можно теоретически прощитать время между каждым импульсом (взять хотябы 30 импульсов)
убрать макс и минимум далее взять среднее и вывести со скоростью 1с. то при скоростях двигателя 60 и меньше оборотов в минуту проводить такие измерения и укладыватся в максимальное время измерения 1с - довольно трудно.
Одним словом пока в поисках....

rovki
20.10.2011, 16:10
Немного не так ,метод о котором я говорю заключается в следующем-измеряем частоту (количество импульсов в секунду) .Имеем конструкцию (программную ) типа очереди ,например 4 регистра (ячейки) ,соединенных последовательно и каждую секунду переписываем значение из 1во2 ,из2 в 3,из 3 в 4 (одновременно).и так бесконечно .берем значения с каждого регистра ,суммируем и делим на количество регистров(4) ,получаем среднее значение и так каждую секунду.К стати ,аналогичный макрос можно посмотреть в областях применения ПР,что то типа частотомера с цифровой фильтрацией.