В этой статье мы поговорим об обработке аналоговых входных сигналов в ПЛК и о том, как мы можем обрабатывать эти сигналы в процессе автоматизации.
Содержание:
- Что такое аналоговые входные сигналы?
- Обработка аналоговых входных сигналов в S7-1200 и 1500.
- Обработка аналоговых входных сигналов в S7-300 и 400.
- Что лучше всего подходит для управления? – аналоговые или цифровые сигналы
- Заключение.
Что такое аналоговые входные сигналы?
Прежде чем мы углубимся в обработку аналоговых входных сигналов в TIA Portal, давайте сначала разберемся с аналоговыми входами.
Любой системе автоматизации нужны входные сигналы для понимания состояния процесса, чтобы иметь возможность принимать решения, которые будут поддерживать его работу и стабильность. Эти входные сигналы являются либо дискретными, либо цифровыми входными сигналами, которые имеют форму значений 0 или 1. Другой тип входа – аналоговые сигналы.
Аналоговый сигнал — это просто непрерывное представление физической величины в вашей системе, поэтому, если вам нужно контролировать температуру или давление в вашем процессе, аналоговый сигнал даст вам непрерывные и мгновенные значения, которые соответствуют реальным изменениям физической величины.
Аналоговые сигналы предоставляются во многих стандартных формах, но чаще всего это 0–10 В или 4–20 мА. Это будет зависеть от типа используемого вами аналогового датчика, а также от типа аналогового модуля ПЛК, который вы можете использовать.
Предположим, что аналоговый датчик давления имеет диапазон измерения 0–10 бар и выход в форме 4–20 мА. Обычно аналоговый сигнал будет иметь линейную зависимость между измеренной физической величиной и соответствующим выходом.
Это означает, что если датчик измеряет 0 бар, он выдаст сигнал 4 мА, а если он измеряет 10 бар, он выдаст сигнал 20 мА, и то же самое между ними также будет линейным. См. рисунок 1.
Рисунок 1 – Аналоговое представление сигнала.
ПЛК по-прежнему не может понять 4-20 мА физической величины, и здесь вступает в дело аналоговый модуль ПЛК. Аналоговый модуль выполнит еще одно преобразование этого представления, чтобы ПЛК мог его фактически понять.
Аналоговый модуль преобразует аналоговые измерения мА в цифровые значения, которые зависят от типа модуля, но для ПЛК Siemens эти значения всегда находятся в диапазоне 0 – 27648. Таким образом, если датчик измеряет 0 бар, выходной сигнал будет равен 4 мА, и он будет преобразован в 0-е значение внутри ПЛК. См. рисунок 2.
Рисунок 2 – Аналогово-цифровое преобразование входного сигнала
ПЛК затем преобразует значения 0-27648 в эквивалентное физическое измерение в зависимости от вашего программирования, к которому мы вернемся позже. См. рисунок 3.
Рисунок 3 – Масштабированное измеренное значение внутри ПЛК.
Аналоговая обработка температур совершенно иная, поскольку поведение датчика температуры с физическими изменениями не линейно, как у датчика уровня или давления. Вот почему существуют стандартизированные таблицы для различных типов датчиков температуры, которые сообщают, какая температура соответствует какому значению датчика.
Вот почему при измерении температуры вы должны выбрать специальные типы входных модулей вашего ПЛК, где эти стандартные таблицы определены внутри, и вы напрямую получаете значение температуры, соответствующее измерению датчика.
Вот почему вы не можете найти датчик температуры, на котором написан диапазон измерения напряжения или тока. Вы найдете только написанный тип датчика, например, PT100, PT1000, KTY84, PTC и т. д.
Обработка аналогового ввода в S7-1200 и 1500
Чтобы увидеть, как мы обрабатываем аналоговые сигналы в современных ПЛК семейства S7, давайте начнем с создания нового проекта и добавления ЦП S7-1200. Мы также добавим модуль аналогового ввода/вывода. См. рисунок 4.
Рисунок 4 — Добавление модуля аналогового ввода.
Теперь давайте определим наш тег входного сигнала, предположим, что датчик давления может измерять давление от 0 до 10 бар и выдает соответствующий сигнал от 4 до 20 мА.
Мы определим этот входной сигнал в первых тегах входного модуля. См. рисунок 5.
Рисунок 5 — Определение тега входного сигнала.
Как мы уже говорили, входной модуль может работать с различными входными сигналами, будь то 0–10 В или 4–20 мА, поэтому нам нужно назначить правильную конфигурацию для нашего датчика.
Как мы уже говорили, сигнал давления подается в форме 4–20 мА, поэтому мы настроим наш входной канал на него. Смотрите рисунок 6.
Рисунок 6 – Настройка входного канала
Теперь, когда мы закончили часть конфигурации оборудования, мы начнем программировать наш код обработки. Для этого мы создадим функцию FC, чтобы мы могли повторно использовать ее каждый раз, когда у нас есть аналоговый сигнал для обработки. Внутри этого FC мы создадим логику, которая будет обрабатывать аналоговый сигнал и преобразовывать его в физическое измеренное значение.
В TIA Portal есть предопределенные инструкции, которые мы можем использовать для этого, эти инструкции — инструкции NORM_X и SCALE_X. Смотрите рисунок 7.
Рисунок 7 – Инструкции NORM_X и SCALE_X
Как вы можете видеть, NORM_X нормализует аналоговый вход в значение от 0 до 1, а затем SCALE_X будет использоваться для масштабирования этого нормализованного значения в диапазоне измеренного физического значения, которое в случае нашего датчика составляет от 0 до 10 бар.
Мы использовали функцию FC вместо того, чтобы писать наш код непосредственно в главном OB1, чтобы сделать наш код пригодным для повторного использования с любым аналоговым сигналом. Каждый раз, когда у меня есть новый аналоговый входной сигнал, я просто перетаскиваю блок FC в наш главный OB1 и просто записываю связанные параметры требуемого входа. Смотрите рисунок 8.
Рисунок 8 – Перетащите свой FC.
Когда вы перетаскиваете FC в свой главный OB1, вам будет предложено указать связанный параметр этого вызова функции.
В нашем случае входной сигнал — это датчик давления, а ScaledMIN и ScaledMAX — это диапазон значений измерения 0–10 бар. Смотрите рисунок 9.
Рисунок 9 — Назначение параметров функции нашему датчику давления.
Если у меня есть новый аналоговый вход, то мне не придется заново создавать логику ПЛК, я просто перетащу FC в главный OB1 и назначу новые параметры датчика.
Предположим, что теперь у нас есть новый аналоговый датчик для измерения уровня внутри резервуара с водой от 0 до 100 % резервуара. Мы выполним те же шаги, что и раньше, начав с определения нового входного тега. Смотрите рисунок 10.
Рисунок 10 — Определение нового датчика уровня
Далее мы настроим входной канал для датчика уровня, как на рисунке 6. Мы предположим ту же конфигурацию.
Далее мы просто перетащим созданный нами FC и просто назначим параметры датчика уровня. Смотрите рисунок 11.
Фото 11 – Повторное использование FC с датчиком уровня.
Как вы можете видеть на предыдущем рисунке, это одно из многих преимуществ использования функций FC в вашей логике, поскольку это помогло сократить объем программирования, который мы сделали.
Теперь у вас есть универсальный код, который можно многократно использовать с любым входным аналоговым сигналом, который вам может понадобиться в вашем проекте ПЛК.
Смотрите следующую симуляцию обработки входных сигналов в ПЛК Siemens.
Аналоговые входы в S7-300 и S7-400
Чтобы увидеть, как мы обрабатываем аналоговые сигналы в старых ПЛК семейства S7, таких как S7-300, давайте начнем с создания нового проекта и добавления ЦП S7-300.
Выбранный ПЛК уже имеет достаточно каналов аналогового ввода, поэтому мы не будем добавлять аналоговые модули. См. рисунок 12.
Фото 12 — Добавление ПЛК S7-300.
Затем мы определим новый тег аналогового датчика, предположим, что это датчик давления с диапазоном измерения от 0 до 100 бар и выходом 4–20 мА.
Мы настроим входной канал ПЛК, как мы делали это ранее с S7-1200, чтобы он соответствовал нашему датчику аналогового ввода. См. рисунок 13.
Фото 13 — Настройте входной канал.
Теперь к части кодирования ПЛК: инструкция в s7-300, которая используется для обработки аналоговых сигналов, отличается от s7-1200.
В ПЛК S7-1200 мы должны использовать NORM_X и SCALE_X. но в S7-300 у нас нет нормализованной инструкции, используется только инструкция SCALE. Смотрите рисунок 14.
Рисунок 14 – Инструкция SCALE в S7-300
Как вы можете видеть на предыдущем рисунке, инструкция SCALE в S7-300 в некотором роде похожа на инструкции NORM_X и SCALE_X, объединенные вместе. Есть еще одно явное отличие, а именно вход BIPOLAR.
Вход BIPOLAR используется для указания того, следует ли интерпретировать значение параметра IN как биполярное или униполярное. Параметр может принимать следующие значения:
- BIPOLAR = 1, тогда предполагается, что входное целочисленное значение находится в диапазоне от -27648 до +27648. Например, когда аналоговый датчик выдает нам выходной сигнал в диапазоне от -10 В до +10 В
- BIPOLAR = 0, то предполагается, что входное целочисленное значение находится в диапазоне от 0 до 27648. Например, когда датчик выдает нам выходной сигнал в диапазоне 0-10 В
И это просто как обрабатывать аналоговые входные сигналы в ПЛК S7-1200 и S7-300.
Что лучше для управления? — Аналоговые или цифровые сигналы
Послушайте, оба сигнала важны и полезны для любой системы автоматизации, но я лично предпочитаю использовать аналоговые сигналы, если могу, потому что наличие аналоговых сигналов измерений для физических величин процесса даст мне непрерывный мониторинг параметров процесса, что позволит мне лучше отслеживать и контролировать мой процесс.
Кроме того, наличие непрерывного мониторинга параметров позволит мне устанавливать различную логику управления для различных значений сигнала, это упростит наличие диапазона значений для управления процессом и других диапазонов значений для аварийных сигналов и предупреждений об отклонении процесса от нормальной работы.
Заключение
- Аналоговый сигнал — это непрерывное представление физической величины в вашей системе.
- Аналоговые входы чаще всего предоставляются в диапазоне 0–10 В или 4–20 мА.
- Аналоговая обработка сигнала означает преобразование аналогового сигнала 4–20 мА в диапазон значений, который соответствует реальной физической величине и который может понять ПЛК.
- В современном семействе ПЛК S7, например S7-1200, обработка аналоговых сигналов выполняется с помощью инструкций NORM_X и SCALE_X.
- В более старом семействе ПЛК S7, например S7-300, обработка аналоговых сигналов выполняется с помощью инструкции SCALE, которая по сути является комбинацией инструкций NORM_X и SCALE_X.