вторник, 4 декабря 2012 г.

Использование GPRS для опроса счетчиков Меркурий



По некоторым существенным причинам, GPRS технология более предпочтительна в качестве способа дистанционного сбора данных и конфигурирования счетчиков электроэнергии по сравнению с технологией CSD. Особенно преимущества GPRS заметны при работе с большим количеством точек учета и соответственно большим объемом данных.
В наш отдел периодически обращаются с вопросами по поводу возможности использования технологии GPRS при опросе счетчиков Меркурий, и в частности счетчиков Меркурий со встроенным GSM модемом. Отвечаем: да, использование GPRS с такими счетчиками возможно. Но счетчик и встроенный GSM модуль необходимо соответствующим образом настроить.
Для более подробного же ответа на подобные вопросы предназначена эта статья.
GSM модули,встраиваемые в счетчики Меркурий, а также в GSM шлюзы Меркурий 228, с определенного времени (т.е. версии прошивки), поддерживают передачу данных по технологии GPRS/ Вообще же режимов работы, поддерживаемых GSM модулями можно перечислить несколько:

  1. CSD или  DATA вызовы
  2. UDP клиент.
  3. активный UDP клиент 
  4. TCP клиент
  5. TCP сервер
  6. активный FTP клиент

 Из перечня режимов видно, что GSM модули могут работать в режиме GPRS  как со статическими, так и с динамическими IP адресами. Постараемся рассмотреть подробнее настройку и использование режима GPRS с динамическими IP адресами, на примере счетчика Меркурий 233 ART-01  RKG со встроенным GSM модемом на базе модуля Telit GL868. Режим работы с динамическим IP адресами особенно интересен, так как использование динамических адресов не требует абонентской платы, в отличии от варианта с применением статических IP адресов.
Динамические IP адреса называются таковыми потому, что могут изменяться. При регистрации GSM модуля в сети GPRS ему присваивается IP адрес. Если произойдет перерегистрация, то адрес изменится. В случае же со статическим адресом, он останется неизменным,(но в замен  такое удобство оператор, как правило, требует  ежемесячную плату). Адрес в свою очередь необходимо для того что бы программное обеспечение производящее сбор данных со счетчика, знало куда, собственно, за этими данными обращаться,  по какому адресу.
Если адрес статичен, то его мы просто прописываем в программном обеспечении, с уверенностью что он останется неизменен в процессе функционирования системы. Если адрес динамичен, то такой уверенности быть не может. Решается эта задача просто, GSM модуль, встроенный в счетчик сам, с заданной периодичностью, обращается к специальному программному обеспечению, с целью сообщить свой текущий адрес, и в следствии этого программа опроса всегда знает текущий, адрес опрашиваемого GSM модуля.

Схематично это выглядит следующим образом.


  1. GSM модуль обращается к специализированной программе "TCP Gateway"
  2. "TCP Gateway" определяет текущий IP адрес GSM модуля
  3. "TCP Gateway" создает порт для обмена с программой опроса
  4. Программа опроса , отправляет данные в порт открытый программой "TCP Gateway"
  5. TCP Gateway осуществляет переадресацию данных от программы на счетчик
  6. Также схема действует и в обратном направлении.
"TCP Gateway" может находиться как на локальном компьютере (в этом случае программа опроса будет отправлять данные на локальный IP), а может находиться на сетевом компьютере (соответственно данные будут отправляться программой опроса на сетевой IP)
"TCP Gateway" открывает два порта, один для обмена данными со счетчиком, другой с программой опроса. Номера этих портов отличаются на 1000.

Итак для работы со счетчиками по GPRS нам необходимо:


  • Счетчик с соответствующим, поддерживающим  режим работы GPRS  модулем.
  • SIM карта с подключенной услугой передачи данных (GPRS)
  • Компьютер с выходом в интернет. На тестовом этапе можно обойтись сетевым подключением с динамическим адресом. Свой текущий адрес компьютера тогда надо будет узнавать. Это можно сделать с помощью сервисов "мой IP", который предоставляет например Яндекс. Для построения же полноценной системы, необходимо будет обзавестись подключением со статическим, т.е. постоянным IP адресов.

 Теперь рассмотрим подробнее шаги по настройке такой системы.

