Ув. сообщество!
Обращаюсь к Вам за помощью :rolleyes:
Тут вот какая ситуация: есть устройства - панель + клава; все на что это способно, квитировать команды и хранить 8-ми байтовый буфер. Обменивается это чудо (ПУ) по RS. Так вот, я организовал прогу, которая обменивается с ПУ по стандартному com (RS-232), стандартными средствами (read, write) - работает великолепно. А вот по RS-485 выёживается: write отрабатывает (выжу на экране ПУ), а на read зависает и не сбрасывается по timeout (принцип работы ПУ: послал команду - считал квитанцию).
Вот как можно победить этого зверька?
Обмен по RS-485
код в студию...
RS-485 в живую не видел... он чем-то принципиально отличается от ком-порта? может не настроили?
Для программы RS-485 ничем не отличается от RS-232, это аппаратные интерфейсы,
а не программные. При использовании RS-485 очень рекомендуется третий провод,
без него соединение может не работать, а входные цепи могут сгореть и я это наблюдал.
Пётр.
преобразователь RS-232 - RS-485 в общем случае работает так:
1. включает RS-485 на передачу
2. передает данные
3. включает RS-485 на прием
4. принимает данные
Для переключения используется линия порта RS-232, либо преобразователь
анализирует поток и делает это сам, как например i7520 (изг. ICPDAS)
Многие программы не управляют линией порта RS-232... и связи нет.
Ув. сообщество!
Спасибо за участие smile
- согласен полностью!!!Для программы RS-485 ничем не отличается от RS-232, это аппаратные интерфейсы, а не программные
И у меня было все правильно, я просто не поставил задержку между посылом и приемом инфы :O :D
- не берусь судить.При использовании RS-485 очень рекомендуется третий провод,
без него соединение может не работать
На, используемой нами контрольной платы PCM-3362, встроенный RS-485/RS422 имеет всего 4 вывода: D+/D- для 485 и 422-го. Да и мой зверёк(ПУ), на RS колодке использует 4 входа: GND,U+,D-,D+... Причем земля и питание приходят не от питания контроллера...
Вот только это были эксперименты - показать что с ПУ можно обмениваться. В штатной схеме ПУ подключен к плате расширения контроллера. Контролер не признал , собака, эту плату за свою родню :D. И мне приходиться лазить "грязными лапами" :D по регистрам этой платы расширения - админ в шоке :D - его заставили мне дать рутовские права! Чё-то я разговорился... smile
1. включает RS-485 на передачу
2. передает данные
3. включает RS-485 на прием
4. принимает данные
Подскажите, пожалуйста,как это реализовать. Потому что, в случаи с платой расширения, команда outb отрабатывается, а данные на колодку RS ПУ не приходят... :(
Благодарю за внимание.
Двухпроводной RS-485,конечно, полудупклесный, так что на время передачи от хоста
просто отключайте приём, а после окончания передачи выключайте передатчик и
переходите в ожидание ответа.
Что третий провод необходим, написано в материалах и на русском и на английском,
это же говорят и люди, с ним работающие. Надо соединять сигнальные нули устройств
на этой шине, особенно это необходимо, если они питаются от разных фаз или от
разных источников. Иначе может быть то, о чём я говорил.
Пётр.
Спасибо за информацию smile
Очень признателен.
С уважение, Дмитрий