Подскажите пожалуйста, каким образом в ПЛК (с помощью каких функциональных блоков CoDeSys )преобразовать аналоговый сигнал 4-20 мА в частотный,так чтобы частота была пропорциональна входному току.
Подскажите пожалуйста, каким образом в ПЛК (с помощью каких функциональных блоков CoDeSys )преобразовать аналоговый сигнал 4-20 мА в частотный,так чтобы частота была пропорциональна входному току.
Ну вообще то это достаточно просто, но вопрос - насколько критично быстродействие?
Измеритель ПЛК 150 выдает одно измерение в 0.5 секунды
Соотв частота дискретизации будет довольно низкой.
Делать надо так снять с аналогового входа ток, создать в области выходов ШИМ и привязать к ним переменные ai1 и shim1
Получится примерно так
shim1:=REAL_TO_WORD(65535.0*((ai1-4.0)/16.0));
Кхм... в догонку - несколько погорячился (на самом деле на выходе ПЛК модуль именно ШИМ (модулируется скважность)). В Вашем случае нужен модуль ЧИМ - модулируется частота. Он у нас не реализован.
Последний раз редактировалось Малышев Олег; 10.09.2008 в 09:09.
Спасибо,попробую.0,5сек вполне устроят для этой задачи,но в других случаях..А если задействовать все 4 входа,тогда совсем печально становиться.
И ещё вопрос: какая при этом максимальная частота (при 20мА) получиться на выходе(в Гц)?65,635 КГц?
По любому из входов 0,5 сек. И 2 входа 0,5 сек на вход. И 4 входа - тоже по 2 Гц на вход.
Кхм... в догонку - несколько погорячился (на самом деле на выходе ПЛК модуль именно ШИМ (модулируется скважность)). В Вашем случае нужен модуль ЧИМ - модулируется частота. Он у нас не реализован.
Значение на выход ШИМ 65535(WORD) = 100% т.е. все время включен.
В вашем случае нужно смотреть в сторону ФБ из библиотеки util.lib : GEN, BLINK
Преобразователь сделал(использовал BLINK),теперь возникла другая проблема:Подскажите,пожалста,как увеличить разрядность счетчика CTU стандартной библиотеки?А то у меня получается всего лишь максимум 9999:Использую блок «INT TO WORD»(«UINT TO WORD» тоже не помогает)
Написать счётчик нужной разрядности самому. ИМХО это быстрейший вариант.
т.е готового блока в Codesys не существует?!Я имею ввиду с разрядностью более 9999.Как-то не ожидал я...
Стандартная библиотека счетчика, например CTU считает в пределе до 65535. Почему у Вас не работает, я не знаю.