Помогите решить задачу идентификации подключения

Тема в разделе "Arduino & Shields", создана пользователем FIS, 9 июл 2016.

  1. FIS

    FIS Нуб

    Добрый день!
    Прошу уважаемое сообщество помочь в решении следующей задачи:
    На одном объекте имеется контроллер,, управляющий запорной арматурой (6 кранов для слива различных продуктов).
    На другом объекте имеется 6 заливных горловин емкостей. В каждой емкости находится определенный продукт.
    Расстояние между запорной арматурой объекта 1 и заливной горловиной объекта 2 не более 5 метров (длина токопроводящего шланга).
    Необходимо решить задачу идентификации подключения шланга от сливного крана объекта 1 (с определенным продуктом, данные о нем есть в контроллере) к соответствующей заливной горловине объекта 2 (с таким же продуктом).
    При правильном подключении контроллер должен выдавать разрешение на слив в электромагнитный клапан соответствующего сливного устройства объекта 1, при неправильном подключении - блокирует слив.
    На контроллере есть интерфейсы RS-485 и RS-232, обменивается данными по протоколу Mod Bus.
     
  2. Radius

    Radius Гик

    Мне кажется что самое простое это магнитный или оптический датчик на горловине. Когда вставляется шланг, нужно в контроллер по RS-485 передать идентификатор заливной горловины, а контроллер решает правильно подключили или нет.
     
  3. FIS

    FIS Нуб

    Абсолютно согласен. Только как это сделать по двухпроводной цепи? Устройство (датчики на горловине) должно запитываться по цепи токопроводящего шланга, по нему же должен передаваться сигнал. К тому же магнитный или оптический датчик работает по принципу ключа и не имеет идентификатора. Как мы узнаем, что сработал датчик, соответствующий нужному продукту. Жестко закрепить последовательность датчиков за продуктами не получится (например Датчик1 - Продукт1, Датчик2 - Продукт2). На разных объектах эта последовательность разная и может периодически изменяться. Поэтому в качестве идентификатора нужно устройство с уникальным кодом.
    Еще один не маловажный момент. Магнитные и оптические датчики придется монтировать в непосредственной близости от горловины, что не совсем надежно, т. к. есть большая вероятность вывода его из строя при ударе тяжелым наконечником шланга.
     
  4. ostrov

    ostrov Гуру

    К каждому датчику attiny13 для формирования протокола и RS485 для его осуществления. Рублей на 100.
     
  5. FIS

    FIS Нуб

    Спасибо.
    Как это будет выглядеть и по какому протоколу работать?
    Итого; Имеется двухпроводная цепь (один провод сигнальный, он же токопроводящий шланг, второй - заземление). С одной стороны шланга - контроллер с интерфейсами RS-485, КЫ-232, который управляет запорной арматурой (протокол Mod Bus). С другой стороны шланга - некий датчик с МК attiny13. Каким образом мы сможем активировать датчик, присоединив сливной шланг к горловине? Каким образом мы сможем передать по одному сигнальному проводу (он же токопроводящий шланг) ответ от МК с идентификационным кодом? И еще по этому шлангу мы должны запитать МК.
    Нам важно знать, что шланг подсоединен именно к горловине с нужным продуктом.
    У европейцев есть устройство, но оно без датчиков. На горловине приемной стороны устанавливается блк MultiPID, имеющий 6 выходов (каждый соответствует определенному продукту и может перепрограммироваться) и землю. Этот блок подключается одним проводом к каждой из 6 горловин. Горловины изолированы от резервуара. также изолированы горловины на бензовозе. При подключении шланга замыкается цепь через шланг MultiPID, землю и считыватель на бензовозе. MultiPID запитывается по шлангу. Вопрос в протоколе, по которому обменивается считыватель и MultiPiD.
    Преобрести этот девайс для изучения поблочно не возможно, а целиком стоит как хороший внедорожник.
     
  6. ostrov

    ostrov Гуру

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

    Насчет сигнального кабеля (он же питание) вертится вопрос: почему же наконец нельзя оделить питание от сигнала?
     
  7. Radius

    Radius Гик

    Из стандартных двухпроводных шин, которые подают питание на устройство и передают данные я знаю только M-BUS. Можете посмотреть в эту сторону. Вы хотите все сделать сами или заказать разработку?
     
  8. FIS

    FIS Нуб

    Gjnjve? xnj nt[yjkju
     
    Последнее редактирование: 11 июл 2016
  9. FIS

    FIS Нуб


    А разве M-BUS может передавать сигнал по одному сигнальному проводу и земле + питание. Может лучше протокол 1 Wire использовать?
    Например, микроконтроллер с одной стороны шланга, микроконтроллер с другой стороны шланга, связь между ними по 1Wire. Ведущий МК запрашивает у ведомого идентификацию, ведомый отвечает идентификационным кодом (он же вид продукта). Т. О. можно будет узнать о правильности подключения. К тому же ведомый МК можно будет в случае необходимости перепрограммировать на другой продукт.
    Я пытаюсь разобраться в возможных технологиях. Самому поднять эту тему затруднительно, т. к. не особо разбираюсь в тонкостях МК и протоколов. Зато хорошо знаю предмет автоматизации, что мы хотим.
    Есть зарубежные аналоги (например, http://10.58.10.56:15871/cgi-bin/blockpage.cgi?ws-session=116366774). Но они слишком дорогие. К тому же у нас есть недорогое отечественное решение, закрывающее вопрос на одной стороне (контроллер, управляющий запорной арматурой бензовоза + электромагнитные управляемые клапана).
    Нужно решить вопрос идентификации подключения шланга к нужному резервуару и передачи этого сигнала на ведущий контроллер.
     
  10. Radius

    Radius Гик

    Можно попробовать 1 Ware, но что вы будете опрашивать? На каждой горловине поставите iButton? Но тогда проблема как обеспечить надежный контакт. Мне кажется что решение должно быть безконтактным, типа RFID или какая нибудь радиометка, которая передает по радио свой идентификатор только в момент когда к горловине подключен шланг. Если это бензин или легко воспламеняющиеся жидкости, то там свои требования по искрозащите и пожарной безопасности.
     
  11. FIS

    FIS Нуб

    По 1Wire действительно можно опрашивать iButton, только подключать метки проводами к горловине и земле. Контакт обеспечат металлические разъемы шланга, подсоединяемые к горловинам на бензовозе и сливном резервуаре. Только можно ли использовать в качестве Мастера основной контроллер (MBus) или нужен промежуточный контроллер 1Wire, который будет сопрягаться с основным контроллером?
    Тему RFID рассматривали, очень дорогая технология. К тому же каким образом обеспечить считывание RFID метки на горловине при помощи шланга? Мастерить на конце шланга выносную антенну считывателя и как ее выводить к считывателю, или считыватель устанавливать на шланге? Тогда возникает вопрос питания считывателя и он долго не проживет, т. к. будет испытывать постоянные механические воздействия от ударов о землю, короб и т. п.
    Вопрос по возможности работы во взрывоопасной среде пока намеренно опускаю. Это отдельная тема, решаемая (например Exd или Exia), но повлечет определенное удорожание.
     
  12. Radius

    Radius Гик

    В принципе, так как вы рассказали, все должно работать. По стандарту 1-Wire работает на 300 метров, все зависит от скорости обмена. У вас дальности значительно меньше. Если горловина бензовоза изолирована от "земли", то можно между ней и "землей" установить iButton. Протокол 1-Wire достаточно простой и легко делается программным способом на любом контроллере, можно взять платочку Ардуино, а с основным контроллером стыковаться уже по RS-232/485.
     
  13. FIS

    FIS Нуб

    Длинна шланга обычно до 5 метров. Я думал iButton нужно устанавливать в разрыв между горловиной и землей резервуара. Ведущий на стороне бензовоза. Вопрос в возможности передачи сигнала по неэкранированному проводу, коим является токопроводящий шланг.
    Пообщался сегодня с одним специалистом по контроллерам, он сказал, что на стороне бензовоза нужен шестиканальный контроллер (на 6 сливных горловин), а на стороне резервуаров - iButton по количеству резервуаров. Каждый канал контроллера на стороне БВ отправляет запрос и получает ответ с идентификатором от метки резервуара, к которой подключен шланг (соответствует определенному продукту) и сравнивает его с кодом продукта в отсеке БВ. Если продукты совпадают, выдает команду на ЭМК управления сливом подключенного отсека.
    Данные о видах продукта в отсеках БВ записываются в основной контроллер при наливе продукта в БВ (уже реализовано). У нас основной контроллер МС (на M Bus). Нужно что то придумать для связи по 6 изолированным каналам с метками на резервуарах по 1Wire.
     
  14. DIYMan

    DIYMan Guest

    1-Wire вполне можно программно организовать на той же ардуйне.
     
  15. Radius

    Radius Гик

    Можно контроллер 1-Wire сделать на ардуине, Шесть таких контроллеров подключаете на одну шину RS-485. Основной контроллер у вас скорее всего работает на шине RS-485 по протоколу Modbus. Присваиваете каждой ардуине адрес и опрашиваете их с центрального контроллера.
     
  16. FIS

    FIS Нуб

    Спасибо, в этом направлении и будем двигаться.