Страница 1 из 2

обработка аналоговых сигналов

Добавлено: 28 окт 2013, 15:07
service
заморочил голову информацией по обработке аналоговых сигналов плк. помогите внести ясность! с самого начала...

Re: обработка аналоговых сигналов

Добавлено: 28 окт 2013, 15:14
service
у меня есть датчик с выходом 4-20мА, который передает сигнал на аналоговый вход плк. мне нужно этот сигнал обработать и передать преобразованое значение в скаду (от 0 до 100%)

Re: обработка аналоговых сигналов

Добавлено: 28 окт 2013, 16:27
Автоматизатор
В чем проблема то? В контроллере на аналоговом входе будет цифра. Максимальное значение цифры соответствует 20 мА или 100%.

Re: обработка аналоговых сигналов

Добавлено: 28 окт 2013, 16:36
service
а как с типами переменных? мне бы фрагмент программы...

Re: обработка аналоговых сигналов

Добавлено: 28 окт 2013, 16:44
Автоматизатор
По графику можно расчитать значения.
Фрагмент.jpg
service писал(а):а как с типами переменных?
На аналоговом входе цифра типа INT, см. руководство на контроллер, про аналоговые входа.
service писал(а):мне бы фрагмент программы...
Какой контроллер?

Re: обработка аналоговых сигналов

Добавлено: 28 окт 2013, 17:02
service
контроллер Vipa. возможно переносить проекты из степ7

Re: обработка аналоговых сигналов

Добавлено: 28 окт 2013, 17:25
Автоматизатор
Берем документ Система автоматизации S7-300 Данные модулей

В Таблица 5-9. Представление аналоговых величин в диапазонах измерения токов от 0 до 20 мА и от 4 до 20 мА
приведены значения на аналоговом входе. Адреса можно посмотреть в HW Config.

Re: обработка аналоговых сигналов

Добавлено: 28 окт 2013, 18:20
Михайло
Переменная INT изменяется от -32768 до +32767. 100% обычно соответствует десятичному значению 27648, а 0% - 0. Дальше уже - преобразование типов и чистая математика. Значения выше 27648 - это перегрузка (>100%). Более подробно написано по ссылке Автоматизатора.

Re: обработка аналоговых сигналов

Добавлено: 29 окт 2013, 11:07
CHANt
Если проблем с Step7 нет, то скачай курсы S7Pro12
http://rapidshare.com/files/2914965/Cur ... -PRO12.rar
Там в первой части есть подробно по обработке аналоговых сигналов в картинках :)

Re: обработка аналоговых сигналов

Добавлено: 30 окт 2013, 11:30
service
растолкуйте по каждому входу и выходу этих блоков, пожалуйста

Re: обработка аналоговых сигналов

Добавлено: 30 окт 2013, 11:47
ward
а вы не пробовали выделив интересующий вас блок нажать F1 ?. После нажатия вылезает справка, где расписано все, даже с примерами. F1 нажимают даже матерые программисты=)

Re: обработка аналоговых сигналов

Добавлено: 30 окт 2013, 13:12
CHANt
ward, да незачем человека отправлять язык потенциального врага изучать :D
По теме:
Стандартная функция блок FC 105 осуществляет перевод кодов АЦП в числовое значение в соответствии с заданной шкалой датчика, проверяет на нахождение диапазона в пределах шкалы и выводит результат вычисления:
- в виде числа с плавающей точкой OUT – реальное значение с датчика;
- в шестнадцатеричном коде RET_VAL – возвращаемое значение ошибки.

Вычисление производится по формуле:
OUT = [ ((FLOAT (IN) – K1)/(K2–K1)) * (HI_LIM–LO_LIM)] + LO_LIM
где,
IN – входная целочисленная величина с аналогового входа;
К1 и К2 – коэффициенты определяющие в каком диапазоне будет лежать результат. При диапазоне от -27648 и +27648 (шкала с отрицательными значениями BIPOLAR=TRUE), К1=-27648 и К2=27648. При диапазоне от 0 до 27648 (шкала с положительными значениями BIPOLAR=FALSE), К1=0 и К2=27648.
LO_LIM - нижний предел шкалы измерения;
HI_LIM - верхний предел шкалы измерения;
BIPOLAR - задание режима приведения сигнала только к положительному или к биполярному диапазону значений. Если в параметр передается ´0´, то производится нормировка к диапазону 0…+27648. Если в параметр передается ´1´, то производится нормировка к диапазону –27648 …+27648.
PS: Реально BIPOLAR=TRUE нужен когда к платам I/O подключаются термопары или термосопротивления без преобразователей 4..20 mA. Ну может еще специфичные датчики работающие с диапазоном, к примеру -20 +20 mA. Для стандартных унифицированных сигналов 0..20 mA, 4..20 mA, 0..10 V и т.п. BIPOLAR=FALSE.

Re: обработка аналоговых сигналов

Добавлено: 30 окт 2013, 15:20
Автоматизатор
CHANt писал(а):ward, да незачем человека отправлять язык потенциального врага изучать
Мне кажется, что это самое простое - жмать на Ф1. Удивительно, но большинство пользователей Виндоус не пользуются такой возможностью.

Re: обработка аналоговых сигналов

Добавлено: 31 окт 2013, 14:28
service
сигнал с аналогово входа PIW 258 преобразовую в число REAL, которое находится в MD50. затем преобразовую REAL в INT (MW60), для того,чтобы передать его в скаду (REAL в скаду не передается).в скаде элементу "индикатор" присвоена переменная MW60, 0% - 0000h, 50% - 35F8h, 100% - 6C00h. все правильно или что не так?

Re: обработка аналоговых сигналов

Добавлено: 31 окт 2013, 14:51
ward
хай лимит - верхний предел датчика, то есть значение измеряемой величины при 20 мА (например 10 бар)
лоу лимит - нижний предел датчика, значение при 4 мА (например, 0 бар)
В MD60 у тебя будет при 12 мА на входе тогда значение "5.0" бар, потом преобразуешь REAL из MD60 в INT c помощью команды, например, ROUND в MD64.

Re: обработка аналоговых сигналов

Добавлено: 31 окт 2013, 14:53
Михайло
service писал(а):все правильно или что не так?
Все верно, только 50% = 3600h.

Re: обработка аналоговых сигналов

Добавлено: 31 окт 2013, 14:56
ward
Михайло писал(а):
service писал(а):все правильно или что не так?
Все верно, только 50% = 3600h.
у него хай лимит 27648=), это неправильно и маловероятно

Re: обработка аналоговых сигналов

Добавлено: 31 окт 2013, 15:17
service
ward писал(а):хай лимит - верхний предел датчика, то есть значение измеряемой величины при 20 мА (например 10 бар)
лоу лимит - нижний предел датчика, значение при 4 мА (например, 0 бар)
В MD60 у тебя будет при 12 мА на входе тогда значение "5.0" бар, потом преобразуешь REAL из MD60 в INT c помощью команды, например, ROUND в MD64.
round преобразовует real в dint. вставил это преобразование в следующий нетворк. результат dint в MD70. MW60 и MD70 - тоже самое, только пустой впереди

Re: обработка аналоговых сигналов

Добавлено: 31 окт 2013, 15:18
service
ward писал(а):
Михайло писал(а):
service писал(а):все правильно или что не так?
Все верно, только 50% = 3600h.
у него хай лимит 27648=), это неправильно и маловероятно
что делать с "неправильно и маловероятно"?

Re: обработка аналоговых сигналов

Добавлено: 31 окт 2013, 16:18
CHANt
А что за SCADA у которой нет FLOAT TO POINT?