Типы входов/выходов автоматики: Ток (4..20 мА), Напряжение (0..10V). Генератор сигналов 0..10/4..20 для тестов

Число просмотров: 1 135 

УРА! Данный пост написан всем в помощь, и я буду не против, если его кто-то решит опубликовать у себя (не забудьте уведомить меня об этом согласно правилам публикации!).

Модули аналогового вывода ОВЕН в силовом щите (управление освещением)

Модули аналогового вывода ОВЕН в силовом щите (управление освещением)

В этом посте я продолжу тему входов-выходов, которую затронул в прошлом посте про выходы типа «СК» (сухой контакт) и «ОК» (Открытый коллектор). Те выходы можно было назвать дискретными: они либо имеют сигнал (нагрузка включена, кнопка нажата, датчик сработал), либо не имеют его (нагрузка отключена, кнопка не нажата, датчик не сработал). Сегодня я расскажу свои небольшие наработки по аналоговым входам и выходам, которые используются для измерения разных величин с датчиков (температура, давление, влажность и так далее).

Дело в том, что я стал использовать разные датчики ОВЕН в своих проектах и хочу рассказать про них в будущих постах. А чтобы рассказ был понятнее — то мне надо рассказать про аналоговое IO в этом посте. Если вы хотите почитать про ПЛК (самый первый пост — вот тут), то гляньте тэги «ОВЕН» или «ПЛК», где вы найдёте много полезных постов по этой же теме.

Ещё я хочу вас предупредить о том, что я в этой сфере начинающий специалист, и поэтому этот пост может быть слишком примитивен и не учитывать разные глубокие нюансы и особенности. Я в этом посте хочу собрать воедино мой личный опыт и сделать этот пост простым руководством для тех, кто впервые видит датчик давления на 10 атмосфер с «каким-то» непонятным выходом в 4..20 мА и не знает, что с этим делать и как получить искомые атмосферы. Вот вместе мы и будем разбираться!

1. Общие сведения об аналоговом IO. Сигналы и их применение.

Вы уже много раз встречали у меня (или в документации на ПЛК или логические реле) слова «дискретные входы-выходы» и «аналоговые входы-выходы». Что это такое? А всё просто: в дискретных входах-выходах сигнал (напряжение, работа реле) или есть, или нет: датчик сработал, лампочка включена, кнопка нажата, кнопка не нажата, вода открыта — и так далее.

Но ведь таким способом не передашь уровень освещения, уровень скорости работы двигателя или значение давления воды с датчика! Да, кое-где (например в дачных насосных станциях) можно поставить простое реле давления, которое будет выдавать сигнал «Давление ниже нормы» и включать насос для подкачки. Но что делать, когда давление надо измерять? А когда надо регулировать что-то очень точно (тут я вспомнил как мне Bayk до 3 ночи ПИД-регулятор матерно объяснял и глупо ржу сижу)? Тут дискретный сигнал «Давление ниже нормы» не подходит!

Вот здесь нас и выручают аналоговые входы-выходы! Их идея в том, что наши датчики (или другие устройства) используют величину напряжения или силы тока, чтобы показать нам уровень сигнала, который они измеряют. Скажем, если давление 4 bar — то датчик выдаст напряжение в 3,22 вольта. Наше дело это напряжение измерить и по измерению понять, что же наш датчик показывает.

Для тех, кто занимался электроникой, сразу становится всё понятно: ставим на входе АЦП (аналого-цифровой преобразователь), на выходе ЦАП (цифро-аналоговый преобразователь) — и получаем нужные напряжения. То есть, датчик выдаёт какое-то напряжение, АЦП его измеряет, преобразуя в числовое значение — и мы будем знать величину нашего давления в цифрах.

И вот тут у вас (как и у меня, когда я это изучал) возникнут вопросы примерно такого вида:

  • Так ведь АЦП, которые измеряют напряжение с датчика, и сами датчики, которые это напряжение выдают, будут иметь заводской разброс параметров. Это что? Надо каждый раз всю схему подстраивать под датчик?
  • Разные производители датчиков могут выдумывать свои уровни сигналов. Кто-то будет выдавать от 0 до 5 вольт, кто-то от 0 до 3 вольт, кто-то от 3 до 12 вольт. Как быть? Каждый раз изобретать, калибровать и настраивать свою схему?
  • Ведь напряжение может падать из-за сопротивления проводов, по которому оно идёт между датчиком и измерителем. Как быть? Надо как-то это всё корректировать?
  • Что? В каждом ПЛК такой геморрой? Нее, я лучше даже связываться с ПЛК не буду!

Беспокоиться не надо! Как раз для того, чтобы таких вопросов не возникало, в мире придуманы два СТАНДАРТА сигналов аналоговых входов и выходов: Напряжение (обычно 0..10V) и Ток (обычно 4..20 мА). Все устройства (входы-выходы, датчики, исполнительные механизмы) стандартизированы под такие сигналы, и разработчики ПЛК и щитов автоматики оперируют уже этими сигналами высокого уровня, не заморачивась над тем, что происходит внутри электроники самого датчика.

И, конечно же, все такие устройства проходят калибровку и настройку на заводе! Если купить модуль аналоговых входов (.8А) от ОВЕНа (напоминаю пост про модули IO от ОВЕНа), то к нему будет приложен паспорт с текстом и печатью вида «Юстировка выполнена ДД.ММ.ГГГГ. Иванов И.И.». Для датчика (например, давления) в его паспорте будет такая же запись: что он поверен и точно настроен.

Как работают такие сигналы? Как ими обозначить реальные значения с датчика давления, например от 0 до 25 bar? Всё очень просто: на уровне пропорций и процентов! Если наш датчик выдаёт сигнал в виде 0..10V, то 0 bar — это 0 вольт, а 25 bar — это 10 вольт. Дальше школьник высчитает нужное значение давления через напряжение, которое выдаёт датчик (задачка на решение пропорций или процентов). Например, если датчик выдаёт 4,25 вольта, то его давление будет равно (4,25 V x 25 bar) / 10 V = 10,625 bar.

А чтобы вам не заниматься такими расчётами в ваших программах, у многих ПЛК (и у ОВЕН, конечно же) есть настройки для каждого из аналоговых входов, при помощи которых можно задать верхний и нижний предел измерения входа. Дальше ПЛК (или модуль входов) сам всё рассчитает, и вы будете получать значение СРАЗУ в той величине, которую измеряет датчик: литрах, атмосферах, барах, градусах. Здорово?

