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

2021-03-16 Промышленное  3 комментария

Сегодняшняя тема — обработка аналогового сигнала с датчика 4…20 мА в среде Tia Portal различными способами. Но прежде, чем мы перейдем непосредственно к основной теме, небольшое вступление — рассмотрим как вообще электрический сигнал с датчика преобразуется в ПЛК в нужную нам величину.

Обработка аналоговых значений в ПЛК

Аналоговые сигналы применяются для измерения значений различных изменяющихся физических величин, таких как температура, давление, расход и т.д.

Но так как различных типов сигналов очень много, для удобства используются нормирующие преобразователи, встроенные в датчик, либо выносные, которые преобразуют выходной электрический сигнал с датчика в унифицированный токовый сигнал 4…20 мА или сигнал напряжения 0…10 В. И далее этот унифицированный сигнал приходит на аналоговый вход ПЛК или модуля аналоговых входов.

Далее аналоговый сигнал с помощью АЦП (аналого-цифрового преобразователя) преобразуется в некое целочисленное значение, обычно в формате Integer (целые числа в диапазоне от -32768 до 32767). Затем это число в программе с помощью специальных инструкций необходимо перевести в реальные единицы измерения.

Ниже приведены числовые значения для диапазонов измерения напряжения и тока.

Представление аналогового входа в Tia Portal для напряжения

Представление аналогового входа в Tia Portal для тока

Как мы видим, для сигнала 4…20 мА представление аналогового сигнала изменяется от 0 до 27648. Значения, находящиеся вне диапазона представляют собой переполнение или превышение значений.

Такова, вкратце, последовательность действий, а теперь вернемся к нашей основной теме.

Для начала в параметрах модуля аналоговых входов необходимо настроить значение канала, к которому будет подключаться, предположим, датчик давления, на тип измерения и диапазон 4...20 мА. Для этого на вкладке Device Configuration выбираем наш модуль, на вкладке General находим Analog Inputs и здесь выбираем необходимый канал. В его параметрах настраиваем тип сигнала и диапазон — токовый 4…20 мА.

Настройка аналогового канала

Подключаем датчик к нашему модулю аналоговых входов по следующей схеме:

Схема подключения аналогового датчика

Далее переходим уже к программной части.

Инструкции NORM_X и SCALE_X

Для начала рассмотрим типовой метод преобразования значения аналогового входа при помощи инструкций «NORM_X» — нормализации значения и «SCALE_X» — масштабирования.

Инструкции NORM_X и SCALE_X

NORM_X нормализует параметр VALUE к диапазону значений, определенному параметрами MIN и MAX. На вход параметра VALUE приходит значение с датчика. MIN — минимальное значение в диапазоне, в данном случае 0, MAX — максимальное значение, как мы помним для 4…20 мА это значение составляет 27648. На выходе мы получаем нормализованное значение, которое заносим в переменную temp_value.

Инструкция NORM_X

Затем масштабируем полученное значение согласно диапазону измерения датчика, в нашем случае от 0 до 160 bar.

Инструкция SCALE_X

Результирующим значением выходной переменной out_value будет фактическое значение давления в bar. Таким образом мы из электрического сигнала с датчика давления получаем целочисленное значение этой переменной.

Инструкция CALCULATE

Еще один способ обработки аналогового сигнала — это использование инструкции CALCULATE, с помощью которой можно задать математическую функцию, которая будет производить вычисления над входными параметрами и на выходе мы получаем необходимый результат согласно заданному уравнению.

Инструкция CALCULATE

По умолчанию инструкция CALCULATE предлагает два входных параметра и один выходной. Если необходимо добавить вход, нажмите желтую пиктограмму «Create» (Создать) рядом со входом, или правой кнопкой мыши щелкнуть на одном из входных параметров, после чего выбрать «Insert input».

Инструкция CALCULATE

Далее выбираем необходимый тип данных для входных и выходных параметров (IN и OUT должны иметь одинаковый тип данных).

Нажмем на значок «Редактировать выражение» для ввода математической функции.

Инструкция CALCULATE

В окне «Edit Calculate» введем наше выражение для масштабирования необработанного аналогового значения.

Out = ((in4 — in5) / (in2 — in3)) * (in1 — in3) + in5

Где:

  • Out — Масштабированное выходное значение
  • in1 — Аналоговое входное значение
  • in2 - Верхняя граница для масштабированного входного значения
  • in3 - Нижняя граница для масштабированного входного значения
  • in4 — Верхняя граница для масштабированного выходного значения
  • in5 — Нижняя граница для масштабированного выходного значения

После этого нажимаем «OK». Инструкция создаст указанные нами в арифметическом выражении входы и на выходе в параметре Out получим результат, согласно заданному уравнению.

Инструкция CALCULATE

Функция обработки аналогового сигнала на языке SCL

И наконец третий способ — написать функцию, отвечающую за обработку аналогового сигнала на языке SCL.

Создадим новую функцию SCALE и запишем в нее наше выражение.

Обработка аналогового значения на SCL

Как видим, данное выражение  соответствует тому, что мы использовали ранее  в инструкции CALCULATE.

Далее вызываем нашу функцию в блоке OB1.

Обработка аналогового значения на SCL

Поделиться в соц. сетях

Опубликовать в LiveJournal
Опубликовать в Яндекс

  • Артем says:

    Супер!!!

  • Роман says:

    А если необходимо подключить датчик температуры pt100?

    Как я понимаю напрямую его подключить нельзя, нужен преоразователь в 4-20 или 0-10, правильно?

    • admin says:

      Либо преобразователь, либо можно использовать аналоговые сигнальные модули, например SM 1231 RTD, предназначенные специально для измерения температуры.

Комментарии

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>