[recovery mode] Как проектируют ненастоящие программисты
Обычное окончание отладки — убираем антенны с путеправильной машины
Итак… пришла просьба от коллег — написать ТКП (технико-коммерческое предложение) на хитрый GPS-трекер. И комментарии, что большие и настоящие делать отказались.
Мда… мы, конечно, занимается GPS, но мягко говоря совсем другим. Не трекерами, а высокоточкой. Ну как колышется мост можем измерить. Или спутниковый компас сделать. А трекеры — не наше. Но интересно же попробовать там, где настоящие отказались!
Основной целью работы является выполнение п. 597 Федеральных норм и правил в области промышленной безопасности «Правила безопасности при ведении горных работ и переработке твердых полезных ископаемых»
Есть карьер. На нем ездят карьерные экскаваторы и грузовики. И работабют люди. Кто не знает — карьерные машины большие. Из кабины — людей не видно. За последние годы — у заказчиков пара ДТП с человеческими жертвами. Поэтому нужна система для предупреждения столкновений. То есть умные GPS-трекеры.
Понятно, как это делают большие и настоящие. GPS-трекер по мобильной связи (GPRS, 3G) передает координаты на сервер БД. Сервер БД выдает координаты серверу приложений, тот определяет возможность столкновения и по интернету пересылает предупреждения в диспетчерскую. Из диспетчерской они как-то (SMS? Пейджер? Радиовызов?) передаются персоналу. Начинаем думать, почему отказались большие.
непрерывная передача координат и скоростей движения в диспетчерский пункт с отображением навигационных параметров на терминалах операторов;
точность позиционирования.
При этом точность позиционирования должна составлять:
для карьерного автомобильного транспорта и бульдозеров — не более 3 м;
для железнодорожного транспорта — не более 1 м;
для исполнительных механизмов буровых станков и добычного оборудования — не более 0,1 м;
для персонала — не более 3 м.
Персонал, находящийся на объекте ведения горных работ, должен быть оснащен индивидуальными средствами позиционирования с непрерывной передачей местоположения персонала в диспетчерский пункт.
Программное обеспечение должно обеспечивать своевременную сигнализацию и оповещение персонала об опасности столкновений, возможных наездов, приближении к опасным зонам, нарушений технологических параметров и режимов эксплуатации горнотранспортного оборудования.
Ага, уже понятно. Точность бытовых приемников GPS и GNSS — 3 метра КВО-50. То есть 50% времени — они дают точность в 3 метра, 49.8% — от 3 до 9 метров и 0.2% дальше. А в ТЗ скорее всего имеется ввиду 3 метра КВО-95. То есть 95% времени ошибка должна укладываться в круг радиусом 3 метра. Ну это понятно как решается. Вместо бытового — берем полупрофессиональный приемник, поддерживающий DGNSS. Это такая система, когда есть неподвижный приемник с известными координатами. Он вычисляет ошибку приема по каждому спутнику и передает эту ошибку другим приемникам — подвижным. А те уже считают с учетом известной ошибки (прежде всего ионосферной). ОГО! В проекте уже появилась базовая станция и канал связи базовой станции с приемниками.
Приемник берем российско-украинский NV08C-CSM от КБ Навис. Ну просто потому, что авторы знакомые. Значит — при проблемах получим консультацию. Смотрим параметры — в режиме DGNSS точность 1 метр СКО, то есть 1.7 метра КВО-95. Уложились. И сержантский зазор хороший.
Что у нас дальше? Передача по GPRS/3G. Читаем ТЗ: Удаленность операторской от карьера цементных глин составляет 7 км., от карьера известняка — 100 км.. Смотрим на карту — что с покрытием сотовых операторов? А черт знает, что там, в карьере. На поверхности — может и 3G будет, а вот внизу в карьере… Значит связь трекеров с базовой станцией — по радиоканалу. Выбираем LoRa, ну хочется нашему электронщику поиграть с этой технологией потому что он дешев и производителен. Заодно — экономим заказчику на эксплуатационных расходах. Оплачивать 3 симки дешевле, чем 40.
Узнаем про интернет — не видели его на этих карьерах. А как же связь с диспетчерской? Значит нужна GSM антенна на мачте. И не просто антенна, а с усилителем. Вспоминаем Сочи и 1 пакет раз в 20 минут по GPRS. Хоть и не сезон был, но вечером сота была забита голосовой связью и на GPRS слотов не оставалось. Потом вспоминаем, как обновлением ПО в Питере на день положили всю сеть Fora. Не, одного оператора нам мало. Делаем 3 вышки — каждая на своего оператора.
А раз 3 вышки — значит 3 базовых станций DGNSS и 3 канала LoRa. Как раз влезем в диапазон с частотным разделением. Впрочем, временное разделение, наверное лучше?
Что там дальше у больших? Сервер приложений, определяющий опасное приближение? А он нужен? А если интернета не будет? Не, мы параноики. Связь трекеров с базовыми станциями у нас есть. Координаты в эфир трекеры передают. Трекеры друг друга слушают. Значит трекер сам может определить, есть ли кто рядом. И кто это — человек или машина. А если не может? Ну через карьерный самосвал радиосигнал может плохо пройти. Значит страховочная система — на базовых станциях. Они тоже анализируют приближения и выдают сигнал тревоги на трекер.
Сервер БД? Да ну его к бесу в диспетчерскую. Мнемосхему диспетчерской — рисуем на Мастер-скада, от неё же и сервер. Но с сервером и мнемосхемой коллеги справятся лучше нас — это их часть в общем проекте. А наша — трекеры и базовые станции.
Принципиальная схема уже понятна. Едем дальше. Дальше у нас электропитание. С базовыми станциями — все хорошо. Питаем 220 вольт по кабелю. Отключится кабель — не страшно, есть еще две. Не будет электричества совсем — ну худо-бедно, хрум-хрум-хрум, но трекеры работать будут. Диспетчерская отключится, но обнаружение опасной близости людей к технике останется. С потерей точности —, но останется.
А что с питанием трекеров? Литиевая батарейка, как у больших? А как её менять, когда она разрядится? Настоящие трекеры не шлют данные раз в секунду, у них трекер в основном работает в спящем режиме. Не, делаем питание на двух аккумуляторах 18650. Причем вначале питаемся от одного, а после его полного разряда от другого. Для проверки питания — ставим кнопочку и светодиод. Нажали — горит, значит норма. Мигает длинно — правая батарейка разряжена. Мигает коротко — разряжены обе. Ну и зарядную станцию — чтобы все вместе заряжать ночью. Карьер работает в 1–2 смены, так что ночь на зарядку есть. А не будет ночи — просто увеличим число батарей и буде их менять между сменами.
А что с трекерами на автомобилях? А вот тут осциллограф нужен. Непонятно, то ли их тоже от батарей питать, то ли можно от бортовой сети + ионистор. Проблема в том, что пр и переходе автомобиля от питания о аккумуляторов к питанию от дизеля — идет бросок напряжения и наш приборы зависают. Надо с осциллографом поотлаживаться, понять, что там за бросок. Но пока что решаем, что бортовая сеть лучше.
А что на автомобиле с антенной? УПС, антенна, встроенная в трекер, не будет работать в железном корпусе. Ну ли будет, но сигнал даст слабый и точность уменьшится. Значит на автомобиле антенна внешняя, и иметь общее устройство для пешеходов и автомобилей не выйдет.
Соответственно у нас три прибора: базовая станция, носимый трекер на батарейках со встроенной антенной и автомобильный трекер с питанием от бортовой сети и антенной на крыше.
Дальше у нас водители. Водителю трекер нужен? Да похоже, что нужен. Если водитель вышел из машины — его стоит предупреждать о движении других машин. А что делать при посадке в машину? Будет же звенеть постоянно. Значит нужна функция отключения звона нажатием на кнопочку. Заодно решаем проблему с подвозом на машине. Подошел к машине, трекер звенит. Нажал на кнопочку — трекер замолчал до выхода из 3хметровой зоны.
А нужно ли отслеживать самосвал по пути от карьера к жд-станции или заводу? Да вроде нужно, но это уже как опция. Ставим в автомобильные трекеры 3G-модемы, но как опцию. Цену даем повыше — тут «большие» умеют лучше нас, пусть заказчик у них отдельную систему покупает.
Ну что, составы устройств понятны.
- Базовая станция: приемник GNSS, 3G-модем, мачта, антенна GNSS, антенна 3G, усилитель 3G, блок питания (220 на 5 и 12 вольт), радиопередатчик LoRa, антенна LoRa, процессор Renesas, ОС linux.
- Носимый трекер: приемник GNSS, антенна GNSS, радиопередатчик LoRa, антенна LoRa, процессор STM32, FreeRTOS, зуммер, кнопка, светодиод, 2 батарейки.
- Автомобильный трекер: приемник GNSS, радиопередатчик LoRa, 3G-модемпроцессор STM32, FreeRTOS, зуммер, кнопка, светодиод, 2 батарейки.
- Выносимая на крышу часть автомобильного трекера: антенна GNSS, антенна 3G, антенна LoRa.
- В домике на КПП: зарядная станция и ночное хранилище носимых трекеров. Там же — дубль пульта диспетчера, получающий данные через инет со скады.
Дальше плюшки, то есть то, что нам не заказывали, но что легко можно сделать как опцию:
- Подача сигнала SOS с носимых и передвижных трекеров;
- Приём сигналов радиовызова (до 4-х вариантов сигналов);
- Сканер для определения направления на засыпанных обвалом людей;
- Геомониторинг оползней по бокам карьера;
- Геомониторинг краев карьера;
- Адаптивная частота опроса (от 1 раз в секунду до 1 раза в минуту) в носимом трекере в зависимости от возможности столкновений. В том числе — при нахождении в машине;
- Роутер для раздачи интернета в прикарьерном домике;
- Обеспечение нескольких АРМ оператора путем установки размножителя данных;
- Анализ исторических данных (треков и аварий).
Что осталось за кадром? Бюджет радиоканала. Тут прежде всего нужны исследования на карьере. Но тем или иным способом мы связь обеспечим. И связь трекеров между собой и базовых станций с трекерами и базовых станций между собой. В самом крайнем случае базовые станции будут передавать по кругу, раз в 3 секунды каждая. А роверы — на каждой секунде. Связано это с тем, что от базовой станции идет поток в 25 раз больше, чем от ровера: координаты всех 20 роверов + поправки DGNSS.
P.S. Как и бывает в 80% случаев, тендер выиграло собственное КБ заказчика. Ну да, они в Брянске, у них зарплаты ниже и аренда офиса дешевле. Ну мы не в обиде. Пару дней можно над интересным проектом и бесплатно поработать.
Комментарии (5)
2 января 2017 в 08:34
+3↑
↓
очень сумбурно, трудно что-то понять.2 января 2017 в 08:52
+1↑
↓
А можно подробней, что именно непонятно? Я старался показать сам процесс разработки, а не его результат.2 января 2017 в 09:12
+3↑
↓
заголовок, первые абзацы и последующие тексты, очень плохо связаны между собой. Не понимаю, почему в вашем представлении «настоящие» программисты занимаются лишь облаками, big data, high load?
2 января 2017 в 09:27
0↑
↓
Есть же ещё задержки. Пока данные уедут на сервер, пока обработаются, пока приедут обратно. Интересно узнать их порядок в данном случае. Техника то — движется.2 января 2017 в 10:05
0↑
↓
Чуть меньше эмоций и чуть больше деталей.