Настоящие программисты — это облака, big data, high load… А у нас — практически DIY. 2 установки — уже тиражирование, 100 штук — производство… Но зато атомные ледоколы, маневровые локомотивы, трактора, шлюзы, мосты, опускающиеся вниз от лишнего асфальта, беспилотники размером в дом, 50 человек персонала на цех длиной больше двух километров… и надежность, надежность, надежность… И пяток гендиректоров в костюмах прямо на поле при демонстрации системы на тракторе…
Обычное окончание отладки — убираем антенны с путеправильной машины
Итак… пришла просьба от коллег — написать ТКП (технико-коммерческое предложение) на хитрый GPS-трекер. И комментарии, что большие и настоящие делать отказались.
Мда… мы, конечно, занимается GPS, но мягко говоря совсем другим. Не трекерами, а высокоточкой. Ну как колышется мост можем измерить. Или спутниковый компас сделать. А трекеры — не наше. Но интересно же попробовать там, где настоящие отказались!
Основной целью работы является выполнение п. 597 Федеральных норм и правил в области промышленной безопасности «Правила безопасности при ведении горных работ и переработке твердых полезных ископаемых»
Есть карьер. На нем ездят карьерные экскаваторы и грузовики. И работают люди. Кто не знает — карьерные машины большие. Из кабины — людей не видно. За последние годы — у заказчиков пара ДТП с человеческими жертвами. Поэтому нужна система для предупреждения столкновений. То есть умные GPS-трекеры.
Понятно, как это делают большие и настоящие. GPS-трекер по мобильной связи (GPRS, 3G) передает координаты на сервер БД. Сервер БД выдает координаты серверу приложений, тот определяет возможность столкновения и по интернету пересылает предупреждения в диспетчерскую. Из диспетчерской они как-то (SMS? Пейджер? Радиовызов?) передаются персоналу. Начинаем думать, почему отказались большие.
Ага, уже понятно. Точность бытовых приемников 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-модемы, но как опцию. Цену даем повыше — тут «большие» умеют лучше нас, пусть заказчик у них отдельную систему покупает.
Ну что, составы устройств понятны.
Дальше плюшки, то есть то, что нам не заказывали, но чтолегко можно сделать как опцию:
Что осталось за кадром? Бюджет радиоканала. Тут прежде всего нужны исследования на карьере. Но тем или иным способом мы связь обеспечим. И связь трекеров между собой и базовых станций с трекерами и базовых станций между собой. В самом крайнем случае базовые станции будут передавать по кругу, раз в 3 секунды каждая. А роверы — на каждой секунде. Связано это с тем, что от базовой станции идет поток в 25 раз больше, чем от ровера: координаты всех 20 роверов + поправки DGNSS.
P.S. Как и бывает в 80% случаев, тендер выиграло собственное КБ заказчика. Ну да, они в Брянске, у них зарплаты ниже и аренда офиса дешевле. Ну мы не в обиде. Пару дней можно над интересным проектом и бесплатно поработать.
UPD1: По наводке Wicron уточняю, что оповещение и пешеходов и водителей делается путем подачи звукового сигнала (звонка) через зуммер.
UPD2: В комментариях отметилось много желающих сделать систему предупреждения столкновения и наездов на основе RFID. Увы, нам заказали не «систему предупреждения столкновений», нам заказали выполнение п. 597 Федеральных норм и правил в области промышленной безопасности «Правила безопасности при ведении горных работ и переработке твердых полезных ископаемых». А нарушение данных правил влечет за собой ответственность вплоть до уголовной. Речь о статье 216. "Нарушение правил безопасности при ведении горных, строительных или иных работ"
Основные требования правил:
Правила не запрещают делать систему на основе радиосредств, ульразвука, инфракрасных датчиков, но передача информации о положении должна идти по всей территории карьера. Это примерно 2.5 на 1.5 километра.
UPD3. По просьбе TheShock пишу подробнее про бюджет радиоканала LoRa. Про само разделение каналов в LoRa много рассказывать не буду, но оно бывает частотное, кодовое и временное.
Проблема такая. Каждый трекер передает 37 бит: 23 бита координат, 8 бит скорости, 1 бит — кнопка SOS, 5 бит — номер трекера. Базовая станция передает координаты и скорости всех 20 трекеров, то есть 620 бит + 30 бит поправок DGNSS +5 бит на номер станции, всего 655 бит. Если все сидят на одном частотном канале — то всего передается 2035 бит. Между передачами — защитные промежутки. В итоге передавать придется на скорости порядка 7 килобит, если не больше. Зато — самая широкая полоса передачи — 500 килогерц.
Есть другой вариант. Каждая базовая станция вещает на своей частоте. На той же частоте вещают те приемники, что ближе к ней. Тогда в среднем случае у нас 37*7 + 655 = 914 бит, а в худшем 37*20 + 655 = 1295 бит. Но у приемника появляется код для выбора частотного канала, а у базовых станций — второй и третий приемник LoRa, чтобы слушать каналы друг друга. И каналы в этом случае по 125 или 250 килогерц.
Есть ещё вариант. Базовые станции работают на одном канале, но каждая передает 1 раз в 3 секунды. Тогда у нас будет 1295 бит.
А какой вариант лучше — мы узнаем, когда подпишем договор, получим точные топографические карты карьеров и проведем компьютерное моделирование видимости при разном размещении вышек. Точнее уже не узнаем.
Обычное окончание отладки — убираем антенны с путеправильной машины
Итак… пришла просьба от коллег — написать ТКП (технико-коммерческое предложение) на хитрый GPS-трекер. И комментарии, что большие и настоящие делать отказались.
Мда… мы, конечно, занимается GPS, но мягко говоря совсем другим. Не трекерами, а высокоточкой. Ну как колышется мост можем измерить. Или спутниковый компас сделать. А трекеры — не наше. Но интересно же попробовать там, где настоящие отказались!
Основной целью работы является выполнение п. 597 Федеральных норм и правил в области промышленной безопасности «Правила безопасности при ведении горных работ и переработке твердых полезных ископаемых»
Есть карьер. На нем ездят карьерные экскаваторы и грузовики. И работают люди. Кто не знает — карьерные машины большие. Из кабины — людей не видно. За последние годы — у заказчиков пара ДТП с человеческими жертвами. Поэтому нужна система для предупреждения столкновений. То есть умные GPS-трекеры.
Понятно, как это делают большие и настоящие. GPS-трекер по мобильной связи (GPRS, 3G) передает координаты на сервер БД. Сервер БД выдает координаты серверу приложений, тот определяет возможность столкновения и по интернету пересылает предупреждения в диспетчерскую. Из диспетчерской они как-то (SMS? Пейджер? Радиовызов?) передаются персоналу. Начинаем думать, почему отказались большие.
Читаем пункт 597
597. При использовании средств позиционирования для обеспечения безопасной эксплуатации технологического транспорта и добычного оборудования, контроля скоростных режимов и взаимного расположения горнотранспортных средств и исполнительных механизмов соблюдаются следующие условия:
непрерывная передача координат и скоростей движения в диспетчерский пункт с отображением навигационных параметров на терминалах операторов;
точность позиционирования.
При этом точность позиционирования должна составлять:
для карьерного автомобильного транспорта и бульдозеров — не более 3 м;
для железнодорожного транспорта — не более 1 м;
для исполнительных механизмов буровых станков и добычного оборудования — не более 0,1 м;
для персонала — не более 3 м.
Персонал, находящийся на объекте ведения горных работ, должен быть оснащен индивидуальными средствами позиционирования с непрерывной передачей местоположения персонала в диспетчерский пункт.
Программное обеспечение должно обеспечивать своевременную сигнализацию и оповещение персонала об опасности столкновений, возможных наездов, приближении к опасным зонам, нарушений технологических параметров и режимов эксплуатации горнотранспортного оборудования.
непрерывная передача координат и скоростей движения в диспетчерский пункт с отображением навигационных параметров на терминалах операторов;
точность позиционирования.
При этом точность позиционирования должна составлять:
для карьерного автомобильного транспорта и бульдозеров — не более 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,
Узнаем про интернет — не видели его на этих карьерах. А как же связь с диспетчерской? Значит нужна 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% случаев, тендер выиграло собственное КБ заказчика. Ну да, они в Брянске, у них зарплаты ниже и аренда офиса дешевле. Ну мы не в обиде. Пару дней можно над интересным проектом и бесплатно поработать.
UPD1: По наводке Wicron уточняю, что оповещение и пешеходов и водителей делается путем подачи звукового сигнала (звонка) через зуммер.
UPD2: В комментариях отметилось много желающих сделать систему предупреждения столкновения и наездов на основе RFID. Увы, нам заказали не «систему предупреждения столкновений», нам заказали выполнение п. 597 Федеральных норм и правил в области промышленной безопасности «Правила безопасности при ведении горных работ и переработке твердых полезных ископаемых». А нарушение данных правил влечет за собой ответственность вплоть до уголовной. Речь о статье 216. "Нарушение правил безопасности при ведении горных, строительных или иных работ"
Основные требования правил:
- непрерывная передача координат и скоростей движения в диспетчерский пункт с отображением навигационных параметров на терминалах операторов;
- точность позиционирования 3 метра
- Персонал, находящийся на объекте ведения горных работ, должен быть оснащен индивидуальными средствами позиционирования с непрерывной передачей местоположения персонала в диспетчерский пункт.
- Программное обеспечение должно обеспечивать своевременную сигнализацию и оповещение персонала об опасности столкновений, возможных наездов, приближении к опасным зонам, нарушений технологических параметров и режимов эксплуатации горнотранспортного оборудования.
Правила не запрещают делать систему на основе радиосредств, ульразвука, инфракрасных датчиков, но передача информации о положении должна идти по всей территории карьера. Это примерно 2.5 на 1.5 километра.
UPD3. По просьбе TheShock пишу подробнее про бюджет радиоканала LoRa. Про само разделение каналов в LoRa много рассказывать не буду, но оно бывает частотное, кодовое и временное.
Проблема такая. Каждый трекер передает 37 бит: 23 бита координат, 8 бит скорости, 1 бит — кнопка SOS, 5 бит — номер трекера. Базовая станция передает координаты и скорости всех 20 трекеров, то есть 620 бит + 30 бит поправок DGNSS +5 бит на номер станции, всего 655 бит. Если все сидят на одном частотном канале — то всего передается 2035 бит. Между передачами — защитные промежутки. В итоге передавать придется на скорости порядка 7 килобит, если не больше. Зато — самая широкая полоса передачи — 500 килогерц.
Есть другой вариант. Каждая базовая станция вещает на своей частоте. На той же частоте вещают те приемники, что ближе к ней. Тогда в среднем случае у нас 37*7 + 655 = 914 бит, а в худшем 37*20 + 655 = 1295 бит. Но у приемника появляется код для выбора частотного канала, а у базовых станций — второй и третий приемник LoRa, чтобы слушать каналы друг друга. И каналы в этом случае по 125 или 250 килогерц.
Есть ещё вариант. Базовые станции работают на одном канале, но каждая передает 1 раз в 3 секунды. Тогда у нас будет 1295 бит.
А какой вариант лучше — мы узнаем, когда подпишем договор, получим точные топографические карты карьеров и проведем компьютерное моделирование видимости при разном размещении вышек. Точнее уже не узнаем.
Only registered users can participate in poll. Log in, please.
Вам интересно? Писать о наших буднях дальше?
92.92% ДА1037
7.08% НЕТ79
1116 users voted. 215 users abstained.