А теперь тезисами собираем все сведения в кучу:

  • Аналоговым IO (Input-Output: Ввод-Вывод или Входы-Выходы) называется тип сигналов, где эти сигналы меняются пропорционально измеряемой физической величине;
  • Аналоговые IO обозначают как AI (Analog Input) или AO (Analog Output). Для себя я в маркировке щитов (все посты про маркировку) принял обозначение «AQ», подсмотренное в ПЛК от Siemens: буква «Q» лучше видна глазу в обозначениях, чем буква «О». Сравните: «AO09» и «AQ09»;
  • Большинство аналогового IO преобразуется в стандартные сигналы: Напряжение (0..1V, 0..10V, 1..10V, -1..+1V) или Ток (4..20 мА, 0..20 мА, 4..25 мА, 0..25 мА). Схемы подключения этих сигналов в большинстве случаев тоже стандартны, так что обычно никаких внешних электронных компонентов не требуется. В некоторых случаях может потребоваться резистивный делитель: если напряжение 0..10V надо запихать на вход, рассчитанный на напряжение 0..1V (такой пример мы рассмотрим);
  • Выходы аналоговых сигналов могут быть Активными (питание для них не требуется, оно берётся от питания самого устройства) или Пассивными (для них требуется отдельное питание);
  • Обычно Токовые сигналы используются для входов, так как ток в последовательной цепи (блок питания, датчик, сопротивление проводов, АЦП) всегда постоянный: тогда длина кабеля будет меньше влиять на показания. Сигналы напряжения обычно используются для выходов (управление освещением, вентиляционными заслонками, термоголовками Oventrop на коллекторах отопления): небольшая погрешность там обычно не важна, а напряжение удобно: 0 вольт = 0%, 10 вольт = 100%;
  • Считается что такие стандартные сигналы ещё и линейны и прямо пропорциональны величине, поэтому их легко привести к процентам: 4 мА — это 0%, 20 мА — это 100%. Значит 12 мА — это 50% величины датчика;
  • Аналоговые входы у большинства производителей имеют настройки, при помощи которых можно сразу пересчитать входной сигнал из абстрактных токов или напряжений в ту величину, которую измеряет датчик: мы задаём минимальное и максимальное значение величины датчика, а модуль нам возвращает не уровень вольт, а сразу точную величину в единицах измерения датчика, например в барах или атмосферах. Такая настройка называется «Масштабирование»;
  • Обычно аналоговый вход в ПЛК (модуле IO, логическом реле) настраивается ОДИН РАЗ на этапе разработки программы и самого ПЛК, а потом эти настройки не меняются. За счёт стандартизации сигналов взаимозаменяемость датчиков будет полной, если новый датчик будет иметь тот же тип сигнала и тот же диапазон измерений. Например, если у вас сдох датчик давления с выходом 4..20 мА и диапазоном 0-10 атмосфер — то вам достаточно найти датчик с такими же характеристиками у ЛЮБОГО произодителя — и он подойдёт без проблем.
    А если у нового датчика диапазон будет 0-20 атмосфер, то вот тут будет проблема: надо будет изменять настройки измерительного модуля на этот датчик (задавать другой верхний предел). Модули ОВЕН Мх110 (с RS-485) не имеют никаких паролей, и их можно легко перенастроить даже не имея исходников проекта на ПЛК. А вот с ПР, ПЛК и модулями Мх210 такое может не прокатить: понадобятся исходники проекта, а модули Мх210 ещё и запаролить можно;
  • Все аналоговые сигналы следует передавать по экранированным кабелям (внутри щита допускается использование обычных проводов на коротких трассах там, где они не пересекаются с силовыми линиями) и защищать предохранителями небольших номиналов. Я использую кабели типа МКЭШ (Э — экранированный, вот пост про них) и клеммы с предохранителями.

Я буду приводить примеры на устройствах ОВЕНа: ПЛК, модулях ввода-вывода и ПРках. У ОВЕНа (все посты про ОВЕН) все настройки входов-выходов стандартизированы по параметрам и подключениям, поэтому с их продукцией так легко разбираться. У Siemens Logo (все посты про Logo), наоборот полная фигня: там ты получаешь значение от -32767 до +32768 и должен сам всё масштабировать, как дурак. Это очень плохо и убого.

2. Сигналы типа «напряжение» (0..10V и другие).

По мне сигналы 0..10V — самые простые в плане настроек и подключений, поэтому мы с них и начнём! Такие сигналы чаще всего используются в управлении освещением (0-100% яркости) или заслонками вентиляции (0-100% открытия). Один раз за свою практику я встречал датчик освещённости с таким выходом (для проекта щита на ОВЕН в Митино).

Сначала поговорим о выходах. Выходом может быть как выход устройства (датчика), так и один из аналоговых выходов ПЛК, ПРки или модуля IO. На верхнем рисунке приведена схема для пассивного выхода (со своим питанием), а на нижнем — для активного (питание выхода берётся от питания устройства):

Общие схемы подключения аналоговых выходов 0..10V

Общие схемы подключения аналоговых выходов 0..10V

Так как сигнал 0..10V — это обычное напряжение постоянного тока, то для подключения такого выхода может быть куча вариаций:

  • Устройство или датчик формирует это напряжение и выдаёт его в виде двух клемм (плюса и минуса). Это у нас активный выход, минус которого в том, что выходной сигнал НЕ развязан от питания устройства (хотя это надо уточнять: в некоторых может быть встроенная развязка);
  • В самой краткой форме, которая у меня не показана, GND (минус выхода) может быть связан с минусом питания, и тогда устройство или датчик будет иметь всего три контакта: Плюс питания (VCC), Плюс выхода (OUT), Общий минус (GND). Вот тут уж точно никакой развязки по выходу не будет. Пример такого устройства — диммерные модули DDL04R (DDL24) от компании RazumDom, про которые я писал.
  • В пассивных выходах почти всегда есть развязка (позже я дополню пост про модули ввода-вывода ОВЕНа фотками, где видно что на каждый выход там стоит отдельный ЦАП с развязкой по оптопарам), но им требуется отдельное питание на каждый выход. Зато это питание может быть с разных блоков питания, никак не связанных между собой: один выход — с одного блока, другой с другого блока. Это повышает надёжность системы: если вышибет один выход, то остальные будут работать.
  • Для некоторых выходов нужно внешнее сопротивление нагрузки (обычно для пассивных выходов), номинал которого указан в инструкции (1-2 кОм). Это сопротивление нужно для правильной работы выхода, чтобы ЦАП мог корректно формировать нужное напряжение: устройства, управляемые аналоговыми выходами, имеют очень высокое входное сопротивление и для ЦАП будут выглядеть как неподключенная нагрузка, из-за чего он будет путаться и выдавать не то. Вот тут и нужен дополнительный резистор нагрузки. Не забудьте заложить эти резисторы в щит (я использую клеммы на DIN-рейку, куда вставляю эти резисторы).
  • Ещё крайне важно защищать такие выходы (или их питание) от замыкания и перегрузок, чтобы их не спалить. Вы можете использовать предохранители на небольшие токи (напоминаю, что я использую клеммы с предохранителями).

Со входами 0..10V обычно нет проблем по подключению, так как напряжение 0..10V надо подать на исполнительный механизм (диммер, заслонку, термоголовку и так далее) или на аналоговый вход ПЛК/ПР/Измерительного модуля.

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

Общие схемы подключения аналоговых сигналов 0..10V к устройствам

Общие схемы подключения аналоговых сигналов 0..10V к устройствам

Тезисы по этим схемам будут такими:

  • Если устройство имеет развязанный вход или своё питание (вообще, например, от сети 230V) — то чаще всего вход 0..10V будет представлен двумя контактами: Плюсом (+, IN) и Минусом (-, GND). К ним и надо подключать сигнал, соблюдая полярность.
  • Если входов у устройства будет много, то производитель может сделать им общий минус, GND — это нормально.
  • Иногда производитель может объединить один из входов питания устройства (минус) вместе с минусом входа 0..10V (это показано на второй схеме). Это тоже нормально и часто используется в заслонках вентиляции Belimo или термоголовках Oventrop 0..10V, причём с питанием переменного тока AC 24V! Всё нормально работает, проверено!
    ВАЖНО: В этом случае надо обязательно обратить внимание на то, чтобы питание выхода или питание устройства были развязаны между собой! Например, вы можете запитать привод Belimo через трансформатор на 24V DC или отдельный блок питания (у Belimo универсальное питание: AC/DC 24V), или можете использовать выход 0..10V с развязкой по питанию (как во всех устройствах ОВЕН).

Что делать, если в инструкции на модуль ввода вы читаете «0..1V» (или даже -1..+1V), а не «0..10V», а ваш сигнал — стандартные 0..10V? Использовать вспомогательный делитель 10:1. У ОВЕНа он называется «РД10» (ссылка на сайт) и продаётся готовым, а я срисовал его схему:

Схема делителя напряжения (ОВЕН РД-10) для преобразования 0..10V к 0..1V

Схема делителя напряжения (ОВЕН РД-10) для преобразования 0..10V к 0..1V

Через такой делитель вы можете подключать сигналы 0..10V ко входу измерительного модуля 0..1V!

Давайте посмотрим на то, как подключаются стандартные устройства от ОВЕН.

Начинаем с модуля аналоговых вводов ОВЕН МВ110-224.8А (RS-485, напоминаю ещё раз ссылку на пост про модули ввода-вывода ОВЕН). Его входы принимюет напряжение 0..1V, поэтому тут обязательно будет требоваться делитель для 0..10V!

Входное напряжение подаётся плюсом на клемму AIx-2, а минусом — на AIx-1 (x — номер входа). Если у вас несколько входов с общим минусом — то минусы от AIx-1 можно соединять вместе и даже вешать на GND.

Схема подключения датчика 0..1V к модулям ОВЕН Мх110

Схема подключения датчика 0..1V к модулям ОВЕН Мх110

Модуль универсальных аналоговых входов ОВЕН МВ210-101 (с Ethernet) имеет универсальный вход для напряжения и тока, в котором установлен шунтирующий резистор (про его назначение мы поговорим в разделе токовых сигналов 4..20 мА). Этот резистор надо отключить и подать наше входное напряжение так же, как и в Мх110: плюс входа подаётся на AIx-2, минус — на AIx-1. Входы этого модуля также принимают напряжение -1..1V, поэтому и тут обязательно будет требоваться делитель для 0..10V!

Схема подключения датчика 0..1V к модулям ОВЕН Мх210

Схема подключения датчика 0..1V к модулям ОВЕН Мх210

А вот в программируемых реле ПР200 (напоминаю пост про эти ПРки: ПР200 и ПР102) универсальные входы сделаны так, что они будут принимать сигнал 0..10V уже напрямую — без делителя. Ура!

Так как входы в ПР200 универсальные, то их надо настроить на 0..10V, переставив перемычки внутри корпуса ПР200 так, как это показано в инструкции (картинка взята из поста про ПРки):

Схемы подключения аналоговых входов ОВЕН ПР200 (сопротивление, ток, напряжение)

Схемы подключения аналоговых входов ОВЕН ПР200 (сопротивление, ток, напряжение)

А потом уже подключать наши входы напрямую. Тут минусом является контакт COMx, а плюсами — контакты AIx:

Схема подключения датчика 0..10V к реле ОВЕН ПР200

Схема подключения датчика 0..10V к реле ОВЕН ПР200

А в ПР102 и ПР103 входы также принимают 0..10V напрямую без проблем:

Схема подключения датчика 0..10V к реле ОВЕН ПР102

Схема подключения датчика 0..10V к реле ОВЕН ПР102

Подключение всех выходов 0..10V в ОВЕНа стандартное для почти всех его приборов. И они все имеют развязку и являются пассивными: им нужно отдельное питание. Если ваш проект простой — то вы можете взять питание от того же источника, от которого питается сам модуль выходов (если это напряжение укладывается в допустимое для питания выхода). Если же проект сложный и нужны развязки — то для каждого выхода можно поставить свой блок питания.

Вот так подключается каждый из выходов модуля МУ110-224.6У (6 выходов 0..10V). Тут выдаются уже честные 0..10V, которые никуда преобразовывать не надо.

Схема подключения выхода 0..10V для модулей ОВЕН Мх110

Схема подключения выхода 0..10V для модулей ОВЕН Мх110

Точно так же подключаются выходы 0..10V на реле ОВЕН ПР200:

Схема подключения выхода 0..10V для реле ОВЕН ПР200

Схема подключения выхода 0..10V для реле ОВЕН ПР200

Где я применяю такие выходы или входы? Вход 0..10V я применял один раз — на хитром датчике освещённости, который выдавал уровень света в виде этого сигнала. Там мне пришлось ставить делитель и приводить этот сигнал к уровням 0..1V.

А вот выходы 0..10V я применяю теперь почти в каждом проекте для управления освещением или (иногда) вентиляционными заслонками типа Belimo (и аналогов) и термоголовками Oventrop (и аналогов).

Освещением можно управлять при помощи диммеров Finder 15.11.8.230.0400 (они до сих пор нормально поставляются даже после санкций — читайте пост про выставку Электро-2022). Эти диммеры я очень люблю: они могут управлять лампами накаливания и светодиодными лампами, а принимают на вход те самые 0..10V:

Диммеры Finder 15.11.8.230.0400 для управления освещением по 0..10V и резисторы нагрузки аналоговых выходов

Диммеры Finder 15.11.8.230.0400 для управления освещением по 0..10V и резисторы нагрузки аналоговых выходов

Если ваше освещение светодиодное (лента или другие светильники) — то вы можете управлять им при помощи специальных драйверов или блоков питания с сигналом 0..10V (обратитесь в ArLight — у них много разных вариантов).

Например, один из моих заказчиков попросил регулировать яркость квадратных светильников. Мы взяли драйвер с 0..10V, и я быстренько написал на ПРке простейшую программу, которая с экрана вводит процент яркости (0-100) и выдаёт его через аналоговый выход на светильник (на фотке видно резистор нагрузки, стоящий на выходе). Всё работает!

Пример применения сигнала 0..10V: управление яркостью LED-светильника

Пример применения сигнала 0..10V: управление яркостью LED-светильника

В этой схеме драйвер имеет отдельные контакты «+» и «-» для подключения сигнала 0..10V, а питается от 230V AC.

Та же самая ПРка подошла для тестирования работы термоголовок Oventrop с управлением 0..10V (когда-нибудь я напишу про них пост; если кто может подарить одну на издевательства и на разломать — пост выйдет быстрее).

Пример применения сигнала 0..10V: управление термоприводом Oventrop

Пример применения сигнала 0..10V: управление термоприводом Oventrop

У термоголовок Oventrop питание должно быть ТОЛЬКО 24V ПЕРЕМЕННОГО ТОКА, и поэтому их подключение похоже на привода Belimo и ту схему подключения входа 0..10V, где один провод является общим для питания и входа. Распиновка привода Oventrop такая: Синий — общий питания и минус входа 0..10V; Чёрный — Питание AC 24V; Красный — вход 0..10V для управления.

На фотке есть ОШИБКА: привод питается от 24V DC. И он не будет ни фига работать, а будет вечно стоять в открытом состоянии: там симисторное управление, и симистор на постоянном токе не закрывается, не отключая нагреватель привода. Переснять этот кадр я не смог (привод уехал к заказчику), поэтому будет такая вот фотка и тест на внимательность ;)

И вот на 50% мы видим, как наш привод приоткрывает шток клапана регулировки подачи воды в радиатор отопления:

Пример применения сигнала 0..10V: управление термоприводом Oventrop (работа привода)

Пример применения сигнала 0..10V: управление термоприводом Oventrop (работа привода)

3. Сигналы типа «ток» (4..20 мА и другие).

Сигналы 4..20 мА даются мне хуже в плане примеров чем ими можно управлять. Я чаще всего использую эти сигналы как входы от датчиков разного типа (давления, уровня и так далее). Собственно, удобнее всего применять эти сигналы как раз для входов, так как здесь постоянным является ток, а не напряжение. А ток в последовательной цепи всегда одинаков, и все такие выходы и устройства устроены таким образом, что на величину тока не влияет сопротивление кабелей: а это важно, если мы подключаем датчик, который измеряет какую-нибудь физическую величину (давление, например). Это и есть главное достоинство токовых сигналов, и именно поэтому их чаще всего и используют для подключения датчиков.

Этот стандарт менее жёсткий, чем 0..10V. Тут могут быть такие вариации диапазонов:

  • 4..20 мА (стандарт);
  • 0..20 мА;
  • 4..25 мА;
  • 0..5 мА.

Обычно модуль ввода-вывода имеет настройку под нужный диапазон сигнала.

Со стороны выхода всем рулит ЦАП, который выдаёт и сам же измеряет выдаваемый ток, поддерживая его на заданном уровне (стабилизатор тока, говоря простым языком — как для светодиодов в освещении). Для нас это значит что если датчик хочет выдать в линию ток в 9,775 мА — то он его выдаст вне зависимости от длины кабеля до датчика (конечно, в разумных пределах, которые будут описаны в инструкции на датчик и измерительный модуль: не ленитесь туда заглядывать).

А как измерить ток? Просто: поставить на его пути резистор (сопротивление, шунт) и измерить падение напряжения на этом резисторе. Если мы подберём такой хитрый резистор, на котором при токе через него в 20 мА будет падать ровно 1 вольт, то напряжение с этого резистора можно будет подать на вход модуля .8А, который как раз-таки и умеет мерить напряжение в диапазоне 0..1V (я рассказал про это в разделе 0..10V). Ну-ка, подсчитаем такой резистор по закону Ома: R = U/I = 1/0.02 = 50 Ом.

Так как у нас все схемы токовых входов и выходов всегда соединяются последовательно, то я нарисовал их вот так:

Общие схемы подключения аналоговых сигналов 4..20 мА (входы-выходы)

Общие схемы подключения аналоговых сигналов 4..20 мА (входы-выходы)

А теперь даю комментарии по ним:

  • По аналогии с выходами напряжений (Активные и Пассивные) выходы тока можно поделить на те, которые сразу же питают устройство (верхняя схема) и на те, которые сразу выдают выходной ток, а устройство имеет отдельные входы для питания.
    Выходы сразу с питанием чаще всего используются именно в датчиках давления, у которых всего два контакта для подключения: Плюс и Минус. Выходы без питания используются, например, в частотниках, которые питаются от сети, а не от выхода, конечно же.
  • Самое ОПАСНОЕ — это шунтирующий резистор. Посмотрите на верхнюю схему: если резистор отключится, то на вход измерителя может попасть полное напряжение питания, спалив его нахрен. Поэтому во многих моделях устройств (в том числе в ПРххх, в модулях ввода-вывода линейки Мх210) этот резистор может быть встроен внутрь схемы, чтобы заботливые руки монтажников его не открутили.
  • Так как кабели имеют сопротивление, как и любые другие проводники, то здесь будет важно сечение жил кабелей: если из-за малого сечения сопротивление кабеля будет слишком большим — то ЦАП не сможет обеспечить нужный нам ток, и всё будет врать и показывать вместо давления в атмосферах статистику миграции ушастой совы в корелляции с высотой травы в соседней галактике.

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

Общие схемы подключения аналоговых выходов 4..20 мА

Общие схемы подключения аналоговых выходов 4..20 мА

Входы типа «ток» у ОВЕНа подключаются более-менее стандартно. Самая классическая схема — у модуля универсальных аналоговых входов МВ110-224.8А (RS-485). Здесь-то и используется шунтирующий резистор, про который я говорил выше:

Схема подключения датчика 4..20 мА к модулям ОВЕН Мх110

Схема подключения датчика 4..20 мА к модулям ОВЕН Мх110

В инструкции на модуль даже показано, что этот резистор надо ставить непосредственно на клеммы модуля и жёстко его туда паять, а не подсовывать. Я делаю немного по другому: монтирую этот резистор на клеммы в щите и соединяю проводами.

Правило монтажа шунтирующего резистора для сигналов 4..20 мА

Правило монтажа шунтирующего резистора для сигналов 4..20 мА

Для модуля универсальных аналоговых входов ОВЕН МВ210-101 (Ethernet) схема проще, так как шунтирующий резистор уже находится внутри модуля и его надо только включить переключателем.

Вот схема для датчика с питанием от цепи измерения:

Схема подключения датчика 4..20 мА к модулям ОВЕН Мх210 (пассивный датчик)

Схема подключения датчика 4..20 мА к модулям ОВЕН Мх210 (пассивный датчик)

А вот схема для датчика с отдельным питанием:

Схема подключения датчика 4..20 мА к модулям ОВЕН Мх210 (активный датчик)

Схема подключения датчика 4..20 мА к модулям ОВЕН Мх210 (активный датчик)

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

Схема подключения датчика 4..20 мА к реле ОВЕН ПР200 (вход)

Схема подключения датчика 4..20 мА к реле ОВЕН ПР200 (вход)

А для ПР102 или ПР103 имеется отдельный вход для тока (и также встроенный шунтирующий резистор):

Схема подключения датчика 4..20 мА к реле ОВЕН ПР102 (вход)

Схема подключения датчика 4..20 мА к реле ОВЕН ПР102 (вход)

Выходы 4..20 мА на примере модуля ОВЕН МУ110-224.8И (RS-485) подключаются по такой схеме (с ограничительным резистором):

Схема подключения выходов 4..20 мА к модулям ОВЕН Мх110

Схема подключения выходов 4..20 мА к модулям ОВЕН Мх110

И точно такая же схема подключения у ПР200:

Схема подключения выходов 4..20 мА к реле ОВЕН ПР200

Схема подключения выходов 4..20 мА к реле ОВЕН ПР200

В моих проектах я чаще всего использую датчики давления ОВЕН ПД100 (с резьбой 1/2″), которые как раз и имеют выход 4..20 мА. Эти датчики я использовал в проекте Папушево, чтобы мерить там давление в контуре котла и у себя дома. Сейчас я дописываю программу на серьёзный щит чуваку из Mail.Ru, где эти датчики будут стоять на куче мест в санузле.

Так как мои датчики тестовые и подключались на соплях, то я напаял шунтирующие резисторы прямо на провода от них:

Пример использования сигналов 4..20 мА: подключение датчиков давления ОВЕН ПД100

Пример использования сигналов 4..20 мА: подключение датчиков давления ОВЕН ПД100

А потом собрал вот такую конструкцию у себя в санузле (подробнее вы можете прочитать в посте Новостей):

Датчики давления ОВЕН ПД100 и индикаторы ОВЕН ИТП-10 в работе на моём санузле

Датчики давления ОВЕН ПД100 и индикаторы ОВЕН ИТП-10 в работе на моём санузле

Сами датчики — это круглые штучки с белой этикеткой снизу. А так как интерфейс 4..20 мА токовый, то этот ток позволяет питать ещё и индикаторные головки ОВЕН ИТП-1, которые меряют тот же ток и сразу отображают давление в bar с этих же датчиков по месту. Таким образом можно не дублировать датчик и манометр.

4. Нестандартное использование аналоговых входов.

Один читатель по мылу задал мне вопрос о том, можно ли использовать аналоговые входы в дискретном режиме. А на форуме ОВЕНа недавно справшивали, можно ли входом 0..10V отследить наличие переменного напряжение в 8 вольт. Эти вопрос заставили меня написать этот подраздел поста. Все советы дальше придуманы для входа 0..10V (0..1V).

Если очень хочется использовать аналоговый вход в дискретном режиме, то переведите его в режим измерения напряжения и сделайте делитель с 24V DC или другого напряжения:

Нестандартное применение аналогового входа 0..1V (0..10V): использование в дискретном режиме

Нестандартное применение аналогового входа 0..1V (0..10V): использование в дискретном режиме

Почему я так сделал, если можно перевести вход в режим измерения тока или сопротивления? А из-за того что обычно большинство входов активируются +24V (основным напряжением питания ПЛК). Особенно, если у нас сложилось так, что все входы имеют общий плюс (+24V) и по проводу на вход (кнопку или контактный датчик). Зачем здесь нарушать типовую схему и заводить ещё два провода для нашего дополнительного входа?

