Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Автоматика и аппаратура связи Дистанционное и непосредственное управление исполнительными механизмами, сотовая, а также радиосвязь.

 
Опции темы

Считывание данных со счетчика через ТЧ-модем

Непрочитано 08.07.2010, 23:45  
alexgap
Гражданин KAZUS.RUN
 
Аватар для alexgap
 
Регистрация: 08.07.2006
Сообщений: 883
Сказал спасибо: 119
Сказали Спасибо 1,108 раз(а) в 175 сообщении(ях)
alexgap на пути к лучшему
По умолчанию Re: Считывание данных со счетчика через ТЧ-модем

Сообщение от AlekseyTelepnev Посмотреть сообщение
Как это сочетается с параметром модема AT&K0, отключающим контроль RTS/CTS?
Можно попробовать не отключать, а включать.

Но по своему опыту знаю, что большинство современных модемов не пропускают ничего, кроме Rx и Tx. А большинству конверторов RS-232/RS-485 нужны Rx, Tx и RTS.

Конвертор RS-232/RS-485 с автоопределением направления решит вашу проблему. Ну или можно самому сделать, MAX232 + MAX13487, например.
Реклама:
__________________
.

В мире всего два типа людей: те у кого был ZX Spectrum, и те у кого его не было.
alexgap вне форума  
Сказали "Спасибо" alexgap
AlekseyTelepnev (08.07.2010)
Непрочитано 08.07.2010, 23:47  
AlekseyTelepnev
Частый гость
 
Регистрация: 13.03.2010
Сообщений: 12
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
AlekseyTelepnev на пути к лучшему
По умолчанию Re: Считывание данных со счетчика через ТЧ-модем

Сообщение от alexgap Посмотреть сообщение
Конвертор RS-232/RS-485 с автоопределением направления решит вашу проблему. Ну или можно самому сделать, MAX232 + MAX13487, например.
Самодельный конвертер сделан на основе MAX232
AlekseyTelepnev вне форума  
Непрочитано 08.07.2010, 23:51  
AlekseyTelepnev
Частый гость
 
Регистрация: 13.03.2010
Сообщений: 12
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
AlekseyTelepnev на пути к лучшему
По умолчанию Re: Считывание данных со счетчика через ТЧ-модем

Смотрели осциллографом сигналы между модемом и конвертером.
Относительно GND в покое RxD "-5V", TxD - "0V".
AlekseyTelepnev вне форума  
Непрочитано 08.07.2010, 23:58  
alexgap
Гражданин KAZUS.RUN
 
Аватар для alexgap
 
Регистрация: 08.07.2006
Сообщений: 883
Сказал спасибо: 119
Сказали Спасибо 1,108 раз(а) в 175 сообщении(ях)
alexgap на пути к лучшему
По умолчанию Re: Считывание данных со счетчика через ТЧ-модем

Сообщение от AlekseyTelepnev Посмотреть сообщение
Подскажите, пожалуйста, модели таких конвертеров.
Вот вроде ваш МОХА А52 имеет автоопределение. Покрайней мере так написано здесь. Может надо какую-нибудь кнопочку на конверторе переключить?

Есть еще одна возможная причина неудачи. Время пинга. Сигнал через модемы распространяется за 20-200 мс. Это может нарушать обмен между счетчиком и программой, если оные делались руками растущими строго из заднего места. Но это маловероятно!

Предлагаю такой тест:

1. Подключаете RS-232 кабель к конвертору. Подключаете еще один кабель RS-232 к компьютеру. Эти два кабеля втыкаете в разьемы, которые соединены между собой тремя проводами: Rx, Tx и GND. Если связь есть, значит проблема не в RTS, зачеркиваем эту проблему. Если связи нет, то проблема в RTS -› ищите способ включить автоопределение направления в конверторе

2. Если первый пункт не подтвердился, исследуем проблему дальше
__________________
.

В мире всего два типа людей: те у кого был ZX Spectrum, и те у кого его не было.
alexgap вне форума  
Непрочитано 09.07.2010, 00:16  
AlekseyTelepnev
Частый гость
 
Регистрация: 13.03.2010
Сообщений: 12
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
AlekseyTelepnev на пути к лучшему
По умолчанию Re: Считывание данных со счетчика через ТЧ-модем

