image

Прежде чем приступить, хотел бы предупредить рьяного читателя.

  1. То, что я описываю, делать нельзя по многим причинам, эти причины вам радостно укажут в комментариях, и я ни коим образом не призываю так делать. И ни в коем случае я не утверждаю, что описанным ниже устройством можно заменить реальный ПЛК. Всё описанное было сделано только для того, чтобы доказать себе, что это технически возможно, и не применяется на реальном оборудовании.
  2. Если вам становится плохо только от упоминания слова «Ардуино», вам лучше не читать. Все действия с контроллером я выполнял в среде Arduino IDE, мне так проще. Но ничто не мешает сделать всё то же без использования оной.

Давно хотел написать статью о своих экспериментах с ATtiny13, но отпугивало прежде всего отношение к ардуинщикам на сайте. Тем более, что контроллерами я занимаюсь всего несколько лет (опять же благодаря Arduino, эх, где ж вы раньше были!). Комментарии к статье На столбе висят три глаза... показали, что тема всё же интересна достаточному числу пользователей. Кстати, предполагалось название статьи «ПЛК на ATtiny13», но в тех же комментариях мне лицом об стол вежливо объяснили, что описанное устройство не может называться «ПЛК». Ну нет, так нет.

Что нам нужно от ПЛК?


Началось с того, что я захотел сделать функциональный аналог ПЛК, которые применяются у меня на предприятии, с учётом того, как именно они применяются. Большая часть схем управления у нас релейные со всеми вытекающими недостатками. Так же местами применяются ПЛК разного типа, начиная с 90-х годов. В основном они выполняют логическую задачу схемы управления, отталкиваясь от состояния концевых выключателей и бесконтактных датчиков положения.

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

  1. Дискретные входы под уровень сигнала 24 вольта.
  2. Дискретные выходы с напряжением 24 вольта.
  3. Отработка внутреннего алгоритма согласно заданной схемы, которую можно изменить при необходимости (в основном в процессе отладки).
  4. Быстродействие порядка 50 мсек, для замены релейных схем больше не нужно.

И всё. Никаких интерфейсов. Никаких прерываний. Никаких экранов. Ах, да, экраны… Не помешает отображение состояния входов и выходов, здесь надёжней светодиодов пока ничего не придумали. Ну и не забываем, что всё делается из спортивного интереса, соответственно бюджет ложится на плечи разработчика. Кстати, очень хороший стимул.

Если не брать в расчёт уровень сигнала в 24 вольта, то с задачей легко справляется абсолютно любой микроконтроллер с количеством I/O (входов/выходов) не меньше требуемого.

Разбираемся с уровнями


Изначально я хотел применять на входах оптроны. Любой, кто более-менее разбирается в электронике, тем более промышленной, знает, что оптронов много не бывает. В комментариях вам подробно расскажут, почему нельзя без оптронов. Но я взвесил все За и Против, и решил отказаться. Так что некоторые могут дальше не читать, и сразу переходить писать комментарий.
Итак, мы имеем входной сигнал 24 вольта, или 0 вольт при отсутствии сигнала. Это позволит использовать бесконтактный индуктивный датчик положения или обычный контактный концевой выключатель. Из 24 вольт нужно получить безопасное для контроллера напряжение логической единицы. Старый добрый делитель напряжения справляется с этим как нельзя лучше.

image

Резисторы посчитаны с учётом, чтобы при любых отклонениях входного напряжения на плюс-минус 20% от номинального напряжение на входе микроконтроллера было больше напряжения переключения (обычно это половина напряжения питания контроллера), но не более напряжения питания контроллера, считаем его равным 5 в. Подходит для любого контроллера семейства AVR. Кроме того, предполагаемый ток через делитель около 7 мА, что снижает вероятность влияния наводок и при этом не сильно нагружает выход датчика и источник питания. Стабилитрон на напряжение 4,7 В служит для защиты от импульсных перенапряжений при тех же наводках. Существует ещё дребезг контактов, с ним мы можем бороться программно или не бороться совсем, это ведь всего лишь макет. Теперь бы ещё сделать индикацию состояния входа. И вот здесь можно применить лайфхак, убив сразу двух зайцев:

image

Светодиод на схеме выполняет две функции- работает как стабилитрон, ограничивая напряжение на уровне 2,8...2,9 вольт (только для синих и белых светодиодов!), ну и светит к тому же. Должен предупредить, что в некоторых случаях напряжения на светодиоде не достаточно для переключения входа контроллера! При использовании нескольких входов контроллера мы таким образом упрощаем монтаж и экономим несколько стабилитронов. Плавно повышая напряжение на входе, можно заметить, что момент зажигания светодиода и момент переключения входа немного не совпадают. Но нас это не очень беспокоит, так как промежуточных уровней на входе быть не должно- только 0 В или 24 В. Естественно, к этому моменту у вас в контроллере должна быть хотя бы минимальная тестовая прошивка для одного входа и одного выхода.

Теперь выходной сигнал с контроллера тоже нужно адаптировать под 24 В, причём с учётом, что общий провод, он же минус, является общим для всех выходных реле. Здесь нужно минимум 2 транзистора и 2 резистора:

схема
image

На самом деле нужен бы ещё один резистор, и защитный диод параллельно реле, но сейчас не об этом. Поначалу я использовал эту схему. Но в один прекрасный момент обратил внимание на оптроны, от которых я отказался вначале.
Тот, кто нам мешает, тот нам поможет

схема
image
Смотрим параметры оптронов по даташитам: самый дешёвый и доступный PC817C по выходу позволяет коммутировать U вых: 35 В: I вых: 50 мА. Те реле, что подключены к ПЛК у нас (на предприятии), берут до 45 мА. Без запаса, но вполне подходит. Большинство малогабаритных реле на 24 В и вовсе тянут до 15...20 мА. В конце концов, можно купить оптрон подороже, если очень нужно, там и ток до 80 мА, и напряжение до 60 В. Нам для макета и 817 подойдут. Чтобы вы не учились на своих ошибках, предупреждаю, что для максимального тока по выходу через светодиод оптрона нужно пропустить больше 7 мА.

Ну и снова вспомним об индикации. Чтобы отобразить состояние выхода, добавим светодиод последовательно с светодиодом оптрона, у нас там всё равно вхолостую падает больше 3 вольт. И пора бы нарисовать защитный диод, пока вы не сожгли оптрон. Кстати, так и не смог найти методику выбора защитного диода в зависимости от параметров реле. С одной стороны, он должен быть импульсным, с другой– высоковольтным. К тому же его можно поставить параллельно транзистору, как лучше? Практика показывает, что достаточно маломощного диода IN4148 в данном случае, но хотелось бы теоретического обоснования.

схема
image

Резистор 220 ом указан с расчётом опять же на синий или белый светодиод, если поставить красный, ток в цепи с 3,5 мА вырастет до 9 мА, это нужно учитывать.

Немного о программировании


Ну вот, столько букв, а я до сих пор не добрался ни до сути заглавия, ни до ATtiny13. Для программирования своего контроллера я использовал проект FLProg, визуальная среда программирования, максимально приближающая программирование контроллера к программированию ПЛК на языках LAD и FBD. Созданная в этой среде схема, она же проект, компилируется в скетч Ардуино, который уже из среды Ардуино я заливаю в ATtiny13 или другой контроллер семейства AVR. Например, такая простенькая схема

image

компилируется в такой код:

bool _k1 = 0;
void setup()
{
pinMode(1, INPUT);
pinMode(2, INPUT);
pinMode(3, OUTPUT);
}
void loop()
{
_k1 = (((((!(digitalRead (1)))) &&((digitalRead (2))))) || ((((!(digitalRead (1)))) &&(_k1))));
digitalWrite (3, _k1);
}

Попробуйте всё то же написать вручную- одну скобку где-то пропустил, и всё насмарку. Огромное спасибо творцу проекта FLProg Сергею Глушенко, его программа значительно повлияла на моё «творчество» за последние три года. Ардуинщикам всё должно быть понятно и так, а остальным не знаю как объяснять. Единственное, pin на схеме и в коде– это пины контроллера в среде Ардуино, их нумерация отличается от нумерации ножек. Как всё это залить в ATtiny13, подробнейшим образом расписано здесь: Обновленное руководство по программированию Attiny13 или Attiny13a с помощью Arduino IDE Да, ещё мелочь: FLProg всё ещё не поддерживает ATtiny13 (вроде в ближайшее время должна добавиться), так что прикидываемся, что работаем с другим контроллером, например ATmega168. Просто FLProg будет предлагать к использованию пины, которых нет у ATtiny13, но их можно не брать. А уж в Arduino IDE нужно ставить правильный тип контроллера, иначе ничего не выйдет.

Ну и о самом главном


Что мы имеем в итоге? У нас есть ATtiny13, у которой для пользования доступны 5 ног, которые мы можем назначить входами или выходами. Если очень захотеть, можно задействовать 6 ног, но это чревато, читаем здесь, например: Мало выводов? Используем RESET.

Ну, получим 6, всё равно мало. Как получить больше?

А вот так:

схема
image

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

Я уже упоминал, что мне достаточно быстродействия схемы порядка 50 мсек. Значит, достаточно раз в 50 мсек быстро опросить состояние входов, затем назначить их выходами, и подать на эти выходы нужный уровень. После чего назначаем выходы входами, и повторяем процесс.

Во время опроса на входном делителе у нас 0 вольт или 2,8 В, это же напряжение подаётся на вход микроконтроллера, в любом случае этого недостаточно для протекания тока через цепочку выхода. Для того, чтоб через выходную цепь пошёл ток, необходимо напряжение минимум 1,1 В (падение на светодиоде оптрона) плюс 2,9 В, итого минимум 4 вольта. Соответственно тока в этот момент нет, транзистор закрыт.

Далее вход стал выходом. Если выход в состоянии логического нуля, через выходную цепь опять же не протекает ток, транзистор закрыт. Если же выход в состоянии единицы, то напряжение на нём близко к питанию, то есть около 5 В, соответственно через выходную цепочку светодиод оптрона-резистор-светодиод протекает ток, что открывает транзистор оптрона и включает реле. Часть тока в это же время протекает через резисторы 3 кОма (который горизонтально на схеме) и 680 ом. Но падения на получившемся делителе недостаточно, чтоб зажечь светодиод входной цепи. Если же в это время на входе высокий уровень, светодиод входа горит, а к току входной цепи добавляется небольшой ток от пина контроллера.

Что мы имеем в итоге? При высоком уровне выхода реле включено 50 мсек, затем выключено менее 1 мсек, и снова включено 50 мсек. Само собой, за 1 миллисекунду реле выключиться не успевает, оно отпадёт только в случае нахождения выхода большую часть времени в состоянии нуля. Транзистору оптрона эта ситуация не очень нравится, диод ему в помощь.

Схема проверена в работе, функционирует не только в теории. Сюда просятся ещё несколько деталей для надёжности, на схеме абсолютно необходимый минимум.

Но мы получаем только 6+6=12 входов-выходов, где взять ещё 2?

опять схема
image

Ну, логику вы поняли? Здесь уже понадобится аналоговый вход, их у нас есть) причём целых 4 штуки, правда, один опять же на ножке сброса, оставим его на чёрный день. На пине микроконтроллера в режиме опроса состояния входа напряжение 0 вольт, если на обоих входах по схеме низкий уровень, и 2,8 вольта, если на обоих входах высокий уровень (мы это уже выше проходили). А вот если на одном из них 24, а на другом 0, или наоборот, мы получаем ещё 2 промежуточных значения– 0,93 В или 1,87 В. Остаётся только сравнить полученное значение на соответствие определённым пределам, и назначить состояние входов переменным в программе. В среде Arduino IDE всё это делается довольно медленно и ресурсоёмко, но даже при этом у меня осталось свободно почти половина памяти ATtiny, и удовлетворительная скорость. Вы же можете написать всё на Ассемблере, и будет ещё круче.

Итак, как видите, 6 выходов и 10 входов(!) можно получить от ATtiny13 даже без микросхем регистров (такой опыт у меня тоже был). Конечно, практической пользы от этого мало, отлаживать такое устройство очень неудобно. Хотя отладить можно на контроллере с большим количеством ног, а уж готовую схему «залить» в ATtiny. Ну, и экономически целесообразней сделать всё то же на ATmega8, и без танцев с бубнами. Но удовольствие не то :-)

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

ПЛК на КДПВ не имеет отношения к данной публикации, просто я не стал приводить фото реальных ПЛК, используемых на моём предприятии, дабы невзначай не обидеть производителя. Зато количество I/O на нём соответствует поставленной задаче. Кстати, эти цифры (8/6) появились из конкретной задачи, на которой я хотел испытать свой неПЛК, чтобы не говорить о «сферических конях в вакууме».

Что ж, если меня не заплюют после первой публикации, возможно, напишу о своём более практическом опыте «ПЛКстроения», с фотографиями и пасьянсом. Жду отзывов.

P.S. Если вы смотрите на схемы в статье, и думаете: «Что же мне это напоминает?»

вот
image

Комментарии (83)


  1. lingvo
    16.03.2019 22:12
    +5

    Не буду критиковать ардуино, чтобы не ранить вас. Дам советы:


    1. По схемотехнике входов/выходов. Экономия здесь обратно-пропорциональна надежности. Если вы хотите получить действительно работающие во всех условиях входы и выходы, советую скопировать вот эту схему и не изобретать. Все элементы этой схемы необходимы и достаточны — ничего не выкинуть, ни добавить. На выходе там достаточно дорогой драйвер, можно обойтись попроще, например MIC2981/82. Но они могут сгореть при перегрузке.
    2. Откройте и изучите для себя SPI и тогда с помощью 4-х пинов и сдвиговых регистров вы сможете получить неограниченное количество цифровых входов/выходов. При этом для гальванической развязки контроллера будет достаточно развязать тоже только эти 4 пина, например с помощью специализированых цифровых изоляторов для SPI от ADI или TI.


    1. seri0shka Автор
      16.03.2019 22:18

      Вы невнимательно читали, возможно. Про SPI знаю, регистрами пользовался. Интерес был именно обойтись без этого. Про надёжность тоже знаю, такой задачи не ставил.


      1. kzhyg
        16.03.2019 22:37
        +4

        И в чём тогда смысл статьи? Показать, что можно соединять элементы?


  1. Tsvetik
    16.03.2019 22:56
    +3

    Оптронные выходы можно мультиплексировать диодами
    image


    1. seri0shka Автор
      16.03.2019 23:05
      +1

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


  1. mwizard
    16.03.2019 23:40
    +1

    Попробуйте всё то же написать вручную- одну скобку где-то пропустил, и всё насмарку. Огромное спасибо творцу проекта FLProg Сергею Глушенко, его программа значительно повлияла на моё «творчество» за последние три года.

    А можно не считать скобочки, и сразу написать проще?


    _k1 = (!digitalRead(1) && digitalRead(2)) || (!digitalRead(1) && _k1);
    digitalWrite(3, _k1);


    1. seri0shka Автор
      17.03.2019 00:01
      +1

      Специально для наглядности привёл простейший вариант. Попробуйте здесь так выкрутиться:imageБлок «В»- защита от дребезга, OUT_prog_10 — не обращайте внимания.


      1. splav_asv
        17.03.2019 00:14
        +1

        Тут уже лучше от семантики идти, без неё получится не читаемо и не поддерживаемо. Я и на схеме то логику плохо прослеживаю уже — практически нет значащих названий.


      1. starDestroyer
        17.03.2019 01:44
        +2

        Вроде так? Если ошибся, прошу поправить.
        _k54_k53 = (k54 || k53) && ((k10 && k20) || k70) && (!k20 || !k52);
        _k51 = k51 && ((k14 && k15 && k26 && k59) || (k23 && (k20 || k70)));
        result = (_k54_k53 || _k51);


        1. seri0shka Автор
          17.03.2019 14:02

          Как минимум компилятор выдаст ошибку по поводу _k54_k53 — нет такой переменной.


          1. starDestroyer
            17.03.2019 14:08

            Так я и не объявлял тут переменные). Это просто сокращённый пример. Я же спросил о том, всё ли правильно в логической части.


    1. DolphinSoft
      17.03.2019 23:53

      _k1 = ( !digitalRead(1) ) && (digitalRead(2) || _k1);
      digitalWrite(3, _k1);


  1. Archy_Kld
    16.03.2019 23:54
    +8

    Делитель напруги внешнего напряжения на вход? У МК с исполнительным реле общий силовой провод? Индуктивной нагрузкой качать транзистор? Легко!
    Развязывать гальванически — для слабаков! Что произойдёт при выходе из строя почти любой дискретки на схеме, или потере контактов ножек — да подумаешь! Паропанк и мэд макс в одну затяжку в углу обреченно смолят беломорины.

    При всём ужасе эта хтоническая штука еще и теоретически и, вероятно, практически работоспособна.
    Моё искренее восхищение чувством технического юмора у автора!
    Правда, мне непросто было объяснить жене — что вызвало такой хохот от принципиальных схем.
    Попробовал на аналогии с давней игрушкой «Невероятной машиной», где чтобы потушить свечу надо было создать устройство, бьющее молотком по хвосту мыши, которая потом бежит по дощечке, перекладывающейся от изменения центра масс на консоли, толкающая чугунный шар, падающий на свечу.

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

    Действительно, использовать эту The Incredible Machine в одном объёме с людьми нельзя ни в коем случае. Да и хоть чуть ценное оборудование/техпроцессы на неё весить стремно даже на 10 минут, да даже просто на включение для проверки. Но и отказать ей в имени ПЛК так же рука не поднимется, формально практически все признаки налицо.
    ПЛК, одна штука, 6/10 I/O, без сдвиговых регистров и цифровой логики кроме ATtiny13, всё верно, распишитесь в получении вот тут.

    Жаль, нет хаба с абсурдными, забавными, непозволительными уловками и хаками.
    Наподобие Остеровских вредных советов.


    1. seri0shka Автор
      17.03.2019 00:16

      Вы слишком серьёзно относитесь, хорошо бы все разработчики техники так относились к своей работе. В тех же настоящих сертифицированных ПЛК, что применяются у нас (и не только), уровень схемотехники колеблется от «выше крыши» до «ниже плинтуса». Чего стоят только выходные реле внутри ПЛК, которые по паспорту должны выдерживать 5 А, а по факту выходят из строя при 0,5 А (они просто обречены на это при размере 4,5х20х13 мм, хотя размеры плат позволяют установить в 2 раза большие по размеру). Или сетчатый металлический корпус, который даёт прекрасную вентиляцию, но не защищает от металлической пыли и стружки, которой полно вокруг.


      1. lingvo
        17.03.2019 01:44
        +1

        Производители ПЛК клепают их тысячами. Им есть смысл выкручиваться и экономить на каждом реле, пытаясь при этом сохранить надежность и пройти сертификацию. Но вам-то зачем?


      1. lelik363
        17.03.2019 09:09
        +1

        Чего стоят только выходные реле внутри ПЛК, которые по паспорту должны выдерживать 5 А, а по факту выходят из строя при 0,5 А (они просто обречены на это при размере 4,5х20х13 мм, хотя размеры плат позволяют установить в 2 раза большие по размеру). Или сетчатый металлический корпус, который даёт прекрасную вентиляцию, но не защищает от металлической пыли и стружки, которой полно вокруг.

        Как уже было замечено ПЛК производят тысячи и всегда можно подобрать нужное решение — защищенное и с необходимыми параметрами.


      1. olartamonov
        17.03.2019 12:20

        Чего стоят только выходные реле внутри ПЛК, которые по паспорту должны выдерживать 5 А, а по факту выходят из строя при 0,5 А


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


        1. seri0shka Автор
          17.03.2019 13:27
          +1

          «Вот вам ПЛК, соответствует всем стандартам, есть все сертификаты, только вы его не нагружайте постоянным током, либо индуктивной нагрузкой! Лучше даже питание не подавайте. Иначе гарантия снимается.»


          1. katzen
            17.03.2019 16:36
            +1

            То есть вы, посмотрев на плохо сделанное, решили усугубить ещё?


          1. olartamonov
            17.03.2019 18:43
            +1

            Что за бред вы несёте, при чём тут стандарты и сертификаты?

            «Максимальный ток контактов» у любого электромагнитного реле — это не одно число, а несколько графиков зависимостей от характера нагрузки.


          1. NetBUG
            18.03.2019 00:24

            Ну справедливости ради, свойства реле на выходе обычно хорошо документированы (а если нет — разберите и посмотрите).
            И если на нём написано 10А, а под звёздочкой в даташите сказано, что речь про 12VAC и, скажем, 10 тысячах циклов, а на 230VAC при 1А там будет всего две тысячи всё такое — ёжику понятно, что не надо на выход втыкать двухкиловаттную печку на 220, а нужно поставить второе реле или контактор.


      1. juray
        17.03.2019 17:23

        А это в каких так? Они действительно имеют сертификаты, которым не соответствуют, это не фигура речи?


    1. lingvo
      17.03.2019 01:39
      +1

      Ну будьте попроще. Мне тоже больно смотреть, но раз автору нравится — пусть будет.
      Единственное, что мне непонятно назначение данного ПЛК: реальными нагрузками не поуправляешь — оно зависнет или сгорит от первого чиха или грозы. Для передачи коллегам и отладки 24-х вольтовых схем на столе? Но тогда это вряд-ли будет серийное изделие. Но тогда зачем экономить каждую копейку и ставить 8-ножечный контроллер? Автор не подскажет?


      1. seri0shka Автор
        17.03.2019 02:25

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


      1. Archy_Kld
        17.03.2019 09:34
        +3

        Мне тоже больно смотреть, но раз автору нравится — пусть будет.

        Видимо я не сумел достаточно четко выразить свою мысль.
        Мне — нравится.
        Вот действительно нравится и я восхищен.
        Автор вначале статьи насыпал дисклеймеров достаточно, чтобы можно было не воспринимать посыл «смотрите, вот это лучше, чем обычный ПЛК», он четко и недвусмысленно обозначил цель: из спортивного интереса суметь на 6 ногах сделать управление 6/10 I/O.
        И он сделал это.
        Ни на пол-секунды не предлагая использовать как реальную ответственную схему.

        Тур Хейердал с Кон-Тики и Ра. Какой смысл ему был пытаться переплыть океан на соломенном кораблике?
        Что, он не сумел построить хотя бы нормальную 50-футовую яхту для той же цели?
        Ровно тот же побудительный мотив: показать что можно! Даже вот так, на грани возможностей и заа гранью традиционного здравого смысла. На конструкции из тростника. В то время, когда океанских судов, плывущих по тому же маршруту сотни и тысячи.
        Но он сделал, показал, что и даже так — можно.

        Ровно так же лично я к авторскому ПЛК отнесся.


        1. olartamonov
          17.03.2019 12:15

          Ровно тот же побудительный мотив: показать что можно! Даже вот так, на грани возможностей и заа гранью традиционного здравого смысла. На конструкции из тростника


          Ещё можно в схему на 24VDC транзисторы 20-вольтовые поставить.

          В принципе, в основном они даже будут работать.


  1. splav_asv
    17.03.2019 00:09
    +7

    Предлагаю тэг «ненормальная схемотехника», по аналогии с «ненормальное программирование».
    В качестве прикольной штуки, как можно извернуться — довольно любопытно.
    Визуальное программирование для tiny13 тоже любопытно выглядит, хотя и сильно на любителя.
    В общем — интересно. Но надо жирную плашку — схемотехнические решения демонстрируют принципиальную возможность, но настоятельно не рекомендованы для реальных применений.


    1. Archy_Kld
      17.03.2019 13:56

      «Абсурдная»? «Паранормальная»? «Дивергентная»? «Паталогическая»? «Перверсивная»

      Население измерения Извр, уверен, проголосовало бы за термин «перверсивная схемотехника», что-то в нем все же есть.

      — Открой же мне, в чем странность своих предпочтений?
      — Например, я использую физическую инерцию контактов реле, они не успевают разомкнуться, пока я переключаю порт на вход, смотрю логический уровень, и ставлю обратно как выход!


    1. lingvo
      17.03.2019 14:28
      +1

      С визуальщиной как раз все нормально. Соответствующая статья вызвала бурю комментариев и в этом варианте оно достаточно хорошо применимо.
      Но не надо путать „ненормальную схемотехнику“ с „неправильной“. С одной стороны использование стробируемых опросов, например, вполне вкладывается в „трюки схемотехники“ и используется на практике. Я сам в одном изделии так решал вопросы по защите выходов от КЗ. К ненормальной схемотехнике также можно отнести различные оригинальные решения — например, получение примитивного АЦП на паре элементов и цифровом входе, или различные преобразователи уровней.


      Но вот представленные защитные цепочки — это больше к неправильной схемотехнике, чем к необычной.


      Из-за этого, собственно, я не могу решить, ставить плюс статье или минус.


  1. ATmegAdriVeR
    17.03.2019 00:26
    +1

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


    1. seri0shka Автор
      17.03.2019 00:31
      +1

      Да, я знаю, была мысль указать это в статье, но решил, кто серьёзно интересуется, тот и сам знает. Есть ещё защитные диоды внутри контроллера, правда слабенькие. Кстати, подать -24В на подключенный к питанию ПЛК возможно только от отдельного источника, со своего не получится.


      1. lingvo
        17.03.2019 11:20

        Можно перепутать плюс с минусом и тогда ой.


  1. juray
    17.03.2019 01:57
    +1

    С одной стороны, он должен быть импульсным, с другой– высоковольтным.

    Вольтаж диода указывается по обратному напряжению (для закрытого), в даташитах этот параметр обозначают Vr (r — reverse).

    Вот взять упомянутый у вас 1N4148 (не IN а 1N: 1N — стандартное обозначение диодов, 2N — транзисторов, 3N — оптронов):

    А ЭДС самоиндукции при резком выключении реле прикладывается к диоду в прямом, открывающем направлении. При этом напряжение диод сам ограничит за счет формы ВАХ, а критичным параметром становится максимальный импульсный ток в прямом направлении If (f — forward).

    Собственно, диод тут и ставится ради ограничения напряжения на реле, «срезания» импульса ЭДС. Параллельно транзистору смысла нет ставить, ведь тогда этот импульс мимо транзистора уйдёт в линию питания

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

    «Должен быть импульсный» — это да, требования к быстродействию. Диод должен успеть открыться за время не меньшее, чем фронт импульса ЭДС катушки, иначе пока он не открыт — он не ограничивает напряжение. С этим у 4448 всё более-менее нормально — 4 наносекунды.

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

    (источник — ГОСТ 28751-90)


    1. olartamonov
      17.03.2019 12:11

      Вообще говоря, лучше вообще не диод, а TVS.

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


      1. VT100
        17.03.2019 14:36
        +1

        Эмпирически — ток через индуктивность (катушку реле) не может измениться скачком. Таким образом, диоду придётся иметь дело практически с тем-же током, который был в катушке замкнутого реле. А этот ток нам известен по сопротивлению катушки и макс. напряжению питания.

        О напряжении блокирующего диода…

        … а MOSFET, внутри него уже есть такой диод, обусловленный техпроцессом производства полевых транзисторов — часто его даже рисуют в условном графическом обозначении:

        Что-то у меня не вытанцовывается помощь от этого диода. Пусть реле подключено к «земле» и управляется p-канальным транзистором (или p-n-p транзистором с параллельным ему диодом). Транзистор размыкается и катушка реле пытается поддержать ток, текущий от её «верхнего» вывода к «нижнему». Поскольку потенциал «нижнего» вывода фиксирован, то потенциал «верхнего» «падает» ниже уровня «земли» и… ток через паразитный диод MOSFET'а по прежнему не течёт.
        Из этого эмпирического эксперимента следует, что блокировочный диод должен с некоторым запасом выдерживать напряжение питания.

        источник — ГОСТ 28751-90

        Спасибо, хорошая печка для начала танцев.
        P.S. Он уже заменён на ГОСТ 33991. protect.gost.ru/default.aspx?control=6&month=12&year=2019&search=33991&showall=-1

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

        Это может показаться контринтуитивным, но увеличивает он не столько время размыкания, сколько время от снятия сигнала управления до начала размыкания. Это следует из энергии запасённой в обмотке реле и квадрата отношения напряжений питания и отпускания реле (при типичных напряжениях — не менее 90% энергии будет рассеяно на диоде). А собственно время размыкания — определяется, в основном, только механикой реле (усилие пружин и инерция подвижных частей).
        Да, там есть ещё некоторый всплеск тока катушки, обусловленный изменением индуктивности при размыкании магнитопровода. Но начальный момент его размыкания — это ещё не момент начала размыкания контактов, КМК.


        1. juray
          17.03.2019 16:10
          +1

          Таким образом, диоду придётся иметь дело практически с тем-же током,
          Это следует и из того принципа, что индуктивность «старается» сохранить текущую величину тока через обмотку (инерциальна по току).

          ток через индуктивность (катушку реле) не может измениться скачком
          Но разница между 1 А/мс и 1 А/мкс довольно существенна для величины ЭДС самоиндукции.

          Но вообще да, катушка после размыкания — по сути, источник тока, а не напряжения. Что-то я сразу не подумал.

          Что-то у меня не вытанцовывается помощь от этого диода.
          С одной стороны да, это я с мостовой схемой перепутал. Не так давно парился с активным торможением двигателя в одном проекте, вот в голове и засело. И я не про пользу про него говорил а про вред.

          С другой стороны — в принципе, и в однотранзисторном выходе катушка ведь вместе с емкостями монтажа и коллектора транзистора образует LC-контур, так что после отрицательного выброса последует положительная полуволна, каковая и может просочиться через диод в питание (если превысит его). Может и не превысить — всё зависит от величины индуктивности катушки и паразитных емкостей.

          заменён на ГОСТ 33991
          Ну, я уже в автомобильной теме не вращаюсь, так что за такими заменами не слежу. Но возможно, пригодится в будущем, спасибо.

          Кстати говоря, ГОСТ 28751 был неполной калькой с ISO 7637 (состоящего из нескольких частей — и в нём всё гораздо подробнее расписано). Может быть, ГОСТ 33991 эту недоработку и исправляет, позже посмотрю.

          Это что касается автотранспортной темы. А для общеэлектронных применений есть (или был, я не проверял действительность) серия ГОСТ Р 51317 / МЭК 61000.
          В частности, ГОСТ Р 51317.4.4-99 (МЭК 61000-4-4-95) «Устойчивость к наносекундным импульсным помехам» и ГОСТ Р 51317.4.5-99 (МЭК 61000-4-5-95) «Устойчивость к микросекундным импульсным помехам большй энергии»


          1. VT100
            17.03.2019 16:23

            С другой стороны — в принципе, и в однотранзисторном выходе катушка ведь вместе с емкостями монтажа и коллектора транзистора образует LC-контур, так что после отрицательного выброса последует положительная полуволна, каковая и может просочиться через диод в питание (если превысит его).

            С одной стороны да. Но с другой стороны — другая полуволна должна будет начаться на условиях «менее 0.6 вольта на паразитных конденсаторах и менее 10% исходного тока в катушке». Не думаю, что тут будет где разгуляться колебательному процессу.
            Для колебаний нет причин.
            image


        1. olartamonov
          17.03.2019 18:50

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


          Нет, это не так.

          www.te.com/commerce/DocumentDelivery/DDEController?Action=srchrtrv&DocNm=13C3264_AppNote&DocType=CS&DocLang=EN


          1. sim2q
            18.03.2019 06:27

            интуитивно на стабилитроне побыстрее т.к. на нём будет поддерживаться падение напряжения больше чем на диоде и соотв рассеиваться большая мощность


          1. VT100
            18.03.2019 23:32

            Вот только на днях выудил распечатки с этой и другими app. notes из культурного слоя на столе и освежил ссылку на сайт Tyco… совпадение?…
            www.te.com/global-en/products/relays-contactors-switches/relays/intersection/application-notes.html

            Упомянутая app. note, на мой взгляд, не блещет полнотой и качеством фактического материала. Например, на осциллограммах нет критически важной информации — о состоянии контактов. Так-же — нет учёта резкого изменения индуктивности при размыкании магнитной системы (при этом до размыкания NO контактов — ещё довольно далеко). В итоге — жалкие «обязательно проверьте работу выбранного демпфера».
            Гораздо более насыщенными являются «Determining Relay Coil Inductance», «Application of Relay Coil Suppression with DC Relays», «Proper Coil Drive is Critical to Good Relay and Contactor Performance».
            Так в последней — явно указано, что при питании катушки реле несглаженным или слабо стабилизированным напряжением после выпрямителя — следует использовать именно диод. Хотя и с оговоркой, что некоторым типам реле требуется качественно стабилизированное напряжение, которое и используется при определении параметров.

            Кто умеет в электромагниты — чем определяется движение арматуры реле? Ампер-витками, магнитным потоком в зазоре между арматурой и якорем, индукцией в нём? А то я единственный раз рассчитывал электромагнит давным-давно на курсовой, да и то, не вписался в перегрев обмотки.
            Вот пока нашёл тут (http://em.samgtu.ru/sites/em.samgtu.ru/files/pictures/proect_rele.pdf), что "… величина электромагнитной силы, действующей на якорь, зависит от изменения запаса магнитной энергии в его рабочем воздушном зазоре." и она резко падает при увеличении зазора.

            P.S. Вот ещё интересный документ: kazus.ru/forums/attachment.php?attachmentid=37180&d=1343449017


            1. olartamonov
              19.03.2019 07:23

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


              Нет, там сказано не это. Там сказано, что использование диода увеличивает время размыкания реле и дребезг его контактов — но есть случай, когда увеличенное время размыкания является меньшим из зол.


      1. juray
        17.03.2019 15:32

        Да, супрессор тоже применяется. Мы в итоге его и поставили в схеме, приведенной в комментарии с осциллограммами.

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


  1. juray
    17.03.2019 02:57
    +3

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

    Вот кое-что из моего архива экспериментов.

    Схема, используемая для замеров:

    (на входе — силовой электромагнит пневматического клапана)


    1. seri0shka Автор
      17.03.2019 11:52
      +1

      Спасибо за море информации, жаль, главный вопрос о методике выбора диода остался нераскрыт. Кстати, у защитного диода есть огромный минус, о котором многие не догадываются. Он вносит задержку в включение и отключение реле, доходящую в некоторых случаях до 0,2 секунды, в быстрых схемах с десятками реле это может быть очень важно. Этого недостатка почти лишён варистор, его редко ставят из-за разницы в цене.


      1. lingvo
        17.03.2019 14:18

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


        Погуглите сами. Вопросы выбора защитных цепочек для защиты при коммутации индуктивных нагрузок уже давно отвечены в десятках app note. Там же даны сравнения их характеристик.


      1. yarston
        17.03.2019 14:39
        +1

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


      1. juray
        17.03.2019 16:23

        А в каких именно случаях такая задержка появляется?
        На приведенных осциллограммах фронт падения ЭДС (а следовательно, и тока катушки) что без диода, что с диодом — около сотни нс, притом что энергии в электромагните было запасено немало.

        И если уж не закорачивать ЭДС диодом, а ограничивать нелинейным элементом — то TVS имеют преимущество перед варисторами по скорости срабатывания (пикосекунды против наносекунд). Но они и подороже варистора.


        1. sim2q
          18.03.2019 06:19

          да какая разница пико- или нано- если мы говорим об индуктивности клапана или реле… да пусть даже — микро-


        1. lingvo
          18.03.2019 15:06

          фронт падения ЭДС (а следовательно, и тока катушки)

          Это не одно и тоже.
          Я так понимаю, что ток в катушке — это нижний голубой график. В случае без диода он снижается до нуля за 300мкс.
          С диодом он снижается до 10% примерно за 4мс.


          1. juray
            18.03.2019 15:51

            Да, не одно и то же, но для грубой оценки годится.

            А нижний график — это после делителя с RC-фильтром. Его фронт затянут конденсатором С2, разряжающимся через R1.


            1. lingvo
              18.03.2019 17:13

              Так тогда толку от этих графиков — 0. Вам надо ток через катушку измерять.


              ЭДС самоиндукции равна -L*(di/dt). Поэтому, когда на втором графике у вас напряжение на катушке упало до нуля (а точнее до -0.6В, равные падению напряжения на защитном диоде), ток через катушку только начнет плавно и очень медленно снижаться со скоростью 0.6В/L. И пройдет еще куча времени, пока он снизится до нуля, а вы этот процесс даже не увидите на осциллографе.


  1. Geeskel
    17.03.2019 06:27
    +1

    А как дела с надежностью, отказоустойчивостью, гарантированным временем исполнения основного цикла программы? Пыле-влагозащитой, да и вообще использованием в промышленных условиях? В конце концов, это ж отличительные черты промышленного ПЛК от всяких ардуиновых самоделок


    1. seri0shka Автор
      17.03.2019 11:38
      +1

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


  1. REPISOT
    17.03.2019 11:23

    Оптопара в режиме эмиттерного повторителя? Зачем?


    1. seri0shka Автор
      17.03.2019 11:45
      +1

      Посмотрите ещё раз внимательно, и подумайте. Ей нечего повторять, база даже не подключена. С таким же успехом можно включить транзистор оптопары в разрыв минусового провода, через него будет течь ровно тот же ток, то же падение напряжения. Кстати, падение напряжения при включении по схеме от 0 вольт (в зависимости от тока нагрузки), а не от 0,6В как с эмиттерным повторителем.
      Когда я впервые попробовал эту схему, меня тоже немного сбило с толку…


      1. REPISOT
        17.03.2019 15:19

        Если база не имеет физического подключения, это не значит, что через нее не течет ток.


        1. VT100
          17.03.2019 15:43
          +2

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


    1. juray
      17.03.2019 16:29
      +1

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

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

      Но вообще, механизм открывания фототранзистора при поглощении фотонов несколько иной, чем под действием тока базы, поэтому считать эту схему «эмиттерным повторителем» всё-таки не совсем корректно.


  1. eteh
    17.03.2019 12:06

    А не лучше использовать RC защиту? Закорачивать накоротко катушку реле после оптопары, на мой взгляд, дело не очень хорошее…


  1. VT100
    17.03.2019 14:44

    Любой, кто более-менее разбирается в электронике, тем более промышленной, знает, что оптронов много не бывает.

    FTGJ — отпроны не являются необходимым средством увеличения помехозащищённости (тем более, они — не «серебряная пуля»). В некоторых случаях — они могут быть достаточным средством.


  1. Polaris99
    17.03.2019 16:37

    Просто шикарное собрание заблуждений! Прочитал с восторгом, особенно комменты. Обращу внимание на еще один пассаж, который еще не разобрали:
    напряжение на входе микроконтроллера было больше напряжения переключения (обычно это половина напряжения питания контроллера), но не более напряжения питания контроллера, считаем его равным 5 в. Подходит для любого контроллера семейства AVR.
    Интересно, в каком талмуде автор такое вычитал? Не стал доверять своей памяти, полез в даташит Tiny13, там стоит для питания от 2.4 до 5 Вольт 0.6Vcc, полез в более модный Tiny1616, там вообще 0.7Vcc, как, впрочем, и у большинства современных АРМов. Причем из собственного опыта знаю уже, что это не пустые цифры, был у нас тоже такой вот разработчик, завел от STM32F103 сигналы на запитанный от 5В MCP23S17, у которого в даташите тоже стояли те самые 0.7Vcc. 5*0.7 — это ж 3,5В, почти ж 3.3, ничего страшного! Только я потом заколебался ошибки ловить, никак не мог понять, почему иногда данные на выходах не совпадают с тем, что я от них хочу. Уже и скорость работы менял, и запись-вычитывание для контроля, но нет, все равно время от времени что-то проскакивает. И только потом полез в схему и даташиты. Тоже, наверное, оптимист такой был, мало ли что там кто написал в даташите, дело-то житейское, работает ведь почти всегда!


    1. seri0shka Автор
      17.03.2019 16:55

      в каком талмуде автор такое вычитал?
      Практика. Это несложно измерить. Ну и дальше я писал:
      Должен предупредить, что в некоторых случаях напряжения на светодиоде не достаточно для переключения входа контроллера!
      Хотя с этим я столкнулся в смежном проекте на сдвиговых регистрах, а не на контроллере. Там по не очень понятной причине такой трюк не срабатывал только с 4-м и иногда с 3-м сдвиговым регистром в цепочке (74НС165). Даже если менять микросхемы местами, то есть от конкретного экземпляра не зависело.


      1. Polaris99
        17.03.2019 18:09

        Да, несложно измерить при определенных условиях, то бишь, определенной температуре, определенной частоте, определенном выходном сопротивлении. А так — да, дело-то житейское, может и прокатить!


    1. juray
      17.03.2019 17:20
      +1

      Я тоже поначалу хотел придраться к этому моменту, поскольку сам в в свое время заколебался рассчитывать делители при разбросе входного напряжения от 18 до 30,5 В — то есть -25% +27% от номинальных 24 В. И это только паспортные условия эксплуатации, в конструкцию еще некоторый запас закладывался. (А учитывать пороги приучен еще рассыпухой на TTL).

      Но залез актуальный даташит и обнаружил такой график:

      — для 5 В питания порог детектирования «1» составляет таки 2,5 В.
      Что, в принципе, противоречит указанному в том же даташите в таблице DC Characteristics «VIH min 0.6 Vсс».


      1. VT100
        17.03.2019 17:32

        Поддержу предыдущего оратора. График-то — типовой, ЕМНИП. А табличное значение — гарантировано.


        1. juray
          17.03.2019 17:58

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

          Но график таки обозван типовым (находится в разделе Typical Characteristics).

          Озадачивает меня этот даташит, однако.

          Вообще, при таком расхождении я предпочту ориентироваться на худшую гарантию, да и то запас оставить.


          1. Polaris99
            17.03.2019 18:10

            У Микрочипа теперь вот такие вот даташиты, привыкайте. Я бы все-таки доверял 0.6Vcc, то, что там кто-то скопипастил из другого даташита (обычное дело теперь для Микрочипа) — это не гарантия.


            1. juray
              17.03.2019 18:16

              Вот и я говорю — на худший случай (0,6 это похуже чем 0,5 с точки зрения ширины диапазона).

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

              Ошибки в даташитах — дело привычное, в принципе.


            1. lingvo
              17.03.2019 18:28

              Я бы все-таки доверял 0.6Vcc

              С точки зрения инженера-схемотехника это фейл. Как и мнение в посте, на который вы отвечали.


      1. seri0shka Автор
        17.03.2019 17:48
        +1

        Вот спасибо (без сарказма), а то попридираться все горазды, зачастую необоснованно.

        при разбросе входного напряжения от 18 до 30,5 В
        Хотите весёлого? С некоторых пор отечественный производитель ПЛК (тех, что у нас на предприятии) стал давать гарантию на свои ПЛК только при условии питания от «своих» же блоков питания. Те, скорей всего, залежались у них на складе, поскольку конструкция явно разработана в 70-х годах (поверьте, я знаю о чём говорю, именно о конструкции, а не о схеме). Внутри обычный трансформатор с выпрямителем на КД202 (!) и конденсатором, из нового только китайские 5мм светодиоды в прозрачных корпусах. И всё бы ничего, но на ПЛК они пишут «макс 30 В», а на блоке питания при подключенном контроллере 33...34 В.


        1. eteh
          17.03.2019 18:05

          У меня контроллер датчика по активной токовой петле выдает напряжение непосредственно на выходе стабильные 15В, при нормированных 24В и производитель упорно отрицает что прибор может быть неисправен — мол вина в линии)


        1. juray
          17.03.2019 18:10

          Нда, забавно.


    1. lingvo
      17.03.2019 18:15

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


  1. lingvo
    17.03.2019 18:47

    Я, кстати, смотрю, что основным мотиватором этой разработки стали проблемы с «правильными» ПЛК. Интересно было бы узнать производителя.


    1. seri0shka Автор
      17.03.2019 19:06

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


      1. juray
        17.03.2019 22:37

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

        Если у вас пыльно и брызги, значит надо выбирать железо с нужным IP — 54, 65. А когда в характеристиках честно заявлено IP30 — выбирать такое и потом жаловаться, что оно не защищено — нууу, «бачили очи що купувалы». Однозначное нарушение условий эксплуатации же.

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

        Примечание про «отдельные казусы»: если казусы происходят массово — это повод насторожиться и провести экспертизу / испытания в контролируемых условиях, но еще не повод сразу обвинять производителя.
        Мы так за партию микросхем (ключей) поставщику претензии предъявляли, когда в цепи глюки полезли. Сделали замеры параметров — бац, некоторые даташиту не соответствует, и сильно. Комиссия, акт, претензия.


        1. seri0shka Автор
          17.03.2019 23:42

          если изначально в договоре поставок не лажануться
          Недавно был казус. На гибочном станке (один из самых крутых у нас) вышла из строя материнка, сугубо индустриальная, хоть и IBM-совместимая, с кучей хитрых интерфейсов. Замену (б.у) фирма-посредник нашла где-то в Италии за 5000 у.е., прислали почтой из Киева (за такие деньги мог бы и представитель привезти), а она не работает. Закончилось тем, что микруху Биоса с присланной переставили на свою, и всё заработало. Деньги никто не вернул, как я понял, так что это была одна из самых дорогих flash в истории.


          1. juray
            18.03.2019 00:25

            С импортными поставками сложнее, да.


  1. Scooby-do
    18.03.2019 11:00

    Прошу прощения за свою серость, а что такое ПЛК? Программируемый логический контроллер?


    1. lingvo
      18.03.2019 15:02

      Да


  1. 55m55
    18.03.2019 20:23
    +1

    В качестве примера, одна известная европейская компания делает так:

    DI, 24Vdc, dry, w/LED
    image


    1. seri0shka Автор
      19.03.2019 00:47

      По аналогии с «кашей из топора»- если добавить в схему всё, о чём Вы пишете, получится обычный плк.

      «опор» целых три — одна внутри АЦП (напряжение питания микроконтроллера) и еще две (по одной на каждый «цапируемый» дискретный) снаружи изделия (внешние прикладываемые напряжения)
      Нет, две не снаружи, а напряжения стабилизации светодиодов (если снаружи больше 14 вольт примерно при норме в 24В)
      С инерционностью реле вообще нет проблем, время «паузы» на порядок меньше, чем время размыкания сердечника среднестатистического реле. Схема с оптроном на выходе требует минимальное количество деталей при общем минусе для реле (чтоб проверить в существующей схеме). Кроме того, если не заметили, оптопара срабатывает при определённом напряжении на выходе, это является необходимым условием при таком включении.
      Основным посылом проекта был именно минимализм в схемотехнике.
      Спасибо за такой серьёзный разбор, после такой бури эмоций в комментариях я подумаю над испытаниями в реальных условиях. Люди при этом ни в коем случае не пострадают!
      Кстати, меня смущает резистор 100 кОм в приведённой схеме.


  1. VT100
    19.03.2019 07:27

    P.S.

    На самом деле нужен бы ещё один резистор, и защитный диод параллельно реле...

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

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

    Да и то — только для оптронов, отобранных по максимальному коэффициенту передачи тока (CTR). Для «среднего» оптрона — уже могут потребоваться десятки мА.