Segnetics

Вернуться   Segnetics > База знаний > Библиотека

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

Закрытая тема
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.07.2013, 14:37   #1
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Загрузка программ через RS-485. Почему может быть неустойчивой или невозможной

Загрузка программ через RS-485

Почему может быть неустойчивой или невозможной

Сначала разберёмся в термине "Загрузка через RS-485". Стандарт EIA-485, по сути, определяет лишь уровни напряжений на линии. Производители конкретного оборудования сами придумывают логический протокол общения устройств между собой и с компьютером. Без определенных правил общения нельзя – ведь RS-485 является полудуплексным портом, все устройства могут и принимать и передавать информацию по одной и той же паре проводов, а потому должны быть строгие правила, т.е. протоколыкогда, кто и что передает. И пока один передает, все остальные обязательно слушают. Самое распространенное решение – система мастер-слейв (по-русски ее называют ведущий-ведомый). Суть системы в том, что один прибор, мастер, решает кто, что и когда будет передавать. Изначально все слейвы (ведомые) слушают, и если мастер обратился к ним, то отвечают ему на его обращение. А пока мастер к ним не обратится – сидят и не высовываются. У разных производителей бывают разные протоколы. У одного производителя, например, это Modbus. У другого – Profibus. У третьего MoyKrutoyBus. Поэтому нет такого понятия, как "Загрузка через RS-485". Это примерно как сказать "Я появился у вас дома через отверстие" и не уточнить, дверь это была, окно или пролом в стене. А может быть вы – добрый Санта и проникли в дом через каминную трубу. Никто этого не знает, могут лишь догадываться с разной степенью достоверности.

Контроллеры Segnetics используют для работы через RS-485 протокол Modbus-RTU. Соответственно и загрузка программы тоже происходит посредством этого протокола, со всеми его достоинствами и недостатками.

Начнем с самого распространенного варианта: преобразователя RS-232 в RS-485. Суть проблемы в том, что, как упомянуто выше, в каждой системе приняты свои способы как решать, кто сейчас должен передавать данные и в каком направлении. Конвертер RS-232/485, выпущенный уважаемой фирмой из континентального Китая, конечно, не знает, как устроен высокоуровневый протокол общения в системе, куда вы его применяете. RS-232, к сожалению, изначально предназначен для передачи данных в разные стороны по разным проводам, а потому ваш компьютер, к которому вы подключили конвертер, ВСЕГДА что-то передает по RS-232. Конечно, чаще всего он передает "тишину", но конвертер не настолько умен, чтобы отличить "тишину" от длинной последовательности единиц. В большинстве случаев конвертер устроен просто: пока данные, передаваемые со стороны компьютера, меняются – он транслирует их на канал RS-485. Как только компьютер задумался – конвертер отключает свой передатчик и слушает, что передают другие. Такие паузы очень нежелательны.

А теперь немного утешительных слов. Конвертеры USB/RS-485, а также конвертеры Ethernet/RS-485 работают значительно более надежно, поскольку USB и Ethernet – очень грамотно стандартизованные протоколы, они содержат в себе всю необходимую информацию: когда, и какая информация, в какую сторону передается. Единственная проблема – Ethernet может добавлять непредсказуемую задержку при передаче данных, а многие протоколы типа мастер-слэйв, работающие по RS-485 и не знающие о наличии промежуточных конвертеров при передаче сигнала, воспримут задержку как потерю связи. В локальной сети при небольшой её загрузке это пройдет, а если вы примените такие конвертеры для передачи через Интернет – скорее всего, ничего не получится.

Особняком стоят особенно "хитрые" китайские производители. Их конвертеры для удешевления могут быть построены из самых распространённых и устаревших компонентов: вместо прямого преобразования из USB в RS-485 происходит сначала преобразование в RS-232, а затем уже из RS-232 в RS-485. Это вызывает за собой все те эффекты, описанные двумя абзацами ранее и добавляет новые - задержки каждого этапа преобразования суммируются и вероятность надёжной работы часто уменьшается практически до нуля.

Абсолютно аналогично обстоит дело и с передатчиками RS-485 по радиоканалу или по оптоволокну. Не существует гарантированного алгоритма, по которому конвертер RS-485 в другую среду передачи данных может догадаться, когда в какую сторону он должен передавать данные. По свидетельству сотрудника фирмы, производящей конвертеры: "При производстве конвертеров RS-485 в оптоволокно за несколько лет по требованиям разных клиентов для разных систем мы встроили в устройство 6 (шесть!) разных алгоритмов. Не от хорошей жизни. Каждый новый алгоритм оказывался единственным, работающим в очередной системе".

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


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.

Последний раз редактировалось Arsie, 27.08.2013 в 16:34
Arsie вне форума  
Старый 10.07.2013, 09:57   #2
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Загрузка программ через RS-485. Почему может быть неустойчивой или невозможно

Конвертеры, с которыми никогда не было никаких проблем:

ICP CON i7561 (USB <> RS-485)

ICP CON i7520 (RS232 <> RS-485)

Moxa Uport1150 (USB <> RS-485)

Что делать, если Uport не работает?


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.

Последний раз редактировалось Arsie, 31.07.2015 в 15:13
Arsie вне форума  
Закрытая тема

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать свои сообщения

BB code is Вкл.
[IMG] код Вкл.
HTML код Вкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему техподдержка не может ответить на мой простейший вопрос? Arsie ЧаВо - Часто задаваемые Вопросы 6 23.11.2018 11:26
Правильная разводка сетей RS-485 Arsie Библиотека 30 28.02.2014 13:52


Часовой пояс GMT +4, время: 20:11.


Версия vBulletin: 3.8.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Segnetics 2005 - 2023