alag57 1 9 мая, 2010 Опубликовано 9 мая, 2010 · Жалоба А при использовании RS-485 передатчики включаются изредка. А что вам мешает построить свой протокол так, чтобы всегда один из передатчиков был на передаче, для этого совершенно не нужно что-то именно передавать, надо только включить драйвер на передачу. Вообще о чем спор? По стандарту линия rs-232 до 30м, 485 - до 1200м, почувствуйте разницу :) (У меня реально работают линии до 1500м на скорости 115200, при общей длине линий системы более 40км). Реализуйте что-то подобное на 232. Драйвер 485 - это восьминогий чип, сколько ног у драйвера 232, не считал, да и бывает разное число, но однозначно больше. Питание для 485 - 5 вольт, для 232 - 15, если сопрягать с микроконтроллером, то еще и 5 вольт. Ради чего биться, ради принципа? Студенту, чтобы не оплашать перед комисией, рекомендую следующее, многократно проверенное на практике, решение: Полностью поддерживаю. Почти готовой диплом, еще немного своих усилий... более правильно, сразу ориентироваться на преобразователи USB-RS485 или Ethernet-RS485 Вот только не встретилось мне стабильно работающих таких преобразователей :) Использую для тестирования или когда в командировку еду с ноутбуком. Ну не работают они у меня больше недели без зависаний :( Может быть ваши более умные, их я не пробовал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость @Ark 9 мая, 2010 Опубликовано 9 мая, 2010 · Жалоба Вот только не встретилось мне стабильно работающих таких преобразователей Использую для тестирования или когда в командировку еду с ноутбуком. Ну не работают они у меня больше недели без зависаний Может быть ваши более умные, их я не пробовал. Все таки попробуйте наши.... Разница в том, что мы не только продаем, но и используем сами... Будем рады всем вашим замечаниям... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 9 мая, 2010 Опубликовано 9 мая, 2010 (изменено) · Жалоба Может я что-то пропустил в обсуждении, но в исходном вопросе вроде требуется соединение между двух МК на расстоянии до 100м. Поскольку это соединение точка-точка, то зачем тут именно RS485? Нужно использовать RS422, а не RS485. Сразу снимается проблема с "болтанкой" линии в паузах между пакетами, но остаются преимущества в длине линии связи и устойчивости к помехам. Update. А, пардон! Посмотрел блок-схему в приаттаченном документе. Изменено 9 мая, 2010 пользователем rezident Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
=AK= 18 9 мая, 2010 Опубликовано 9 мая, 2010 · Жалоба А что вам мешает построить свой протокол так, чтобы всегда один из передатчиков был на передаче, для этого совершенно не нужно что-то именно передавать, надо только включить драйвер на передачу. А как остальные-то будут передавать? "На авось", в надежде, что их передатчик окажется "сильнее"? Вообще-то, преобразователи стоят с двух сторон, как правило. С чего бы это? Я понимаю, что вам, как причастному к производству тех поделок, которые вы тут беззастенчиво рекламировали, хотелось бы, чтобы их применяли как можно больше, аж по две на каждый сегмент. Однако, увы, большинство инсталляций RS-485 вообще не использует такой хлам, поскольку состоит из настоящих узлов с RS-485. Тем более что хлипкие примочки типа вашей снижают общую помехоустойчивость сети на базе RS-485 - ведь они протоколов не разумеют и тупо надеются именно на подтягивающие резисторы. То есть, поставишь ваш "преобразователь" - и получишь снижение помехоустойчивости на порядок и более. :cranky: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость @Ark 9 мая, 2010 Опубликовано 9 мая, 2010 · Жалоба Я понимаю, что вам, как причастному к производству тех поделок, которые вы тут беззастенчиво рекламировали, хотелось бы, чтобы их применяли как можно больше, аж по две на каждый сегмент. Однако, увы, большинство инсталляций RS-485 вообще не использует такой хлам, поскольку состоит из настоящих узлов с RS-485. Тем более что хлипкие примочки типа вашей снижают общую помехоустойчивость сети на базе RS-485 - ведь они протоколов не разумеют и тупо надеются именно на подтягивающие резисторы. То есть, поставишь ваш "преобразователь" - и получишь снижение помехоустойчивости на порядок и более. Ну-ну. Продолжайте в том же духе. Даже интересно... Особенно интересен опыт в практическом применении RS-485. Например, вот такой: http://www.ellab.ru/spravochnik/statji/statja_test.htm Может, своим поделитесь? :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
=AK= 18 9 мая, 2010 Опубликовано 9 мая, 2010 · Жалоба Особенно интересен опыт в практическом применении RS-485. B моей практике было несколько случаев "разборок" с самодельными протоколами, работа которых основывалась на такой же, как у вас, слепой нерассуждающей вере в подтягивающие резисторы на шине RS-485. В одном случае это обошлось компании, помимо подмоченной репутации, в кругленькую сумму: инженеру специально под эту задачу купили "карманный" осциллограф Fluke (в те времена, 15 лет назад, это была очень дорогая игрушка) и несколько раз посылали в командировку на площадку заказчика, в Китай, где была установлена глючащая система - в надежде, что он на месте пофиксит проблему. Инженер тоже не любил думать, нo был большой мастак танцев с бyбном, поэтому каждый раз уменьшал номинал подтягивающих резисторов, камлал и молился. A когда возвращался из командировки - через некоторое время заказчик снова сообщал, что объект глючит. Oбъект - портовый кран высотой с десятиэтажный дом, глюк заключался в том, что кран время от времени "вставал": блокировки системы безопасности ложно срабатывали от помех на шине RS-485 и отрубали ему моторы. :krapula: Кстати, в те годы как раз получили распространение "автоматические преобразователи RS-485 - RS-232" и "автоматические репитеры RS-485" с развязкой. Как известно, и те и другие используют один и тот же принцип работы. Тот инженер, по ламерству своему, поставил в систему такой репитер для дополнительной развязки. Он тоже, как и вы, думал, что развязка - это панацея и гарантия помехоустойчивости. Oн не догадывался, что этот репитер реально привносил дополнительные проблемы, поскольку менял направление обмена невпопад, из-за помех. В другом случае система домашней автоматизации изредка "бибикала" по ночам, мешая людям спать: это терминал подсистемы безопасности рапортовал, что долгое время не может связаться по RS-485 с центральным контроллером. А приведенная вами ссылка, увы, к помехоустойчивости имеет весьма отдаленное отношение. ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость @Ark 10 мая, 2010 Опубликовано 10 мая, 2010 · Жалоба B моей практике было несколько случаев "разборок" с самодельными протоколами, работа которых основывалась на такой же, как у вас, слепой нерассуждающей вере в подтягивающие резисторы на шине RS-485... Кстати, в те годы как раз получили распространение "автоматические преобразователи RS-485 - RS-232" и "автоматические репитеры RS-485" с развязкой. Как известно, и те и другие используют один и тот же принцип работы. Тот инженер, по ламерству своему, поставил в систему такой репитер для дополнительной развязки. Он тоже, как и вы, думал, что развязка - это панацея и гарантия помехоустойчивости. Oн не догадывался, что этот репитер реально привносил дополнительные проблемы, поскольку менял направление обмена невпопад, из-за помех. "Смешались в кучу кони, люди", интерфейсы с протоколами, подтяжки с развязками... :) Полный бардак у Вас в голове, уважаемый... P.S. Драйвер RS485 переключается на передачу только по команде устройства, на котором он установлен. Либо автоматически, при начале передачи (как это сделано в указанных преобразователях). От состояния линии RS485 и количества помех на ней этот процесс не зависит. Совсем. И никак. ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
=AK= 18 10 мая, 2010 Опубликовано 10 мая, 2010 · Жалоба "Смешались в кучу кони, люди", интерфейсы с протоколами, подтяжки с развязками... :) Полный бардак в Вас в голове, уважаемый... Иными словами, для вас слишком сложно то, что я рассказал, вы потеряли нить. :laughing: К счастью, то, что пишется на форуме, читают многие. Вы не поняли - другие поймут. P.S. Драйвер RS485 переключается на передачу только по команде устройства, на котором он установлен. Либо автоматически, при начале передачи (как это сделано в указанных преобразователях). От состояния линии RS485 и количества помех на ней этот процесс не зависит. Совсем. И никак. А я про репитер рассказывал. В каталоге продукции вашей кустарной мастерской это EL200, если вы не знаете что такое репитер. Вы думаете, что он "устанaвливается на какое-то устройство" и "получает от него команды"? Если так, вы ошибаетесь. :01: Что же касается вашего преобразователя RS232-RS485, то с ним совсем другая проблема. Как я уже говорил, он резко снижает помехоустойчивость связи, когда работает в составе сети на базе RS-485. Допустим, все узлы такой сети работают с протоколом Модбас RTU. Однако тот узел, на котором стоит ваше изделие EL203, не полностью соответствует спецификации Модбас RTU: в отличие от нормальных узлов, он не формирует правильной преамбулы. Поскольку преамбула от него формируется резисторами, а не включенным в течении определенного интервала передатчиком RS-485, как того требует протокол Модбас RTU. В результате этого в условиях сильных помех все узлы разговаривают друг с другом как ни в чем не бывало, а сообщения от этого узла все время теряются. :twak: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость @Ark 10 мая, 2010 Опубликовано 10 мая, 2010 · Жалоба Однако тот узел, на котором стоит ваше ублюдочное изделие EL203, не полностью соответствует спецификации Модбас RTU: в отличие от нормальных узлов, он не формирует правильной преамбулы... Опять все в кучу - интерфейсы и протоколы... Ну да ладно... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
=AK= 18 10 мая, 2010 Опубликовано 10 мая, 2010 · Жалоба Опять все в кучу - интерфейсы и протоколы... Я вижу, вы как-то очень щепетильно относитесь к терминологии, сведя все ваши претензии к тому, что, на ваш взгляд, я "сваливаю в кучу протоколы и интерфейсы". Поскольку я, действительно, не делаю между ними особо большой разницы, поскольку считаю, что: - всякий протокол вполне уместно назвать интерфейсом, - многие т.наз. "последовательные интерфейсы" на законных основаниях могут называться протоколами, то не будете ли вы так любезны пояснить подробнее, что именно в моих словах вызвало ваше недовольство? Итак, в чем разница между интерфейсом и протоколом? Где конкретно в моих сообщениях эти термины использованы, на ваш взгляд, некорректно? :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость @Ark 10 мая, 2010 Опубликовано 10 мая, 2010 · Жалоба Итак, в чем разница между интерфейсом и протоколом? Где конкретно в моих сообщениях эти термины использованы, на ваш взгляд, некорректно? С какой стати преобразователь интерфейсов должен ориентироваться на использование именно протокола MODBUS? Что, других нет что-ли? И почему, при использовании протокола MODBUS, Вы решили что обязательно будет использоваться RS485? Интерфейсный и протокольный уровни не должны быть связаны между собой. Кстати, в модбас определены "интервалы тишины" между пакетами, а не даются "прямые указания" когда включать/выключать передатчики - это вообще к протоколу не имеет отношения. Если Вы не разделяете (вернее, не хотите разделять) понятия протокола и интерфейса, то получите, в результате, "преобразователь интерфейсов для MODBUS". Возможно у него будут лучшие характеристики, но только при использовании MODBUS. А с другими протоколами его, возможно, вообще нельзя будет использовать. Вам нужен такой преобразователь - делайте и пользуйтесь. Мне - нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
=AK= 18 10 мая, 2010 Опубликовано 10 мая, 2010 · Жалоба С какой стати преобразователь интерфейсов должен ориентироваться на использование именно протокола 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 10 мая, 2010 Опубликовано 10 мая, 2010 · Жалоба А мне бывает нужен второй. В котором трансивер RS-485 включается на передачу не от глупого "автомата", а по сигналу (одному из сигналов управления модемом в RS-232), который сформирует мой софт. Угу. "Рулить" направлением передачи по RS485 из прикладной программы под Виндой - это конечно "классное решение". А самое главное - надежное и быстрое... Программное "ногодрыгание" на LPT-порту - это, примерно, из той же серии... И вся "цена вопроса" - лишний джампер, при помощи которого выбирается источник сигнала управления передатчиком RS485: от "автомата" или непосредственно от RS232 За рацпредложение спасибо. Если эта сомнительная функция нужна пользователю, то можно сделать. Подумаем. "Это ваши смешные фантазии" (с) ... С Вашим подходом - это, конечно, фантазии. А так, люди даже через интернет устройствами по MODBUS управляют. И ничего, все нормально работает. "Мужики-то не знают..." (с) ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 10 мая, 2010 Опубликовано 10 мая, 2010 · Жалоба А так, люди даже через интернет устройствами по MODBUS управляют. И ничего, все нормально работает. "Мужики-то не знают..." (с) ;) Лично я очень просто - ретранслятор MODBUS-RTU фреймов, а не байтов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
=AK= 18 10 мая, 2010 Опубликовано 10 мая, 2010 · Жалоба "Рулить" направлением передачи по RS485 из прикладной программы под Виндой - это конечно "классное решение". А самое главное - надежное и быстрое... Если для вас понятие "софт" ассоциирутся только и исключительно с прикладной программой, то вам что-то втолковать практически невозможно... Драйверы вообще-то тоже входят в категорию софта. Из вашего высказывания можно понять, что вы думаете, будто прикладная программа на PC работает медленно и/или ненадежно. Вынужден вас разочаровать: это ваше мнение тоже ошибочно. А так, люди даже через интернет устройствами по MODBUS управляют. Неужто это как-то подтверждает высказанную вами ошибочную мысль, будто "Интерфейсный и протокольный уровни не должны быть связаны между собой"? Одна только эта фраза непреложно свидетельствует, что вы никогда ничего не слышали об эталонной семиуровневой модели ISO/OSI и, соответственно, не представляете как взаимодействуют между собой различные уровни интерфейса. Каковой (интерфейс) разве что только дремучие кустари от электроники способны низвести до одного только физического уровня и отождествить с ним. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться