Перейти к содержанию
Fire Monkey от А до Я
  • 0

Электросчетчики "Меркурий" - Отправка (получение) данных с IP адреса


d7d1cd

Вопрос

Привет всем. Возникла необходимость через интернет работать с устройством: отправлять в него данные и получать данные от устройства. У устройства в сети есть статический IP адрес и строго задан порт для данных. Подскажите с помощью каких компонентов (функций, методов) можно решить мою задачу?

Ссылка на комментарий

Рекомендуемые сообщения

  • 0

Насколько я понял, то вопрос стоит в том, чтобы отправлять запрос от сервера к клиенту и наоборот. Так?

Если от клиента к серверу то можно использовать TNetHTTPClient. Если наоборот, то нужно смотреть в сторону TIdHTTPServer. Но по этому поводу я не пробовал ничего если честно. Поэтому это только предположения.

Ссылка на комментарий
  • 0

У меня поставщик данных - это прибор. Получается, что он - сервер. Однако этот сервер не пришлет мне данные, пока я не отправлю ему запрос. Из всего этого я делаю вывод, что для решения моей задачи необходимо использовать только один компонент: TNetHTTPClient. Я правильно понимаю?

Ссылка на комментарий
  • 0

Тут всё зависит от устройства. Обычно к таким устройствам идет в комплекте SDK, и напрямую по TCP/IP с ними никто не работает. Чаще всего это набор функций в DLL, иногда набор ActiveX-контролов, один раз видел как устройство определяется как сетевой диск и работа с его памятью идет как обычная работа с файлами. Но, если Вы все-таки хотите с ним работать напрямую - то у Вас, как минимум, должно быть описание протокола обмена данными с этим устройством - а там уже решать что использовать. Если устройство поддерживает HTTP протокол - то использовать какой-либо HTTP клиент (TIdHTTPClient, TNetHTTPClient и т.п.), если нет - что-то типа TIdTCPClient.

Ссылка на комментарий
  • 0

Само устройство является посредником. Так сказать интерфейсом связи. Оно принимает команду от удаленного компьютера через интернет и передает ее конечному прибору. Данный прибор отвечает на полученную команду. Устройство этот ответ отправляет на удаленный компьютер.

Вообще для работы с конечным прибором существует готовое приложение. В этом приложении можно выбрать один из нескольких типов интерфейсов: COM-порт, Bluetooth и, в том числе, TCP/IP. При выборе последнего программа просит указать IP адрес, порт (фиксирован - 7001), а так же некоторые параметры, как при работе с COM-портом - скорость обмена с конечным устройством, четность, время ожидания ответа. Работать с конечным устройством через COM-порт я умею. Теперь хочу научиться работать через TCP/IP.

Ссылка на комментарий
  • 0

Как я понял, почитав инфу по ссылке, вам предоставляется простой веб-интерфейс для управления прибором. Работать так же как и по COM-порту с ним не получится, т.к. вы работаете уже не с прибором, а с устройством-преобразователем (VR-006). С ним можно работать как с обыкновенным HTTP сервером используя какой-либо HTTP клиент (TIdHTTPClient, TNetHTTPClient и т.п.). Но получать в ответ Вы будете какой-то HTML который надо будет парсить, а какие запросы нужно посылать можно узнать просто посмотрев исходник страничек в браузере. Ну или обратиться к производителю, чтобы они описали протокол обмена по HTTP

Ссылка на комментарий
  • 0

А ведь можно еще попробовать сделать по-другому: с помощью какой-нибудь программы-монитора "подсмотреть" что отправляет существующее приложение по протоколу TCP/IP. Протокол обмена со счетчиком известен, поэтому, я думаю, будет несложно "разгадать" протокол обмена по веб-интерфейсу (ну если только там нет какого-нибудь шифрования).

Ссылка на комментарий
  • 0
1 час назад, d7d1cd сказал:

А ведь можно еще попробовать сделать по-другому: с помощью какой-нибудь программы-монитора "подсмотреть" что отправляет существующее приложение по протоколу TCP/IP. Протокол обмена со счетчиком известен, поэтому, я думаю, будет несложно "разгадать" протокол обмена по веб-интерфейсу (ну если только там нет какого-нибудь шифрования).

По Веб-интерфейсу используйте программу HTTP Analyzer

Ссылка на комментарий
  • 0
27 минут назад, d7d1cd сказал:

Протокол обмена со счетчиком известен, поэтому, я думаю, будет несложно "разгадать" протокол обмена по веб-интерфейсу

Протокол обмена по HTTP абсолютно другой. По HTTP подаются команды, которые говорят VR-006 какую команду подать счетчику по COM. Вернее даже не команду, а набор команд. Так что по HTTP вы посылаете совсем другие команды и в совершенно другом формате.

Ссылка на комментарий
  • 0

Ну что, получил ответ от производителя устройства. Вот текст моего письма:

Цитата

Здравствуйте. Сегодня посмотрел Вашу статью о подключении к счетчикам электроэнергии через TCP/IP посредством устройства VR-006. Как я понимаю, у данного устройства есть свой протокол обмена. То есть, запросы в счетчик и ответы от него идут не как при работе через COM порт. Такой вывод я сделал из того, что интерфейс счетчика может работать на разных скоростях и универсальный конфигуратор каким-то образом «сообщает» VR-006 на какой скорости работать со счетчиком. Скажите, возможно ли получить протокол обмена Вашего устройства VR-006?

Получил такой ответ:

Цитата

Сейчас скорость зафиксирована 9600 бод, канал связи прозрачный. Т.е. конфигуратор знает протокол счетчика и работает через VR-006 по прозрачному каналу связи, ничего сообщать VR-006  не нужно.

Из ответа я понял, что запросы для счетчика нужно отправлять на IP адрес так же, как и в COM порт. Правильно?

Ссылка на комментарий
  • 0
1 час назад, d7d1cd сказал:

запросы для счетчика нужно отправлять на IP адрес так же, как и в COM порт.

Ну если канал прозрачный - то работайте как с COM-портом используя какой-либо TCP-клиент. Только не HTTP  а именно TCP.

Ссылка на комментарий
  • 0
3 минуты назад, dnekrasov сказал:

Ну если канал прозрачный - то работайте как с COM-портом используя какой-либо TCP-клиент. Только не HTTP  а именно TCP.

Подскажите тогда, какой компонент мне использовать? Чтобы было как можно проще.

Ссылка на комментарий
  • 0

Давайте и я свои пять копеек внесу))

Подскажи, ты когда на ВЕБ интерфейс выходишь, ты видишь данные оп счетчику которые тебе требуются?

Я всё же голосую за работу через HTTP даже если придется парсить результат. Ибо HTTP это очень удачная надстройка над TCP/IP которая сама решает множество подводных камней сама. А при TCP/IP когда пойдут первые косяки (а они пойдут) тебе придется самому их отлавливать.

Вообще если у подключенного устройства есть внешний IP по переходу на который можно выйти на веб форму, то я бы попросил тебя его скинуть. Ну и конечно с указанием данных которые тебе требуется. 

Потом логин/пароль поменяешь.

P.S. можешь в личку если хочешь

Изменено пользователем brunnengi
Ссылка на комментарий
  • 0
2 часа назад, brunnengi сказал:

Давайте и я свои пять копеек внесу))

Подскажи, ты когда на ВЕБ интерфейс выходишь, ты видишь данные оп счетчику которые тебе требуются?

Я всё же голосую за работу через HTTP даже если придется парсить результат. Ибо HTTP это очень удачная надстройка над TCP/IP которая сама решает множество подводных камней сама. А при TCP/IP когда пойдут первые косяки (а они пойдут) тебе придется самому их отлавливать.

Вообще если у подключенного устройства есть внешний IP по переходу на который можно выйти на веб форму, то я бы попросил тебя его скинуть. Ну и конечно с указанием данных которые тебе требуется. 

Потом логин/пароль поменяешь.

P.S. можешь в личку если хочешь

Во первых, у меня пока нет устройства. Во вторых, производитель устройства ясно сказал, что при отправке данных на IP адрес они отправляются в таком же виде, как и при работе через COM порт. Отсюда делается вывод, что нельзя выйти на веб интерфейс через IP адрес.

Ссылка на комментарий
  • 0
14 минуты назад, brunnengi сказал:

Да судя по фоткам по ссылке это и есть веб форма

http://1.bp.blogspot.com/-eMMJrsM54Z0/ViTrRUDOHrI/AAAAAAAAFgg/TLtnAKYh9ek/s1600/6.png

Ну раз нет, значит нет.

Это не веб форма. Это интерфейс заводской программы для работы со счетчиками.

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...