Тем более что мой вариант с делителем можно обвесить защитными диодами или варисторами, которые защитят его от всплесков напряжения, а вход в режиме измерения напряжения никогда не покажет аварию «обрыв», как будет со входом в режиме измерения сопротивления или тока. Также достоинство моей схемы в том, что без напряжения на входе этот вход будет закорочен нижним резистором в 200 Ом на минус, и на него не будут идти никакие наводки.

Отследить наличие переменного напряжения (есть-нет) можно двумя способами. Всё-таки, если у вас есть свободный дискретный вход, то не надо брать аналоговый: можно просто развязавть это напряжение через оптопару и активировать им дискретный вход как обычно (или аналоговый в дискретном режиме по приведённой выше схеме):

Нестандартное применение аналогового входа 0..1V (0..10V): отслеживание переменного тока в DI

Нестандартное применение аналогового входа 0..1V (0..10V): отслеживание переменного тока в DI

Я использовал такой приём в двух проектах на микроконтроллерах: в PowerDimmer, когда мне надо было отслеживать переход сетевого напряжения через ноль и в АвтоОткрывалке для старого подъездного домофона, где мне надо было отслеживать переменное напряжение, которое там появлялось, когда мне звонили в домофон.

Если же очень хочется задействовать для отслеживания напряжения аналоговый вход, то следует использовать этот прототип (если он ошибочный — поправьте меня в комментариях):

Нестандартное применение аналогового входа 0..1V (0..10V): отслеживание переменного тока в AI

Нестандартное применение аналогового входа 0..1V (0..10V): отслеживание переменного тока в AI

Тут мы выпрямляем переменное напряжение, потом ограничиваем его резистором (на нём же ограничивается рабочий ток стабилитрона) и стабилизируем (ограничиваем сверху) стабилитроном. А потом через делитель 10:1 снова подаём на наша аналоговый вход 0..1V.

5. Меры безопасности при питании аналогового IO. Монтаж и защита цепей.

А теперь поговорим про некоторые важные особенности использования аналоговых сигналов, от которых будет зависеть надёжность работы всей системы и, конечно, точность измерений.

5.1. Развязка сигналов между разными устройствами и источниками питания.

Не зря я во всех постах про модули ввода-вывода и аналоговое IO привлекаю внимание к тому, есть ли у сигналов развязка между источником питания и выходами: это важно, если наше аналоговое IO уходит к устройствам, которые расположены вне щита.

Я много раз упоминал про свой первый факап с выносом потенциала по GND между устройствами (когда у меня сгорел USB-порт), и повторюсь ещё раз: если устройства питаются от разных фаз или разных блоков питания, то их IO должно иметь развязку по питанию между друг другом, иначе пробой одного устройства потащит за собой все устройства, которые висят на том же питании. Или же между GND (минусом) разных устройств может появиться опасное напряжение величиной до полного напряжения сети, которое выжгет всё IO.

Примеры таких опасных ситуаций:

  • Светодиодная лента: блок питания ленты и блок питания выхода 0..10V в щите должны иметь или общий ноль сети (в пределах квартиры или коттеджа это получается) или иметь развязку между питанием ПЛК и питанием аналогового выхода;
  • Приводы вентиляционных заслонок типа Belimo или аналогичных: они вообще же питаются от AC 24V, а значит должны иметь развязку (чаще всего для их питания в щитах в ПЛК ставится трансформатор, который и даёт эту развязку);
  • Датчик давления 4..20 мА и заземление трубы, на которую датчик установлен: если между блоком питания ПЛК (и аналоговых входов) и трубой будет опасный потенциал и если датчик имеет общий минус (GND) на корпусе — то может выгореть датчик или вход.
5.2. Использование экранированных кабелей нужного сечения.

Все аналоговые сигналы очень чувствительны к наводкам и помехам, поэтому для их подключения вне щита обязательно надо использовать экранированные кабели! Я использую кабели МКЭШ, а экран подключаю в щите на шину (или клемму) PE.

Также не забывайте о падении напряжения на кабелях: здесь справедливы те же правила, как и для силовых цепей. Если кабель будет иметь малое сечение при большой длине, то на его конце мы можем получить не 10V, а 8V, и никогда не открыть заслонку вентиляции на 100% (полностью)!

5.3. Защита всех цепей от замыкания и обрыва.

Здесь используются те же правила, как и в силовых цепях: защищать всё, что можно защищать. На своих схемах я специально рисовал предохранители. Защищаем:

  • Питание выходов;
  • Выходы типа «Напряжение» от замыкания;
  • Входы и выходы «Ток» от замыкания.
5.4. Надёжность подключения шунтирующего и ограничительного резистора для сигналов 4..20 мА.

Ещё раз повторюсь про шунтирующий резистор для токовых входов. Если он находится внутри модуля IO, то перед подачей питания ещё и ещё раз проверьте, что этот резистор включен (иначе вы сожгёте модуль). Если он находится снаружи (его надо установить) — то делайте это соединение максимально надёжным и таким, чтобы при отключении датчика (или каких-то цепей внутри щита) на токовый вход не подавалось полное напряжение питания (это его сожгёт)!

5.5. Шунтирование выбросов от самоиндукции (случай Bayk, неочевидный).

А этот случай относится к тем, когда оно сначала сгорело, а потом ты понял, почему! Что вы делаете, когда ваша система состоит из одного-двух аналоговых датчиков (напряжение или ток)? Правильно: питаете всё от одного небольшого блока питания, включая контроллер (ПЛК или ПР) и все датчики и исполнительные механизмы.

Мой камрад Bayk (который иногда присылает треш-фото того как он прогает ПЛК среди разделанных коровьих и свиных туш на комбинате) напоролся на такой случай в своём проекте:

  • Питание +24V DC;
  • Датчики давления 4..20 мА;
  • Электромагнитные клапаны на 24V DC.

Всё это потребляло немного и работало от одного блока питания. В какой-то момент несколько клапанов были включены, а Bayk остановил работу программы в ПЛК. Помните про безопасное состояние выходов (когда при аварии или остановке ПЛК приводит их в заданное состояние — чаще всего выключает)?

При остановке работы программы несколько клапанов выключились одновременно, и импульс высокого напряжения пошёл по питанию +24V. ПЛК ничего не сделалось, а вот аналоговые входы и датчики пожгло нахер.

Почему? А потому что крайне желательно на все электромагниты и катушки реле и контакторов, работающие на постоянном токе, ставить защитные диоды в обратной полярности для гашения этих выбросов напряжения. Напоминаю классическую схему для выхода «Открытый Коллектор» (из одноимённого поста):

Установка шунтирующего диода на катушку реле

Установка шунтирующего диода на катушку реле

Обычно у всех логика работает так: «Вот! Выход управляется транзистором: тут надо ставить защитный диод, чтобы не пожгло транзистор». А там, где выход управляется реле, — про диоды мало кто вспоминает, пока не будет питать всю систему от одного блока питания ;)

Я вам скажу по секрету, что я про это сам не догадался, пока мне Bayk не рассказал. Но мне везёт, так как я в щитах часто ставлю несколько блоков питания: один — на ПЛК и модули ввода-вывода, а другой — на все реле и исполнительные механизмы. А на выходы 0..10V — отдельные блоки питания.

Собственно, вывод отсюда следует тот же, как и во всём разделе: защищайте ВСЕ внешние цепи и питайте их от отдельного блока питания!

6. Обработка сигналов аналогового IO в ПЛК (настройка входов).

