TIA Portal — Работа с аналоговым сигналом

2021-10-12 Промышленное  Комментариев нет

В одной из предыдущих статей мы рассматривали вопрос работы с аналоговыми сигналами в TIA Portal, в частности с унифицированным токовым сигналом 4-20 мА. Но как быть, если необходимо обработать сигнал в нестандартном диапазоне? Этот вопрос мы сегодня и рассмотрим.

В данном примере мы будем считывать значения с датчика давления, который имеет выходной сигнал  напряжения  0,5–5,5 V. Диапазон измерения датчика составляет  0 – 5000 PSI, что соответствует 344.7 бар.

Разберем, как настроить аппаратную часть в TIA Portal, сконфигурировать и масштабировать значение аналогового сигнала.

Для решения задачи  мы будем использовать CPU S7 1500 с модулем аналоговых входов AI 8xU/I HF, который имеет 8 входов, каждый из которых может быть настроен на измерение напряжения в нужном нам диапазоне. При работе с распределительными станциями ET 200SP, можно использовать модули AI 2xU/I 2- ,4-wire HF, которые также имеют функцию настройки диапазона измерения.

Стоит отметить, что не все модули поддерживают данную функцию и этот вариант мы тоже рассмотрим далее в статье.

Настройка аппаратной части в TIA Portal

Для настройки, выделим модуль аналогового ввода и перейдем на вкладку General.  Выделим входной канал, который мы хотим настроить.

TIA Portal Работа с аналоговым сигналом в нестандартном диапазоне

В параметрах настройки модуля можно включить встроенную диагностику —

  • Отсутствие напряжения питания L + — Указывает на отсутствие или недостаточный уровень напряжения питания L+.
  • Переполнение — Указывает на то, что выходное значение выходит за верхний предел.
  • Незаполнение — Указывает на то, что выходное значение выходит за нижний предел.

Эти ошибки будут отображаться в диагностическом буфере, а светодиод ПЛК будет мигать красным. Также их можно отображать, например, на экране HMI панели.

TIA Portal Настройка модуля аналогового ввода

По умолчанию функции диагностики и настройки параметров измерения отключены, для включения выберем режим Manual в Parameter settings.

TIA Portal Настройка параметров аналогового модуля

Далее, для указания диапазона, поставим галочку напротив Adjust measuring range.

TIA Portal Настройка диапазона измерения

Обратите внимание, что пределы указаны в милливольтах!

Зададим нижний и верхний пределы измерения.

Нижний предел датчика: 0 PSI = 500 мВ = 0,5 В. Масштабированный нижний предел диапазона для биполярных (двухполярных) величин — 27648, для униполярных (однополярных) — 0.

Верхний предел датчика: 5000 PSI = 5500 мВ = 5,5 В. Масштабированный верхний предел диапазона  27648.

Здесь же, в настройках, перейдем на вкладку IO tags и добавим переменную типа Integer , которая будет хранить измеренное значение датчика.

TIA Portal Работа с аналоговым сигналом в нестандартном диапазоне

Каждому каналу, начиная с 0 и по 7, мы можем присвоить свою отдельную переменную.

Функция преобразования аналогового значения

Далее мы создадим функцию преобразования аналогового значения, которая будет преобразовывать целочисленное значение, хранящееся в нашей переменной (IN_Pressure), в инженерное значение (в данном случае PSI).

Для создания функции выберем в дереве проекта Add new block, затем в открывшемся окне выберем Function и язык программирования SCL.

TIA Portal Создание функции

Создадим переменные функции.

Переменные функции

  • In_VoltageRead – Входное значение из модуля аналогового ввода.
  • In_EngineValueMin —  Нижний предел датчика в инженерном значении.
  • In_EngineValueMax — Верхний предел датчика в инженерном значении.
  • ScaleValue — Выходное значение.
  • In_Offset – используется для управления измерением, если этого требует результат калибровки датчика.
  • In_B — принимает значение TRUE, в случае биполярного входного диапазона.

Пишем следующий код в нашу функцию.

TIA Portal Функция преобразования аналогового значения

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

TIA Portal Функция преобразования аналогового значения

Теперь давайте кратко рассмотрим функции NORM_X и SCALE_X. Подробную информацию можно найти в справке TIA Portal.

NORM_X отображает значение тега на линейной шкале и выводит результат (тип: Real) от 0,0 до 1,0 согласно следующему графику:

TIA Portal NORM_X

Нижний предел датчика: 0 PSI = 500 мВ = 0,5 В. Масштабированный нижний предел (биполярный: -27648, униполярный: 0) = 0,0 (NORM_X мин.).

Верхний предел датчика: 5000 PSI = 5500 мВ = 5,5 В. Масштабированный верхний предел (27648) = 1.0 (NORM_X max).

SCALE_X отображает значение тега от 0,0 до 1,0 и выводит результат (тип: Real) в указанном диапазоне значений.

TIA Portal SCALE_X

Нижний предел датчика: 0 PSI = 500 мВ = 0,5V. Масштабированный нижний предел (биполярный: -27648, униполярный: 0) = 0,0 (NORM_X мин) = 0 PSI (инженерные единицы).

Верхний предел датчика: 5000 PSI = 5500 мВ = 5,5 В. Масштабированный верхний предел (27648) = 1.0 (NORM_X max) = 5000 PSI (инженерные единицы).

Это еще не  все. Далее мы рассмотрим все тоже самое, но относительно аналоговых модулей, которые не имеют функции настройки диапазона измерения.

В данном случае мы можем выбрать диапазон сигнала только  0...10 V или +/- 10 V, в зависимости от типа аналогового модуля.

Настройка модуля аналогового ввода

Далее все делаем по аналогии с предыдущим примером.

Переходим на вкладку IO tags, добавляем переменную типа Integer , которая будет хранить измеренное значение датчика.

Создаем функцию преобразования аналогового значения, добавляем переменные.

TIA Portal Создаем переменные

Пишем для нашей функции следующий код.

TIA Portal Функция преобразования аналогового значения

Вызываем нашу функцию и присваиваем значения.

Вызов функций и назначение ввода-вывода в TIA Portal

Заключение

При использовании датчиков с нестандартным диапазоном измерения, более удобно использовать модули с настраиваемым диапазоном. Такие модули не только проще настроить, но, что более важно, они обеспечивают более высокую точность измерения.

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

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

Комментарии

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>