Аппаратное Решение Для Зависания Gsm Модемов

  1. Проблема
  2. Решение
  3. Как используется устройство
  4. Результат


Проблема

Наша организация имеет 140 необслуживаемых установок (комплексов), которые установлены в труднодоступных местах от Анапы до Певека, в основном на ведомственных площадках.

Сам комплекс состоит из компактного компьютера Win32 и приемника ГНСС с антенной на крыше.

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

Вот как выглядит комплекс:

Аппаратное решение для зависания GSM модемов

Обычный USB-модемы (так называемые «свистки») зарекомендовали себя очень плохо: слишком часто они заморозить , да и качество приема слабого сигнала оставляет желать лучшего.

Мы стали использовать более дорогие USB-модемы промышленного типа с внешней комнатной антенной.

Но они также периодически замерзали, что приводило к недоступности комплекса.

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

Не все согласились выполнить столь сложную процедуру.



Решение

На рынке присутствуют GSM-роутеры со встроенным сторожевым таймером, но чаще всего они работают с конечным оборудованием через Ethernet, что усложняет настройку и стоит в несколько раз дороже.

Стабильно работающие модемы за приемлемую цену не поддерживают 3G. Мы решили пойти другим путём.

Сначала мы настроили автоматическую ежедневную перезагрузку компьютеров, но это не всегда помогало: питание на USB-модем подавалось даже при выключенном компьютере, и перенастроить это в биосе было невозможно.

Кроме того, перезагрузка прерывает сбор данных.

Так возникла идея создать USB-реле что будет тяжело сбросить питание GSM-модема на случай, если он замерзнет. Мы получили под заказ подходящий товар и начали открывать «плюс» с помощью реле по команде с компьютера.

В целом решение сработало, но при включении модема в половине случаев компьютер уходил в перезагрузку.

Это произошло из-за того, что модем имел на входе два больших конденсатора, вызывавших при включении скачок тока, на который USB-порт не рассчитан, и наш маленький компьютер это почувствовал.

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

Вот так выглядит готовое устройство с удлинителем для удобства:

Аппаратное решение для зависания GSM модемов

В конструкции имеется два USB-разъема: один для управления реле, другой для транзита к управляемому устройству (модему).

Единственное гнездо USB предназначено для подключения устройства; именно здесь открывается «плюс» по команде управления.

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

Работает по следующему алгоритму:

  1. Программа запускается 3 раза в час из планировщика задач Windows.
  2. Программа проверяет доступность нашего сервера.

  3. Если 4 пинга подряд оказались неудачными, то программа выдает команду на выключение/включение модема через реле.

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

  4. Результаты пингов и выполненных действий записываются в журнал (выключение/включение модема).

  5. В кратчайшие сроки логи отправляются на наш сервер, где все события записываются в базу данных для последующего централизованного анализа всех причин сбоев станции.

Вот пример журнала:
Дата Время Количество доступных серверов Количество неудачных пингов подряд Доступность основного сервера Выполнение команды
2017-01-24 20:37:00 0/2 6 нет
2017-01-24 20:57:00 0/2 7 нет
2017-01-24 21:17:00 0/2 8 нет сброс модема
2017-01-24 21:37:00 0/2 9 нет
2017-01-24 21:57:00 0/2 10 нет
2017-01-24 22:17:00 0/2 11 нет
2017-01-24 22:37:00 0/2 12 нет сброс модема
2017-01-24 22:57:00 0/2 13 нет
2017-01-24 23:17:00 1/2 0 хорошо
2017-01-24 23:37:00 1/2 0 хорошо
2017-01-24 23:57:00 1/2 0 хорошо
Из этого лога видно, что модем дважды перезагружался, после второй из которых наш сервер в итоге стал доступен.

Типичная ситуация: закончились деньги на сим-карте, не работает модем, станция недоступна.

Счет пополнен, но сам модем не может запустить мобильный интернет, пока USB-реле не перезагрузит его (может потребоваться перерегистрация в сети GSM через холодный старт).

Если с деньгами все в порядке, сеть не пропадает, то модем без проблем проработает около 36 часов, а потом, скорее всего, снова зависнет и потребует перезагрузки.

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

Наблюдатели на удаленных точках получали посылки с нашим навороченным устройством, преодолевали инструкции по подключению трех USB-разъемов, а мы их не спрашивали перезагружать модемы больше нет, теперь это происходит по щелчку USB-реле и решается компьютером самостоятельно.

Сама Программа написана нами на JScript. (это язык, подобный Javascript, встроенный в Windows) и устанавливался на станции удаленно либо через Remote Desktop, либо через собственную централизованную систему управления станциями на Удаленное взаимодействие PowerShell .

Надо сказать, что с большим количеством станций через PowerShell работать проще: вы пишете инструкцию один раз, и установка происходит автоматически на всех станциях.

Кроме того, не нужно ждать загрузки графического интерфейса (как в случае с удаленным рабочим столом).

Некоторые критически важные станции с нестабильным проводным соединением используют модем GSM в качестве резервного канала.

И включать его желательно было только тогда, когда проводной канал не работал.

Здесь опять-таки приходит на помощь USB-реле: как только пинги перестают проходить по основному (проводному) каналу, модем включается, Windows автоматически переключается на новое соединение с другим шлюзом по умолчанию.

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

Если по-прежнему не работает, то модем снова включается.

Надо сказать, что управление шлюзами по умолчанию – это обычно целая история: в законах об IP может быть только один «шлюз по умолчанию», а манипуляции с таблицей маршрутизации приводят к проблемам.

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

Выхода два: либо «жесткое» отключение второго канала через реле, либо тонкая и точная настройка метрики шлюза и проверка логики метрики во всех сценариях.

Все события записываются в базу данных и отображаются в интерфейсе Station Accounting Table центрального сервера:

Аппаратное решение для зависания GSM модемов

Результат Кратко подытожу, как работает полученная система:

  1. Компьютер собирает данные с измерительного прибора станции.

  2. USB-модем передает данные по сотовой сети.

  3. Реле USB управляет питанием модема.

  4. Программа выключает и включает питание модема (через реле) в случае зависания или когда нужно переключить канал связи.

  5. Реле включает модем плавно, чтобы избежать скачков тока.

Используемые нами модемы стоят около 6000 рублей каждый, еще 2300 рублей.

USB-реле.

В сумме это дешевле, чем использовать модемы со встроенным сторожевым таймером, которые также имеют ряд недостатков:

  1. Модемы со сторожевым таймером используют отдельный блок питания, разъем от которого пришлось бы припаивать к нашему 12-вольтовому источнику бесперебойного питания.

  2. Нет возможности просто выключить или включить модем для автоматического переключения между проводным каналом связи и GSM.
  3. Бывают случаи, когда модем не зависает, но сим-карта не регистрируется в сети.

    Поможет ли здесь сторожевой таймер – неизвестно.

    Точно так же, как никто не гарантирует, что оно само не замерзнет. Наше решение зависит от конечного результата: связи нет — сбрасываем питание модема.

Использование USB-реле для управления модемом имеет следующие преимущества:
  1. Можно использовать существующие модемы, в том числе недорогие, которые часто зависают.
  2. При работе проводного соединения можно просто выключить модем, чтобы не тратить трафик, и включать его только в случае возникновения проблем с проводным соединением.

    И автоматически.

  3. Простая установка: вам нужно всего лишь подключить три USB-разъема и установить программу.

    В физическом соединении ошибиться сложно.

Увидеть и услышать, как работает реле, включающее и выключающее модем, можно на этом видео: В конце концов, Проблема зависания GSM-модемов решена иронично (в прямом и переносном смысле) и больше нас не беспокоит. И при этом появились дополнительные возможности по управлению каналами связи.

Проблема удаленных необслуживаемых точек возникла из-за специфики работы с распределенными системами: мы следим за космической погодой и поддерживаем сеть измерительных станций, об этом можно прочитать здесь.

Здесь .

Если у вас есть вопросы, пишите по адресу: [email protected]. P.S. Выражаю благодарность своему коллеге Алексею Васильеву за участие в написании статьи.

Теги: #разработка #usb-модем #usb-реле #реле #зависание модема #GSM-модем #Читальный зал

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.