/*моя стилистика*/

1 мар. 2011 г.

Как преобразовать CAN в RS485 и наоборот

Фразы: Ее супруг под большим секретом уверял, что, если бы она встретилась лицом к лицу с господом богом, она непременно всплеснула бы своими пухлыми руками и закричала: «Как романтично!»


Про RS485 я уже немного упоминал и т.к. есть счетчики содержащие CAN интерфейсы (Меркурий-200, Меркурий-230 с буквой С), то немного расскажу и о нем, точнее о том как с ним соединиться, особенно если такого преобразователя у вас нет.

То что я прочитал в интернете:
Цифровая CAN-шина – это не конкретный физический протокол. Принцип работы CAN-шины, разработанный Bosch еще в восьмидесятых годах, позволяет реализовать ее с любым типом передачи – хоть по проводам, хоть по оптоволокну, хоть по радиоканалу. КАН-шина работает с аппаратной поддержкой приоритетов блоков и возможностью «более важному» перебивать передачу «менее важного».

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


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

45 комментариев:

  1. Можно сделать еще проще. Чтобы преобразовать сигнал CAN от счетчика в RS485(подключить его к разъему RS485), достаточно изменить полярность сигнальных проводов(не питающих!) и включить между ними резистор 120 ом. Проверено - работает! Кстати, этот резистор(120 ом) уже установлен внутри Меркурий-221 между сигнальными контактами(А,В) интерфейса CAN, а на сигнальных контактах разъема RS485 его нет. Подтягивающие к питанию и земле резисторы можно не ставить.

    ОтветитьУдалить
  2. Господа, а что можно произвести, если стоит ряд счетчиков, часть из которых - 485, а часть- САN. нужен один резистор или несколько, на каждый счетчик? что бы все данные опрашивались с одного хвоста М-221?
    кстати, М-221 не панацея, он не умеет одновременно опрашивать и такие и эдакие интерфейсы, он рассчитан только на один, так как ВНУТРИ у него стоит джампер, который просто так без отвертки, не переключишь.

    ОтветитьУдалить
    Ответы
    1. Кстати джампер внутри М221 для отключения Эха и никак на выходы не влияет, т.е. одновременно могут работать оба выхода.

      Удалить
    2. Кстати, ещё, по поводу джампера: мы, как и все нормальные наладчики, часто работающие через Меркурий-221 с разными интерфейсами (и CAN, и RS-485), первым делом, для удобства работы, в своих М-221 заменили этот джампер на клавишный мини-переключатель, выведенный на корпус преобразователя.

      Удалить
    3. Сейчас уже сделан новый преобразователь USB-RS485/CAN, которому вообще не надо ничего переключать и снимать джамперы. Читать статью

      Удалить
  3. Представленное решение на небольших расстояниях точно работает, но на больших расстояниях может и не заработать. Если у вас один хвост RS485, попробуйте при подключении счетчиков CAN для каждого счетчика поменять А и В. На одном счетчике поставьте между А и В резистор 120 Ом, если не заработает, то в одном месте сделайте подтяжки на питание и землю резисторами 680 Ом как показано.

    ОтветитьУдалить
  4. Извините за ламмерский вопрос .
    Зачем Подтягивающие к питанию и земле резисторы?
    Я предполагаю ,что на длинных расстояниях падает напряжение?

    ОтветитьУдалить
    Ответы
    1. Для улучшения помехозащищенности канала связи.

      Удалить
  5. Купил домой Меркурий-200 и адаптер USB-RS485/CAN. Изначально на счетчике стоит московское время, которое для Уфы не подходит - надо менять. Подключение прошло идеально, время поменял. Спасибо поддержке, в лице Vlad Rusanov, который быстро по мылу инструкции давал.

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

      Удалить
  6. счетчики Меркурий 230 ART2 – 03 PQC SIDN с внутренним питанием интерфейсов, с внешним питанием , с интерфейсом CAN.
    Необходимо передача данных по RS – 485 от двух счетчиков к одному устройству. Производитель счетчиков обещает работоспособность при смене полярности, а сбытовая компания утверждает, что это не будет работать.
    Есть несколько вопросов:
    1.Нужен ли дополнительный (внешний) источник питания;
    2.Если источник не нужен, то как будет выглядеть вышеприведенная схема при наличии внутреннего источника;
    3.Сопротивление (или набор сопротивлений) устанавливается на обоих счетчиках или на одном (каком именно первом или последнем, ближайшим к приемному устройству).
    Трассы короткие 4-6 метров.
    Заранее спасибо.

    ОтветитьУдалить
    Ответы
    1. Если использовать наш адаптер USB-RS485/CAN, то будет работать без дополнительных элементов. Если счетчик с буквой S, то внешнее питание ему не нужно, если этой буквы нет, то с адаптера USB-RS485/CAN можно взять до 0,5А питания.

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

      Удалить
  7. Здравствуйте!
    Установил счетчик меркурий 200.02. Имеются несколько преобразователей интерфейсов 485 to 232 (Adam, Moxa). На счетчике, как я понимаю, CAN-интерфейс. Пробовал подключать счетчик по данной схеме (и с растяжкой и без) и без резисторов в прямой и обратной полярности, ПК счетчик не видит. Адрес счетчик прописывал и "0" и последние 6 цифр номера.
    Подскажите, в чем может быть проблема, что можно еще попробовать?
    Заранее спасибо!

    ОтветитьУдалить
    Ответы
    1. Вероятно проблема не в интерфейсе, а в том что вы не знаете правильный сетевой адрес. Попробуйте прочитать следующую статью, может быть поможет

      Для соединения вам необходимы:
      - преобразователь RS485/CAN
      - питание интерфейса +5В
      - правильный сетевой адрес

      Удалить
  8. Здравствуйте

    Подскажте пожалуйста. Имеются счётчики с интерфейсом RS485 у устройство сбора данных с интерфейсом CAN, к которому необходимо подключить счётчики. Можно ли это сделать по приведённой Вами схеме? Или лучше на каждую интерфейсную линию ставить М-221?

    ОтветитьУдалить
    Ответы
    1. Можно делать по данной схеме. Количество подключенных счетчиков зависит от использованного драйвера (микросхемы управляющей шиной интерфейса). В стандартном виде обычно это 32 устройства, но есть драйверы которые выдерживают 128-256 устройств на шине.

      Удалить
    2. Будет ли схема работать на больших расстояниях (19-ти этажная секция)? Устройство сбора данных может опрашивать 110 счётчиков на каждой из трёх интерфейсных линиях.
      Если сделать по такой схеме:

      счётчики -> (RS485 интерфейс) -> М221 -> (CAN интерфейс) -> устройство сбора данных

      будет работать?

      Удалить
    3. Пришлите схему на электронную почту vladrusanov@gmail.com

      Удалить
  9. Добрый день!

    У нас установлены счетчики Меркурий-230 AR-03 с интерфейсами RS-485 и CAN 2006-2008 гг. выпуска. Проблема заключается в том, что мы не можем достучаться до CAN-счетчиков через MOXA NPort 5150. Через Меркурий-221 CAN-счетчики опрашиваются нормально.

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

    Точно такой же преобразователь MOXA NPort 5150, находящийся в непосредственной близости от счетчиков на другой подстанции, видит и RS-485, и CAN.

    Подскажите, пожалуйста, в чем может быть проблема! Спасибо!

    ОтветитьУдалить
    Ответы
    1. Я не знаю как реализован порт в Moxa, но попробуйте несколько вариантов:
      1. Просто смена полярности проводов.
      2. Смена полярности и 120 Ом между А и В.
      3. Вариант как на приведенной выше схеме.

      Удалить
    2. Влад, добрый день!

      По Вашему совету проверил весь канал, подключившись непосредственно перед преобразователем MOXA. В итоге пришел к выводу, что вместо него нужен другой преобразователь. Заменил MOXA на Меркурий-256, а между сигнальными проводами поставил резистор на 120 Ом. После этого все заработало!

      Удалить
    3. зря MOXA поменяли в нутри MOXA есть перемычки ими поднимаеш общее напряжение интерфейса т.е увеличиваеш сдвиг и вуаль все работает

      Удалить
  10. Счетчик Меркурий 200.02, адаптер МЗЭП ПФ3.035.020, А адаптера к И- счетчика, В к И+, питание к счетчику от отдельного USB (земля к 1, +5В к 4). Всё получилось без допонительных резисторов

    ОтветитьУдалить
  11. Счетчики Меркурий 230 ART CN. CAN - интерфейс, без подпитки счетчиком интерфейса. Можно ли будет подцепиться к счетчику модемом iRZ MC52i-485GI с 485 интерфейсом и пятью вольтами на клемах для питания интерфейса. В РЭ на Меркурий говориться о 5,5 вольтах требуемых интерфейсу.
    Приведенная схема CAN - RS485 будет работать?

    ОтветитьУдалить
    Ответы
    1. Я не испытывал, но в любом случае можно попробовать. Сначала просто провода переверните, если не будет связи, то установите 120 Ом резистор, если не поможет, то уже и растяжку как на рисунке. Должно заработать.

      Удалить
  12. Здравствуйте. Вопрос который хочу задать выше по теме поднимался не один раз. И все таки. Эл.счетчики меркурий с CAN пытаюсь подключить по RS485. Не работает хоть убейте.
    На столе при подключении CAN к меркурий 221 (RS485) переполюсовка помогает даже без
    резисторов. На длинной линии не работает (подсоединение резисторов по схеме непосредственно на колодку меркурий 221. Подскажите что не так.

    ОтветитьУдалить
    Ответы
    1. CAN интерфейс, что бы не писали, стабильно может не работать на длинных линиях (более 200 метров) и я его обычно не советую для прокладки магистралей. Тем более если вы захотите использовать его совместно с RS485, а с Меркурий-221 тем более, т.к. источник +5В в нем слаботочный и очень критичен к нагрузке.

      Пришли свою схему, длину линии, какие счетчики подключены на vladrusanov@gmail.com

      Удалить
  13. У меня 10 счетчиков на линии с CAN и 1 счетчик с RS-485. Данная схема не работает. Линия 15 метров. Напряжение питания интерфейса 7 вольт от внешнего источника. Подтяжка получается 0.4 вольта.

    ОтветитьУдалить
    Ответы
    1. Схема точно работает при питании 5В, но лучше не смешивать на одной линии разные счетчики с разными интерфейсами. Мы ее используем много лет.

      Удалить
  14. Здравствуйте. Имеется 16 счетчиков Меркурий 230 ART-03 СN и УСПД Меркурий 250GR.4R. Подскажите пожалуйста, каким образом все 16 счетчиков подключить к УСПД для сбора данных.

    ОтветитьУдалить
    Ответы
    1. На сколько я знаю к УСПД можно подключить счетчики с CAN интерфейсом просто перевернув концы А и В. Все должно работать.

      Удалить
  15. Подскажите эту схему можно применять на счетчиках Меркурий 230 АМ-01 и АМ-03?

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

      Удалить
  16. два счетчика меркурий 230АР, по отдельности читаются оба, когда подключаю оба через RS485, видит только последний счетчик, а первый нет.
    вторая проблема, не могу прочитать дату время и т.д. и под админом и под пользователем, что это может быть?

    ОтветитьУдалить
    Ответы
    1. Если счетчики с разными интерфейсами RS485 и CAN, то на одной магистрале они читаться не будут. Также проверьте таймауты (время ожидания ответа 200, системный таймаут 25, множитель 4).

      Удалить
    2. оба счетчика с интерфейсами RS485,таймауты прописал как Вы сказали, не помогло, последний счетчик виден, а при подключении к первому пишет Test=#Err-1 End доходит до 12% и все. при подключении к первому счетчику в столбце "цифровой идентификатор ПО" пишет #Err-1, все остальные данные отображаются.
      по прежнему не могу зайти и посмотреть дату время и т.д. при любых вариантах подключения на обеих счетчиках, пробовал на разных компьютерах, с разными ОС, с разными преобразователями интерфейсов, RS-USB, RS-COM, разных производителей. Может в церковь сходить?

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

      Удалить
    4. Я видимо не понимаю зачем вам использовать эту схему если оба счетчика с RS485 интерфейсом. Эта схема нужна тем, кто имеет в наличии преобразователь интерфейсов USB-RS485, а хочет соединиться со счетчиками у которых CAN интерфейс.

      А вам этого ничего не нужно, вам нужна витая пара, адаптер USB-RS485, еще по необходимости питание интерфейсов (если нет буквы S на счетчике, то нужно подать на клемники 18-землю, 23-плюс 5Вольт).

      Удалить
    5. все верно, мне эта схема не нужна, я ошибся случайно в этой теме написал, собрал все как описано, два счетчика, витая пара, питание 5 вольт,USB-RS485 преобразователь, но не работает....

      Удалить
    6. До 1 км работает - проверено.
      Покажите фото подключения счетчиков, фото подключения адаптера, скрины настроек связи конфигуратора. Какие ошибки по каждому счетчику возникают при соединении.
      Все это шлите на электрону vladrusanov@gmail.com

      Удалить
  17. Спасибо за схему, работает с одним резистором 120 Ом, два других не включал в схему, тока в меркурии 200.02 функционал куцый какой-то, и имя и пароль закрыты не сменить - это так должно быть? А вообщем спасибо сэкономил 2500 рэ.

    ОтветитьУдалить
  18. Здравствуйте. А не подскажите, у Меркурий 200 есть защита от переполюсовки по питанию?

    ОтветитьУдалить
  19. Если вы имеете ввиду питание интерфейса связи, то скорее всего есть (простой диод).

    ОтветитьУдалить
  20. Добрый день, то же столкнулся с такой проблемой. Два счетчика Меркурий, один ART-03CLN (показания снимают вручную), второй ART-03PQRS(данные снимаю модемом Teleofis по RS-485). Просят подключить второй счетчик на опрос. Расстояние между счетчиками примерно 5м. Вопрос можно подцепить второй счетчик к RS по данной схеме, просто подцепив сопротивления? без ПИ

    ОтветитьУдалить
    Ответы
    1. Вероятно заработает, если А и В поменять местами, между ними возможно нужно будет поставить 120 Ом и обязательно подать питание интерфейса на второй счетчик (на 23 и 18 ножки). Вся эта рекомендация касается подключения единственного счетчика с CAN интерфейсом к счетчику с RS485 интерфейсом. Сам не проверял, но думается, что заработает.

      Удалить

Статьи