Просмотр полной версии : ПЛК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
Может есть покрасивее алгоритмы?
П.С. Примера с МДВВ не нашел.
Спасибо
Сколько об./с делает двигатель в т. установки датчика?
nemo_1977
19.10.2011, 09:17
1000 об/мин ~17 об/с
Частота срабатывания датчика максимум 110Гц (на вале двигателя 6 меток)
При таких частотах надо измерять период между импульсами, а не частоту.
nemo_1977
19.10.2011, 09:49
Дак тут и загвоздка, если б подключено было в ПЛК там бы наверное так и сделал, а тут в МДВВ и опрос по модбасу - грабли со временем опроса не вилезут?
Может кто с таким стыкался?
Так выкиньте МДВВ и прям на ПЛК заведите ,что этому мешает?Расстояние то какое от датчика до ПЛК?
lara197a
19.10.2011, 14:22
не получите нормальной точности на МДВВ.
Заводите на ПЛК и считайте время между к примеру 60 импульсами
nemo_1977
20.10.2011, 09:11
да, про ПЛК я в курсе, да как-то неохота вести более 100 м. И там с рельэфом не все так просто, цеха оборудование,...
А для каких целей вам нужны обороты -индикация ,контроль ,управление....????.От этого будут зависеть алгоритмы.
nemo_1977
20.10.2011, 11:40
А для каких целей вам нужны обороты -индикация ,контроль ,управление....????.От этого будут зависеть алгоритмы.
Для контроля управления ну и индикации.
В ПЛК втикнуть никак по двум причинам
1. Расстояние.
2. Отсутствие свободных дискретных входов.
В связи с этим подумиваю над енкодером с аналоговым выходом.
Но если есть отработаные алгоритмы - могу потестить на реальном оборудовании.
Я это к тому спрашиваю ,что можно применить (в ПЛК) алгоритм "скользящего окна ",позволяющий сгладить "болтанку" показаний" .
nemo_1977
20.10.2011, 13:29
думал тоже про него, но тут не те скорости. мне не хватит измеренных значений чтоб среднюю строить. или делать много лепестков и измерять время между импульсами. но с МДВВ это трудно и неточно будет.
Если на оборотах около 1000 можно теоретически прощитать время между каждым импульсом (взять хотябы 30 импульсов)
убрать макс и минимум далее взять среднее и вывести со скоростью 1с. то при скоростях двигателя 60 и меньше оборотов в минуту проводить такие измерения и укладыватся в максимальное время измерения 1с - довольно трудно.
Одним словом пока в поисках....
Немного не так ,метод о котором я говорю заключается в следующем-измеряем частоту (количество импульсов в секунду) .Имеем конструкцию (программную ) типа очереди ,например 4 регистра (ячейки) ,соединенных последовательно и каждую секунду переписываем значение из 1во2 ,из2 в 3,из 3 в 4 (одновременно).и так бесконечно .берем значения с каждого регистра ,суммируем и делим на количество регистров(4) ,получаем среднее значение и так каждую секунду.К стати ,аналогичный макрос можно посмотреть в областях применения ПР,что то типа частотомера с цифровой фильтрацией.
Powered by vBulletin® Version 4.2.3 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot