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

Автоматизация технологических процессов, системы управления, АСУ ТП, АСКУЭ, программирование ПЛК, человеко-машинный интерфейс, сетевое оборудование, протоколы
service
Специалист
Сообщения: 254
Зарегистрирован: 16 ноя 2012, 10:23

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

Сообщение service »

заморочил голову информацией по обработке аналоговых сигналов плк. помогите внести ясность! с самого начала...

service
Специалист
Сообщения: 254
Зарегистрирован: 16 ноя 2012, 10:23

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

Сообщение service »

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

Аватара пользователя
Автоматизатор
Профессионал
Сообщения: 993
Зарегистрирован: 09 окт 2012, 05:18

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

Сообщение Автоматизатор »

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

service
Специалист
Сообщения: 254
Зарегистрирован: 16 ноя 2012, 10:23

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

Сообщение service »

а как с типами переменных? мне бы фрагмент программы...

Аватара пользователя
Автоматизатор
Профессионал
Сообщения: 993
Зарегистрирован: 09 окт 2012, 05:18

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

Сообщение Автоматизатор »

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

service
Специалист
Сообщения: 254
Зарегистрирован: 16 ноя 2012, 10:23

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

Сообщение service »

контроллер Vipa. возможно переносить проекты из степ7

Аватара пользователя
Автоматизатор
Профессионал
Сообщения: 993
Зарегистрирован: 09 окт 2012, 05:18

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

Сообщение Автоматизатор »

Берем документ Система автоматизации S7-300 Данные модулей

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

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

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

Сообщение Михайло »

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

Аватара пользователя
CHANt
Профессионал
Сообщения: 565
Зарегистрирован: 13 окт 2012, 15:24

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

Сообщение CHANt »

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

service
Специалист
Сообщения: 254
Зарегистрирован: 16 ноя 2012, 10:23

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

Сообщение service »

растолкуйте по каждому входу и выходу этих блоков, пожалуйста
У вас нет необходимых прав для просмотра вложений в этом сообщении.

ward
Специалист
Сообщения: 415
Зарегистрирован: 12 ноя 2012, 08:44

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

Сообщение ward »

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

Аватара пользователя
CHANt
Профессионал
Сообщения: 565
Зарегистрирован: 13 окт 2012, 15:24

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

Сообщение 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.

Аватара пользователя
Автоматизатор
Профессионал
Сообщения: 993
Зарегистрирован: 09 окт 2012, 05:18

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

Сообщение Автоматизатор »

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

service
Специалист
Сообщения: 254
Зарегистрирован: 16 ноя 2012, 10:23

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

Сообщение service »

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

ward
Специалист
Сообщения: 415
Зарегистрирован: 12 ноя 2012, 08:44

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

Сообщение ward »

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

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

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

Сообщение Михайло »

service писал(а):все правильно или что не так?
Все верно, только 50% = 3600h.

ward
Специалист
Сообщения: 415
Зарегистрирован: 12 ноя 2012, 08:44

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

Сообщение ward »

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

service
Специалист
Сообщения: 254
Зарегистрирован: 16 ноя 2012, 10:23

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

Сообщение service »

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

service
Специалист
Сообщения: 254
Зарегистрирован: 16 ноя 2012, 10:23

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

Сообщение service »

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

Аватара пользователя
CHANt
Профессионал
Сообщения: 565
Зарегистрирован: 13 окт 2012, 15:24

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

Сообщение CHANt »

А что за SCADA у которой нет FLOAT TO POINT?

Ответить