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

Проекту исполнилось 16 лет! Поддержать проект материально, проспонсировать проекты Автора или сделать ему подарок можно на этой странице: "Донаты и Спонсорство, Список Желаний".

Число просмотров: 55 027 

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

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

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

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

Дело в том, что я стал использовать разные датчики ОВЕН в своих проектах и хочу рассказать про них в будущих постах. А чтобы рассказ был понятнее — то мне надо рассказать про аналоговое 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 надо подать на исполнительный механизм (диммер, заслонку, термоголовку и так далее) или на аналоговый вход ПЛК/ПР/Измерительного модуля.

Будьте ВНИМАТЕЛЬНЫ! Некоторые устройства (например измеритель-регулятор ОВЕН ТРМ1) имеют входы, рассчитанные на 0..1V, а не на 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овские манометры.

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

Проекту исполнилось 16 лет! Поддержать проект материально, проспонсировать проекты Автора или сделать ему подарок можно на этой странице: "Донаты и Спонсорство, Список Желаний".

32 Отзывов на “Типы входов/выходов автоматики: Ток (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 раза более дорогой. Ну да, технически интересный. Наверное. Вопрос откуда такие варианты берутся у заказчика, который с этим приходит в частности к тебе. И не будет ли правильным от таких вариантов заказчика отговаривать, предлагая «традиционные» решения — которые и дешевле, и реализуются на мой взгляд проще?

  • 6 CS  [Москва]

    fiber Ты ж знаешь: я — злая сука, сволочь и тварина в одном лице.
    За инфу по Moehlenhoff спасибо! Я себе скачал брошюру, оставил на память!
    В планах у меня и правда есть идея купить одну головку Oventrop и разломать её!

    А мы про одно и то же пишем? Я писал про внутренний симистор внутри этой термоголовки, а не про способ управления.
    Не, симистор не сразу открывает питание на нагреватель: симистор же может быть или открытым или закрытым, он не может открыться на чуточку. Там скорее всего какой-то контроллер с ШИМом на симистор, скорее всего как в обычных диммерах для активных нагрузок.

    Я против твердотелок в щитах для быта, так как они громоздкие, их надо грамотно защищать (иногда — быстрыми предохранителями, которые стоят так же как само ТТР), и их на DIN-рейку так просто не поставить. Проще обычное реле воткнуть.

    Откуда берутся заказчики с такими идеями — я не знаю. Но ко мне обращались много раз с такими идеями. Все хотели программировать там ПИД-регулятор, и тут уже у меня возникали вопросы о том, что и как они ПИДом собирались регулировать с такой огромной инерцией нагревателя при том, что открытое зимой в морозы окно всю логику регулирования сразу нарушит к чёрту.
    Ну, как бы как вариант «Прикрыть батареи на 30%» я бы и сам использовал бы такие головки, но регулирование делал бы по среднесуточной температуре, уровню освещения за окном (у меня окна выходят на юг на солнце зимой жарко, а без солнца сразу морозно), по определению движения, и так далее.

  • 7 fiber  [СПб]

    Я писал про внутренний симистор внутри этой термоголовки, а не про способ управления.

    Ну это я по малограмотности обобщил :). В целом такой вариант как я уже писал сильно дороже именно из-за того что в каждой голове стоит симистор и контроллер (видимо) который этим симистором рулит, воспринимая внешний управляющий 0-10.И проводов к каждой голове надо тянуть в 2 раза больше — питание +управление.

    Проще обычное реле воткнуть.

    Не проще. Оно же щелкать будет все время, отрабатывая ШИМ. Управляющие термоголовами девайсы специально делают на симисторах, чтобы тихо работали.

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

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

  • 8 CS  [Москва]

    fiber Не, тут обобщать не надо: а то ж получилось, ты про одно, а я про другое, и ни за что посрались.
    Подключение у них, как упомянуто в посте, трёхпроводное: один провод у этих голов общий для питания и для 0..10V (GND).

    Эээ… так вот я и думал, что какой там нахер ШИМ, если у головок и полов будет большая инерционность. Я ОЧЕНЬ не люблю твердотельные реле по тем причинам, про которые говорил. Лучше обычная релюшка, и ШИМ — в жопу.

    Про батареи и температуру — ржачно!)))

  • 9 Zaebasto

    А ещё аналоговый вход с внешним делителем удобно использовать для контроля напряжения +24в.
    У меня в некоторых щитах цепи питания контроллера и тех же приводов трехходовых кранов запитаны от одного БП но разделены предохранителем. Если что то произойдет в цепях защищенными предохранителем — часть функционала щита конечно отвалится, но щит будет на связи и соответсвенно сообщит мне что есть авария питания исполнительных устройств. Ну и большая часть щита будет жить. А это например щит котельной, где полный останов зимой будет очень неприятным.
    Почему именно контроль напряжения аналоговым входом? Чтобы видеть фактическое напряжение а не «что-то есть».

  • 10 fiber  [СПб]

    Эээ… так вот я и думал, что какой там нахер ШИМ, если у головок и полов будет большая инерционность

    Правильно. Время полного открытия/закрытия термоголовки — около 5 минут. Поэтому если мы будем ей управлять просто в режиме «температура ниже нижней уставки — включаем, температура выше верхней уставки — выключаем» то мы будем постоянно либо в недогрев либо в перегрев вываливаться — из-за инерционности. А если ШИМом — то процент открытия термоголовки определяется скважностью импульсов, и регулирование происходит довольно точно. Это мы сейчас про регулирование открытия термоголовки, если что :). В целом же у системы регулирования температуры тоже есть время ( примерно сутки после включения системы), пока она выйдет на прецизионный режим регулирования — до этого будет примерно так как я вначале описал — выше/ниже. Но за сутки размер колебаний будет постепенно уменьшаться, и в итоге они составят несколько процентов от заданной уставки. И после этого, при изменении значения уставки — переход происходит уже достаточно быстро и плавно. Ну за исключением криминальных случаев аля размораживание системы и т.п.
    Это все регулирование) естественно работает, когда вся основная теплотехническая часть сбалансирована и обеспечивает необходимое количество тепла. Иначе хоть обрегулируйся..

    ЗЫ. Хотел ссылку на мануал по регулированию аббшный дать,но сцуко зарыли они кудато его — а там все очень подробно и с картинками процессов было..:)

  • 11 CS  [Москва]

    Zaebasto Отличная идея, СПАСИБО!!
    Причём ты так хорошо коммент написал, что все мои вопросы отпали!
    Когда-нить я напишу про свою систему контроля нагрузок ILC (Important Lines Control): там был более простой способ — на релюшках по схеме «Напряжение есть / нет».

    fiber Гм… ты не раскрыл тему твердотелок. Я их не люблю, но хочу послушать, раз это твоя любимая тема (про регулирование; моя — нет).
    Вот я видел два типа твердотелок:
    а) Плоские штучки, которые рассчитаны на AC 230V, которые крепятся на радиаторы и которые надо изолировать от того, чтобы фаза не попала на радиатор.
    Такие мне не нравятся тем, что в обычные щиты (которые собираю я) их на DIN-рейку под пластрон не поставишь. А ежели учесть что сейчас CombiLine плакал и его нет (то есть нельзя взять ШКАФ с монтажной панелью и херакнуть эти реле туда) — то тем более некуда мне их ставить.
    б) Штучки от Шнайдера (который тоже под санкциями) на DIN-рейку в формате узких 6 мм реле. Но так они же рассчитаны буквально на 3-6 ампер, и заказчик (который хотел их применить) говорил мне, что там надо ставить на них какие-то специальные быстные предохранители, иначе эти реле вылетят моментально при любом КЗ.

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

    Это… а про регулирование. Так у меня же батареи в новой квартире мамаши имеют обычные ручные термоголовки. Они так и работают: по тупому гистерезису. В комнате становится прохладно, головка включает батарею. Становится жарко — выключает.

  • 12 fiber  [СПб]

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

    Так не расскажу же :). Не из вредности — от отсутствия практического опыта. В устройствах которые я юзаю, выходы уже на силовых симисторах, поэтому мне ставить доп. реле нет необходимости. У нас все просто — подал 220В ( или 24В) на устройство, забрал их же с выходов на головы. Входной автомат на 6А, это все :).
    У твоих же ПЛК два типа выходов — релейный и открытый коллектор. Релейный сразу в топку — щелкает, и ресурс таки не вечный. Открытый коллектор сам по себе головы не потянет, туда и нужно ставить твердотельное реле — опять же чтобы не щелкало.

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

    Для подключения головок этого ампеража более чем. Что касается защиты — ну наверное заказчик в чемто прав, и это отдельный геморрой — но не очень то и дорогой: https://www.tme.eu/ru/katalog/predokhraniteli-5x20mm-bystrye_113293/

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

    Ну так ничего умнее то никто не придумал :). Автоматика что позволяет в этом плане? Быстро регулировать температуру в помещении ( помещениях) — для этого не надо ходить и крутить каждую голову на каждой батарее. Это не беря в расчет то что батарея с головой может быть зашита и доступ к ней затруднен.

    Баловаться всякими энергосберегающими и не очень режимами — ну типа ночью попрохладней в спальне (и ваще в доме) сделать, при отсутствии людей отопление на минимум поставить и т.д. Это у нас с отоплением благодать ( тфу-тфу) — а вон читаешь новости из «оттуда» — чота у них там энергоэффективность очень в нехилую экономию выходит, и чем дальше — тем страшней.

  • 13 Denis B.

    Хотел по твоему посту дополнить, насколько мне кажется, важной информацией по сигналу AI 4-20 мА, чем он хорош.

    В основе интерфейса 4-20 мА лежит токовая петля с рабочими значениями токов в диапазоне 4…20 мА. Изменение значения тока до значения менее 3,8 мА свидетельствует об обрыве линии, а выше 20,5 мА – о коротком замыкании. Таким образом, этот интерфейс позволяет контролировать целостность физических соединений в системе.

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

    Кстати, можно и другие достоинства «4-20» по сравнению с «0…10» написать, если вдруг кому-то выбирать придется.

    Основные преимущества интерфейса 4-20 мА:

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

    И еще, по пункту «Нестандартное использование аналоговых входов».
    Помню, у меня как-то был такой драйвер самописный под аналоговый сигнал, который назывался «аналогово-дискретный». Он простой как 3 копейки, но благодаря как раз такой простоте у него, насколько мне видится, довольно широкая область применения.
    Обычно действия такие по работе с сигналом: получаем сигнал с АЦП (int), масштабируем его в real и шкалируем в соответствии с заданной шкалой датчика.
    А в случае «аналогово-дискретного» представления можно масштабированное значение использовать как дискретные значения/события. Например с 4 до 10 мА – одно событие, с 10 до 20 мА – другое событие. Получается, как дискретный датчик но по уровням тока)

    А так все очень классно и подробно описал, таких статей в интернете не хватает.

  • 14 CS  [Москва]

    Denis B. Большущее тебе СПАСИБО за комментарий и дополнения!!!
    Они ОЧЕНЬ ценные: я использовал 4..20 мА только для датчиков давления, и опыта по нему у меня маловато. Ведь точно: ток-то везде одинаков и, если хватит напряжения питания (чтобы скомпенсировать сопротивление длинной линии), то можно увеличивать длину проводов датчика или линии!

    Про самописный драйвер — ВАУ! Такой же приём используют в проектах на микроконтроллерах, чтобы сократить число IO для кнопок: там на несколько кнопок сажают разные резисторы, а потом при помощи встроенного АЦП меряют напряжение и по его уровню понимают, какая из кнопок была нажата.

    fiber А я вот хотел про твердотелки-то и послушать =))
    Я знаю в основном только про такие: https://kippribor.ru/TTR-i-radiatory, и про них и говорю что их в мои щиты не поставить.
    Нет уж. У меня как раз релейные выходы — самые популярные. Открытый коллектор я ни разу даже не использовал вообще ни в одном проекте, во как. У меня же всё дискретное: свет, краны воды, приводы штор — и всё.
    А по ОК и мелким твердотелкам как раз дохера вопросов: например, я бы каждый выход ОК защищал предохранителем (за исключением случаев, если надо релюшками пощёлкать — там я бы ставил один предохранитель на несколько выходов), так как там же страшный транзистор, который непонятно как и когда сдохнет.

    А по ссылочке пишут что из-за санкций заказы и РФ и РБ не принимают.

  • 15 Zaebasto

    Касаемо контроля по цепям 230V — достаточно и релюхи. А с 24в — начал у тебя БП подыхать, и вроде всё работает, и даже релюшки срабатывают,только уже не 24в а допустим 19.
    Я задал ниже 22 и выше 26 — авария. Ну и на мнемосхеме напряжение питания всей системы — мелочь, а приятно.

  • 16 CS  [Москва]

    Zaebasto Да, у меня как раз в ILC™ на релюхах так и сделано!
    Про контроль низковольтного входа — ЗАЕБАСТО ;) Это очень круто!
    Дорасскажи пожалуйста о том, что делает твоя система управления, когда видит что входное питание отклонилось от нормы.

  • 17 Zaebasto

    Ничего не делает, записывает ошибку, и сообщает мне.

  • 18 CS  [Москва]

    Zaebasto Понял! А то я начал выдумывать какие-то сложные случаи, дескать что отрубаются лишние нагрузки или критически важные потребители!

  • 19 serafim

    Привет, Шаман, что-то я последний абзац не вкурил:
    Твоё утверждение:
    «Таким образом я проверил, что обработка аналогового сигнала выполняется верно и сделал вывод что датчики давления точнее, чем FARовские манометры
    Ты ж проверял только соответствие настройки обработчика аналогового входа в ИТП-10 условным референсным значениям, которые симулировал генератором с алишки, но сигнал с самого датчика-то (источник реального сигнала 4-20 мА относительного давления для ИТП-10) с эталонным манометром ты не сверял, соответственно, не факт, что датчик точнее FARa, или я что-то не понял про связку датчика и ИТП-10?

  • 20 eteh  [Санкт-Петербург]

    Немножко добавлю из личного опыта)
    Не в обиду ОВЕН — но словил я тут недавно забавный глюк системы на ПЛК 110 — датчик подключенный по 4…20 сыпал ошибками — то КЗ, то обрыв… Реализация в коде весьма простая — сравнение значения от регистра с кодом ошибки. https://habrastorage.org/webt/t7/ms/iq/t7msiqllvamnzznr_rw227fxjys.png
    Проблема ОВЕН в том, что в настройках модуля нельзя задать, что делать при превышении значения или его слишком низком уровне. Совместимость оборудования, это такая проблемная вещь, которую к сожалению, только опытным путем приходится проверять… Датчик (отечетвенно-китайское поделие) находясь в ошибке выдает поочередно (по калибратору) 3,6мА и 22 мА токи… Соответственно панель и ПЛК начинают от такого «глючить и уходить в себя».

  • 21 CS  [Москва]

    serafim Про этот абзац я сам до конца не понял (как я и говорил в посте, для меня AI/AQ — это «магия»).
    У меня было подозрение на то, что я не так настроил диапазон измерений датчика в bar vs МПа. Ну, например, что надо было указывать не 0..10, а 0..100 или 0..110 (там вроде как 1 bar = 0,9 МПа, что ли).
    И в итоге, когда я сымитировал токи в 4 и 20 мА — я понял, что вроде как мой заданный диапазон верен и мои «bar» получаются как мне надо. И, если по определению верить, что датчик не врёт, то значит врут манометры Far.
    Косвенно это ещё подтверждается и тем, что когда я юзал такой же датчик на котельной в Папушево (третья часть, про подключение), то там датчик тоже показал чуть меньше манометра.

    eteh Хихихи! Ты насилуешь бедный ОВЕН, требуя от него суровой промки, которая была от Сименса =)
    1. Через что ты подключал датчик? Через какой измерительный модуль?
    2. Что это за УЖАСНЫЙ и СТРАШНЫЙ код с магическими числами? Если «61453» — это коды ошибок, то разве нельзя было завести константы, как нормальные люди?
    3. Почему так ужасно названы переменные (я про то, что не мешало бы их именовать по Венгерской нотации или camelCase), что в них ни фига не понятно?
    4. Вижу нумерацию переменных. Может быть всю логику можно оформить в FBшку красиво, чтобы не копипастить?
    5. Почему панель и ПЛК глючат, если они получают от датчика значение-то? Ну-ка, расскажи (здесь, а не по телефону в 22 часа вечера) всю логику проекта.
    По моему опыту она должна быть такой:
    а) Сбор RAW-инфы с датчика
    б) Обработка RAW-инфы с датчика (проверка на ошибки, выдержка перед формированием ошибок — TON вида «Если ошибка длится более хх времени — то считаем что датчик сдох»)
    в) Форматирование RAW-инфы в удобоваримыый результат для панели и логики ПЛК (условно: значение в REAL + BOOL-переменная вида bIsError)
    г) Использование отформатированного значения в логике ПЛК и в панели оператора.

  • 22 eteh  [Санкт-Петербург]

    CS
    Там объект под названием 3,14.
    1. Краткая суть — есть Заказчик, Генподрядчик и мы как субподрядчик. Вопрос в том что ТЗ написанное Генподрядчиком и вещи необходимые Заказчику 2 разные вселенные и «доводка до ума» с пересборкой щита и обрастанием функциями происходила на коленке грубо говоря. Поэтому в какой-то момент решил не заморачиваться с кодом, который от исходного ушел 37 раз.
    2. Подключен датчик к модулю МВ110-224.8А по 4…20.
    3. Хм, хорошая идея, в других IDE поведение датчика в случае выдачи повышенного или пониженного сигнала настраивается в обработчике входных значений, а тут получается лучше самописный обработчик написать. Мне непривычна логика ПЛК, где модуль входа-выхода физически является отдельной сущностью, а не настраивается в одной и той же IDE.

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

    Ну и уважать себя тоже буду — больше в такие «проекты» нафиг не ввяжусь ни за какие деньги, пока согласование ТЗ от эксплуатации Заказчика не получу)

  • 23 CS  [Москва]

    eteh Давай разберёмся по шагам с ОВЕНской частью:
    а) Этот модуль (я название исправил) медленный. У него время измерения канала доходит до 0,5…0,9 секунд.
    б) Про модули есть же два концепта: когда они вешаются на внутреннюю шину ПЛК (работают быстрее и так дале) и когда они являются просто отдельными устройствами. ОВЕН как Low-Cost выбрал второй вариант для того, чтобы была универсальность — чтобы модули можно было вынести из щита в другие места или взаимозаменять.
    в) Про уважать себя — это на первом месте должно быть. Но, блин, почему не написать на ST эти куски-то? И почему не завернуть опрос одного датчика в FBшку, чтобы не копипастить? Разве удобно в CFC линиями херачить эти присваивания?
    г) Да, обработка данных всегда важна. Так как тут отдельная сущность — то надо написать свою обработку.

  • 24 Redfox  [Екатеринбург]

    Гыг-гыг, по термоголовкам- я тут месяц назад купил и поставил себе на батареи термоголовки валтековские на 24 вольта- причем ради эксперимента взял как нормально закрытые, так и нормально открытые. Взял VT.TE3043 серию. Вальтек кстати заявляет у себя на сайте что они эти приводы делают из комплектухи от упомянувшегося тут moehlenhoff-а. Что могу сказать- на текущий момент ими пока управляет тупой простенький термоконтроллер, в котором задается только целевая температура и гистерезис и он тупо включает/выключает реле на выходе по достижению заданной температуры. Даже при текущем конфиге меня уже вполне устраивает работа всего этого дела. Меня больше теперь напрягает вопрос с увлажнением воздуха и с вентиляцией, чем поддержка температуры термоголовками на батареях.

    А теперь по нюансам- первое- по току потребления головок- сами головки при включении в пике в районе 200-210 мА кушают (еще раз напомню что головки на 24 вольта), после чего после прогрева ток падает примерно до 70-73 ма. Короче на таких токах такой фигней, типа развязывающих реле я не вижу смысла заниматься. Хотя я не помню какой максимальный ток транзисторных выходов у овеновских плк и модулей IO и есть ли защиты. Вот на бекховские или например ваговские модули выходов я не заморачиваясь бы повесил напрямую на выходы дискретные, так как в этих модулях стоят нормальные электронные ключи с кучей защит внутри микросхемы- от перегрузки, от коротыша, от перегрева с выходным током в 500 мА- короче на железяки с нормально сделанными выходами, а не просто с одним-двумя транзисторами на выходе можно вешать без лишних заморочек такие головы.

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

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

    Плюс еще заметил такую вещь- нормально закрытая головка и открывается и закрывается в районе 6 минут, а вот нормально открытая головка закрывается при подаче электричества буквально за 2-2,5 минуты, но при этом индикация выдвигается только примерно через 6 минут и работает она только при установке на клапан- короче в начале шток головки выдвигается и задавливает клапан и только когда клапан закрылся- тогда начинает индикатор выдвигаться. А вот открывается так же где-то в районе 6 минут.

    В общем и целом что я хочу сказать- не вижу я смысла платить кучу денег и искать термоголовки с аналоговым управлением и иметь «удовольствие» развлекаться с питанием этих головок переменкой и резервированием питания на них. Достаточно классики в виде обычных on/off электротермических головок и контроллера по вкусу- начиная от простейшей логики по достижению температуры плюс гистерезис и заканчивая пид регуляторами с автоподстройкой и шим выходом на транзисторном выходе.

    Я кстати изначально хотел заказать беоковские термоголовки на 24 В на алике, но китайцы проигнорировали просьбу продать головки на 24 в, поэтому взял валтек в российском магазине. А сейчас алик испортился окончательно((( Надеюсь вальтековские головки из комплектухи от moehlenhoff прослужат долго. Впрочем там и ломаться то особо и нечему- внутрях то по сути только сильфон с воском и нагреватель в виде ptc резистора. Кстати головки сами по себе фактически бесшумны- слышно слегка только когда вода открывается и иногда небольшой шелчок пружины- правда я до сих пор не понял- это в клапане пружина щелкает или в термоголовке. Всякие «умные» термоголовки с батареечным питанием гораздо шумнее- там внутри электродвигатель с редуктором. Плюс сколько я не смотрел «умных» термоголовок с беспроводным управлением по зигби или по з-вейв- везде через одно место придется делать связку с комнатным термодатчиком- в термоголовках отсутствует регистр- внешний датчик/контроллер сказал что в комнате температура такая-то- значит будем пытаться температуру в комнате сравнять с заданной или например фиг задашь- хочу открыть клапан на 50%. Во всех головках логика такая- мы можем удаленно задать температуру которую надо поддерживать, но головка будет эту температуру догонять по внутреннему термодатчику без возможности пытаться поддерживать температуру узнавая у внешнего термодатчика погоду. Но мы типа можем вводить поправку по разности температур между внешним датчиком и внутренним (угу-угу). Короче bayk собирается поразвлекаться с этими «умными» термоголовками, правда неизвестно когда- вот он может и расскажет про свой опыт где явно будут пляски с бубном. Я же сейчас предпочел старый проверенный многими путь с обычными термоголовками и внешним термоконтроллером ибо как то уже лень стало прыгать с бубном каждую фазу луны:))))

  • 25 profeMaster  [Одесса]

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

    уже оставлял ссылку на свое, по сути, абсолютно противоположное мнение. И как я купил Лого, то все мои проблемы закончились. Тебя самого не смущает, что нужно паять резисторы к «готовой» коробочке от дяди, а не там, что ты сам собираешь?

    P.S. Подключал 0-10, 4-20, и открытый коллектор.

  • 26 CS  [Москва]

    profeMaster Я все эти твои сказки знаю. Ссылки удалил: чужие сайты я не рекламирую (правила изменились). Отвечаю тезисами:
    1. Siemens Logo — старая параша, где на FBD нормально не запрограммируешь циклы, Облако, WEB-визуализацию.
    Замена ему — Owen Logic, где появился язык ST с циклами, массивами, операторами типа Case.
    2. Ты купил старое гавнищие — ПЛК63/73, НИ С КЕМ НЕ ПОСОВЕТОВАШИСЬ ЗАРРАНЕ. Поэтому ты сам себе создал проблем, а обвиняешь в них ОВЕН и почему-то меня.
    В этих старых системах так же, как и в модулях линейки Мх110, шунтирующиие резисторы — внешние. В новых линейках (в том числе и ПР102, ПР103, ПР205 и даже в ПР200) шунтирующие резисторы уже есть внутри, и ничего «паять» и «колхозить» не надо.
    3. Инженеры ОВЕН находятся в Москве и на их форуме. За то, что кто и что отвечал в других регионах (дилеры) они ответственности нести не будут.
    4. У всех нормальных производителей масштабирование IO — встроенное в модуль, а не в программу.

    За сим всё. Так как эти аргументы приводились ранее (как и ссылки), делаю бан. Разжигать козни и предвзятость у меня запрещено. Сначала надо думать, а потом — писать.

  • 27 LisPolice

    Здравствуйте!
    А что делать с модулями МУ110-224.8И?
    Я так и не понял как их настраивать и программировать…
    Есть ли у вас где-то пример?
    Заранее спасибо за ответ.

  • 28 CS  [Москва]

    LisPolice Хотелось бы, чтобы не сочли за издёвку. Говорю по пунктам:
    1. Что именно не понятно? Это — такой же модуль, как и другие: подключились к конфигуратору, задали адрес, параметры связи и безопасное состояние. И вот и все настройки.
    2. Пример того, как подключить модуль к конфигуратору и настроить его? Ээээ… ну так так же как и остальные модули.
    Нужны конкретные вопросы: что делал, что не получается, что не понятно. Абстрактных вопросов не надо.

  • 29 LisPolice

    Мне нужно управлять двуходовым клапаном с помощью электро-пневматического позиционера, а на него в свою очередь послать сигнал 4-20 мА.
    Вроде ничего сложного, с модуля аналогового выхода по схемам подключаюсь к позиционеру, настраиваю модуль как в инструкциях, пишу программу на контроллере, как мне рекомендовали и потом то, что в интернете нашёл (а там вообще про управление чем-либо через АО нет)…
    По итогу на позиционер приходит 4 мА, но изменить это значение у меня не получается…
    И вот не знаю что, либо модуль не так настроил, но тогда бы даже 4 мА не приходило, либо программа…

  • 30 CS  [Москва]

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

    Ну, и? И что же тут надо делать в таком случае?
    Это же очевидно: разделить и властвовать © — проверять отдельные компоненты в таком порядке:
    а) Модуль через конфигуратор. Там можно задать значения выходов для проверки и посмотреть, куда встанет позиционер.
    б) Модуль по схеме включения. Нагрузить его на резистор и проверить ток. Какой резистор брать — почитать в инструкции на модуль.
    в) В программе задать какое-то значение выхода (например, 50%) и посмотреть, что будет на позиционере. Почитать, как задавать значения на выходе для этого модуля в инструкции (обычно это от 0 до 1000, что означает 0-100%).
    г) Только после этого заниматься программой управления (это выходит за рамки моих статей).

  • 31 danveyron

    «На фотке есть ОШИБКА: привод питается от 24V DC. »

    Блин, чел, спасибо большое, что самое важное не показал:((
    Можно ли соединять переменку В с постоянкой 24 В? Т.е. вот питание у привода 24 в переменка, питание у выхода контроллера 24 постоянка, получается — постоянки соединяется с N переменки 24, так можно соединять?

  • 32 CS  [Москва]

    danveyron Потому что думал, что будет свободных денег, чтобы купить такую термоголовку, разломать её и сделать про них прям подробный пост.
    Если у тебя есть лишняя или дохлая — шли, сделаю пост. И там нарисую схему питания, конечно.

    Можно ли соединять переменку В с постоянкой 24 В?

    Придётся. Они этого и хотят. Именно вот прям так: «Минус постоянки соединяем с одним из проводов переменки».
    Только при этом переменка 24V должна браться от ТРАНСФОРМАТОРА. Трансформатор (обычный, где проволока намотана на сердечник) даёт развязку от сети.
    И только на таких условиях можно соединять один вывод переменки трансформатора с минусом 24V.
    Вот эти термоголовки так и подключены в этом щите.
    И ещё так же подключаются приводы заслонок вентиляции типа Belimo и аналогичные, которые с питанием от переменки и управлением 0..10V.

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

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