- Проблема
- Решение
- Как используется устройство
- Результат
Проблема
Наша организация имеет 140 необслуживаемых установок (комплексов), которые установлены в труднодоступных местах от Анапы до Певека, в основном на ведомственных площадках.Сам комплекс состоит из компактного компьютера Win32 и приемника ГНСС с антенной на крыше.
Нам необходимо получать от них данные каждые 15 минут. Некоторые станции имеют доступ к частной сети, но часто приходится использовать Мобильный интернет .
Вот как выглядит комплекс:
Обычный USB-модемы (так называемые «свистки») зарекомендовали себя очень плохо: слишком часто они заморозить , да и качество приема слабого сигнала оставляет желать лучшего.
Мы стали использовать более дорогие USB-модемы промышленного типа с внешней комнатной антенной.
Но они также периодически замерзали, что приводило к недоступности комплекса.
Пришлось звонить на метеостанции, где были установлены наши комплексы, и долго объяснять пожилым наблюдателям, какой кабель нужно выдернуть и вставить обратно.
Не все согласились выполнить столь сложную процедуру.
Решение
На рынке присутствуют GSM-роутеры со встроенным сторожевым таймером, но чаще всего они работают с конечным оборудованием через Ethernet, что усложняет настройку и стоит в несколько раз дороже.Стабильно работающие модемы за приемлемую цену не поддерживают 3G. Мы решили пойти другим путём.
Сначала мы настроили автоматическую ежедневную перезагрузку компьютеров, но это не всегда помогало: питание на USB-модем подавалось даже при выключенном компьютере, и перенастроить это в биосе было невозможно.
Кроме того, перезагрузка прерывает сбор данных.
Так возникла идея создать USB-реле что будет тяжело сбросить питание GSM-модема на случай, если он замерзнет. Мы получили под заказ подходящий товар и начали открывать «плюс» с помощью реле по команде с компьютера.
В целом решение сработало, но при включении модема в половине случаев компьютер уходил в перезагрузку.
Это произошло из-за того, что модем имел на входе два больших конденсатора, вызывавших при включении скачок тока, на который USB-порт не рассчитан, и наш маленький компьютер это почувствовал.
Чтобы избежать нежелательных перезагрузок, мы заказали USB-реле специальной версии с двухступенчатое переключение нагрузки : сначала модем включается через резистор, а только потом напрямую.
Вот так выглядит готовое устройство с удлинителем для удобства:
В конструкции имеется два USB-разъема: один для управления реле, другой для транзита к управляемому устройству (модему).
Единственное гнездо USB предназначено для подключения устройства; именно здесь открывается «плюс» по команде управления.
Как используется устройство Далее мы написали управляющую программу, которая определяет, когда модем нуждается в перезагрузке, и отправляет команду на его перезагрузку.
Работает по следующему алгоритму:
- Программа запускается 3 раза в час из планировщика задач Windows.
- Программа проверяет доступность нашего сервера.
- Если 4 пинга подряд оказались неудачными, то программа выдает команду на выключение/включение модема через реле.
В этом случае перед включением делается задержка, чтобы встроенные конденсаторы успели разрядиться.
- Результаты пингов и выполненных действий записываются в журнал (выключение/включение модема).
- В кратчайшие сроки логи отправляются на наш сервер, где все события записываются в базу данных для последующего централизованного анализа всех причин сбоев станции.
Дата Время | Количество доступных серверов | Количество неудачных пингов подряд | Доступность основного сервера | Выполнение команды |
---|---|---|---|---|
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 центрального сервера:
Результат
Кратко подытожу, как работает полученная система:
- Компьютер собирает данные с измерительного прибора станции.
- USB-модем передает данные по сотовой сети.
- Реле USB управляет питанием модема.
- Программа выключает и включает питание модема (через реле) в случае зависания или когда нужно переключить канал связи.
- Реле включает модем плавно, чтобы избежать скачков тока.
USB-реле.
В сумме это дешевле, чем использовать модемы со встроенным сторожевым таймером, которые также имеют ряд недостатков:
- Модемы со сторожевым таймером используют отдельный блок питания, разъем от которого пришлось бы припаивать к нашему 12-вольтовому источнику бесперебойного питания.
- Нет возможности просто выключить или включить модем для автоматического переключения между проводным каналом связи и GSM.
- Бывают случаи, когда модем не зависает, но сим-карта не регистрируется в сети.
Поможет ли здесь сторожевой таймер – неизвестно.
Точно так же, как никто не гарантирует, что оно само не замерзнет. Наше решение зависит от конечного результата: связи нет — сбрасываем питание модема.
- Можно использовать существующие модемы, в том числе недорогие, которые часто зависают.
- При работе проводного соединения можно просто выключить модем, чтобы не тратить трафик, и включать его только в случае возникновения проблем с проводным соединением.
И автоматически.
- Простая установка: вам нужно всего лишь подключить три USB-разъема и установить программу.
В физическом соединении ошибиться сложно.
Проблема удаленных необслуживаемых точек возникла из-за специфики работы с распределенными системами: мы следим за космической погодой и поддерживаем сеть измерительных станций, об этом можно прочитать здесь.
Здесь .
Если у вас есть вопросы, пишите по адресу: [email protected]. P.S. Выражаю благодарность своему коллеге Алексею Васильеву за участие в написании статьи.
Теги: #разработка #usb-модем #usb-реле #реле #зависание модема #GSM-модем #Читальный зал
-
Дан Си-Зи
19 Oct, 24 -
Использование Снимков В Hyper-V
19 Oct, 24 -
Html-Таблица С Фиксированным Столбцом
19 Oct, 24 -
Вся Хвала Гуглу!
19 Oct, 24 -
Использование Appbarbutton В Windows 8.1
19 Oct, 24