Сообщение от alexgap Посмотреть сообщение
Есть еще одна возможная причина неудачи. Время пинга. Сигнал через модемы распространяется за 20-200 мс. Это может нарушать обмен между счетчиком и программой, если оные делались руками растущими строго из заднего места. Но это маловероятно!
Опрос основан на использовании функций WriteFile и ReadFile. Отправив информационную посылку, программа "засыпает" (функцией Sleep) на 3 с, после чего считывает данные из буфера. За это время в порт должно что-то прийти?
Завтра попробую подключить МОХА к компьютеру используя три линии.
Но конвертер на МАХ-232, не имея сигнала RTS, отлично работает непосредственно с компьютером...
AlekseyTelepnev вне форума  
Непрочитано 09.07.2010, 00:30  
alexgap
Гражданин KAZUS.RUN
 
Аватар для alexgap
 
Регистрация: 08.07.2006
Сообщений: 883
Сказал спасибо: 119
Сказали Спасибо 1,108 раз(а) в 175 сообщении(ях)
alexgap на пути к лучшему
По умолчанию Re: Считывание данных со счетчика через ТЧ-модем

Сообщение от AlekseyTelepnev Посмотреть сообщение
Но конвертер на МАХ-232, не имея сигнала RTS, отлично работает непосредственно с компьютером...
Если это так, и вы в этом на 100% уверены, то с проводами замарачиваться не стоит.

Сообщение от AlekseyTelepnev Посмотреть сообщение
Опрос основан на использовании функций WriteFile и ReadFile
А вот здесь широкое поле для деятельности. Советую скачать Visual Studio C# Express (если у вас нет уже установленного чего-нибудь новее VS 2003). И поиграться с классом SerialPort на C#, это будет намного быстрее чем в пришибленном С++.

То, что вы сказали что у вас прогамма засыпает на 3 с. намекает, что вы используете почему-то асинхронный ввод-вывод и искуственным способом пытаетесь найти момент прихода ответа от счетчика. Так не должно быть!

Используйте синхронный ввод-вывод для начала, посылайте запрос функцией Write и ждите ответа функцией Read. Таймаут для класса SerialPort можно установить порядка 5 секунд на чтение и на запись.

Кроме того, возможно модем хочет управляющего сигнала RTS, терминальные программы, кстати, его трогают.

Дерзайте. Вполне вероятно что это вы сами создали себе проблемы.

Еще можно на стороне там где счетчик отключить модем от конвертора, и подключить его к разьему, у которого соединены проводом Rx и Tx линии. В этом случае, все что вы пошлете с компьютера, должно приходить вам обратно (это режим эхо, очень полезен для проверки канала).

Ну и скорость соединения на модеме и на счетчике должна совпадать. Я уж не знаю сколько счетчику нужно, скорее всего 9600.
__________________
.

В мире всего два типа людей: те у кого был ZX Spectrum, и те у кого его не было.

Последний раз редактировалось alexgap; 09.07.2010 в 00:34.
alexgap вне форума  
Непрочитано 09.07.2010, 00:48  
AlekseyTelepnev
Частый гость
 
Регистрация: 13.03.2010
Сообщений: 12
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
AlekseyTelepnev на пути к лучшему
По умолчанию Re: Считывание данных со счетчика через ТЧ-модем

Сообщение от alexgap Посмотреть сообщение
Есть еще одна возможная причина неудачи. Время пинга. Сигнал через модемы распространяется за 20-200 мс. Это может нарушать обмен между счетчиком и программой, если оные делались руками растущими строго из заднего места. Но это маловероятно!
Опрос основан на использовании функций WriteFile и ReadFile. Отправив информационную посылку, программа "засыпает" (функцией Sleep) на 3 с, после чего считывает данные из буфера. За это время в порт должно что-то прийти?
Завтра попробую подключить МОХА к компьютеру используя три линии.
Но конвертер на МАХ-232, не имея сигнала RTS, отлично работает непосредственно с компьютером...
AlekseyTelepnev вне форума  
Непрочитано 09.07.2010, 01:05  
AlekseyTelepnev
Частый гость
 
Регистрация: 13.03.2010
Сообщений: 12
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
AlekseyTelepnev на пути к лучшему
По умолчанию Re: Считывание данных со счетчика через ТЧ-модем

Сообщение от alexgap Посмотреть сообщение
А вот здесь широкое поле для деятельности. Советую скачать Visual Studio C# Express (если у вас нет уже установленного чего-нибудь новее VS 2003). И поиграться с классом SerialPort на C#, это будет намного быстрее чем в пришибленном С++.

