Русский
Русский
English
Статистика
Реклама

Gps мониторинг

Синхронизация времени без интернета

23.06.2020 14:06:23 | Автор: admin


Помимо tcp/ip, существует множество способов синхронизация времени. Некоторые из них требуют лишь наличие обычного телефона, в то время, как другие требуют дорогостоящего, редкого и чувствительного электронного оборудования. Обширная инфраструктура систем синхронизации времени включает в себя обсерватории, государственные институты, радиостанции, спутниковые группировки и многое другое.

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

Радиовещание на коротких волнах


В Соединенных Штатах Америки NIST передает точное время и частоту по 2.5, 5, 10, 15 и 20 МГц радиоволнам со станции WWVH в Форт-Коллинсе, штат Колорадо, и на частотах 2.5, 5, 10 и 15 МГц со станции WWVH в Кауаи, штат Гавайи. Временной код передается через 60-секундный интервал на скорости 1 б/с. с использованием широтно импульсной модуляции на поднесущей 100 Гц.

Национальный исследовательский совет (NRC) Канады осуществляет распространение временной и частотной информации на 3.33, 7.85 и 14.67 МГц со станции CHU в Оттаве, провинция Онтарио.

image
Формат вещания WWVH

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

Текущий стандарт NTPv4 включает в себя аудио драйверы для WWV, WWVH и CHU.

Радиовещание на длинных волнах


NIST также передает точное время и частоту по длинным радиоволнам на волне 60 kHz из Боулдера в штате Колорадо. Есть и другие станции передачи сигналов точного времени на длинных волнах.
Позывные и локация Частота (kHz) Мощность (kW)
WWVB Форт-Коллинс, Колорадо, США 60 50
DCF77 Mainflingen, Germany 77.5 30
MSF Rugby, United Kingdom 60> 50
HBG Prangins, Switzerland 75 20
JJY Fukushima, Japan 40 50
JJY Saga, Japan 60 50
Низкочастотные Станции Стандартного Времени

Временной код передается через 60-секундный интервал на скорости 1 б/с, точно так же, как на коротковолновых станциях. Форматы передачи данных тоже сходны для обоих стандартов. Распространение сигнала происходит через нижние слои ионосферы, которые относительно стабильны и имеют предсказуемые суточные колебания высоты. Благодаря этой предсказуемости физической среды точность повышается до 50 s.

image
Формат вещания WWVB

Геостационарный эксплуатационный спутник наблюдения за окружающей средой


В США NIST также передает данные о точном времени и частоте примерно на 468 МГц с геостационарных эксплуатационных спутников окружающей среды (GOES). Временной код чередуется с сообщениями, используемыми для опроса удаленных датчиков. Он состоит из 60 BCD полубайтов, передаваемых с интервалом в 30 с. Информация временного кода аналогична наземным службам.

Системы глобального позиционирования


Министерство обороны США использует GPS для точной навигации на суше, на море и в воздухе. Эта система обеспечивает 24-часовой охват земного шара с помощью группировки спутников на 12-часовых орбитах, наклоненных под углом 55.

Первоначальная группировка из 24 спутников была расширена до 31 спутника в неоднородной конфигурации, так что по крайней мере 6 спутников всегда находятся в поле зрения, а 8 или более спутников находятся в поле зрения в большей части света.

Услуги, подобные GPS, эксплуатируются или планируются другими странами. Российский ГЛОНАСС работает уже с десяток лет, если считать со 2 сентября 2010 года, когда общее количество спутников было доведено до 26 группировка была полностью развёрнута для полного покрытия Земли.

image
Спутники GPS вокруг земного шара.

Спутниковая система навигации Европейского Союза называется Галилео. Ожидалось, что Галилео начнет работать в 20142016 годах, когда на орбиту будут выведены все 30 запланированных спутников Но на 2018 год спутниковая группировка Галилео так и не достигла необходимого количества аппаратов.

Есть еще китайский Бэйдооу, что в переводе означает кит. Группировка в составе 16 спутников была запущена в коммерческую эксплуатацию 27 декабря 2012, в качестве региональной система позиционирования. Планируется, что на полную мощность система выйдет к 2020 году. Как раз сегодня, на Хабре вышла статья, про успешный запуск спутника этой системы.

