Добрый вечер. Есть плк 110-60р и насосы которые отдают обратную связь шим сигналом при фиксированной частоте 75 гц., аварии и мощность передаются через скважность(процент заполнения).Подскажите пожалуйста алгоритм подсчета скважности в Codesys 2.3.
Добрый вечер. Есть плк 110-60р и насосы которые отдают обратную связь шим сигналом при фиксированной частоте 75 гц., аварии и мощность передаются через скважность(процент заполнения).Подскажите пожалуйста алгоритм подсчета скважности в Codesys 2.3.
Соберите RC-цепочку для усреднения ШИМ-сигнала и просто измеряйте напряжение.
Про мощность через ШИМ ещё понятно, а вот про аварии )))
Может, там просто дискретный сигнал?
Без АЦП никак? У ПЛК на борту нет аналоговых входов,только дискретные, покупать отдельно модуль не хочется. Насос до 70% заполнения отдает мощность, а дальше процент заполнения - аварии и предупреждения,100% заполнения- насос остановлен.
Модуль быстрого ввода с такой функцией обойдётся Вам ничуть не дешевле, а цикл ПЛК слишком велик для такой задачи.
Если время цикла ПЛК укладывается в 1 мс, то на обычных входах можно измерять длительность сигнала 2 мс и более. Период входного сигнала = 1/75 = 13,33 мс. По этому минимальный коэффициент заполнения (D=dT/T), который можно измерить 0,15 (15%).
Если время цикла ПЛК больше, то и погрешность будет больше.
Если ПЛК - М2, то использование быстрого входа и прерывания 20 мкс, помогут измерить скважность без дополнительных модулей.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
svr007
Читайте про инструмент HardellaIDE, с ним можно на ПЛК110[M2] работать с быстрыми входами с циклом до 1 мкс.
HardellaIDE и быстрые входа вроде больше как для энкодеров, на ум приходит алгоритм:
1.запускать прерывание по фронту сигнала
2.в прерывание запускать таймер, в следующем прерывании считать и обнулить
3.мерить время между импульсами сигнала, зная время периода вычислять процент заполнения.
У меня будет 4 входа шим, ПЛК не загнется такова количества? хочется более правильный алгоритм.
В ПЛК[М2] быстрые входа и выхода обслуживаются физически другим сопроцессором, который обменивается с основным процессором через область обмена. Харделла позволяет писать алгоритм именно для сопроцессора быстрых входов\выходов.
Только вот таймеров там нет, придется писать самостоятельно, используя время цикла сопроцессора как квант отсчета.
Добро бы речь шла о крупносерийном или хотя бы серийном изделии...
Дополнительные затраты на программирование кто-нибудь посчитает?