То, что вы сказали что у вас прогамма засыпает на 3 с. намекает, что вы используете почему-то асинхронный ввод-вывод и искуственным способом пытаетесь найти момент прихода ответа от счетчика. Так не должно быть!

Используйте синхронный ввод-вывод для начала, посылайте запрос функцией Write и ждите ответа функцией Read. Таймаут для класса SerialPort можно установить порядка 5 секунд на чтение и на запись.
Режим "ввод-вывод" в программе задается изначально при открытии порта как синхронный. Функции WriteFile и ReadFile в данном случае используются в синхронном режиме.
По-моему, большинство классов типа SerialPort являются просто "обертками" для API-функций, слегка упрощающими, а иногда и запутывающими процесс. Учитывая, что кода всего строк 10 (открытие порта, настройка DCB, установка тайм-аутов, очистка буферов приема/передачи и непосредственно запись-чтение), может стоит пользоваться оригинальными функциями. Если не трогать буфер Input после выполнения функции WriteFile, в нем должны храниться полученные байты. Их, после "пробуждения" и считываает программа...
Что касается замыкания RxD и TxD, то канал от вызывающего ПК до разъема RS-232 проверен при подключении к отвечающему модему компьютера с "гипертерминалом"... Впрочем, действительно стоит посмотреть на работу отвечающего модема "без управляющих линий"...
AlekseyTelepnev вне форума  
Непрочитано 09.07.2010, 11:28  
Halex07
Супер-модератор
 
Аватар для Halex07
 
Регистрация: 03.05.2007
Сообщений: 2,693
Сказал спасибо: 28
Сказали Спасибо 4,526 раз(а) в 956 сообщении(ях)
Halex07 на пути к лучшему
По умолчанию Re: Считывание данных со счетчика через ТЧ-модем

Сообщение от AlekseyTelepnev Посмотреть сообщение
Как это сочетается с параметром модема AT&K0, отключающим контроль RTS/CTS?
Что-то я вчера выпал из обсуждения. Может быть и включить. И еще я бы досконально проверил и выровнял скорости и главное жестко у модемов в линию. Что то я не видел вчера, что Вы четко привязали модем к скорости обмена - сам сто раз на этом обжигался, особенно с газовыми корректорами (ИМХО счечиками) и теплосчетчиками..
Halex07 вне форума  
Непрочитано 09.07.2010, 23:54  
AlekseyTelepnev
Частый гость
 
Регистрация: 13.03.2010
Сообщений: 12
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
AlekseyTelepnev на пути к лучшему
По умолчанию Re: Считывание данных со счетчика через ТЧ-модем

Здравствуйте!
Спасибо всем, кто нашел время для ответа.

Как и ожидалось, при соединении RxD(2) и TxD(3) отвечающего модема, программа на «вызывающем» ПК получает отправленные данные.
Канал от вызывающего ПК до разъема DB-9 отвечающего модема РАБОТАЕТ.

Модемы соединяются на скорости 9600кбит/с (CONNECT 9600) Эта скорость задавалась как при настройке порта API-функциями (настройка DCB), так и настройкой самих модемов на максимальную скорость командой ats37=9.

Подключил МОХА к компьютеру через промежуточный клеммник, на котором коммутировал сигнальные цепи, и последовательно отключал "лишние" цепи. В результате информационный обмен с МОХА осуществляется при минимальном наборе линий (в скобках пин разъема DB-9): RxD(2), TxD(3), Gnd(5),CTS(.
При отсутствии сигнала CTS ПК ничего не отправляет в порт функцией WriteFile(отправлено 0 байт) (CTS - разрешение терминалу на отправку данных. Состояние «выкл.» запрещает ПК передачу данных).

Если замкнуть на клеммнике (в разъеме) RTS(7) CTS( то обмен осуществляется по трем линиям: RxD(2), TxD(3), Gnd(5).
И все таки данные со счетчиков считать через модем не получалось %((…

А все потому, что необходимо было поменять на конвертере интерфейсов местами RxD и TxD (вариация на тему нуль-модемного кабеля) Пришел к этому решению, признаюсь честно, «методом тыка» (благо, был промежуточный клеммник). Теперь работает с вызывающим модемом и самодельный конвертер (поменял на его разъеме местами RxD и TxD).
Буду признателен, если кто-нибудь объяснит почему нужно было именно такое подключение..
AlekseyTelepnev вне форума  
 
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как подключить несколько телеков если телесигнал идет через модем по вайфаю на декодер телевизора? zna44 Видеотехника 2 17.11.2009 10:28


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.