Математика определения координат по СРНС


Как GPS/Глонасс навигатор на вашем смартфоне определяет местоположение с такой точностью с помощью системы радионавигационной связи (СРНС)? Чтобы понять принцип расчетов нужно вспомнить стереометрию и алгебру в пределах старших классов средней, или физмат школы.

Каждый спутник сообщает приемнику точное время. На спутнике установлены атомные часы и поэтому им можно верить. Зная скорость света нетрудно определить радиус сферы на поверхности которой находится спутник. Это же сфера соприкасаясь с Землей образует круг, на котором находится GPS / Глонасс приемник.

Когда сигнал приходит с двух спутников, мы уже имеет пересечение Земли и двух сфер, что дает лишь две точки на круге. Сфера третьего спутника в идеале должен попасть в одну из этих двух точек, окончательно определив координаты приемника.

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

image
Определение местоположения с помощью спутниковой группировки.

Нетрудно заметить, что в этой идеализированной картине есть много нюансов, от которых зависит точность расчетов. Время на приёмнике, пожалуй самый очевидный источник погрешностей. Для того, чтобы все заработало как надо время GPS / Глонасс приёмника должны быть синхронизированы со временем спутника. Без этого погрешность составила бы 100 тыс. км.

Из формулы скорости, времени и расстояния S = v*t получаем базовое уравнение для передачи сигнала СРНС. Расстояние до спутника равно произведению скорости света на разницу времени на спутнике и приёмнике.

$S = с*(t_{сп} - t_{пр})$



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

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

$R_{i} = (x - X_{i})^{2} + (y - Y_{i})^{2} + (z - Z_{i})^{2} + t$



Для определения четырех неизвестных x, y, z, и t необходимо, чтобы число наблюдений равнялось или было больше, чем число неизвестных. Это необходимое, но недостаточное условие. Если матрица нормальных уравнений окажется вырожденной у системы уравнений не будет решения.

Не стоит также забывать про Специальную Теорию Относительности и релятивистские эффекты с замедлением времени на спутниковых атомных часах относительно наземных.

$t_{сп}=\frac{t_{пр}}{\sqrt{1-(\frac{v}{c})^2}}$



Если считать, что спутник движется по орбите со скоростью 14 тыс. км./ч., то получаем замедление времени около 7 с (микросекунд). С другой стороны действуют релятивистские эффекты Общей Теории Относительности.

Дело вот в чем, спутники на орбитах находятся на большом расстоянии от Земли, где кривизна пространственно-временного континуума меньше, чем на земной поверхности из-за массы Земли. Согласно ОТО ход часов, расположенных ближе к массивному объекту, будет казаться медленнее, чем тех, что находятся дальше от него.

$t_{сп} = t_{пр}*\sqrt{1-\frac{2GM}{rc^2}}$


  • G гравитационная постоянная;
  • M масса объекта, в данном случае Земли;
  • r расстояние от цента Земли до спутника;
  • c скорость света.

Вычисление по этой формуле даёт замедление времени 45 с на спутнике. Итого -7с +45с = 38с баланс эффектов СТО и ОТО.

В прикладных задачах определения местоположения с помощью СРНС следует также принять во внимание ионосферные и тропосферные задержки. Помимо того, корректировки 46 ns связаны c эксцентричностью 0.02 орбиты спутников GPS.

Возможность получать сигналы одновременно более чем с четырех спутников GPS / ГЛОНАСС позволяет еще больше увеличить точность определения координат приёмника. Это достигается за счет того, что навигатор решает систему их четырех уравнений с четырьмя неизвестными $C^k_m$ число раз и берет среднее значение, повышая точность итоговой оценки согласно законам математической статистики.

Как настроить NTP сервер Startum 1 по спутниковой связи


Для настройки высококачественного сервера времени необходимо всего лишь GPSD, NTP и GPS-приёмник, с выходом 1PPS (один импульс в секунду).

1. Установите gpsd и ntpd, либо gpsd и chronyd. Версия gpsd должна быть 3.20

(1:1109)$ sudo emerge -av gpsd chronyLocal copy of remote index is up-to-date and will be used.Calculating dependencies... done![binary  N     ] net-misc/pps-tools-0.0.20120407::gentoo  31 KiB[binary  N     ] net-misc/chrony-3.5-r2::gentoo  USE="adns caps cmdmon ipv6 ntp phc readline refclock rtc seccomp (-html) -libedit -pps (-selinux)" 246 KiB[binary  N     ] sci-geosciences/gpsd-3.17-r3:0/23::gentoo  USE="X bluetooth cxx dbus ipv6 ncurses python shm sockets udev usb -debug -latency-timing -ntp -qt5 -static -test" GPSD_PROTOCOLS="aivdm ashtech earthmate evermore fv18 garmin garmintxt gpsclock isync itrax mtk3301 navcom ntrip oceanserver oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 tnt tripmate tsip ublox -fury -geostar -nmea0183 -nmea2000 -passthrough" PYTHON_TARGETS="python2_7" 999 KiBTotal: 3 packages (3 new, 3 binaries), Size of downloads: 1275 KiBWould you like to merge these packages? [Yes/No]

2. Подключите GPS-приёмник с поддержкой PPS к последовательному RS232 или USB порту.

Обычный дешевый GPS-приемник не подойдет; возможно, придется немного побегать, чтобы найти подходящий.

3. Убедитесь, что устройство действительно выдаёт PPS, для этого проверьте порт утилитой gpsmon.

4. Откройте файл /etc/conf.d/gpsd и отредактируйте следующую строку.

Заменить

GPSD_OPTIONS=""

так, чтобы стало

GPSD_OPTIONS="-n"

Это изменение требуется для того, чтобы gpsd при старте сразу же начинал поиск источников СРНС.

5. Запустите, или перезапустите gpsd.

(1:110)$ sudo /etc/init.d/gpsd start(1:111)$ sudo /etc/init.d/gpsd restart

Для дистрибутивов с systemd, используйте соответствующую команду systemctl.

6. Проверьте консольный вывод команды cgps.

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


Вывод консольной команды cgps.

7. Настало время отредактировать файл /etc/ntp.conf.

# GPS Serial data reference (NTP0)server 127.127.28.0fudge 127.127.28.0 time1 0.9999 refid GPS# GPS PPS reference (NTP1)server 127.127.28.1 preferfudge 127.127.28.1 refid PPS

Верхняя запись NTP0 указывает на универсальный источник времени, доступный почти на всех устройствах GPS. Нижняя запись NTP1 определяет гораздо более точный PPS источник.

8. Перезапустить ntpd.

(1:112)$ sudo /etc/init.d/ntpd restart

Для дистрибутивов с systemd, используйте команду systemctl.
$ sudo systemctl restart ntp

Использованные материалы





Подробнее..

Применение BPMN и Activiti для автоматизации ГЛОНАССGPS мониторинга транспорта

29.04.2021 22:15:20 | Автор: admin
Всем привет!
Вы работаете с системами мониторинга транспорта, отрабатываете и согласуете заявки или являетесь частью команды разработки таких продуктов? Тогда этот материал будет вам интересен.
В статье на примере продукта Monitor3S мы расскажем, как оптимальным образом организовать работу с заявками на транспорт, если компании трудно подобрать коробочное решение мониторинга с использованием GPS и ГЛОНАСС. Кому интересно добро пожаловать под кат.

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

Ситуация 1 СЭД программа мониторинга 1С путевой листок


У заказчика есть собственная система электронного документооборота (СЭД), где оформляются заявки на транспорт. Далее заявки проходят цепочку согласований, по результатам которых инициатору назначается транспортное средство и водитель. Затем водитель получает путевой лист, распечатанный из программы бухгалтерского учета (1С), самостоятельно разрабатывает маршрут движения через все точки погрузки/разгрузки и в конце смены сдаёт путевой лист с информацией по горюче-смазочным материалам (ГСМ), пробегу и прочим атрибутам стандартного путевого листа.
Схема кажется понятной, однако даже при использовании системы мониторинга транспорта с использованием ГЛОНАСС/GPS, если у вас возникает необходимость соотнести состояние выполнения заявки с планом на смену (например, есть сомнения по поводу потраченных ГСМ или пришел штраф), это можно сделать, только проверив данные из нескольких информационных систем: посмотреть заявку в СЭД, посмотреть трек перемещения в системе мониторинга транспорта, а затем в 1С проверить нормы расхода и сверить всё это с путевым листом.
Если отобразить схематически, то выглядит это примерно так:
image

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

Ситуация 2 План факт


Если в организации много транспорта и характер его использования различен (перевозка пассажиров, перевозка грузов, спецтехника, строительная техника), то планирование и бюджетирование ее работы на большие периоды это трудоёмкая задача. Особенно сложно она решается при наличии обширной филиальной сети и большом количестве участников процесса, в том числе подрядчиков.
В таком случае, кроме оперативного формирования необходимого количества заявок на технику, нужно отслеживать класс транспорта, сверяться с плановыми показателями производственной программы, по каждой выполненной заявке осуществлять проверку фактически оказанных услуг, а по итогам отчетного периода сводить итоговые данные и формировать отчёты для руководства. На рисунке схематически отображён процесс взаимодействия всех участников процесса:
image

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

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

Попытка 1


При первом подходе к решению описанных выше проблем мы расширили API в Monitor3S. Можно было бы доработать решение в 1С и затащить туда все, что ожидали пользователи, дополнить показателями из системы мониторинга транспорта, но мы пошли по пути интеграции между программами, усилив функциональность программного комплекса.
Сделав специальный интеграционный модуль внутри Monitor3S, который самостоятельно инициировал запросы к СЭД, актуализировал статус заданий внутри системы мониторинга транспорта и точки маршрута, формировал итоговый путевой лист с фактическими показателями (топливо, пробег, моточасы и пр.), в итоге мы получили схему работы, представленную на рисунке ниже.
image

Эта схема оказалась рабочей, однако при эксплуатации выявила ряд недостатков:
  • если обновляется версия ПО одной из систем, то иногда меняются и механизмы интеграции;
  • состав данных в разных системах меняется. Иногда это выясняется, когда уже что-то сломалось;
  • к любым изменениям автоматизированного рабочего процесса надо привлекать кроме аналитика ещё и разработчиков, штатно выпускать коробочную версию продукта с обновлениями, а это дополнительные существенные трудозатраты.


Попытка 2. BPMN + Activiti


Нам хотелось добиться большей гибкости получившегося решения и чем больше мы детализировали процессы, тем больше понимали, насколько сложной будет поддержка этих схем и возможных изменений функциональности. Даже версионность самого процесса может стать проблемой, так как часть заявок может уже быть инициирована и сопровождается по одному workflow, а новые заявки должны начинать движение по другому workflow из-за вступивших в действие обновленных правил со строго определённой даты.
Стало очевидно, что необходимо минимизировать искажения реальных рабочих процессов и предоставить аналитикам гибкий механизм для моделирования бизнес-процессов, автоматического формирования их описаний в стандартизованном формате с возможностью легкого корректирования и дальнейшей автоматизации.
Для решения всех этих задач мы начали использовать в работе BPMN, так как эта система позволяет хранить условные обозначения и их описание в XML-формате для отображения бизнес-процессов в виде диаграмм. Она ориентирована как на технических специалистов, так и на бизнес-пользователей. Для этого язык использует базовый набор интуитивно понятных элементов, которые позволяют определять сложные семантические конструкции. Кроме того, спецификация BPMN позволяет трансформировать диаграммы, описывающие бизнес-процесс, в исполняемые модули. Спецификация BPMN является исполняемой и переносимой (то есть процесс, нарисованный в одном редакторе от одного производителя, может быть исполнен на движке бизнес-процессов другого производителя при условии, если они оба поддерживают BPMN).
Немаловажным требованием являлось то, что формат описания должен быть открытым стандартом, бесплатным и не принадлежащим к области проприетарных разработок, ограничивающих выбор реализаций движков.
После ряда исследований мы решили, что продукт Activiti, являясь одной из реализаций движка для выполнения BPMN-схем, вполне подходит для автоматизации самих процессов при условии декомпозиции операций до нужного уровня.
После макетирования и оценки важных для архитектуры деталей мы поняли, что это действительно хороший вариант по целому ряду причин:
  • в Activiti, помимо самого движка, также реализует REST-API для взаимодействия с внешними системами. Это позволяет взаимодействовать с Activiti системам, развернутым на различных платформах (Windows, Linux и т.д.);
  • в Activiti реализован веб-интерфейс, позволяющий управлять загрузкой BPMN-схем, запуском процессов на основе загруженных схем, и осуществлять множество других операций по управлению и контролю за процессами;
  • Реализована поддержка работы в кластере. Мы были рады увидеть такую возможность, т.к. для корпоративных заказчиков отказоустойчивость очень важна.