А теперь, когда мы разобрались с тем, как аппаратно подключать наши аналоговые входы и выходы, давайте разберёмся с тем, как получать с них данные и что для этого надо настроить. Для дискретного IO обычно почти никаких настроек делать не надо — разве что защиту от дребезга контактов включить.

А вот для аналоговых входов нужно сделать много настроек, которые обычно имеют такие названия и значения:

  • Тип входа — то, как модуль будет интерпретировать данные со своего АЦП: напряжение, ток, температура, сопротивление и так далее. Тип должен быть выставлен именно под ваш тип датчика, иначе все показания будут неверными!
  • Верхняя граница (AIN.H) — Максимальное значение в ВАШИХ единицах измерения, которое будет соответствовать максимуму показаний с датчика. Условно, если ваш датчик имеет выход 4..20 мА и меряет давление от 0 до 25 атмосфер — то вы указываете «25», если хотите получать давление в атмосферах;
  • Нижняя граница (AIN.L) — Минимальное значение в ВАШИХ единицах измерения, которое будет соответствовать минимум показаний с датчика. Например, «0» атмосфер для примера с тем же датчиком.
  • Смещение десятичной точки — Задаётся в некоторых модулях, если они возвращают результат в виде целого числа, а не в виде значения FLOAT: то, на сколько десятков будет домножен результат. Например, число «2789» при смещении десятичной точки следует читать как «27,89» (в ПЛК поделить на 10^2 = 100)
  • Сдвиг характеристики — Коэффициент (положительный или отрицательный), который надо прибавить (или отнять) к показаниям датчика для того, чтобы получить удобный вам результат.
  • Наклон характеристики — Коэффициент, на который умножается значение с датчика для коррекции его показаний или удобного вам результата.
  • Постоянная времени цифрового фильтра — Время, в течение которого отбрасываются быстро меняющиеся показания датчика. Влияет на плавность измерения показаний.

Сразу оговорюсь об аналоговых выходах. Там обычно нет никаких настроек, кроме значения для безопасного режима. В инструкции к модулю может быть написано так: «Значение от 0 до 1000 — 0…100%», и вам самим надо выдавать на модуль правильные данные, чтобы получить нужный выходной сигнал.

Примеры работы с настройками аналоговых входов были описаны здесь — посмотрите на них, так как там есть примеры практического применения тех знаний, о которых я сейчас вам расскажу:

Начинаем с масштабирования (верхней и нижней границ) значений. Я уже упоминал о том, что внутри модуля аналоговых входов стоит АЦП, который просто возвращает некоторое число (как -32767…+32768 на Siemens Logo). С таким числом работать чаще всего неудобно, так как надо его домножать и как-то приводить к тому, что «4377» будет означать +20 градусов цельсия, а 4412 — +20.24 градуса по цельсию (значения я выдумал из головы, конечно). А ведь ещё у некоторых датчиков температур характеристика нелинейная (но стандартная для каждого типа датчика)…

И вот чтобы мы не занимали себе этим голову, ОВЕН (и другие производители) за нас подумали и сделали удобную систему масштабирования значений по входам. Модуль аналогового ввода внутри себя решает пропорцию и приводит значение с АЦП к понятному и удобном нам виду по заданным границам. Представляете? Вы можете получить значение СРАЗУ в ваших единицах измерения!!

  • Если вы меряете давление от 0 до 10 атмосфер — то задайте значения «0» и «10» — и вы получите ваши атмосферы сразу же, напрямую, как есть в реальности;
  • Задайте в том же примере значения от «0» до «100» — и вы получите значения в процентах;
  • Если датчик освещённости с выходом 0..10V имеет пределы от 0 до 10 000 люкс — то вы можете задать или проценты (от «0» до «100») или эти самые люксы (от «0» до «10000»);

Если ваш датчик всегда имеет какое-то ненулевое значение, относительно которого надо отталкиваться (как тара у весов), вы можете воспользоваться режимом коррекции «Сдвиг»:

Обработка аналоговых входов: сдвиг характеристики

Обработка аналоговых входов: сдвиг характеристики

В этом случае заданное вами значение прибавляется или вычитается из показаний. Ну например вам хочется мерить не реальное давление, а его изменение от базового в 5 атмосфер. Зачем тогда писать лишний код в ПЛК, если можно задать коэффициент сдвига «-5» и получать давление от -5 до +5 атмосфер (при условии того, что датчик меряет от 0 до 10 атмосфер)!

Точно так же показания можно разделить или домножить на какое-то значение. Такая коррекция будет называться «Наклон»:

Обработка аналоговых входов: наклон характеристики

Обработка аналоговых входов: наклон характеристики

К примеру датчик меряет в атмосферах, а нам надо получать значения в десятках атмосфер. Значит зададим коэффициент наклона в «0,1» и получим значения, делённые на 10.

Конечно же можно применить оба коэффициента одновременно:

Обработка аналоговых входов: сдвиг и наклон характеристики

Обработка аналоговых входов: сдвиг и наклон характеристики

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

То, как называются все эти настройки, зависит от вида, типа и производителя модуля или ПЛК. Ниже мы посмотрим на несколько скриншотов с примерами.

Начинаем с конфигуратора модулея Мх110 (RS-485). Для примера я настроил два входа: 0..1V и 4..20 мА:

Настройка параметров аналоговых входов для модулей ОВЕН Мх110

Настройка параметров аналоговых входов для модулей ОВЕН Мх110

А вот те же параметры в конфигураторе модулей Mx210 (Ethernet):

Настройка параметров аналоговых входов для модулей ОВЕН Мх210

Настройка параметров аналоговых входов для модулей ОВЕН Мх210

Видите, всё похоже и однотипно. Теперь вы не запутаетесь.

Заценим настройку входов для ПЛК160, который имеет на борту несколько аналоговых входов и выходов. Задаём тип входа «0..10V» и настройки границ от 0 до 100% (якобы подключаем датчик освещения):

Настройка параметров аналоговых входов для ОВЕН ПЛК160 (0..10V)

Настройка параметров аналоговых входов для ОВЕН ПЛК160 (0..10V)

А тут задаём тип входа «4..20 мА» и настройки границ от 0 до 25 bar (якобы подключаем датчик давления):

Настройка параметров аналоговых входов для ОВЕН ПЛК160 (4..20 мА)

Настройка параметров аналоговых входов для ОВЕН ПЛК160 (4..20 мА)

А вот настройки аналоговых входов для ПЛК-210:

Настройка параметров аналоговых входов для ОВЕН ПЛК2хх

Настройка параметров аналоговых входов для ОВЕН ПЛК2хх

Как вы видите, почти везде настройки аналоговых входов однотипны. Но на этом наш ликбез не заканчивается!

7. Опрос модулей аналогового ввода и защиты от сбоя связи и ошибок датчиков.

Чем отличается дискретное IO от аналогового? Я бы назвал это ответственностью: нам ОЧЕНЬ важно понимать, КАКОЕ значение нам выдаёт измерительный модуль: настоящее или ошибочное — есть ли авария датчика или нет? Почему я считаю это важным? Потому что в моих проектах на аналоговых датчиках висят системы управления тёплыми полами или отоплением. И если у меня повредился датчик, а система решит что «0» — это не ошибка датчика, а «0» градусов температуры электрического тёплого пола — то она включит его на постоянную работу, и полу будет плохо! А может и пожар будет. И, конечно же, в промке ставятся ещё более жёсткие требования к надёжности и достоверности показаний датчиков.