Шаг 1
Настройка локальных сетевых параметров

Чтобы счетчик (GSM модуль счетчика) мог передать нам информацию о своем текущем IP, нам необходимо "сообщить" ему наш адрес и номер порта. Свой IP адрес узнаем у системного администратора, интернет провайдера или просто при помощи сервисов "Мой IP", коих много на просторах интернета (для примера Яндекс дает такую возможность в интернетометре
Открытие же порт зависит от того как Ваш компьютер осуществляет выход в интернет. Если компьютер имеет прямой выход, то это существенно облегчает дело, а именно делать с портами нечего не придется. Если же Ваш компьютер имеет выход в интернет через роутер, то потребуется "промапить" (от английского слова map - карта)  порт, а именно необходимо в настройках роутера назначить внешний порт с привязкой к IP адресу Вашего компьютера, который используется в локальной сети. (Компьютер + роутер - это уже локальная сеть и в ней своя адресация)
В результате имея "на руках" внешний IP адрес нашего компьютера, или нашей сети, и номер порта, мы можем перейти к следующему шагу.

Шаг 2
Настройка GSM модема счетчика

Настройка встроенного GSM модуля производится посредством управляющих SMS. Используются три типа SMS, каждая для настройки своего определенного перечня параметров. Подробнее формат конфигурационных СМС описан здесь.
Настройки режима работы GSM модуля входят в группу настроек первой "страницы" (см формат конфигурационных СМС) На этой "странице" мы должны установить режим работы, использование пакетной передачи, IP адрес и др информацию. 
Для реализации схемы работы на базе программы TCP Gateway нам требуется записать:

  1. Параметр определяющий номер страницы и необходимость ответной СМС - 1
  2. Режим работы - 21 - TCP клиент
  3. Использование пакетного режима - 0 - отсутствует, т.е. используется сквозной канал
  4. IP адрес программы TCP Gateway - например это адрес нашего локального ПК 95.231.34.18
  5. Номер порта - например - 1212
  6. Период отправки ping - например 5 (пять минут)
  7. Идентификатор счетчика - Например incotex (в честь фирмы производителя счетчика)
  8. Логин доступа к GPRS  (узнать у оператора связи)
  9. Пароль доступа к GPRS (узнать у оператора связи)
  10. APN название точки доступа  (узнать у оператора связи) например internet.mts.ru
  11. Периодичность и длительность сессии (по умолчанию стоит 0,0,т.е. сессия не ограничена)
  12. Оставшиеся два параметра используются только в ответных СМС, когда GSM модуль сообщает  уровень сигнала и версию прошивки.

Таким образом наша СМС будет иметь следующий вид:

###!1!21!0!95.231.34.18!1212!5!incotex !mts!mts!internet.mts.ru!0,0!!!

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

Для получения ответных СМС, от счетчика необходимо записать телефон СМС центра используемого оператора. Эта настройка производится СМС второй "страницы". Также на этой странице указываются настройки порта связи GSM модуля со счетчиком.  Например, если телефон СМС центра будет 89104999109, а в счетчике используется интерфейс RS-485, то СМС примет вид:

###!3!1!9600,8,n,1!!+79104999109!!!!!!!!!

Большинство параметров, этой СМС, мы оставляем по умолчанию. Более подробно о них смотрите Формат конфигурационных СМС

Шаг 3

Установка и настройка программы TCP шлюз (TCP Gateway)

Эта программа играет ключевую роль в системе опроса на базе GPRS. TCP шлюз производит переадресацию данных, от счетчика на программу опроса, а от программы опроса на счетчик. Если подробнее, то программа после запуска, во-первых  начинает прослушивать тот самый порт, который мы открыли в первом шаге, и который  во втором шаге записали в качестве настройки GSM модуля, а во-вторых создает новый порт, который номером отличается от первого на 1000 и используется для обмена с программой. Все данные TCP шлюз из прослушиваемого порта передает в порт для обмена с программой и наоборот. При этом TCP шлюз умеет определять текущий IP адрес GSM модуля встроенного в счетчик. Таким образом пользователь не замечает изменения адреса GSM модулей, встроенный в счетчики, а работает всегда с одним адресом - адресом программы TCP шлюз и её портом, который она открывает для обмена с программой.
Таким образом... скачиваем программу здесь.
Распаковываем архив. Открываем в блокноте файл "list.ini" который находится в папке "res" , и добавляем запись формата: [номер порта]/ Например, в нашем случае эта запись будет:

[1212]

Заносим в этот файл все используемые порты.. Сохраняем файл и закрываем. Запускаем программу "server.exe"
В случае успешного запуска на экране появится окно.


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


И в приведенном примере терминального окна, мы увидим сообщения выделенные  цветом, из которых следует, что  связь с GSM модулем установлена, а в первом окне уже можно будет увидеть его IP.

Шаг 4

Запуск и настройка Конфигуратора


В качестве программы опроса мы используем программу "Универсальный Конфигуратор счетчиков Меркурий"  В настройках параметров связи указываем:
Тип интерфейса TCP/IP



IP- адрес - ip адрес компьютера, на котором установлена программа TCP шлюз (TCP Gateway). Если это локальный компьютер,.то IP адрес локального компьютера.



Порт: номер порта, открытого программой TCP шлюз для обмена с программой опроса. В нашем случае это 2212 (см окно программы TCP Gateway)


Тип счетчика, его сетевой адрес и пароль доступа в соответствии с опрашиваемым счетчиком.
Для компенсации возникающих в сетях передачи данных задержек увеличим тайм ауты и время ожидания ответа: Установим следующие значения:



Кликаем по кнопке "Соединить" В случае верной настройки в терминальном окне программы "server.exe" мы увидим соответствующий  лог:


А в программе Конфигуратор результаты опроса.



42 комментария:

  1. Здравствуйте. Возможен ли опрос всех счетчиков, подключенных к счетчику с GSM-модулем?
    Опрос будет "прозрачный" или его как-то нужно организовывать иным способом?

    Под "прозрачным" я понимаю, отправку tcp пакета со стороны пользователя, где будет указана команда и внутренний адрес счетчика. А, соответственно, счетчик с GSM-модулем сделает редирект на запрашиваемый счетчик, а затем вернет от него ответ.

    ОтветитьУдалить
    Ответы
    1. Анонимный9 июня 2013 г., 13:58

      Возможен видел как работает!

      Удалить
    2. Да возможно. Сам счетчик, оснащенный GSM модулем в опросе не будет участвовать, будет участвовать только встроенный в него GSM модуль.

      Удалить
  2. где скачать TCP Gateway на яндекс диске файл удален

    ОтветитьУдалить
    Ответы
    1. https://docs.google.com/uc?export=download&id=0Bx0_0wePTcbocHgyTjlGQUEyQk0

      Удалить
  3. Скажите пожалуйста, есть ли какие-нибудь нюансы при настройке, если мой компьютер использует 3G-модем, или это не имеет значения? Я делаю все по инструкции, но конфигуратор пишет, что свзязь установить не удается. И еще вопрос: когда я выбираю вид связи tcp/ip, выпадающий список с выбором COM-порта становится недоступным, и устанавливается в значение COM1, в то время как мой 3G-модем работает на COM13

    ОтветитьУдалить
    Ответы
    1. Для TCP не нужен СОМ порт, 3G модем дает выход в интернет и уже через интернет идет связь по TCP .Так что Вам надо подключиться к сети и затем использовать в конфигураторе TCP.

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

      Удалить
    3. Если на счетчике статический адрес, то менять IP адрес нигде не надо. В Конфигураторе указываете адрес СИМ карты и все. Счетчику адрес ПК не нужен.

      Удалить
    4. Мне показалось, что судя по Шагу 2 в этом руководстве написано, как настроить GSM модем счетчика с использованием смс-команд, и в этом примере была команда ###!1!21!0!95.231.34.18!1212!5!incotex !mts!mts!internet.mts.ru!0,0!!!. Как я понял в этой команде указан IP компьютера, с которого я хочу работать со счетчиком. Я среди всего прочего воспользовался ею, но со своими параметрами, т.к. у меня симка другого оператора связи.Далее написано что в конфигураторе нужно вводить IP компьютера, а не IP симки в счетчке, и программа TCP Gateway далее осуществит связь. Я неверно понял?

      Удалить
    5. Дело в том, что эта статья описывает настройки при использовании динамических адресов. У Вас статические, поэтому настройки проще.

      Удалить
    6. Изначально я пробовал соединиться по-простому, как вы говорите,но не получалось. Тогда я решил воспользоваться этой статьей. Сначала в счетчике был зашит адрес 127.0.0.1 и порт 2200. Это правильно, или нужно зашить адрес симки все-таки?

      Удалить
    7. Используйте статью с описанием формата конфигурационных СМС. Переводите модем в счетчике в режим 20. Далее в Конфигураторе указываете IP адрес симки и порт, настроенный в модеме счетчика, берется из обратной СМСки. Все должно работать.

      Удалить
  4. Здравствуйте. У меня вопрос следующего содержания: я не могу осуществить связь со счетчиком Меркурий 230 по GPRS ни через конфигуратор, ни через TaskGroup. На симке статический IP-адрес, интернет на ней точно работает и счетчик точно рабочий. Я посылал смс-команды для того чтобы настроить счетчик на передачу данных.Пример команды, которую я послал: ###!1!20!0!83.220.248.75!1212!5!incotex!beeline!beeline!internet.beeline.ru!0,0! Счетчик мне ответил: ###!0!20!!83.220.248.75!1212!5!incotex!beeline!beeline!internet.beeline.ru!0,0! 83.220.248.75 - это IP-симки. С такими настройками программы не могут установить связь со счетчиком и пишут что "TCP\IP-соединение не установлено!". Компьютер, с которого я пытаюсь соединиться со счетчиком имеет неограниченный доступ в интернет.

    ОтветитьУдалить
    Ответы
    1. Стоит обратить внимание, что сеть со статическим IP обычно предполагает особенный APN уточните этот вопрос с оператором.

      Удалить
    2. Я изменил точку доступа, но это не дало результата ###!1!20!0!83.220.248.75!1212!5!incotex!beeline!beeline!static.beeline.ru!0,0! С сотового телефона симка выходит в интернет

      Удалить
    3. APN - это одна из возможных причин. Так же может быть причина и в настройках ПО и в сетевых настройках. Какие настройки устанавливаете в Конфигураторе?
      ОтветитьУдалить

      Удалить
  5. Скажите пожалуйста если я хочу опрашивать счетчик по GPRS не "сломаю" ли я его внутренние параметры и не будет ли против энергосбытовая компания что я опрашиваю счетчик таким образом? Мне опрос необходим только для того чтобы знать показания о потребленной энергии и не более

    ОтветитьУдалить
    Ответы
    1. Сам опрос по GPRS ничего испортить не может. А вот насчет энергосбытовой организации не скажу - надо с ними обсуждать. Если они тоже используют модем для опроса, то Ваша совместная работа может помешать друг другу.

      Удалить
    2. Понял спасибо! Насчет испортить я имел ввиду что настройку тарифов и т.п.(насколько мне известно)должны проводить контролеры энергосбытовой организации и им может не понравится то что я опрашиваю счетчик и могу сам что нибудь поменять из параметров.Они использовать модем для опроса не будут

      Удалить
    3. Конечно, могут заартачиться, поэтому предварительно надо с ними обговорить данный момент. В некоторых регионах даже оптопорт обклеивают пломбами, чтобы предотвратить доступ к настройкам счетчика, чаще конечно просто пароль меняют. Пароль как раз и служит для разграничения доступа. Вам могут выдать пароль 1-го уровня. Он Вам не позволит ничего менять, только читать.

      Удалить
  6. Добрый день. Подскажите, пожалуйста, можно ли опрашивать через TCP Gateway несколько счетчиков с разных шлюзов M228? Один счетчик опрашивает замечательно, но когда я прописываю второй порт для другого шлюза М228, то опрос второго счетчика не происходит.
    В чем может быть проблема и реально ли настроить одновременный опрос с нескольких шлюзов М228.

    ОтветитьУдалить
    Ответы
    1. TCP Gateway ничего не опрашивает. Он только принимает посылки от счетчиков и определяет IP адрес. Он может определять адреса сразу нескольких шлюзов, соответственно и их опрос сможет обеспечить. Но повторюсь опрос ведет соответствующее программное обеспечение, а не TCP Gateway.

      Удалить
    2. Опрашиваю АСКУЭ Энергосфера в режиме rawtcp. Тогда вопрос следующий. В TCP Gateway перенаправление с разных портов (с разных шлюзов) выполняется различными потоками? асинхронно? Т.е. сервер опроса может одновременно обращаться к нескольким портам и вести опрос или только последовательно?

      Удалить
    3. Анонимный14 июня 2016 г., 17:03

      Александр, здравствуйте. Были на режим tcp-клиент законфигурированы 2 GSM-шлюза, за которыми по одному счетчику находилось. Опрос одновременно двух приборов на разных шлюзах вел:
      1) конфигуратором один ПУ - верхним уровнем другой ПУ;
      2) конфигуратор - конфигуратор;
      3) верхний уровень - верхний уровень.
      Опрос вел одновременно с разных машин. TCP Gateway обрабатывает одновременно посылки. В логах видно, что в качестве параметра в функциях при пересылке пакетов используется номер сокета, который для каждого соединения (tcp-порта, на который вешается шлюз) - уникальный. Что в свою очередь позволяет тянуть одновременно данные с двух разных ПУ, подсоединенных к разным GSM-шлюзам. А вот одновременно тянуть уже с двух ПУ на одном шлюзе - не получится.

      Удалить
    4. Анонимный14 июня 2016 г., 17:06

      Так что реально настроить одновременный опрос ПУ, находящихся на разных шлюзах, работающих в режиме tcp-клиент.

      Удалить
  7. Здравствуйте. Меня зовут Иван. В режиме tcp-клиента шлюз 228 удалось завести. Интересует конфигурация шлюза 228 в режим TCP-сервер. На текущий момент, подсоединили счетчик для эксперимента на шлюз. Смс отправлена. Группа APN, закрытая. СМС выглядит следующим образом: ###!1!20!0!!4995!0!incotex!mts!mts!myapngroup!0,0!
    Для данных симок, в своей apn группе, ip назначаются статикой. В ответ приходит смс с правильно полученным ip адресом. Шлюз условно говоря находится за несколькими фаерволами, но правила везде проверили и до последней инстанции видно, что пакеты уходят на шлюз при попытке обращения с конфигуратора, однако соединение TCP не устанавливается. Ошибка "TCP/IP соединение не установлено". В ответ приходят пакеты RST, что говорит о том, что как tcp-сервер, шлюз видимо не подымается. В чем может быть проблема? Пробовал и режимы задавать, с прозрачного на пакетный менять и пинги проставлять, все бестолку. Может быть проблема с версиями железа и по факту в режиме tcp-сервера не все шлюзы 228 в состоянии работать? На форуме уже подымался вопрос о работе режима tcp-сервера, где на пути между конфигуратором и шлюзом чистый канал интернета и ошибка таже.

    ОтветитьУдалить
    Ответы
    1. Сложно сказать в чем проблема. Могу говорить только за настройку оборудования и ПО.
      1. Режим работы порта нужно ставить в значении "2" - это тот же сквозной канал, что и "0", но в последних версиях прошивок задействован именно режим "2", а не "0".
      2. Увеличить время ожидания ответа в Конфигураторе до 7000 мс.
      3. Увеличить множитель и значение системного тайм-аута. Установить тайм-аут = 200 и множитель 50.
      4. Порт. На ПК должен быть открыть на передачу порт 4995 и на всем маршруте тоже.

      Удалить
  8. Доброго времени суток! Не могу соединиться с Меркурий-228 через GPRS! Подскажите где проблема!
    Конфигурационное СМС имеет вид:
    ###!1!21!2!xxx.xxx.xxx.xxx!1213!5!hutorok!gdata!gdata!internet!0,0! (xxx.xxx.xxx.xxx - IP моего соединения)
    Ответное СМС:
    ###!0!21!2!xxx.xxx.xxx.xxx!1213!5!hutorok!gdata!gdata!internet!0,0!31!stT4_5_3_121212!
    Порт 1213 ОТКРЫТ
    ПО TCPGateway соединяется с Меркурий-228
    Лог выглядит так:
    16:14:16 - Waiting for connection to accept.
    16:14:16 - Connection from 37.29.41.192 accepted on Port 50342.
    16:14:18 - Handle READ for socket 452
    16:14:18 - WS_Recv(452, message, 18, 0)
    16:14:18 - 18 bytes received.
    ----
    Received Message ASCII: ###!hutorok !start!
    ----
    Received Message HEX: 23 23 23 21 69 6e 63 6f 74 65 78 20 21 73 74 61 72 74 21
    ----
    16:14:18 - WS_SendBinary( , message, 18, 0)
    16:14:18 - [ERROR] Sending failed! (errorcode: 10038)

    Соединиться со счётчиком через конфигуратор не могу. При попытке пишет
    Test= #Err-1
    End

    В чём может быть проблема!?

    ОтветитьУдалить
    Ответы
    1. Рекомендую проверить связь по интерфейсу между счетчиком и Gsm шлюзом. Удобно это делать путем перевода шлюза в режип работы - 10 т.е. CSD . Но эта услуга (передача данных по технологии CSD) должна быть включена на СИМ карте.
      Вторая рекомендация проверить настройки связи в программе Конфигуратор . Проще всего будет скинуть скрин-шот на адрес тех поддержки: mail@incotexcom.ru

      Удалить
  9. Дорый день,

    используем GSMшлюз Teleofis WRX700 со счетчиком Меркурий 230. IP статический, конфигуратор соединяется к модему, начинает опрос (судя по логу программы-конфигуратора GSM, пакеты идут), но в результате получаю или ошибку -1или ошибку -6. Пробовал менять скорости но разницы нет... вчемможет быть проблема?

    ОтветитьУдалить
    Ответы
    1. Попробуйте для начала увеличить время ожидания ответа. Так попробуйте увеличить системный тайм-аут и множитель тайм-аута. Скорость установите 9600

      Удалить
  10. Здравствуйте, а нельзя ли получить исходный код TCP шлюза? Если можно, пришлите пожалуйста на Bayanovnail@gmail.com

    ОтветитьУдалить
    Ответы
    1. Данный вопрос вам надо задать программисту по адресу j2@inbox.ru Василий Алексеевич Миронов

      Удалить
  11. Добрый день, при опросе счетчика через GPRS в интеграторе Меркурий в логах отображается ошибка: Адреса запроса и ответа не совпадают (адрес в пакете 0)

    ОтветитьУдалить
    Ответы
    1. Пришлите более подробное описание проблемы на электронный адрес mail@incotexcom.ru

      Удалить
  12. Здравствуйте. Подскажите пожалуйста с настройками режима GPRS в счетчике

    Адрес счетчика 172.26.6.1 порт 5010 соотв.sms ###!1!20!0!172.26.6.1!5010!!!!!apn.mts!0,0!!!
    Адрес сервера 172.26.6.21 порт 6010

    симки со статическими "серыми" адресами, паролей нет. применяется опрос TCP-клиент
    TCP-сервер

    ОтветитьУдалить
    Ответы
    1. В СМС : ###!1!20!0!172.26.6.1!5010!!!!!apn.mts!0,0!!! - после ###!1!20! стоит ноль - это означает что модем работает в прозрачном режиме. Прозрачный режим также можно запрограммировать, установив вместо нуля двойку, если с нулем связь не устанавливается.

      Удалить
  13. Вроде заработало, по крайней мере сервер конфигуратором Меркурий читает счетчик

    ОтветитьУдалить
  14. с адресом сервера 172.26.6.21 порт 5010

    ОтветитьУдалить
  15. Счетчик 234artm01 pob g
    Установил шлюз, отправил смс, шлюз получает сообщения и от модема и от конфигуратора. Режим TCР-клиент
    Итог- тест связи - нет ответа...
    Пробовал закрыть шлюз и постучаться на известный адрес напрямую-тоже нет ответа

    ОтветитьУдалить
    Ответы
    1. Вам необходимо более подробно описать ситуацию. Какова конфигурация системы, какие настройки, процитировать ответные СМС. Такое описание можно направить на электронный адрес техподдержки: mail@incotexcom.ru

      Удалить