![]() |
![]() ![]() |
|
Библиотека Здесь сосредоточены познавательные статьи, раскрывающие те или иные аспекты оборудования или условий его применения |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
![]() |
#1 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 382
Благодарил(а): 15 раз(а)
Поблагодарили:
610 раз(а) в 557 сообщениях
|
![]() Загрузка программ через 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 |
![]() |
![]() |
#2 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 17 382
Благодарил(а): 15 раз(а)
Поблагодарили:
610 раз(а) в 557 сообщениях
|
![]()
Конвертеры, с которыми никогда не было никаких проблем:
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 | ЧаВо - Часто задаваемые Вопросы | 6 | 23.11.2018 11:26 |
Правильная разводка сетей RS-485 | Arsie | Библиотека | 30 | 28.02.2014 13:52 |