Вероятность таких ситуаций повышается ещё и из-за того что во многих ПЛК при опросе модулей ввода-вывода по Modbus по умолчанию включена настройка «Сохранять последние значения»: если связь отвалится, то ПЛК будет видеть якобы нормальную температуру. Ну, хотя вторая настройка «Сбрасывать значения в ноль» как раз и может привести к тому, то при обрыве датчика температуры котла, который уже начал показывать 90 градусов, его показания сбросятся в ноль, и ПИД-регулятор наподдаст жару, чтобы взорвать этот котёл и выбить стёкла в нескольких домах в округе.

Я в своих проектах использую следующие стадии контроля данных:

  • Контроль состояния датчика: Модули ввода от ОВЕНа .8А (а также ПЛК210) имеют канал «Состояние датчика», который можно считать по Modbus и получить нормальные ошибки вида «Обрыв датчика», «Замыкание датчика», «Значение слишком велико», «Значение слишком мало» и прочие подобные, вплоть до «Отказ АЦП».
    Обычно для большинства проектов достаточно делать проверку на то, что текущее состояние равно «Ошибок нет»: значит датчик в порядке.
  • Контроль связи по Modbus с самим модулем: ПЛК, который опрашивает этот модуль, может информировать меня о том, что модуль перестал отвечать на запросы по таймауту. Если связь отвалилась, то моя программа считает это ошибкой датчика.
  • Контроль серий ошибок связи или датчика: программа считает количество сбоев за единицу времени и, если это количество сбоев больше заданного, то уже точно решает что связь с модулем и датчиком потеряна.
    Изначально этот приём появился в программах для работы с модулем .8А, так как он иногда не успевает отвечать на групповой запрос ВСЕХ регистров за раз и генерирует ошибку, которая на самом деле ошибкой не является. Потом я распространил эту практику на все модули ввода-вывода и на все проекты.
  • Фильтрация (по желанию) граничных значений для входов «Напряжение» и «Ток». Дело в том, что иногда датчики при настоящей работе выдают такие хитрые значения, которые находятся на крайних границ диапазонов напряжения и тока, измеряемых модулем.
    Этим больше всего страдают датчики давления: если датчик долго стоял под давлением, а потом давление сняли, то его показания будут считываться как «-0,0012 bar». В этом случае измерительный модуль выдаст ошибку «Значение слишком мало», которая в штатном алгоритме приведёт к сбою датчика. Я фильтрую такие значения и пропускаю их без ошибок, приводя к нулю (пока не во всех проектах).
  • Проверка значений с датчиков на соответствие физическому миру (тому, что мы меряем). Проверка может иметь два уровня:
    • Защита от полного абсурда: если датчик веса вернул нам -12 килограмм для хреновины, которая не может весить больше килограмма — то это явно глюк и ошибка;
    • Защита от граничных значений: например, если датчик тёплого пола лоджии показал +50 градусов — то это фигня какая-то или вообще пожар. Или же если датчик давления показал 120 бар там, где больше 20 не может быть — то это тоже ошибка.
  • Проверка на реакцию среды и обратной связи от системы, которая управляется по этому датчику. Тут подойдёт цитата из советской книги «Тайна двух океанов» там, где диверсант Горелов выводит из строя аварийные датчики газов: «Сигнализатор давления газов он накрыл ящичком, вынул из мешка ленту размягченной резиновой прокладки и проложил ее под нижними краями ящичка. Жар в камере быстро схватил размягченную прокладку, и ящичек с сигнализатором внутри оказался герметически закрытым. Захваченный им воздух из камеры будет теперь неизменно сохранять свой прежний состав и прежнее нормальное давление. Какие бы изменения ни произошли потом в самой камере, заключенный в ящичке сигнализатор будет посылать на щит управления центрального поста одни лишь успокоительные сигналы».
    Чтобы не было таких ситуаций, иногда стоит проверять измнение показаний за заданный интервал времени. Например, мы выдали команду тёплому полу нагреваться. Значит, что? Что показания датчика температуры этого пола должны начать увеличиваться с определённой скоростью. А если мы, образно говоря, за три часа работы пола получили нагрев на +0,05 градуса — то это херня какая, а не нагрев. Аварийно отключаемся!!
    Этот пример не высосан из пальца, а взят из одного объекта 2021 года, где очередной Джамшут-Монтаж заложил датчик температуры тёплого пола у края стены, а не в нагревательный мат. Мы грели этот пол все 6 часов, пока я занимался пусконаладкой — и температура сменилась с 25,82942 градуса на 25,84551 градус. Значения, конечно, образные — но именно так она менялась: ни хера не менялась!
    Такой же пример можно привести с каким-нибудь вентилятором подвала, если мы контролируем там влажность: включаем вентилятор и если за N времени влажность не стала падать — то выдаём сигнал аварии.

Помните что ПЛК и промка — это не игрушки, а чья-то жизнь или деньги, прямо или косвенно уничтоженные: вас может убить горячим паром или взорвавшимся котлом, постоянно работающий тёплый пол может сожрать дофига электроэнергии, а бойлер может вскипятить воду вместо того, чтобы нагреть её до +60 градусов!!!

8. Генератор (задатчик) тестовых сигналов 0..10V/4..20 мА с AliExpress.

Как-то мне понадобилось потестировать свои датчики давления, и заодно дать заказчику погонять какое-то устройство с выходом 0..10V, чтобы он проверил свои термоголовки Oventrop. Я вспомнил, что где-то на Алишке видел простенький и дешёвый генератор сигналов 0..10V и 0..20/4..20 мА и заказал себе парочку штук.

Прибор для генерации тестовых сигналов 0..10V/4..20 мА (задатчик сигналов)

Прибор для генерации тестовых сигналов 0..10V/4..20 мА (задатчик сигналов)

Этот приборчик умеет выдавать сигналы 0..10V, 0..20 мА и 4..20 мА, что покрывает все общие задачи тестирования аналоговых входов.

У него есть встроенный аккумулятор (зависит от модели, я брал с аккумулятором) и зарядка от USB-порта. Приборчик полностью автономен по питанию (что даёт дополнительное удобство в плане развязки блока питания приборчика и блока питания автоматики в щите).

Задняя часть прибора-задатчика (виден разъём зарядки и выключатель питания)

Задняя часть прибора-задатчика (виден разъём зарядки и выключатель питания)

На передней панели есть индикаторный дисплей, на котором отображается задаваемая величина (светодиодные индикаторы показывают то, на какой выход сейчас настроен прибор), и кнопка переключения режимов «Ток»/»Напряжение».

Передняя панель прибора-задатчика (виден дисплей, режим работы и энкодер для установки значения)

Передняя панель прибора-задатчика (виден дисплей, режим работы и энкодер для установки значения)

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

В верхней части прибора есть разъём с винтовыми клеммами, куда и надо подключать выходы:

Разъём для подключения выходов прибора-задатчика

Разъём для подключения выходов прибора-задатчика

Все схемы подключения прибора приведены в его инструкции:

Схема подключения для прибора-задатчика сигналов 0..10V/4..20 мА с AliExpress

Схема подключения для прибора-задатчика сигналов 0..10V/4..20 мА с AliExpress

Если расшифровать их, то получается вот что:

  • Контакты «24V» и «GND» позволяют питать прибор от внешнего источника питания (например, от щита, в котором мы что-то тестируем им);
  • Напряжение «0..10V» снимается с контактов «AVo» и «GND»;
  • Ток «4..20 мА» в режиме без питания (имитация датчика давления) снимается с контактов «AI+» (плюс входа) и «AIo» (минус, выход);
  • Ток «4..20 мА» в режиме питания (когда прибор сам выдаёт и поддерживает заданный ток в цепи) снимается с контактов «AIo» (плюс) и «GND» (минус).

Каким-то образом этот прибор можно донастроить внутренние параметры прибора. Я с этим НЕ разбирался, а выложил инструкцию для справки, так как сам долго искал её в инете.

Инструкция для прибора-задатчика сигналов 0..10V/4..20 мА с AliExpress

Инструкция для прибора-задатчика сигналов 0..10V/4..20 мА с AliExpress

Я заметил, что мои датчики давления, котоорые установлены у меня дома, показывают давление в барах ниже, чем FARовские манометры. Bayk предложил мне потестировать аналоговый вход, чтобы проверить его настройку.

Задаю ток в 4 мА, измеритель показывает почти ноль (0,02 bar):

Тест сигналов прибора-задатчика: минимальный уровень (4 мА)

Тест сигналов прибора-задатчика: минимальный уровень (4 мА)

Задаю 12 мА (примерно среднее значение), получаю половину шкалы измерения: 5 bar из 10 bar.

Тест сигналов прибора-задатчика: средний уровень (~12 мА)

Тест сигналов прибора-задатчика: средний уровень (~12 мА)

Задаю 20 мА, получаю полную шкалу измерения: 10,08 bar.

Тест сигналов прибора-задатчика: максимальный уровень (20 мА)

Тест сигналов прибора-задатчика: максимальный уровень (20 мА)

Таким образом я проверил, что обработка аналогового сигнала выполняется верно и сделал вывод что датчики давления точнее, чем FARовские манометры.

На этом мой рассказ про сложные аналоговые выходы закончен. Вы можете выразить благодарность в виде донатов (реквизиты даны в правой колонке блога сверху), а свои вопросы задавать в комментариях: если я смогу, то я отвечу на них.

5 Отзывов на “Типы входов/выходов автоматики: Ток (4..20 мА), Напряжение (0..10V). Генератор сигналов 0..10/4..20 для тестов”


  • 1 fiber  [СПб]

    Вот тебе везет то на всякую экзотику :). Я Про термоголову с управлением 0-10.
    Поначалу подумал что ты так увлекся написанием, что заглючил..гыгы. Ан нет, оказалось что и правда есть такие.. зачем-то.
    Другого объяснения как применение в неких небольших системах, где условно надо рулить 3-5 головами без какойто развитой автоматики с настенного регулятора температуры придумать не смог :).
    Так то такие головы рулятся ШИМом с выхода специализированного устройства.Ну или как там у вас в ПЛК ваших :)? Там внутри у них нагревательный элемент, греющий камеру с неким составом типа церезина, который при нагревании расширяется и толкает шток, а при охлаждении сжимается и шток втягивает. А тут мало того что силовой выход нужен, так еще и управляющий.. Хотя может они тупо подключают питание на много головок, а рулят ими уже отдельно каждой или в группы их объединяя.
    В общем не встречал такого не то что живьем, а даже и в теории. Вот такой ты полезный со всех сторон :)

  • 2 CS  [Москва]

    fiber Да ты шо!! Это ж стандартный Oventrop с артикулом «Oventrop 1012953 Aktor T ST L NC Термоэлектрический привод 0..10V (головка) 24V, NC, M30x1,5″
    Мне щит на них заказывали человека четыре. В последнее время стали чаще! Народ ими хочет прулить по ПЛК: прикрыть-отрыть.

    Эй, эй!! Ты лучше спроси, так как я знаю о том, как они работают — и вместо гаданий я бы рассказал бы сразу =) А то щас получается, что мне приходится разгребать ;)

    Такие головки есть в двух вариантах и действительно содержат вещество, которое от нагрева расширяется и двигает шток клапана. Жрут обычно около 6 ватт на одну штуку.
    а) Без 0..10V. Есть в вариантах «Нормально открытая», «Нормально закрытая» и на 24 или 230V.
    Здесь питается только нагреватель. Подали питание — голова открылась (или закрылась). Сняли питание — закрылась (или открылась). Всё дискретно, и нужен дискретный выход ПЛК.
    б) С 0..10V. Эти только на 24V AC. Питание на них подаётся постоянно, а управляются они сигалом 0..10V, открываясь в процентах на заданное значение.

    Если кто-то подарит мне такую дохлую или даст денег — то я хочу такую купить, разломать, и сделать пост! Вот ссылка на такие головки: http://www.stelmarket.ru/katalog/oventrop/otop_7.htm

  • 3 fiber  [СПб]

    Жрут обычно около 6 ватт на одну штуку.

    Это както овердофига. Стандартная голова такого типа 2Вт, на один выход обычно можно цеплять до 5 штук.

    Как можно, интересно, нагревателю сказать чтобы он нагрелся на 50%, подав ему аналоговый сигнал? Как ШИМом это сделать понятно, а как по 0-10 мне чота физика не ясна. Тем более что это не мотор и не диммер, где задал значение и оно молотит как велено, тут же постоянно изменяемая величина по обратной связи от датчика температуры. Или это вариант аля ручное управление батареями — сколько выставил столько и будет?
    Интересно, а что у вас дороже — дискретный выход или выход 0-10?

  • 4 CS  [Москва]

    fiber Слушай, ты же знаешь что я ругаюсь и баню за невнимательность?
    а) Я тебе дал точный артикул и модель термоголовки. На сайте Oventrop можно найти инструкцию и технические характеристики. И даже дал ссылку на продавца.
    б) Прям в посте я упомянул про симистор в ключе питания переменным током этих термоголовок. Вот тебе и ответ на то, как и чем она регулирует нагрев.
    в) Про стоимость выходов можно узнать, снова прочитав этот же пост, перейдя на пост про модули IO ОВЕН и посмотрев на сайте ОВЕНа цены на модули одной линейки (например Мх110) и поделив стоимость модуля на число выходов.

    Хочешь подробнее узнать про то, как эта головка устроена?
    а) Купи мне её, перешли — я разберу, сфоткаю и напишу пост.
    б) Жди, пока я сам куплю (это не в приоритете)
    в) Читай PDF и другие материалы.

    Это было предупреждение о том, что сначала надо читать — потом спрашивать.

  • 5 fiber  [СПб]

    Я с пониманием, но че сразу ругаться то?

    Вот смотри — https://www.moehlenhoff.de/en/products/actuator-technology-2-4
    Это производитель подавляющего количества термоприводов на рынке (ну ладно — на европейском рынке), который OEMит термоголовы всем подряд (и вероятно Oventrop тоже). Мощность головок у него — теперь уже не 2 а 1,2 Вт. Отсюда к мощности в 6 Вт возникают резонные вопросы.

    Прям в посте я упомянул про симистор в ключе питания переменным током этих термоголовок. Вот тебе и ответ на то, как и чем она регулирует нагрев.

    Ну то есть сигнал 0-10 открывает симистор в голове. Ну.. ладно. Нашел я термостаты в каталоге Oventrop, которые таки да — управляют внешними устройствами по 0-10. Как и предполагал — довольно убогие на вид настенные варианты. Голова с управлением 0-10 дороже обычной от 2 до 3х раз — это по твоей ссылке такие цены если что. Потому что в каждой голове симисторный ключ — это понятно. При том что он нужен то всего один на помещение.Стоимость дискретного выхода на овене — 1000р, стоимость стоимость аналогового — чуть больще 3000р. Ну тут справедливо добавить еще твердотельное реле к дискретному выходу — тут от 700 до 1000р, в зависимости от вольтажа нагрузки. В случае с 24В — еще 700р.
    К чему это все,собственно? К тому что вариант с регулированием по 0-10 мало того что странный, так он еще и минимум в 2 раза более дорогой. Ну да, технически интересный. Наверное. Вопрос откуда такие варианты берутся у заказчика, который с этим приходит в частности к тебе. И не будет ли правильным от таких вариантов заказчика отговаривать, предлагая «традиционные» решения — которые и дешевле, и реализуются на мой взгляд проще?

Оставить отзыв

Вы должны войти на блог, чтобы оставить комментарий.