Перейти к содержанию
    

Связь на растоянии смежду несколькими PIC

А при использовании RS-485 передатчики включаются изредка.

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

Вообще о чем спор? По стандарту линия rs-232 до 30м, 485 - до 1200м, почувствуйте разницу :) (У меня реально работают линии до 1500м на скорости 115200, при общей длине линий системы более 40км). Реализуйте что-то подобное на 232.

Драйвер 485 - это восьминогий чип, сколько ног у драйвера 232, не считал, да и бывает разное число, но однозначно больше.

Питание для 485 - 5 вольт, для 232 - 15, если сопрягать с микроконтроллером, то еще и 5 вольт. Ради чего биться, ради принципа?

 

Студенту, чтобы не оплашать перед комисией, рекомендую следующее, многократно проверенное на практике, решение:

Полностью поддерживаю. Почти готовой диплом, еще немного своих усилий...

более правильно, сразу ориентироваться на преобразователи USB-RS485 или Ethernet-RS485

Вот только не встретилось мне стабильно работающих таких преобразователей :)

Использую для тестирования или когда в командировку еду с ноутбуком.

Ну не работают они у меня больше недели без зависаний :(

Может быть ваши более умные, их я не пробовал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость @Ark
Вот только не встретилось мне стабильно работающих таких преобразователей

Использую для тестирования или когда в командировку еду с ноутбуком.

Ну не работают они у меня больше недели без зависаний

Может быть ваши более умные, их я не пробовал.

Все таки попробуйте наши.... Разница в том, что мы не только продаем, но и используем сами... Будем рады всем вашим замечаниям...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может я что-то пропустил в обсуждении, но в исходном вопросе вроде требуется соединение между двух МК на расстоянии до 100м. Поскольку это соединение точка-точка, то зачем тут именно RS485? Нужно использовать RS422, а не RS485. Сразу снимается проблема с "болтанкой" линии в паузах между пакетами, но остаются преимущества в длине линии связи и устойчивости к помехам.

 

Update. А, пардон! Посмотрел блок-схему в приаттаченном документе.

Изменено пользователем rezident

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

А как остальные-то будут передавать? "На авось", в надежде, что их передатчик окажется "сильнее"?

 

Вообще-то, преобразователи стоят с двух сторон, как правило.

С чего бы это? :biggrin:

 

Я понимаю, что вам, как причастному к производству тех поделок, которые вы тут беззастенчиво рекламировали, хотелось бы, чтобы их применяли как можно больше, аж по две на каждый сегмент. Однако, увы, большинство инсталляций RS-485 вообще не использует такой хлам, поскольку состоит из настоящих узлов с RS-485. Тем более что хлипкие примочки типа вашей снижают общую помехоустойчивость сети на базе RS-485 - ведь они протоколов не разумеют и тупо надеются именно на подтягивающие резисторы. То есть, поставишь ваш "преобразователь" - и получишь снижение помехоустойчивости на порядок и более. :cranky:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость @Ark
Я понимаю, что вам, как причастному к производству тех поделок, которые вы тут беззастенчиво рекламировали, хотелось бы, чтобы их применяли как можно больше, аж по две на каждый сегмент. Однако, увы, большинство инсталляций RS-485 вообще не использует такой хлам, поскольку состоит из настоящих узлов с RS-485. Тем более что хлипкие примочки типа вашей снижают общую помехоустойчивость сети на базе RS-485 - ведь они протоколов не разумеют и тупо надеются именно на подтягивающие резисторы. То есть, поставишь ваш "преобразователь" - и получишь снижение помехоустойчивости на порядок и более.

:biggrin: Ну-ну. Продолжайте в том же духе. Даже интересно... Особенно интересен опыт в практическом применении RS-485. Например, вот такой: http://www.ellab.ru/spravochnik/statji/statja_test.htm

Может, своим поделитесь? :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Особенно интересен опыт в практическом применении RS-485.

B моей практике было несколько случаев "разборок" с самодельными протоколами, работа которых основывалась на такой же, как у вас, слепой нерассуждающей вере в подтягивающие резисторы на шине RS-485.

 

В одном случае это обошлось компании, помимо подмоченной репутации, в кругленькую сумму: инженеру специально под эту задачу купили "карманный" осциллограф Fluke (в те времена, 15 лет назад, это была очень дорогая игрушка) и несколько раз посылали в командировку на площадку заказчика, в Китай, где была установлена глючащая система - в надежде, что он на месте пофиксит проблему. Инженер тоже не любил думать, нo был большой мастак танцев с бyбном, поэтому каждый раз уменьшал номинал подтягивающих резисторов, камлал и молился. A когда возвращался из командировки - через некоторое время заказчик снова сообщал, что объект глючит. Oбъект - портовый кран высотой с десятиэтажный дом, глюк заключался в том, что кран время от времени "вставал": блокировки системы безопасности ложно срабатывали от помех на шине RS-485 и отрубали ему моторы. :krapula:

 

Кстати, в те годы как раз получили распространение "автоматические преобразователи RS-485 - RS-232" и "автоматические репитеры RS-485" с развязкой. Как известно, и те и другие используют один и тот же принцип работы. Тот инженер, по ламерству своему, поставил в систему такой репитер для дополнительной развязки. Он тоже, как и вы, думал, что развязка - это панацея и гарантия помехоустойчивости. Oн не догадывался, что этот репитер реально привносил дополнительные проблемы, поскольку менял направление обмена невпопад, из-за помех.

 

В другом случае система домашней автоматизации изредка "бибикала" по ночам, мешая людям спать: это терминал подсистемы безопасности рапортовал, что долгое время не может связаться по RS-485 с центральным контроллером.

 

А приведенная вами ссылка, увы, к помехоустойчивости имеет весьма отдаленное отношение. ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость @Ark
B моей практике было несколько случаев "разборок" с самодельными протоколами, работа которых основывалась на такой же, как у вас, слепой нерассуждающей вере в подтягивающие резисторы на шине RS-485...

Кстати, в те годы как раз получили распространение "автоматические преобразователи RS-485 - RS-232" и "автоматические репитеры RS-485" с развязкой. Как известно, и те и другие используют один и тот же принцип работы. Тот инженер, по ламерству своему, поставил в систему такой репитер для дополнительной развязки. Он тоже, как и вы, думал, что развязка - это панацея и гарантия помехоустойчивости. Oн не догадывался, что этот репитер реально привносил дополнительные проблемы, поскольку менял направление обмена невпопад, из-за помех.

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

P.S. Драйвер RS485 переключается на передачу только по команде устройства, на котором он установлен. Либо автоматически, при начале передачи (как это сделано в указанных преобразователях). От состояния линии RS485 и количества помех на ней этот процесс не зависит. Совсем. И никак. ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Иными словами, для вас слишком сложно то, что я рассказал, вы потеряли нить. :laughing: К счастью, то, что пишется на форуме, читают многие. Вы не поняли - другие поймут.

 

P.S. Драйвер RS485 переключается на передачу только по команде устройства, на котором он установлен. Либо автоматически, при начале передачи (как это сделано в указанных преобразователях). От состояния линии RS485 и количества помех на ней этот процесс не зависит. Совсем. И никак.

А я про репитер рассказывал. В каталоге продукции вашей кустарной мастерской это EL200, если вы не знаете что такое репитер. Вы думаете, что он "устанaвливается на какое-то устройство" и "получает от него команды"? Если так, вы ошибаетесь. :01:

 

Что же касается вашего преобразователя RS232-RS485, то с ним совсем другая проблема. Как я уже говорил, он резко снижает помехоустойчивость связи, когда работает в составе сети на базе RS-485. Допустим, все узлы такой сети работают с протоколом Модбас RTU. Однако тот узел, на котором стоит ваше изделие EL203, не полностью соответствует спецификации Модбас RTU: в отличие от нормальных узлов, он не формирует правильной преамбулы. Поскольку преамбула от него формируется резисторами, а не включенным в течении определенного интервала передатчиком RS-485, как того требует протокол Модбас RTU. В результате этого в условиях сильных помех все узлы разговаривают друг с другом как ни в чем не бывало, а сообщения от этого узла все время теряются. :twak:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость @Ark
Однако тот узел, на котором стоит ваше ублюдочное изделие EL203, не полностью соответствует спецификации Модбас RTU: в отличие от нормальных узлов, он не формирует правильной преамбулы...

Опять все в кучу - интерфейсы и протоколы... Ну да ладно...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Опять все в кучу - интерфейсы и протоколы...

Я вижу, вы как-то очень щепетильно относитесь к терминологии, сведя все ваши претензии к тому, что, на ваш взгляд, я "сваливаю в кучу протоколы и интерфейсы".

 

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

- всякий протокол вполне уместно назвать интерфейсом,

- многие т.наз. "последовательные интерфейсы" на законных основаниях могут называться протоколами,

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

 

Итак, в чем разница между интерфейсом и протоколом? Где конкретно в моих сообщениях эти термины использованы, на ваш взгляд, некорректно? :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость @Ark
Итак, в чем разница между интерфейсом и протоколом? Где конкретно в моих сообщениях эти термины использованы, на ваш взгляд, некорректно?

С какой стати преобразователь интерфейсов должен ориентироваться на использование именно протокола MODBUS? Что, других нет что-ли? И почему, при использовании протокола MODBUS, Вы решили что обязательно будет использоваться RS485? Интерфейсный и протокольный уровни не должны быть связаны между собой.

Кстати, в модбас определены "интервалы тишины" между пакетами, а не даются "прямые указания" когда включать/выключать передатчики - это вообще к протоколу не имеет отношения.

Если Вы не разделяете (вернее, не хотите разделять) понятия протокола и интерфейса, то получите, в результате, "преобразователь интерфейсов для MODBUS". Возможно у него будут лучшие характеристики, но только при использовании MODBUS. А с другими протоколами его, возможно, вообще нельзя будет использовать. Вам нужен такой преобразователь - делайте и пользуйтесь. Мне - нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

С какой стати преобразователь интерфейсов должен ориентироваться на использование именно протокола MODBUS? Что, других нет что-ли?

Есть, несомненно. Существуют тысячи самопальных протоколов.

Модбас был приведен в качестве примера. Но не просто примера, а примера такого протокола, который обеспечивает помехоустойчивую связь по RS-485.

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

 

И почему, при использовании протокола MODBUS, Вы решили что обязательно будет использоваться RS485? Интерфейсный и протокольный уровни не должны быть связаны между собой.

"Это ваши смешные фантазии" (с) Очень наивно пытаться строить уровень Data Link, который ничего не знает и знать не хочет о PHY.

Соответствено, тот же Модбас в документе "MODBUS over serial line specification and implementation guide V1.02" черным по белому пишет в разделе 3: MODBUS solution over serial line should implement an electrical interface in accordance with EIA/TIA-485 standard ( also known as RS485 standard). This standard allows point to point and multipoint systems, in a ”two-wire configuration”.

 

Кстати, в модбас определены "интервалы тишины" между пакетами, а не даются "прямые указания" когда включать/выключать передатчики - это вообще к протоколу не имеет отношения.

Угу, как же. Вы лучше на фиг.14 в упомянутом документе внимательно посмотрите.

 

Если Вы не разделяете (вернее, не хотите разделять) понятия протокола и интерфейса, то получите, результате, "преобразователь интерфейсов для MODBUS". Возможно у него будут лучшие характеристики, но только при использовании MODBUS. А с другими протоколами его, возможно, вообще нельзя будет использовать. Вам нужен такой преобразователь - делайте и пользуйтесь. Мне - нет.

Нет, не так. Я отличаю "преобразователь интерфейсов, который не способен полностью соответствовать спецификации Модбас" от "преобразователь интерфейсов, который способен полностью соответствовать спецификации Модбас". Вам нравится первый - пользуйтесь на здоровье. Только не врите, будто он обеспечивает помехоустойчивую связь.

 

А мне бывает нужен второй. В котором трансивер RS-485 включается на передачу не от глупого "автомата", а по сигналу (одному из сигналов управления модемом в RS-232), который сформирует мой софт.

 

Самое смешное состоит в том, что этот ваш недоделанный EL203 почти наверняка имеет лишний приемник RS232 на плате, который вы не могли дотумкать, куда и зачем применить. И вся "цена вопроса" - лишний джампер, при помощи которого выбирается источник сигнала управления передатчиком RS485: от "автомата" или непосредственно от RS232 :rolleyes:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость @Ark
А мне бывает нужен второй. В котором трансивер RS-485 включается на передачу не от глупого "автомата", а по сигналу (одному из сигналов управления модемом в RS-232), который сформирует мой софт.

Угу. "Рулить" направлением передачи по RS485 из прикладной программы под Виндой - это конечно "классное решение". А самое главное - надежное и быстрое... :biggrin: Программное "ногодрыгание" на LPT-порту - это, примерно, из той же серии...

И вся "цена вопроса" - лишний джампер, при помощи которого выбирается источник сигнала управления передатчиком RS485: от "автомата" или непосредственно от RS232

За рацпредложение спасибо. Если эта сомнительная функция нужна пользователю, то можно сделать. Подумаем.

"Это ваши смешные фантазии" (с) ...

С Вашим подходом - это, конечно, фантазии. А так, люди даже через интернет устройствами по MODBUS управляют. И ничего, все нормально работает. "Мужики-то не знают..." (с) ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А так, люди даже через интернет устройствами по MODBUS управляют. И ничего, все нормально работает. "Мужики-то не знают..." (с) ;)

Лично я очень просто - ретранслятор MODBUS-RTU фреймов, а не байтов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

"Рулить" направлением передачи по RS485 из прикладной программы под Виндой - это конечно "классное решение". А самое главное - надежное и быстрое...

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

 

Из вашего высказывания можно понять, что вы думаете, будто прикладная программа на PC работает медленно и/или ненадежно. Вынужден вас разочаровать: это ваше мнение тоже ошибочно.

 

А так, люди даже через интернет устройствами по MODBUS управляют.

Неужто это как-то подтверждает высказанную вами ошибочную мысль, будто "Интерфейсный и протокольный уровни не должны быть связаны между собой"? Одна только эта фраза непреложно свидетельствует, что вы никогда ничего не слышали об эталонной семиуровневой модели ISO/OSI и, соответственно, не представляете как взаимодействуют между собой различные уровни интерфейса. Каковой (интерфейс) разве что только дремучие кустари от электроники способны низвести до одного только физического уровня и отождествить с ним.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...