Общая схема компонентов Activiti и взаимодействия между ними представлена на рисунке ниже:

image
Activiti не виден конечным пользователям, но выполняет значительную роль в бэкенде и логике приложения.
image
Аналитики прорисовывают процессы в любом удобном инструменте с поддержкой выгрузки workflow в стандарте BPMN. Для создания BPMN-описания можно использовать разные редакторы, но мы выбрали интуитивно понятный BPMN-редактор, реализованный на базе Eclipse c помощью плагина eclipse bpmn2 modeler, который поддерживает в полном объеме стандарт BPMN 2.0 и позволяет сформировать файл с BPMN-описанием (схемой) для дальнейшей загрузки в Activiti.
image
После загрузки BPMN-схемы в Activiti приложение создает на ее основе описание процесса (process definition). Затем, используя запрос REST-API от внешней системы или Java-API (для приложений, написанных на Java) или интерфейс веб-приложения (Activiti Explorer), Activiti создаёт на базе описания процесса инстанс (поток), который начинает выполняться как по волшебству, передвигаясь шаг за шагом по элементам схемы, следуя по направлениям, указанным стрелками, тем самым реализуя логику схемы:
image
Таким образом, BPMN-схема, представляющая собой xml-файл, начинает выполняться, как будто это программа, написанная на одном из языков программирования.
Уже импортированные workflow (часть) выглядят следующим образом:
image

image
При реализации разработчики в основном использовали минимум кода для проверки граничных условий выполнения того или иного элемента схемы, а также расширяли возможности в самом Activiti, реализуя custom extension или добавляя кастомную логику в BPMN-процесс, например, реализуя т.н. service task или event listener и расширяя api-приложения Monitor3S.
Внутри Activiti custom extension и custom logic реализуется на Java или Groovy, но разность стеков между Monitor3S и Activiti здесь не имеет значения, так как системы взаимодействуют через REST-API по https.
В итоге в разрезе состава оборудования типовой комплекс Monitor3S можно представить так:
image

Что касается отказоустойчивости, то, конечно, и она, и высокая доступность служебной БД самого Activiti реализуется отдельными средствами БД (у нас для этого есть специальные утилиты в СУБД Jatoba), но в итоге несколько инстансов Activiti могут корректно работать с единой базой данных.
Таким образом, внедрение в бэкенде Activiti позволило гибко и быстро подстраивать под разные потребности рабочие процессы, связанные с движением заявок на автотранспорт в Monitor3S, оптимизировав целый ряд функций:
  • Оперативное управление транспортом.
  • Автоматическое формирование справки для сверки фактических показателей уровня топлива в баках и пробега, чтобы оперативно проверить заполнение водителем путевого листа.
  • Оперативное информирование о занятости транспорта.
  • Улучшение системы отчетности, так как сводные отчеты по план/факту пробегов и ГСМ формируются с учетом классов транспорта, водителей и филиалов.

В настоящее время у Activiti уже есть вполне зрелые форки, и нам было бы интересно узнать о вашем опыте их использования. Напишите в комментариях об опыте работы BPMN и движков автоматизации бизнес-процессов.
Материал подготовил коллектив авторов: Горячев Алексей, Карпенко Андрей, Рожков Денис.
Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru