Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

RS-485

16K
26 июля 2008 года
iRain
72 / / 12.03.2008
Все время программировал интерыейс RS-232, в понедельник появится байда с RS-485 интерфейсом. Раньше с ним не работал.
Внимание вопрос! В чем различие, с точки зрения программирования?
87
26 июля 2008 года
Kogrom
2.7K / / 02.02.2008
Для программиста важно то, что в RS-485 передача данных идет только в одну сторону и нет управляющих выводов (я не говорю о преобразователе из 232 в 485, где они могут использоваться).

То есть нельзя одновременно передавать данные и принимать - только по очереди. Кажется, такой режим называется полудуплексным.

Я использовал обычные функции win32 api для работы с тим портом - всё работало.
479
27 июля 2008 года
Ухух
142 / / 05.05.2006
Если вы работаете с преобразователем интерфейса (ADAM 4520 или ICP DAS какой то там или Овен или Контр Авт или Элемеровский ПИ232/485), то возможно два варианта работы.
Первый. Преобразователю интерфейса перемычками говорим скорость обмена и длительность байта. После этого к преобразователю интерфейса подключаемся со стороны компьютора обычным RS232, причем достаточно линий TXD и RXD. Все . Работаем как обычно c 232. Только в некоторых случаях, когда на том конце устройство очень шустрое и начинает отвечать практически без задержки возможны ситуации когда преобразователь не успевает переключиться после посылки команды к устройству на прием и начало ответа будет съедено. Это характерно для малых скоростей. Так что если вы пишете и устройство , поставьте фиктивную задержку перед ответом в устройстве или если устройство работает по ASCII протоколу пошлите перед ответом пару ff.

Второй вариант. Перемычками задаем преобразователю интерфейса что направление передачи он будет менять по сигналу RTS. Тогда с компьютором преобразователь интерфейса будет связываться еще и линией RTS. Кстати если преобразователь интерфейса вы планируете сделать сами - это будет самым простым. Тут вам надо будет просто внимательно разобраться в dcb и посмотреть, как там выставить управление этой линией. Приемопередатчик компьютора будет сам выставлять RTS на время передачи.

Третий вариант. Вы пишете скажем для одноплатки, в которой есть порт со встроенным RS485. Тогда вам надо будет управлять направлением управляя линией RTS этого порта (или в регистре есле пишете под DOS на С, или если винда работает, то или в dcb ставим управление RTS или ручками API шными функциями переключаем RTS).

Из под WIN все пишется так же как и под 232 на API.

Если у вас будет MODBUS RTU то точно соблюсти анализ времен винда вообще не позволяет , но работоспособного обмена добиться можно аккуратно прописав в commtimeout времена все.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог