Fleetrun
Hecterra
NimBus
Другие приложения
Wialon для Android/iOS
Logistics
Wialon Local
Wialon Hosting
Distance Tag
WiaTag
Configurator
LeaseControl
Содержание
Проблемы при изменении прав доступа на объекты
  • technical_consulting
  • access_rights

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

Чаще всего полный доступ к объекту (все права) имеют только те пользователи, которые осуществляют его настройку, а остальные пользователи имеют ограниченные права, достаточные для работы с объектом. Во избежание некорректного изменения настроек важно предоставлять пользователю только те права, которые ему действительно нужны.

Наблюдаемая проблема и метод ее решения

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

1. После сокращения прав пользователь все равно имеет более широкие права

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

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

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

2. При снятии всех прав на объект отображается ошибка и изменения не применяются

Наиболее вероятно, данный пользователь является создателем объекта. На данный момент забрать у создателя все права на созданный им элемент невозможно. При попытке сделать это будет отображаться ошибка с текстом «Нельзя забрать права доступа у создателя элемента».

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

Мы создали видео о применении инструмента Сменить учетную запись из интерфейса управления (CMS):

3. При расширении прав изменения не сохраняются

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

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

Проверить структуру сервиса можно с помощью инструмента Иерархия сервиса в интерфейсе управления (CMS).

4. Права меняются, хотя вы не вносите изменений

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

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

5. Права меняются, хотя никто из пользователей не вносит изменений

Чаще всего такие изменения могут происходить с определенным равным периодом или при определенных условиях. В таком случае причиной является работа Заданий с типом Изменить доступ к объектам или Уведомлений со способом действия Изменить доступ к объектам или Изменить состав групп объектов.

Для исправления проверьте правильность настройки заданий и уведомлений (при необходимости их можно удалить или остановить).

6. Права меняются, хотя пользователи, задания и уведомления не делают этого

В Wialon реализована возможность изменять настройки элементов (в том числе менять права) посредством API-запросов. Такие запросы все равно выполняются от имени конкретного пользователя, при этом вход и выход из системы при помощи API-запроса в некоторое стороннее приложение логируется. Эту информацию можно отследить в свойствах пользователя на вкладке Журнал или в интерфейсе управления (CMS) на вкладке Пользователи в колонке Последний вход.

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

Изменения прав на объект логируются в Журнале (на вкладке Сообщения или в отчете с помощью одноименной таблицы). В колонке Хост будет написано имя пользователя, если изменения внесены вручную или через API-запрос, либо «задание» или «уведомление», если изменения внесены с помощью этого функционала.

Записи из Журнала можно удалять. В таком случае информация об изменении прав отображаться не будет. Если вы предполагаете, что столкнулись с такой ситуацией, пожалуйста, свяжитесь с технической поддержкой Wialon по почте support@gurtam.com.

Екатерина Гриб,Инженер Customer Service

Перенос элементов в пределах одного сервиса
  • technical_consulting
  • hierarchy
  • service_structure
  • transferring_units

Для эффективной работы всего сервиса важно придерживаться правильной иерархии. Иерархия в Wialon — это связующая нить, на которую, как бусины, нанизаны функции, права и элементы Wialon.

Важность иерархии проявляется к моменту зрелости сервиса, когда его структура уже сформирована. На начальном этапе работы с Wialon проблем может не возникать, но позже выясняется, что созданная структура не является оптимальной. Это приводит к проблемам с управлением правами доступа, общими ресурсами, к ограничениям в работе таких сервисов, как, например, Google-карты и SMS. В подобных случаях стоит исправить структуру и перенести элементы системы в новое место в иерархии.

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

Автоматический перенос

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

Учетные записи

При автоматическом переносе учетные записи переносятся целиком со всем содержимым и сохранением всех взаимосвязей, паролей пользователей, идентификаторов сессий и др. Данный перенос осуществляется с помощью внутренних инструментов Wialon и не доступен в интерфейсе пользователя. Для автоматического переноса учетных записей необходимо отправить запрос на support@gurtam.com. Автоматический перенос учетных записей доступен только для Wialon Hosting.

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

Объекты и сообщения

Для переноса объектов воспользуйтесь инструментом Перенос объектов из одной учетной записи в другую в интерфейсе CMS Manager.

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

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

  • создатель учетной записи, в которую планируется перенос, обладает правом доступа Просмотр элемента и основных свойств в отношении переносимых объектов;
  • для учетной записи, в которую планируется перенос, активированы услуги Объекты и Создание объектов;
  • учетная запись, в которую планируется перенос, не должна быть заблокирована;
  • а также другие условия, указанные в руководстве пользователя.

Ручной перенос

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

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

Учетные записи

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

  • перенос пользователя-создателя;
  • создание новой учетной записи;
  • назначение нужного тарифного плана;
  • перенос содержимого ресурса;
  • перенос остальных элементов, принадлежащих исходной учетной записи — пользователей, объектов, групп объектов, ретрансляторов.

Для переноса учетной записи войдите в интерфейс CMS Manager и следуйте инструкции:

  1. Экспортируйте настройки пользователя-создателя учетной записи в файл WLP (Экспорт в файл Полная копия).
  2. Измените имя учетной записи и ее пользователя-создателя. Например, можно добавить «‎_old»‎ в конце имени.
  3. Создайте копию пользователя-создателя учетной записи. Для этого удерживайте клавишу Ctrl и щелкните по нужному пользователю в списке. При копировании пользователя будут перенесены такие его свойства, как права доступа, адрес электронной почты  то есть те, которые не переносятся при экспорте. В процессе копирования:
    • Введите и подтвердите пароль пользователя. Важно отметить, что пароли пользователей не переносятся. Если у владельца сервиса сохранены текущие пароли, то после переноса пользователям можно установить аналогичные пароли, если же нет, то придется использовать новые.
    • В поле Создатель выберите пользователя-создателя учетной записи, которая должна стать родительской для новой учетной записи.

  4. Импортируйте настройки пользователя из файла WLP.
  5. Создайте новую учетную запись. При создании выберите опцию От имени существующего пользователя и выберите пользователя, созданного в пункте 3.
  6. При необходимости перенесите остальные элементы учетной записи по инструкциям, расположенным ниже в статье.
  7. Убедившись, что все настройки и содержимое учетной записи были перенесено корректно, удалите старую учетную запись с пометкой «‎_old»‎ в имени.

В случае возникновения трудностей необходимо проверить следующие моменты:

  • В учетной записи, из-под которой будут создаваться другие учетные записи, должны быть:
    • включены услуги Создание пользователей, Создание ресурсов, Система управления (CMS Manager);
    • активированы права дилера и назначены тарифные планы.

  • В учетной записи, из которой экспортируются настройки пользователя, должна быть включена услуга Импорт/Экспорт.
  • Для экспорта всех настроек пользователей необходимо иметь полные права в их отношении. Чтобы не проверять наличие полных прав, вы можете осуществлять экспорт под главным пользователем, так как он имеет максимальный доступ ко всем элементам сервиса.

  • Рекомендуется выбирать опцию Полная копия при экспорте настроек пользователя, так как при этом копируются некоторые скрытые настройки (например, параметры работы приложений).

Содержимое ресурсов

Ресурс является местом хранения для следующих элементов:

  • геозоны и группы геозон;
  • задания и уведомления;
  • шаблоны отчетов;
  • водители, прицепы, пассажиры, а также группы водителей, прицепов и пассажиров;
  • заявки.

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

  1. Экспортируйте содержимое переносимого ресурса в файл WLP, выбрав нужные для переноса элементы.
  2. Импортируйте содержимое ресурса в новый ресурс.

Заявки доступны для экспорта и импорта непосредственно в приложении Logistics.

Назначения водителей, прицепов и пассажиров не переносятся.

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

Пользователи

  1. Экспортируйте настройки исходного пользователя в файл WLP (Экспорт в файл → Полная копия).

  2. Переименуйте этого пользователя, например, добавив «_old»‎ к имени.
  3. Создайте копию пользователя. Для этого в CMS Manager удерживайте клавишу Ctrl и щелкните по нужному пользователю в списке. При копировании пользователя будут перенесены такие его свойства, как права доступа и адрес электронной почты, которые не переносятся при экспорте. В процессе копирования:
    • Введите и подтвердите пароль пользователя. Важно отметить, что пароли пользователей не переносятся. Если у владельца сервиса сохранены текущие пароли, то после переноса пользователям можно установить аналогичные пароли, если же нет, то придется использовать новые.
    • В поле Создатель выберите пользователя-создателя учетной записи, которая должна стать родительской для нового пользователя.

  4. Импортируйте настройки пользователя из файла WLP.
  5. Убедившись, что настройки и свойства пользователя перенеслись корректно, удалите старого пользователя с пометкой «_old»‎ в имени.

Группы объектов

  1. Создайте копию группы объектов. Для этого в CMS Manager удерживайте клавишу Ctrl и щелкните по нужной группе объектов в списке.
  2. При копировании группы в поле Создатель выберите пользователя-создателя учетной записи, в которую необходимо выполнить перенос.

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

Ретрансляторы

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

Ретрансляторы нельзя создавать от имени другого пользователя. Поэтому для создания ретранслятора в определенной учетной записи необходимо войти в систему как пользователь-создатель этой учетной записи.

Маршруты

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

Трудности с переносом элементов

При возникновении вопросов по переносу элементов обратитесь в техническую поддержку через почту support@gurtam.com. В письме детально опишите возникшую проблему, а также укажите:

  • имя переносимого элемента;
  • имя учетной записи, из которой нужно перенести элемент (если речь идет не про перенос учетной записи);
  • имя учетной записи, в которую нужно перенести элемент (если речь идет про перенос учетной записи, то имя планируемой родительской учетной записи).

Кристина Малаховская,Инженер Customer Service

Перенос элементов между сервисами
  • technical_consulting
  • hierarchy
  • service_structure

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

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

Во время переноса у пользователей могут наблюдаться проблемы с доступом из-за временного изменения имени пользователя. Также во время переноса не рекомендуется вносить изменения в переносимые элементы сервиса (создавать новые объекты в учетной записи, менять состав групп или настройки уведомлений и т.д.).

После переноса рекомендуется выполнить проверку перенесенных элементов.

Автоматический перенос

Существует дополнительная услуга по автоматическому переносу учетных записей между сервисами Wialon Hosting с помощью внутренних инструментов Wialon. Автоматический перенос подразумевает полноценный перенос с сохранением всех свойств и взаимосвязей переносимых элементов между собой. Для него существуют следующие ограничения:

  • переносятся только учетные записи целиком;
  • общее количество переносимых активных объектов от 50 и выше;
  • сервисы должны быть расположены в одном дата-центре;
  • все содержимое сервиса целиком для переноса не доступно;
  • количество объектов в финальном сервисе после переноса не должно превышать рекомендуемое.

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

Ручной перенос

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

Ниже мы рассмотрим инструкции по переносу отдельных элементов системы между сервисами.

Учетные записи

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

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

Для переноса учетных записей войдите в интерфейс CMS Manager и следуйте инструкции:

  1. Экспортируйте настройки пользователей-создателей учетных записей в файлы WLP (Экспорт в файлПолная копия). При экспорте настроек сразу нескольких пользователей создается архив с файлами WLP.
  2. Измените названия учетных записей и их пользователей-создателей в исходном сервисе. Например, можно добавить «_old» в конце названия.
  3. Создайте необходимые учетные записи в новом сервисе.
  4. Извлеките файлы из загруженного ранее архива и импортируйте настройки соответствующих пользователей из файлов WLP. Важно отметить, что такие свойства пользователей, как адрес электронной почты, права доступа и пароль, не переносятся при экспорте и их необходимо будет установить заново вручную. Если у владельца сервиса сохранены текущие пароли, то после переноса пользователям можно установить аналогичные пароли, если же нет, то придется использовать новые.
  5. При необходимости перенесите остальные элементы учетной записи по инструкциям, расположенным ниже в статье.

В случае возникновения трудностей необходимо проверить следующие моменты:

  • В учетной записи, из-под которой будут создаваться другие учетные записи, должны быть:
    • включены услуги Создание пользователейСоздание ресурсовСистема управления (CMS Manager);
    • активированы права дилера и назначены тарифные планы.

  • В учетной записи, из которой экспортируются настройки пользователя, должна быть включена услуга Импорт/Экспорт.
  • Для экспорта всех настроек пользователей необходимо иметь полные права в их отношении. Чтобы не проверять наличие полных прав, вы можете осуществлять экспорт под главным пользователем, так как он имеет максимальный доступ ко всем элементам сервиса.

  • При экспорте настроек пользователя рекомендуется выбирать опцию Полная копия, так как при этом копируются некоторые скрытые настройки (например, параметры работы приложений).

Объекты и сообщения

При помощи экспорта/импорта сообщений

  1. Экспортируйте настройки объектов в файл WLP. Если экспортируется сразу несколько элементов, будет загружен архив с файлами WLP.
  2. В исходном сервисе измените ID и номера телефонов, указанные в свойствах объектов. Например, можно добавить к ID «_old», а к номеру телефона лишнюю цифру.
  3. Извлеките файлы из загруженного ранее архива и создайте объекты из файлов WLP.
  4. Экспортируйте сообщения от объектов в исходном сервисе. Используйте формат WLN или WLB.
  5. Импортируйте сообщения в соответствующие  объекты в новом сервисе.

В случае возникновения трудностей необходимо проверить следующие моменты:

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

  • Существует ограничение на размер импортируемого файла/архива — 64 Мбайт. Если экспортированный файл больше 64 Мбайт, необходимо разделить временной интервал для сообщений еще на этапе экспорта и таким образом получить несколько файлов.
  • У пользователя в исходном сервисе должно быть право Экспорт сообщений на объекты, сообщения которых необходимо перенести. А в финальном сервисе — право Импорт сообщений на объекты, в которые необходимо осуществить перенос сообщений.
  • В исходном и финальном сервисах в учетной записи должна быть включена услуга Сообщения.
  • При переносе объектов может потребоваться изменение настроек самого оборудования. Нужные значения IP:port можно посмотреть в настройках объектов на вкладке Основное.
  • Сообщения, полученные в период между изменением изначального ID и созданием нового объекта из файла WLP, могут быть потеряны, если в устройстве нет черного ящика.

При помощи ретрансляции сообщений

  1. Экспортируйте настройки объектов в файлы WLP. Если экспортируется сразу несколько элементов, будет загружен архив с файлами WLP.
  2. Извлеките файлы из загруженного ранее архива и создайте объекты из файлов WLP.
  3. При создании объектов отобразится ошибка с текстом «Не удалось импортировать все или некоторые данные». Данная ошибка возникает из-за конфликта одинаковых ID и номера телефона в исходном и финальном сервисах. Когда откроется окно свойств объекта, необходимо указать тип устойства — Wialon Retranslator, ID — ID объекта в исходном сервисе.
  4. Создайте ретранслятор в исходном сервисе и добавьте в него объекты, сообщения которых должны быть перенесены.
  5. Запустите ретранслятор, так как ретранслятор создается остановленным.
  6. Откройте настройки ретранслятора, активируйте опцию Ретранслировать данные за прошедший период и укажите необходимый период.
  7. Когда ретрансляция данных за прошедший период завершится, измените ID и номер телефона объектов в исходном сервисе. Например, добавьте к ID «_old», а к номеру телефона лишнюю цифру.
  8. Импортируйте повторно файлы WLP, при импорте выберите пункт Конфигурация устройства. Повторный импорт необходим для указания корректного типа устройства и номера телефона объектов в новом сервисе.

В случае возникновения трудностей необходимо проверить следующие моменты:

  • Если ретрансляции недоступна, проверьте, включена ли услуга Ретрансляторы для текущей и вышестоящих учетных записей.
    В случае если ретрансляции недоступна и нет доступа к вышестоящей учетной записи, необходимо обратиться к поставщику услуг мониторинга.
  • Для добавления объектов в ретрансляторы пользователь должен обладать правом Использование объекта в уведомлениях, заданиях, маршрутах, ретрансляторах в отношении этих объектов.
  • При ретрансляции с Wialon Hosting на Wialon Hosting в качестве адреса сервера используется специальная запись, различная для каждого дата-центра: 
    • hosting.wialon.com — hw.sig;
    • hosting.wialon.eu — hw.tig;
    • hosting.wialon.us — hw.usa;
    • hosting.wialon.ru, hosting.wialon.org — hw.tms.
      Если необходимо уточнить, в каком дата-центре находится ваш сервис, обратитесь в техническую поддержку по адресу support@gurtam.com.

  • При переносе объектов может потребоваться изменение настроек самого оборудования. Нужные значения IP:port можно посмотреть в настройках объектов на вкладке Основное.
  • Сообщения, полученные в период между изменением изначального ID и указанием корректного типа устройства в новом сервисе, могут быть потеряны, если в устройстве нет черного ящика.

Содержимое ресурсов

Ресурс представляется из себя место, в котором хранятся следующие элементы:

  • геозоны и группы геозон;
  • задания и уведомления;
  • шаблоны отчетов;
  • водители, прицепы, пассажиры, а также группы водителей, прицепов и пассажиров;
  • заявки.

Перенести можно как полностью все содержимое, так и отдельные элементы. Для выполнения переноса необходимо:

  1. Экспортировать содержимое ресурсов в исходном сервисе в файлы WLP, выбрав нужные для переноса элементы.
  2. Импортировать содержимое ресурсов из файлов WLP в новый сервис.

Заявки доступны для экспорта и импорта непосредственно в приложении Logistics.

Назначения водителей, прицепов и пассажиров не переносятся.

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

Пользователи

  1. Экспортируйте настройки пользователей в файлы WLP (Экспорт в файл → Полная копия). При экспорте настроек сразу нескольких пользователей загружается архив с файлами WLP.
  2. Переименуйте пользователей в исходном сервисе, например, добавив «_old»‎ к имени.
  3. Создайте пользователей в новом сервисе.
  4. Извлеките файлы из загруженного ранее архива и импортируйте настройки соответствующих пользователей. Важно отметить, что такие свойства пользователей, как адрес электронной почты, права доступа и пароль, не переносятся при экспорте и их необходимо будет установить заново вручную. Если у владельца сервиса сохранены текущие пароли, то после переноса пользователям можно установить аналогичные пароли, если же нет, то придется использовать новые.

Группы объектов

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

Ретрансляторы

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

Ретрансляторы нельзя создавать от имени другого пользователя. Поэтому для создания ретранслятора в определенной учетной записи необходимо войти в систему как пользователь-создатель этой учетной записи.

Маршруты

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

Проверка после переноса

После переноса рекомендуется выполнить следующие шаги:

  • Проверить права пользователей на элементы, созданные в результате переноса (объекты, ресурсы и т.д.).
  • Убедиться в корректном переносе сообщений от объектов.
  • Проверить, назначены ли тарифные планы на созданные учетные записи.
  • Проверить взаимосвязи между микроэлементами (например, геозоны в шаблонах отчетов и уведомлениях).

Удалять элементы из исходного сервиса стоит только после проверки корректности переноса всех элементов, их настроек и связей.

Кристина Малаховская,Инженер Customer Service

Как выбрать параметр датчика
  • technical_consulting
  • sensor_parameters
  • sensor_types

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

Общие рекомендации

  1. Список параметров и их описание можно найти на странице конкретного устройства на сайте gurtam.com в разделе Оборудование. Для этого введите в строку Поиск оборудования нужную модель устройства. Также можно выбрать одну из категорий типов оборудования и найти нужную модель в списке. После на странице оборудования перейдите на вкладку Параметры (пример такой страницы для WiaTag).

    Если на странице оборудования отсутствует описание параметров, обратитесь к специалистам по оборудованию через почту hw@gurtam.com.
  2. В большинстве случаев понять содержание параметра можно по его английскому наименованию. Например, в параметре fuel_lvl наиболее вероятно будет отображаться значение уровня топлива, в параметре total_mileage — значения датчика пробега, и т.д. Наименования параметров, полученных из CAN-шины, обычно начинаются с префикса can

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

  4. Существует список виртуальных параметров, которые определены в системе по умолчанию и подходят практически для любого типа оборудования:
    • speed — скорость движения;
    • altitude — высота над уровнем моря;
    • sats — количество спутников;
    • course — курс (направление движения);
    • lat — географическая широта;
    • lon — географическая долгота;
    • time — UNIX-время сообщения;
    • regtime — время регистрации сообщения на сервере.

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

Датчик зажигания

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

Датчик зажигания не отображает положение ключа зажигания «ACC», при котором двигатель не заведен, но дополнительное оборудование уже доступно для использования.

В качестве параметра для Датчик зажигания может подойти один из цифровых входов (в конце сообщений параметр формата I/O). Он описывает состояние всех цифровых входов и выходов одновременно, и по нему можно определить состояние конкретного цифрового входа inN (логика выбора номера входа N описана в другой статье).

Также можно попробовать создать датчик зажигания на основе параметра, отображающего внешнее напряжение (обычно он называется pwr_ext). В таком случае в свойствах датчика необходимо создать Таблицу расчета. В руководстве пользователя приведен пример такой таблицы. При использовании данного примера нужно лишь изменить пороговое значение напряжения, при достижении которого зажигание будет считаться включенным.

Практический метод выбора и проверки параметра

  1. Выключите двигатель и дождитесь получения нескольких сообщений от трекера.
  2. Включите двигатель и дождитесь поступления еще нескольких сообщений.
  3. Сравните сообщения, полученные в пункте 1 и 2. Если скачкообразно изменился только один параметр, то наиболее вероятно, что он и будет показывать состояние зажигания. Если изменилось несколько параметров, то выбрать нужный можно с помощью дополнительной проверки, описанной в следующем пункте.
  4. Изучите сообщения с ненулевой скоростью. Предполагается, что зажигание включено при наличии скорости, а также в нескольких сообщениях до и после наличия скорости. При этом рекомендуется рассматривать интервалы длительностью хотя бы от пяти минут, так как некоторые трекеры могут менять режим отправки сообщений после начала и завершения движения.
 Пример

От объекта поступили сообщения со следующими параметрами:


Скоростьparam1param2param3
15526.00301000
25626.00401020
35726.00511015
4026.00611004
5026.0071476
6026.0080489
71026.00901001
81126.01011004

Предположим, что зажигание у объекта было выключено в 5-м и 6-м сообщении (выделены красным цветом). В остальных сообщениях зажигание включено (выделены зеленым цветом).

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

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

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

Датчики для учета пробега

На данный момент в Wialon существует два датчика для учета пробега:

  • Датчик пробега отображает весь пробег объекта с момента установки датчика.
  • Относительный одометр отображает пробег между рассматриваемым и предыдущим сообщениями.

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

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

Практический метод выбора и проверки параметра

Чтобы проверить, правильно ли выбран параметр для Датчика пробега или Относительного одометра, можно использовать инструмент Расстояние. Значения параметров и измеренное между двумя сообщениями расстояние чаще всего не совпадает полностью, но являются соизмеримыми. Это связано с тем, что инструмент Расстояние математически рассчитывает расстояние между двумя точками с выбранными координатами, а датчики, как правило, считают пройденные километры, исходя из количества вращений колеса и его диаметра.

Параметр можно использовать в Датчике пробега, если

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

Параметр можно использовать в Относительном одометре, если

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

От объекта поступили сообщения со следующими параметрами:

Создайте Датчик пробега на основе параметра mileage, так как он постоянно растет в движении и не падает до нуля во время остановки.

Создайте Относительный одометр на основе параметра odo, так как он имеет разные значения в движении и падает до нуля во время остановки. Однако его значение кажется слишком большим, поэтому попробуйте применить формулу odo/const1000.

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

Сравните полученные значения:

Датчик пробегаРазница с предыдущим по датчику пробегаОтносительный одометрИнструмент Расстояние
16801.54 км1.00 км
26802.52 км6802.52 - 6801.54 = 0.98 км1.00 км1.000 км
36803.51 км6803.51 - 6802.52 = 0.99 км1.00 км1.020 км
46804.00 км6804.00 - 6803.51 = 0.49 км0.50 км0.500 км
56804.20 км6804.20 - 6804.00 = 0.20 км0.50 км0.160 км
66804.20 км6804.20 - 6804.20 = 0.00 км0.00 км-

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

Топливные датчики

На данный момент в Wialon существует несколько типов топливных датчиков:

  • Датчик абсолютного расхода топлива (ДАРТ) показывает расход топлива за весь период эксплуатации объекта. Следовательно, для получения данных о расходе за конкретный период используется следующий алгоритм: вычисляется разница показаний датчика в конце и в начале рассматриваемого интервала.
  • Датчик мгновенного расхода топлива (ДМРТ) показывает количество израсходованного топлива с момента предыдущего измерения (сообщения). Следовательно, для получения данных о расходе за конкретный период используется следующий алгоритм: вычисляется сумма показаний датчика во всех сообщениях на рассматриваемом интервале.
  • Импульсный датчик расхода топлива (ДИРТ) — принцип работы этого датчика аналогичен ДМРТ.
  • Датчик уровня топлива (ДУТ) предназначен для расчета количества топлива в баке. По нему можно считать расход, а также контролировать сливы и заправки.
  • Импульсный датчик уровня топлива (ИДУТ), как и предыдущий датчик, предназначен для расчета количества топлива в баке. По нему можно считать расход, а также контролировать сливы и заправки. Отличие от ДУТ заключается в том, что при расчете используются данные из предыдущего сообщения, и разница значений импульсов двух соседних сообщений делится на разницу времени между ними. Данный тип датчика почти не применяется на практике — вместо него большинство пользователей предпочитают обычный ДУТ.

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

Информация о топливе может содержаться в параметрах со следующими именами: fuel_lvlfuel_usedcons_totalcan_fuelrs485_llsadc1adc2 и т.п.

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

ДАРТ

Параметр можно использовать в Датчике абсолютного расхода топлива, если

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

ДМРТ и ДИРТ

Параметр можно использовать в Датчике мгновенного расхода топлива или Датчике импульсного расхода топлива, если

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

ДУТ

Параметр можно использовать в Датчике уровня топлива, если

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

В отличие от датчиков расхода топлива параметр от ДУТ может вести себя не так, как описано выше, потому что во время остановки или движения может осуществляться слив топлива, объект может двигаться под наклоном, температура может значительно меняться в течение дня, в топливе могут содержаться примеси и т.д. Подробнее о проблемах при контроле топлива и методах их решения можно почитать в разделе Другие материалы → Топливо.

Ниже приведен пример графика изменения параметра ДУТ, который захватывает интервалы поездки и заправки.

В некоторых случаях параметр ДУТ ведет себя противоположным образом: при работе двигателя его значение растет, а при заправке — падает. Это отличие будет нивелировано после проведения тарировки бака и внесения ее результатов в Таблицу расчета.

Екатерина Гриб,Инженер Customer Service

Как выбрать номер цифрового входа/выхода (I/O)
  • technical_consulting
  • sensor_parameters

Цифровой вход и цифровой выход являются контактами (пинами разъема), на которые подается напряжение только двух уровней: один из них соответствует включенному состоянию (1, или Вкл), а второй — выключенному (0, или Выкл). Исходя из этого, цифровые входы и выходы используют для подключения к трекеру устройств или схем, которые передают только два возможных состояния. Например, к цифровому входу трекера можно подключить датчик состояния двери, чтобы трекер мог определить, открыта она или нет. А к цифровому выходу трекера можно подключить противоугонное устройство, который будет управляться трекером и блокировать зажигание.

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

Количество цифровых входов и выходов на трекере может быть довольно большим (например, у Galileosky 7-го поколения в зависимости от модификации и конфигурации может быть от 6 до 10 цифровых входов). Поэтому у пользователей часто возникает вопрос: к какому цифровому входу или выходу монтажник подключил интересующее клиента устройство? С помощью инструкции ниже вы сможете получить требуемый ответ.

Отображение цифровых входов/выходов

Вначале стоит отметить, что состояние цифровых входов и выходов в Wialon представлено в виде двух шестнадцатеричных чисел (HEX), получаемых из двоичных чисел (BIN), в которых каждому биту соответствует вход/выход с таким же номером. Параметр с этими значениями имеет имя I/O (сокращение от Inputs/Outputs) и содержит в себе два числа, разделенных косой чертой: слева от нее располагается значение, соответствующее состоянию всех входов, а справа — состоянию выходов.

Почему выбрана такая реализация? Давайте разберемся на примере.

Предположим, что к цифровым входам 1, 3, 4 и 7, а также выходам 1, 3, 6 и 8 подключено оборудование. Также предположим, что в рассматриваемом сообщении все упомянутые входы и выходы активированы. Если бы для каждого из них использовался отдельный параметр в сообщении, то вы бы увидели следующее:

in1=1, in2=0, in3=1, in4=1, in5=0, in6=0, in7=1, in8=0, out1=1, out2=0, out3=1, out4=0, out5=0, out6=1, out7=0, out8=1

А в нынешней реализации в Wialon вы увидите следующую запись:

I/O=4D/A5

И очевидная краткость записи в данном случае является ключевым преимуществом.

Определение номера активированного цифрового входа/выхода

Если номер N входа или выхода известен, то соответствующий ему параметр будет иметь вид inN, а параметр выхода — outN. Например, четвертый вход — это in4, а выход — out4.

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

Подбор

При подключении оборудования монтажники чаще всего используют первые входы/выходы. То есть если речь идет про устройство или схему, которые передают информацию трекеру, то проверять стоит in1-in4, а если про устройство или схему, которыми управляет трекер, — out1-out4.

Для поиска нужного входа вы можете создать 4 датчика с типом Произвольный цифровой датчик на основе этих параметров (например, в первом датчике в строке Параметр будет in1, во втором — in2 и так далее). Затем перейдите в панель Сообщения, выберите тип сообщений Сообщения с данными и в меню ниже укажите Значения датчиков. После этого запросите сообщения за интервал, когда оборудование было сперва выключено, а потом включено, чтобы найти момент перехода из состояния Выкл в состояние Вкл в одном из столбцов, каждый из которых соответствует созданному датчику.

Это самый быстрый практический метод нахождения нужного входа (аналогично можно работать с выходами, но использовать в таком случае нужно параметры out1, out2 и так далее). Если он не сработал, то вы можете прибегнуть к математическому подходу.

Математический подход

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

1. Перейдите в панель Сообщения, выберите тип сообщений Сообщения с данными и в меню ниже укажите Исходные данные.
2. Запросите сообщения за интервал, когда оборудование было сперва выключено, а потом включено.
3. После отображения таблицы с сообщениями от трекера обратите внимание на колонку Параметры и найдите там параметр I/O (он расположен в самом конце строки).

Предположим, что в сообщении, где оборудование было выключено, параметр I/O=102/0, то есть цифровые выходы деактивированы (или даже не подключены), а некоторые цифровые входы активированы.

4. Откройте приложение Калькулятор (оно предустановлено на каждом компьютере, либо его аналоги можно найти в интернете) и переключите его в режим Программист (или аналогичный, который позволяет переводить значения из одной системы счисления в другую).
5. Переключите калькулятор на шестнадцатеричную систему счисления (HEX).
6. Введите найденное ранее значение 102.
7. Приложение автоматически (либо по нажатию клавиши ввода) представит вам данное число в разных системах счисления. Нас интересует запись в двоичном виде (BIN), которая состоит только из нулей и единиц.

8. Изучите полученное двоичное число. Учтите, что отсчет номера бита идет справа налево (как и в десятичной системе, где единицы находятся справа, слева от них находятся десятки, потом сотни, тысячи и так далее): 0001 0000 0010
9. Определите номера битов для данного числа (нумерация битов в Wialon начинается с 1):

Номер121110987654321
Значение000100000010

10. Из этой записи можно сделать вывод, что в данном сообщении активированы входы 2 и 9 (то есть in2=1, in9=1), а все остальные входы деактивированы (то есть их значение равно нулю).
11. Теперь найдите сообщение, в котором оборудование было включено. Предположим, что оно содержит параметр I/O=10A/0.
12. Повторите шаги 4-8 для значения 10A.

13. Определите номера битов для данного числа:

Номер121110987654321
Значение000100001010

14. В данном сообщении активированы входы 2, 4 и 9 (то есть in2=1, in4=1 и in9=1).
15. Сравните результаты шагов 10 и 14. Как несложно заметить, они отличаются лишь состоянием параметра in4, то есть в приведенном примере оборудование было подключено ко входу 4.

Использование цифровых входов/выходов

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

При создании датчиков для цифровых входов/выходов больше всего подходят типы из группы Цифровые, так как они подразумевают только два состояния (Вкл и Выкл).

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

Олег Жарковский,Инженер Customer Service

Датчики: объяснение таблицы расчета
  • technical_consulting
  • calculation_table

Одним из первых и главных этапов работы с Wialon является настройка датчиков в объекте. Если правильно настроить датчики, то некоторые стандартные алгоритмы будут давать более точные результаты, и вы сможете использовать недоступный ранее функционал. В данной статье будет детально рассмотрена таблица расчета, инструмент с одноименной вкладки, так как при настройке датчиков чаще всего именно он вызывает трудности.

В статье содержится информация разной сложности. Основная часть будет полезна для понимания логики работы таблицы расчета. Однако желающие смогут найти здесь и более детальные математические формулировки, которые будут выделены в специальные блоки «Математическая минутка». Для общего понимания статьи читать эти блоки необязательно.

Общий принцип работы датчиков

Wialon поддерживает множество типов трекеров (актуальное количество можно найти на сайте gurtam.com в разделе Оборудование), и каждый из них «говорит» на своем «языке». Поэтому приходящие от разных типов трекеров параметры, которые отображаются на вкладке Сообщения, могут содержат одну и ту же информацию (например о температуре или пробеге), но при этом иметь разные имена. Чтобы пользователь не замечал различий при использовании объектов с разными типами трекеров, для каждого объекта в Wialon необходимо создать датчики. Также датчики имеют определенный тип, что позволяет системе понимать, какой алгоритм необходимо использовать для обработки приходящих значений.

Однако зачастую просто выбрать тип датчика и указать в нем параметр оказывается недостаточно, потому что значение параметра приходит в неочевидном для пользователя виде. Например, temp=125 может означать 125°F, 125°C, 12.5°C или вообще −3°C. Для преобразования приходящего параметра в нужный вид имеется 3 метода:

  1. Выражение в строке Параметр;
  2. Таблица расчета;
  3. Валидация.

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

Схематично использование датчиков можно представить следующим образом:

  • Подключенный к трекеру датчик измеряет некоторую физическую величину, которую мы обозначим S.
  • Датчик преобразует эту величину и передает трекеру. От трекера в Wialon приходит параметр X.
  • На основе параметра в Wialon создается датчик. Чтобы получить понятное для пользователя значение Y, в датчике к параметру применяются преобразования f(X).
  • В идеале после преобразований в датчике значение Y=f(X) должно равняться величине S, которая измерялась на первом этапе. Далее Y будет использоваться во всплывающих подсказках, отчетах, уведомлениях и другом функционале Wialon.

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

Когда используется таблица расчета

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

С точки зрения практического применения можно сказать, что таблица расчета используется

  • для тарировочной таблицы (например для датчиков веса или уровня топлива);
  • для цифровых датчиков на основе аналоговых входных данных (например для датчиков зажигания на основе напряжения);
  • для датчиков на основе кодов, которые описывают разные состояния, но приходят в одном параметре (например device_status=4 означает включение зажигания, а device_status=13 — нажатие тревожной кнопки и т.д.);
  • для датчиков, которые должны отображать положительные и отрицательные значения, хотя связанный с ними параметр имеет только положительные значения (например для датчиков температуры);
  • для любых датчиков, в которых необходимо разделить диапазон корректных и ошибочных значений (например если датчик присылает особые значения в параметре, которые сигнализируют об ошибках).
 Математическая минутка

Другими словами, таблицу расчета стоит использовать, если

  • формула Y=f(X) неизвестна, но на практике были установлены соответствия между некоторыми X и Y;
  • формула Y=f(X) является слишком сложной (например содержит функции sin, cos, log и т.д., которые не поддерживаются в Wialon);
  • формула Y=f(X) имеет разный вид на разных интервалах и не может быть описана одной функцией;
  • необходимо разделить диапазон корректных и ошибочных значений.

Настройка таблицы расчета

Таблица расчета подразумевает работу с самыми простыми линейными функциями. То есть таблица расчета преобразовывает данные в соответствии со следующей формулой: Y=a⋅X+b — это один из вариантов уравнения прямой.

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

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

Пары XY

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

Мы рекомендуем использовать пары XY только для датчиков уровня топлива, чтобы вносить тарировочную таблицу. В иных случаях стоит самостоятельно рассчитывать и вносить значения X, a и b.

Добавлять пары можно как вручную, так и с помощью импорта CSV или TXT файлов (экспорт доступен только в CSV). После заполнения всех строк этого блока необходимо нажать на клавишу Генерировать (подразумевается «Генерировать таблицу расчета на основе пар XY»), что приведет к расчету значений X, a и b в левой части окна.

Каждая из добавленных пар XY соответствует точке на графике. Как вы можете знать, прямую можно провести через 2 точки. Следовательно, если внести 5 пар XY, то на графике получится 4 прямые.

Пары с одинаковым значением X вводить запрещено. Это технически невозможно, так как одному значению X не может соответствовать два или более значения Y. При этом вводить одинаковые значения Y можно.

X — входное значение

Центральный блок вкладки Таблица расчета содержит в себе строки со значениями X, a и b. Каждая из строк соответствует прямой на графике. Значение X в каждой строке означает начало новой прямой, то есть задает интервал, где будут использоваться новые значения a и b.

Последняя строка влияет на все дальнейшие значения до +∞, а первая строка влияет на значения даже до первого указанного X, то есть начиная с ∞. Поэтому писать несколько строк подряд с одинаковыми значениями a и b не имеет смысла.

В качестве примера рассмотрим таблицу со следующими значениями:

Иначе это условие можно записать так:

  • От ∞ до 3 (не включая) применяется уравнение Y=1⋅X-2.
  • От 3 (включая) до 5.5 (не включая) применяется уравнение Y=0⋅X+3.
  • От 5.5 (включая) до +∞ применяется уравнение Y=-0.5⋅X+2.

Пример графика, получаемого при заполнении таблицы расчета

a — коэффициент наклона прямой

При a=0 наклон будет 0°, то есть прямая будет параллельна оси X.
При a=1 наклон будет 45°, то есть чем больше будет коэффициент, тем ближе будет прямая к оси Y.
При a=-1 наклон будет 45°, то есть отрицательные значения этого коэффициента наклоняют прямую вниз, а положительные — вверх.

Пример графика прямой Y=a⋅X с разным коэффициентом наклона

Определить коэффициент наклона прямой бывает довольно просто: его значение равно отношению изменения Y к изменению X.

В качестве примера можно рассмотреть зеленую прямую на графике выше. По ней видно, что Y увеличивается с 0 до 1, когда X растет с 0 до 3, а значит для этой прямой коэффициент a=(1-0)/(3-0)=1/3=0.33.

b — смещение прямой по оси Y

При b=0 смещение отсутствует.
При b>0 смещение прямой происходит вверх относительно оси X.
При b<0 смещение происходит вниз.

Пример линий с разным смещением

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

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

Единственным исключением является случай, когда с помощью таблицы расчета настраивается цифровой датчик. В таком случае a=0, и формула принимает вид Y=b. Следовательно, значение b будет равно тому, что вы ожидаете увидеть в качестве Y.

Нижняя и верхняя границы

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

Рассмотрим пример с датчиком уровня топлива. Предположим, что значения параметра от 3 до 250 соответствуют объему топлива от 0 литров до 100 литров. А значения параметра 0 или 255 означают ошибки, которые мы хотим исключить, чтобы они не интерпретировалось как реальный объем (так как в рассматриваемом баке не может быть меньше 0 или больше 100 литров топлива). Для этого примера можно предложить решение с выключенной опцией Применять после расчета:

Также существует решение с включенной опцией Применять после расчета:

Так как нижняя граница входит в разрешенный диапазон, то мы можем указать значения из условия (3 или 0). Но верхняя граница в разрешенный диапазон не входит, поэтому в этом поле нужно указывать значение чуть больше, чем в условии (250.1 или 100.1).

Из примера можно понять, что опция Применять после расчета влияет на то, к каким значениям применяются границы: если она выключена, то отсеиваются значения по оси X (входные значения до применения таблицы расчета), а если она включена, то отсеиваются значения по оси Y (значения датчика после применения таблицы расчета).

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

Нижняя граница равна 2, верхняя граница равна 3, опция «Применять после расчета» отключена

Нижняя граница равна 2, верхняя граница равна 3, опция «Применять после расчета» включена


Принцип работы таблицы расчета

Иногда, чтобы понять суть явления, следует пойти от обратного. Если нам известна точная формула Y=f(X), которая связывает входное и выходное значения на всем диапазоне, то прибегать к таблице расчета нет необходимости достаточно просто использовать выражение в строке Параметр. Давайте рассмотрим такой случай.

Для примера предположим, что входное значение связано с выходным следующей формулой: Y=0.5⋅X2.
В качестве параметра возьмем adc3. Чтобы описать такую формулу в Wialon, в строку Параметр нужно вставить следующее выражение: const0.5*adc3^const2

График функции Y=0.5⋅X2

Но что делать, если мы не знаем точную формулу Y=f(X)? Именно в таком случае нам поможет таблица расчета.

Предположим, что в определенных условиях мы знаем значения измеряемой величины (это будет Y) и можем проверить, какое значение будет принимать параметр в Wialon в этих точках (это будет X). Таким образом можно получить значения, например, в 4 точках: (0; 0), (1; 0.5), (2; 2), (3; 4.5). Далее нанесем эти точки (X, Y) на график и соединим их отрезками красного цвета.

Воспроизведение части функции Y=0.5⋅X2 отрезками, построенными по 4 точкам

Несложно заметить, что результат близок к тому, который получается по формуле, но все же отличия имеются. В некоторых случаях такой точности будет достаточно, а если ее не хватает, то можно измерить значения в большем количестве точек. На графике ниже приведен пример уже для 6 точек: (0; 0), (0.5; 0.125), (1; 0.5), (1.5; 1.125), (2; 2), (3; 4.5).

Воспроизведение части функции Y=0.5⋅X2 отрезками, построенными по 6 точкам

Из рассмотренного примера можно сделать следующий вывод: связь между X и Y можно описать не только формулой, но и с помощью нескольких прямых линий, пусть иногда и упрощенно. В этом и заключается суть использования таблицы расчета.

 Математическая минутка

Таблица расчета использует точечную аппроксимацию и линейную интерполяцию.

Точечная аппроксимация — это нахождение функции, которая близка к исходной, на основе набора заранее известных значений. В Wialon она используется для приблизительного воспроизведения функции на основании пар XY.

Линейная интерполяция — это расчет значений на участках между изначально известными точками по прямым, которые проходят через эти точки. В Wialon она используется, для вычисления значений в точках, которые находятся между введенными ранее парами XY, по приблизительно воспроизведенной функции.

Обоснование и примеры использования

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

Форма кривой, которая описывает связь между X и Y, может быть довольно сложной.

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

График, построенный по тарировочной таблице с малым шагом между замерами

Описать подобную зависимость одной формулой довольно проблематично. Более простой способ описать кривую для системы — это разбить ее на интервалы, где она ведет себя примерно как прямая линия, и определить формулы этих линий. Напомню, что получить подобный результат можно с помощью пар XY.

Воспроизведение формы сложной кривой отрезками, проходящими через 11 точек

Также иногда зависимость между X и Y может быть различной на нескольких интервалах. Для ее описания требуется использовать систему из нескольких выражений, что нельзя сделать в строке Параметр в свойствах датчика.

Например, некоторые датчики температуры работают следующим образом: значения X в диапазоне от 0 до 127 соответствуют положительной температуре, а в дипазоне от 128 до 255 — отрицательной. Для обработки подобного случая потребуется две строки в таблице расчета:

X=0; a=1; b=0
X=128; a=1; b=-256

График температуры, на котором более высокие значения параметра
соответствуют отрицательной температуре

Цифровые датчики являются еще одним ярким примером ситуации, когда зависимость между X и Y является различной на нескольких интервалах. Например, датчик зажигания можно создать на основе параметра напряжения, и для этого нужно учесть два условия: Y=0 при X<14, Y=1 при X≥14. Но, как мы уже знаем, сделать это с помощью выражения в свойствах датчика не получится. А на вкладке Таблица расчета для этого потребуется всего две строки:

X=0; a=0; b=0
X=14; a=0; b=1

В цифровых датчиках коэффициент наклона всегда равен 0.

График состояния зажигания в зависимости от напряжения

 Математическая минутка

В статье уже несколько раз упоминалось, что для датчика в идеале нужна формула связи X и Y, а таблицу расчета мы используем из-за отсутствия других вариантов. На самом деле, такую формулу можно попробовать рассчитать, однако для этого нужно иметь представление о численных методах анализа и соответствующее ПО. При этом результат скорее всего будет сложен для понимания и будет плохо поддаваться корректировке в будущем. Чтобы это продемонстрировать, мы рассчитали интерполяционный полином для следующих 7 точек: (0; 5), (400; 8), (1000; 22), (1850; 78), (2800; 160), (3600; 195), (4096; 200).

Результат полиномиальной интерполяции в данном случае имеет следующий вид:

Y=1.78962834270398⋅10-19⋅X6-7.99064624017665⋅10-16⋅X5-4.83816855045549⋅10-12⋅X4+
+2.62803612257704⋅10
-8⋅X3-1.24091655860425⋅10-5⋅X2+8.58707470047479⋅10-3⋅X+5

Эту формулу можно ввести в строку Параметр в свойствах датчика (с учетом синтаксиса Wialon), и она действительно будет рабочей. График такой функции в диапазоне от 0 до 4096 имеет следующий вид:

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

Олег Жарковский,Инженер Customer Service

Датчики: работа с битами
  • technical_consulting
  • sensor_parameters

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

Проблематика

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

Например, в Wialon может отображаться параметр user_value = 2646793773, хотя со стороны трекера подразумевалась передача одного из следующих значений:

  • 2646793773 — целое число без знака;
  • 56877 и 40386 — несколько целых чисел;
  • −499310125 — целое число со знаковым разрядом;
  • −5.15811×1021 или 0.00000000000000000000515811 — число с плавающей запятой и т. д.

Теоретически данную проблему можно решить со стороны Wialon через изменение скрипта, который разбирает приходящие от трекера данные. Однако это повлияет на всех пользователей, а у них могут быть разные конфигурации трекеров, то есть они могут ожидать разного результата разбора данных со стороны скрипта. К счастью, существует метод решения проблемы, который подойдет для всех, — создание датчика с нужной формулой. При этом основана она будет на представлении параметра в двоичной системе счисления, так как мы уже знаем, что представление в десятичной системе счисления может быть разным. В двоичном виде значение параметра из примера выше записывается следующим образом: 1001 1101 1100 0010 1101 1110 0010 1101. Теперь давайте разберемся, как работать с двоичной системой счисления.

Теоретическая основа

В данном разделе будет рассмотрена информация, необходимая для применения дальнейших формул.

Системы счисления

В математике используются разные системы счисления. Наиболее привычными для понимания являются позиционные системы счисления, в которых значение каждого знака зависит от его позиции (разряда). Например, в рамках десятичной системы цифра 1, в зависимости от позиции в числе, может означать одну единицу (1), один десяток (10), одну сотню (100) и так далее.

Количество знаков, используемых в позиционных системах счисления, называется основанием.

В таблице ниже приведены несколько распространенных систем счисления:

Название

ОбозначениеОснованиеОбласть примененияИспользуемые знаки

Двоичная (binary)

BIN2Дискретная математика, информатика, программирование0, 1

Десятичная (decimal)

DEC10Повсеместно

0, 1, 2, 3, 4, 5, 6, 7, 8, 9

Шестнадцатеричная (hexadecimal)

HEX16Информатика, программирование0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

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

Числа в Wialon отображаются в десятичной системе счисления. Исключением являются текстовые параметры, в которых может быть записано число (например, шестнадцатеричный код водителя), а также отображение цифровых входов и выходов в формате I/O.

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

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

Биты и байты

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

Бит — это один разряд двоичного кода.

Байт — это совокупность 8 бит.

Полубайт — это группа из 4 бит, которая соответствуют одному символу в шестнадцатеричной системе счисления.

Для удобства восприятия двоичные числа часто разделяют пробелами на полубайты. То есть вместо записи 10011101110000101101111000101101 будет использоваться запись 1001 1101 1100 0010 1101 1110 0010 1101.

Нумерация битов в Wialon начинается с 1. Обычно нумерация битов начинается с 0, поэтому формулы, которые вы увидите ниже, могут немного отличаться от найденных в интернете или других источниках.

Числа с плавающей запятой

Число с плавающей запятой (или точкой) — это экспоненциальная форма представления действительных чисел, в которой число хранится в виде мантиссы и порядка.

Ниже приведено несколько примеров таких чисел:

125 000 = 1.25 × 105 — здесь мантисса равна 1.25, а порядок равен 5.

0.000000125 = 1.25 × 10−7 — мантисса равна 1.25, а порядок равен −7.

125 000 000 000 000 = 1.25 × 1014 — мантисса равна 1.25, а порядок равен 14.

Преимущество использования подобной записи заключается в возможности значительно расширить диапазон передаваемых значений при сохранении количества задействованных битов.

Для представления чисел с плавающей запятой в цифровых устройствах наиболее часто используется стандарт IEEE 754.

Практическое применение

В данном разделе будут рассмотрены разные варианты пользовательских параметров и формулы для их интерпретации в Wialon.

Примеры их использования можно найти в инструкции.

Преобразование двоичного числа в целое десятичное

Для понимания формулы преобразования стоит сперва взглянуть на десятичные числа под немного непривычным углом. Рассматривать будем десятичное число 125. Оно состоит из 1 сотни, 2 десятков и 5 единиц: 125 = 1 × 100 + 2 × 10 + 5 × 1.

Как мы уже знаем, основанием десятичной системы является число 10. Также зафиксируем, что сотни находятся в третьем разряде, десятки — во втором, единицы — в первом. С учетом этого число можно представить, как сумму значений из каждого разряда, умноженных на основание системы счисления в степени, равной номеру разряда минус один:

125 = 1 × 103−1 + 2 × 102−1 + 5 × 101−1 = 1 × 1022 × 101 + 5 × 100

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

,

где d — число в десятичной системе счисления, i — номер бита двоичного числа, N — количество битов, bi — значение i-го бита.

Также эту формулу можно представить в следующем виде:

d = bN × 2N−1 + ... + bi × 2i−1 + ... + b2 × 22−1 + b1 × 21−1

Рассмотрим пример с тем же числом:

(BIN) 0111 1101 = (DEC) 0 × 28−1 + 1 × 27−1 + 1 × 26−1 + 1 × 25−1 + 1 × 24−1 + 1 × 23−1 + 0 × 22−1 + 1 × 21−1 =

= (DEC) 0 × 27 + 1 × 26 + 1 × 25 + 1 × 24 + 1 × 23 + 1 × 22 + 0 × 21 + 1 × 20 = (DEC) 26 + 25 + 24 + 23 + 22 + 20 =

= (DEC) 64 + 32 + 16 + 8 + 4 + 1 = (DEC) 125.

Эта формула является ключевой для работы с битами в Wialon. На ее основе выполняются все остальные преобразования.

Если значение приходит в параметре с именем user_value, то с учетом синтаксиса Wialon формула примет следующий вид:

user_value:8*const2^const7+user_value:7*const2^const6+user_value:6*const2^const5+user_value:5*const2^const4+user_value:4*const2^const3+user_value:3*const2^const2+user_value:2*const2^const1+user_value:1*const2^const0

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

user_value:8*const128+user_value:7*const64+user_value:6*const32+user_value:5*const16+user_value:4*const8+user_value:3*const4+user_value:2*const2+user_value:1*const1

Длина формулы преобразования будет зависеть от количества учитываемых битов, поэтому копировать ее напрямую из статьи не получится. Если по протоколу трекера на значение параметра выделен 1 байт (8 битов), то формула будет аналогична приведенной выше (необходимо будет лишь заменить в ней имя параметра). А если на параметр выделено 3 байта, то формула будет в 3 раза длиннее, и в ней будут использоваться константы вплоть до 223 = 8388608.

Выделение части параметра

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

В качестве примера рассмотрим параметр user_value со значением (DEC) 32200 = (BIN) 0111 1101 1100 1000. Его первый байт описывает значение первого счетчика, а второй байт — значение другого счетчика. Необходимо создать два отдельных датчика с формулами, которые будут использовать только нужные байты.

Параметрuser_value
Номер бита исходного значения16151413121110987654321
Значение бита0111110111001000
Номер бита искомого значения8765432187654321
ДатчикСчетчик №2Счетчик №1

Формула для первого датчика будет аналогична формуле из предыдущего раздела, так как номера битов исходного и искомого значения совпадают:

user_value:8*const2^const7+user_value:7*const2^const6+user_value:6*const2^const5+user_value:5*const2^const4+user_value:4*const2^const3+user_value:3*const2^const2+user_value:2*const2^const1+user_value:1*const2^const0

Формула для второго датчика будет отличаться, так как мы будем обращаться к битам 9-16, но воспринимать их как биты 1-8:

user_value:16*const2^const7+user_value:15*const2^const6+user_value:14*const2^const5+user_value:13*const2^const4+user_value:12*const2^const3+user_value:11*const2^const2+user_value:10*const2^const1+user_value:9*const2^const0

В итоге из одного числа 32200 мы сможем получить:

(BIN) 1100 1000 = (DEC) 200 — значение первого счетчика.

(BIN) 0111 1101 = (DEC) 125 — значение второго счетчика.

Учет знака числа

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

Например, если в пользовательском параметре трекер отправляет значение 13 или −5, то Wialon об этом не знает, и в обоих случаях мы увидим одинаковый параметр user_value = 13, так как:

(DEC) 13 = (BIN) 1101

(DEC) −5 = (BIN) 1101 — старший бит отвечает за минус, а (BIN) 101 = (DEC) 5.

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

,

где d — число в десятичной системе счисления, i — номер бита двоичного числа, N — количество битов, bi — значение i-го бита.

Также эту формулу можно представить в следующем виде:

d = (−1)bN × (bN-1 × 2(N−1)−1 + ... + bi × 2i−1 + ... + b2 × 22−1 + b1 × 21−1)

Данная формула работает, так как (−1)0 = 1, а (−1)1 = −1, что и позволяет отобразить знак числа с помощью одного бита.

Если предположить, что знаковым битом является бит номер 32, то для его учета в Wialon нужно дописать в датчике в начало выражения следующую формулу:

(const-1)^user_value:32*...

Преобразование двоичного числа в десятичное число с плавающей запятой

Речь идет про преобразование двоичного нормализованного числа в 32-битный формат по стандарту IEEE 754. Данный стандарт подразумевает не передачу самого числа с плавающей запятой, а передачу некоторых значений, по которым искомое число можно рассчитать по следующей формуле:

d = (−1)S × 2(E−127) × (1 + M/223),

где d — число в десятичной системе счисления, S — знак числа, E — смещенная экспонента, M — остаток нормализованной мантиссы.

Для применения этой формулы не требуется ее полное понимание, так как в стандарте описано, в каких битах хранятся S, E и M, которые нужно просто подставить в выражение.

 Дополнительная информация

В приведенной формуле используется не порядок числа с плавающей запятой, который может быть отрицательным (например, 1.25×10−7), а смещенная экспонента E, которая всегда имеет положительное значение. Обратное смещение достигается с помощью вычитания 127 из смещенной экспоненты уже в формуле, что и позволяет получить отрицательные значения.

Нормализованная двоичная мантисса лежит в диапазоне [1; 2), то есть ее первый бит всегда равен 1. Поэтому в стандарте IEEE 754 эту единицу не отправляют (ведь она известна заранее), а добавляют в формуле на этапе вычисления результата. Это позволяет сэкономить один бит и получить большую точность передаваемого значения. В приведенной формуле М является не мантиссой, а ее остатком.

В качестве примера рассмотрим число −5.15811×10−21, которое будет отображаться в параметре как user_value = 2646793773:

(DEC) 2646793773 = (BIN) 1001 1101 1100 0010 1101 1110 0010 1101

Знаковый бит (S)Смещенная экспонента (E)Остаток нормализованной мантиссы (M)
3231302928272625242322212019181716151413121110987654321
10011101110000101101111000101101

По формуле преобразования двоичного числа в целое десятичное получаем значения M и E.

Остаток нормализованной мантиссы M будет равен:

user_value:23*const2^const22+user_value:22*const2^const21+user_value:21*const2^const20+user_value:20*const2^const19+user_value:19*const2^const18+user_value:18*const2^const17+user_value:17*const2^const16+user_value:16*const2^const15+user_value:15*const2^const14+user_value:14*const2^const13+user_value:13*const2^const12+user_value:12*const2^const11+user_value:11*const2^const10+user_value:10*const2^const9+user_value:9*const2^const8+user_value:8*const2^const7+user_value:7*const2^const6+user_value:6*const2^const5+user_value:5*const2^const4+user_value:4*const2^const3+user_value:3*const2^const2+user_value:2*const2^const1+user_value:1*const2^const0

Смещенная экспонента E будет равна:

user_value:31*const2^const7+user_value:30*const2^const6+user_value:29*const2^const5+user_value:28*const2^const4+user_value:27*const2^const3+user_value:26*const2^const2+user_value:25*const2^const1+user_value:24*const2^const0

Теперь запишем конечную формулу с учетом синтаксиса Wialon:

(const-1^user_value:32)*const2^(user_value:31*const2^const7+user_value:30*const2^const6+
user_value:29*const2^const5+user_value:28*const2^const4+user_value:27*const2^const3+
user_value:26*const2^const2+user_value:25*const2^const1+user_value:24*const2^const0-const127)*(const1+
(user_value:23*const2^const22+user_value:22*const2^const21+user_value:21*const2^const20+
user_value:20*const2^const19+user_value:19*const2^const18+user_value:18*const2^const17+
user_value:17*const2^const16+user_value:16*const2^const15+user_value:15*const2^const14+
user_value:14*const2^const13+user_value:13*const2^const12+user_value:12*const2^const11+
user_value:11*const2^const10+user_value:10*const2^const9+user_value:9*const2^const8+
user_value:8*const2^const7+user_value:7*const2^const6+user_value:6*const2^const5+
user_value:5*const2^const4+user_value:4*const2^const3+user_value:3*const2^const2+
user_value:2*const2^const1+user_value:1*const2^const0)/const2^const23)

Или упрощенно:

(const-1^user_value:32)*const2^(user_value:31*const128+user_value:30*const64+user_value:29*const32+
user_value:28*const16+user_value:27*const8+user_value:26*const4+user_value:25*const2+
user_value:24*const1-const127)*(const1+(user_value:23*const4194304+user_value:22*const2097152+
user_value:21*const1048576+user_value:20*const524288+user_value:19*const262144+
user_value:18*const131072+user_value:17*const65536+user_value:16*const32768+user_value:15*const16384+
user_value:14*const8192+user_value:13*const4096+user_value:12*const2048+user_value:11*const1024+
user_value:10*const512+user_value:9*const256+user_value:8*const128+user_value:7*const64+
user_value:6*const32+user_value:5*const16+user_value:4*const8+user_value:3*const4+user_value:2*const2+
user_value:1*const1)/const8388608)

При подстановке числовых значений получаем:

(−1)1 × 2(59−127) × (1 + 4382253/223) = −0.00000000000000000000515811 = −5.15811×10−21

Как видим, полученный результат значительно отличается от исходного значения параметра 2646793773.

Формула преобразования двоичного нормализованного числа в 32-битный формат IEEE 754 является единой для всех трекеров, так как речь идет про конкретный стандарт. Если в документации к трекеру вы видите, что пользовательский параметр может отправляться по стандарту IEEE 754, и вы выбираете этот формат отправки, то для интерпретации в Wialon вы можете копировать выражение для датчика напрямую из этой статьи, заменив в нем лишь имя параметра user_value, но не изменяя номера битов.

Из следующего блока вы можете удобно скопировать формулу для преобразование двоичного числа в десятичное число с плавающей запятой (32-битный формат по стандарту IEEE 754):

(const-1^user_value:32)*const2^(user_value:31*const128+user_value:30*const64+user_value:29*const32+user_value:28*const16+user_value:27*const8+user_value:26*const4+user_value:25*const2+user_value:24*const1-const127)*(const1+(user_value:23*const4194304+user_value:22*const2097152+user_value:21*const1048576+user_value:20*const524288+user_value:19*const262144+user_value:18*const131072+user_value:17*const65536+user_value:16*const32768+user_value:15*const16384+user_value:14*const8192+user_value:13*const4096+user_value:12*const2048+user_value:11*const1024+user_value:10*const512+user_value:9*const256+user_value:8*const128+user_value:7*const64+user_value:6*const32+user_value:5*const16+user_value:4*const8+user_value:3*const4+user_value:2*const2+user_value:1*const1)/const8388608)

Олег Жарковский,Инженер Customer Service

Некорректный пробег
  • technical_consulting
  • trips

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

Если вы столкнулись с проблемой некорректного определения пробега в отчете, на треке или в сообщениях, то в первую очередь проверьте, какой тип счетчика пробега выбран у вас на вкладке Основное в свойствах объекта:

  • GPS
  • GPS + датчик зажигания
  • Датчик пробега
  • Относительный одометр

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

1. GPS

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

a. Выбросы координат и неправильная хронология сообщений

Выбросы координат могут появляться из-за плохой связи со спутниками Глобальной Навигационной Спутниковой Системы (ГНСС). Чтобы определить, что выбросы имели место, перейдите на вкладку Сообщения и выгрузите данные для нужного объекта за проблемный период. На карте вы увидите трек, по которому можно будет определить наличие выбросов: координаты сообщений значительно отстоят от фактического местоположения объекта.


В данном примере явным признаком проблем с определение местоположения объекта является параметр HDOP – он имеет значения >1

Wialon имеет ограничение: не более 1 сообщения должно приходить от объекта за 1 секунду. Если терминал передает более 1 сообщения в 1 секунду, хронология сообщений может нарушиться и трек будет выглядеть аналогичным образом. Причина — некорректная расстановка сообщений с позиционными данными (координатами) в базе данных Wialon. В таких случаях, в настройках терминала следует снизить частоту отправки сообщений с данными.

Возможные варианты решения:

  • Использовать Фильтрацию валидности сообщений;
  • Изменить настройки Детектора поездок.

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



b. Использование датчика пробега

В некоторых случаях счетчик (вкладка Основное в свойствах объекта) работает на основе GPS-координат, но при этом также создан отдельный датчик пробега (вкладка Датчики в свойствах объекта). В отчетах, например, с таблицей Поездки колонка Пробег будет выводить значение по GPS (суммарное расстояние между координатами), но значение колонок Начальный/Конечный пробег будет рассчитано следующими методами:

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

Условимся, что фактически объект проехал 2 км, а сообщения приходили в следующем порядке:

  1. 10 км
  2. -- км
  3. -- км
  4. 15 км

В колонке Пробег получим 2 км (суммарное растояние между координатами без учета датчика пробега), в колонке Начальный пробег получим 10 км (как в сообщении), в колонке Конечный пробег получим 15 км (как в сообщении).

Аналогичный пример, но значение датчика пробега доступно только в последнем сообщении:

  1. -- км
  2. -- км
  3. -- км
  4. 15 км

В колонке Пробег получим 2 км (суммарное растояние между координатами без учета датчика пробега), в колонке Конечный пробег получим 15 км (как в сообщении).

И еще один пример, где значение датчика пробега доступно только в первом сообщении:

  1. 10 км
  2. -- км
  3. -- км
  4. -- км

В колонке Пробег получим 2 км (суммарное растояние между координатами без учета датчика пробега), в колонке Начальный пробег получим 10 км (как в сообщении).

  • Если в первом сообщении интервала нет значения датчика пробега, то система ищет первое доступное сообщение со значением датчика пробега на этом интервале, а потом из него вычитается пробег до начала поездки, рассчитанный по GPS-координатам.
 Пояснения

Условимся, что фактически объект проехал 2 км, а сообщения приходили в следующем порядке:

  1. -- км
  2. -- км
  3. -- км
  4. 15 км

В колонке Пробег получим 2 км (суммарное растояние между координатами без учета датчика пробега), в колонке Начальный пробег получим 15 км - расчитаное по GPS-координатам значение или 15 км - 2 км = 13 км, в колонке Конечный пробег получим 15 км (как в сообщении).

  • Если в последнем сообщении интервала нет значения датчика пробега, то система ищет последнее доступное сообщение со значением пробега на этом интервале, а потом к нему прибавляется пробег до конца поездки, рассчитанный по GPS-координатам.
 Пояснения

Условимся, что фактически объект проехал 2 км, а сообщения приходили в следующем порядке:

  1. 10 км
  2. -- км
  3. -- км
  4. -- км

В колонке Пробег получим 2 км (суммарное растояние между координатами без учета датчика пробега), в колонке Начальный пробег получим 10 км (как в сообщении), в колонке Конечный пробег получим 10 км + расчитаное по GPS-координатам значение или 10 км + 2 км = 12 км.

  • Если в первом и последнем сообщении нет значения датчика пробега, то система ищет первое доступное значение датчика, а потом из него вычетает пробег расчитаный по GPS-координатам чтобы получить начальное значение, а чтобы получить конечное значение наоборот прибавляет к значению датчика пробег расчитаный по GPS-координатам.
 Пояснения

Условимся, что фактически объект проехал 2 км, а сообщения приходили в следующем порядке:

  1. -- км
  2. 10 км
  3. 15 км
  4. -- км

В колонке Пробег получим 2 км (суммарное растояние между координатами без учета датчика пробега), в колонке Начальный пробег получим 10 км - расчитаное по GPS-координатам значение до первого сообщения интервала, в колонке Конечный пробег получим 10 км + расчитаное по GPS-координатам значение до последнего сообщения интервала.

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


В данном примере для объекта создан датчик пробега на основе параметра can_mileage, который отсутствует в сообщениях вплоть до 18.12.2019 16:38:54:


После 16:38 и далее параметр всегда имеет значение 0, а датчик, соответственно, – значение 0 км.

Возможные варианты решения:

  • Удалить датчик пробега и полностью перейти на пробег по GPS-координатам;
  • Устранить проблему на стороне оборудования или переключиться на параметр с корректными значениями.

В примере выше решением стало удаление датчика и переход только на GPS пробег, т. к. значения параметра не считывались с CAN-шины.

2. GPS + датчик зажигания

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

Некорректное значение датчика зажигания

В качестве счетчика пробега выбрана опция GPS + датчик зажигания. При построении трека (через вкладку Сообщения, Треки или Отчеты) пробег равен 0 км, при этом сам трек на карте виден:



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

В данном примере для объекта не создан датчик с типом Зажигание, поэтому система игнорирует все сообщения и выводит 0 км пробега:


Возможные варианты решения:

  • Переключить счетчик пробега на GPS;
  • Добавить корректно работающий датчик зажигания.


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

3. Датчик пробега

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

a. Сброс значений параметра пробега

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





В примере суммарный пробег по счетчику пробега составляет 26943 км, а по датчику пробега – всего 7069 км.

Причина  сброс параметра датчика пробега.


В такой ситуации происходит сброс до 0 км и далее снова рост до 6452 км (в примере такие сбросы повторялись неоднократно).

Возможные варианты решения:

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

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





Таким образом посредством нижней границы удалось исключить нулевые значения (сброс до 0 км) и избежать некорректного расчета пробега.

b. Сообщения с одинаковой временной меткой (опция С переполнением включена)

Терминалы могут присылать сообщения слишком часто. Wialon имеет ограничение: не более 1 сообщения должно приходить от объекта за 1 секунду. При получении данных с большей частотой их хронология может быть нарушена и меньшее значение пробега может попасть в базу после сообщения с бо́льшим значением, пример на картинке ниже:


В таких ситуациях происходит переполнение счетчика до максимально возможного значения  2147483648.

Возможные варианты решения:

  • Отключить опцию С переполнением в настройках датчика (если была активирована).

В примере выше опция С переполнением была включена. Отключив ее, мы получили более корректное значение пробега:


с. Сообщения с одинаковой временной меткой (опция С переполнением выключена)

Сообщения могут приходить с одинаковой временной меткой, нарушая хронологию, например:

В целом, на картинке выше, пробег выглядит корректным  25.01 км, в отличие от предыдущего примера, где ошибка была очевидна. Однако, если взять из сообщений начальное значение датчика пробега на интервале   9917.81 км и конечное  9942.44 км, вычесть разницу, то получим пробег  24.63 км.

Разница составляет 0.38 км на относительно небольшом отрезке трека. Погрешность будет расти с увеличением объема данных (количеством поездок). Причина ошибки — это конечно же нарушение хронологии сообщений. Система ожидает, что значение датчика будут расти. В примере видим падение с 9931.03 км до 9930.85 км и последующий рост до 9931.29 км. Происходит повторный расчет пробега между сообщениями зо значением датчика 9930.85 км и 9931.29 км, т.е. добавляются лишние 0.44 км.

Возможные варианты решения:

  • Переключить счетчик пробега на GPS;
  • Устранить проблему на стороне оборудования;
  • Переключить датчик пробега на тип Относительный одометр и применить валидацию.

В примере выше удалось получить более корректные значения пробега с помощью перевода датчика пробега на тип Относительный одометр с добавлением валидации. Датчика относительного одометра основан на параметре в виде выражения: mileage-#mileage. Валидатор основан на параметре в виде выражения: time-#time. Нижняя граница для валидатора  0, a тип валидации  Проверка на неравенство нулю. Счетчик пробега во вкладке Основное переключен на  Относительный одометр.

После применения валидации, пробег составил  24.65 км. Сообщения, в которых временная метка совпадает, исключаются из расчета.

При возникновении вопросов по конкретным практическим случаям вы можете обратиться в техподдержку через почту support@gurtam.com. Обязательно указывайте в вашем письме краткое описание ситуации со скриншотами, точное имя объекта, имя шаблона отчета для проверки, минимальный интервал времени для проверки (например, не месяц, а одни сутки), а также прочие важные детали.

Павел Чеботарёв,Инженер Customer Service

Расход топлива по расчету (математический расчет)
  • technical_consulting
  • fuel
  • fuel_consumption
  • math_consumption

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

В качестве альтернативы топливным датчикам можно использовать Расход по нормам, который настраивается на вкладке Дополнительно. Алгоритм его вычисления прост: пробег за интервал умножается на заданную норму расхода (л/100 км), которая может меняться в зависимости от сезона.

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

Где используется расход по расчету

В первую очередь расход по расчету используется в отчетах для компенсацией отсутствия топливных датчиков или сверки их показаний. Для отображения результатов математического расчета добавьте в таблицу столбцы Потрачено по расчету, Ср. расход по расчету или другие, в названии которых фигурирует «по расчету».

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

Как работает математический расчет

Система определяет ожидаемый расход на интервале, используя математическую модель. Она формируется на основе:

  • датчиков работы двигателя (зажигания или абсолютных/относительных моточасов), в которых указана норма расхода на холостом ходу;
  • датчиков полезной работы двигателя (ДПРД), каждый из которых говорит о влиянии какого-либо фактора на расход топлива (оборотов двигателя, температуры, нагрузки на ось, работы кондиционера, навесного оборудования и так далее).

Расход по расчету за интервал является суммой расходов между всеми сообщениями интервала. Для вычисления расхода по расчету между рассматриваемым и предыдущим сообщениями используется следующая формула:

Δt ( CХХ 1 + CХХ 2 + ... + CХХ N )  (KДПРД 1 + (KДПРД 2 - 1) + (KДПРД 3 - 1) + ... + (KДПРД M - 1)),

где Δt — время между сообщениями; CХХ i — норма расхода на холостом ходу из i-го датчика работы двигателя, который был включен в рассматриваемом сообщении; N — количество созданных в объекте датчиков работы двигателя; KДПРД j — значение j-го датчика полезной работы двигателя в рассматриваемом сообщении; M — количество созданных в объекте датчиков полезной работы двигателя.

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

Δt ⋅ ( CХХ 1 + CХХ 2 + ... + CХХ N )

Зачем связывать датчики работы двигателя, ДПРД и ДУТ

Некоторые объекты имеют сразу несколько двигателей. Чаще всего это касается спецтехники, и хорошим примером здесь является автобетоносмеситель: его основной двигатель заставляет машину перемещаться, а дополнительный автономный двигатель вращает смесительный барабан. Ускорение машины или включение кондиционера может повлиять на расход основного двигателя, но не повлияют на расход дополнительного. Следовательно, некоторые влияющие на расход факторы (их мы учитываем с помощью ДПРД) влияют только на один из двигателей (их мы учитываем с помощью датчиков работы двигателя). При этом у объекта может быть и несколько топливных баков (их мы учитываем с помощью ДУТ), которые тоже нужно связать с определенным двигателем.

Чтобы осуществить связь, необходимой войти в свойства датчика зажигания или датчиков абсолютных/относительных моточасов и выбрать соответствующие ДПРД. Аналогично в свойствах ДУТ настраивается его связь с датчиками работы двигателя.

Как быстро создать математическую модель

Для создания базовой математической модели воспользуйтесь Мастером расхода по расчету, расположенным на вкладке Датчики в свойствах объекта. В окне Мастера расхода по расчету необходимо ввести информацию о расходе топлива в разных режимах работы, а также сезонный коэффициент и даты начала и окончания сезона. Рассмотрим эти поля подробнее:

  • Расход топлива (л/ч) подразумевает расход на холостом ходу, то есть при включенном двигателе и отсутствии движения. Минимальная скорость движения при этом берется из Детектора поездок.
  • Городской цикл и Загородный цикл (л/100км) являются стандартными характеристиками транспортного средства, которые можно найти в документах, в интернете или вычислить на практике. При этом в разных странах используют различные подходы к тому, как определять эти циклы. В Wialon норма городского цикла соответствует скорости 36 км/ч, а загородного — 80 км/ч.
  • Сезонный коэффициент (%) подразумевает то, на сколько процентов увеличивается расход топлива в течение указанного сезона относительного остального года. Учет сезонного коэффициента можно отключить, если на территории использования транспортного средства не наблюдается значительного изменения температуры в течение года.

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

Заполнив Мастер расхода по расчету, вы создадите базовую математическую модель, учитывающую только скорость объекта и влияние сезона. Такая модель является приблизительной, ведь в действительности скорость не влияет на расход — влияют обороты двигателя, также как не влияет и сезон — на самом деле на расход влияет температура. Однако большинство трекеров по умолчанию не присылают информацию об оборотах двигателя и температуре. Поэтому мы выбрали модель, которая подходит для всех трекеров.

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

Как работают датчики полезной работы двигателя

Значение ДПРД в каждом сообщении должно показывать, во сколько раз какой-либо влияющий фактор увеличивает расход на холостом ходу относительно расхода без влияния этого фактора. Для лучшего понимания рассмотрим пример.

Предположим, что расход на холостом ходу равен 2 л/ч, а при включении системы отопления расход возрастает до 2.2 л/ч. Следовательно, отношение этих величин равно: 2.2/2 = 1.1
Также предположим, что параметр in4 однозначно говорит о состоянии системы отопления: если данный параметр равен 0, то отопление выключено, а если равен 1 — включено.
В таком случае для учета влияния системы отопления на расход необходимо создать датчик с типом Датчик полезной работы двигателя, в строке Параметр указать in4, а в Таблицу расчета добавить следующие строки:

x = 0; a = 0; b = 1
x = 1; a = 0; b = 1.1

Получается, что при выключенной системе отопления ДПРД увеличивает расход в 1 раз (то есть никак не меняет его), а при включенной — увеличивает в 1.1 раза. Дополнительно стоит отметить, что нулевое значение ДПРД также не изменило бы расход.

Описанным выше образом можно учесть влияние одного фактора на ожидаемый расход. При наличии нескольких датчиков полезной работы двигателя все их значения учитываются одновременно, формируя ожидаемый расход на интервале между двумя сообщениями (см. формулу выше).

Как сделать расход по расчету более точным

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

Но все же вы можете попробовать увеличить точность модели нижеприведенными способами.

Учитывайте больше факторов

Вы можете создать больше ДПРД на основе параметров от трекера, которые описывают влияющие на расход факторы.

Стоит отметить, что на расход влияет множество факторов, но степень их влияния может различается. Например, устанавливать датчик влажности воздуха, верояно, не стоит, хотя она тоже может влиять на расход. Измерять давление в шинах уже имеет больше смысла, хотя с другой стороны лучше просто не допускать использования ненакачанных шин. Но не стоит рассчитывать на высокую точность математической модели, если вы решили игнорировать вес груза, который можно измерить с помощью датчика нагрузки на ось. То есть к выбору учитываемых факторов нужно подходить с учетом степени их влияния на результат.

Увеличьте точность измерения параметров

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

Увеличьте частоту генерации сообщений

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

Почему расход по расчету показывает неправильные значения

Причин у такого поведения может быть несколько.

  1. Используемые в Мастере расхода по расчету нормы могут отличаться от реальных (например, из-за износа транспортного средства). В таком случае вы можете на практике проверить их соответствие реальности.
  2. Это может быть связано с некорректной настройкой расхода по расчету. Проверьте, чтобы в свойствах датчика работы двигателя было указано ненулевое значение в строке Расход, литров в час. Также убедитесь, что датчик работы двигателя и ДПРД связаны.
  3. Частота генерации сообщений трекером может быть слишком низкой.
  4. Это может объясняться поломкой датчика, показания которого используются в математической модели.
  5. В некоторых случаях система может считать, что зажигание было включено все время, пока трекер не присылал сообщений. В таком случае математическая модель покажет, что все это время двигатель должен был тратить топливо. Для исправления ситуации попробуйте установить корректное значение опции Максимальный интервал между сообщениями на вкладке Дополнительно в свойствах объекта. Достичь такого же результата можно и с помощью опции Таймаут в свойствах датчика зажигания.


При возникновении вопросов по конкретным практическим случаям вам стоит обратиться в техподдержку через почту support@gurtam.com. Обязательно указывайте в вашем письме краткое описание ситуации со скриншотами, точное имя объекта, имя шаблона отчета для проверки, минимальный интервал времени для проверки (например, не месяц, а одни сутки), а также прочие важные детали.



Олег Жарковский,Инженер Customer Service

Различия топливных алгоритмов
  • technical_consulting
  • fuel

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

Какой алгоритм выбрать

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

Алгоритм по пробегу

  1. Подходит для большинства подвижных объектов.
  2. Относительно прост в настройке.
  3. Используется по умолчанию.

Алгоритм по времени

  1. Подходит
    • для стационарных объектов,
    • для объектов с большими интервалами холостого хода,
    • для объектов с дополнительным оборудованием, увеличивающим расход,
    • при подозрениях на сливы во время движения,
    • если алгоритм по пробегу не дает ожидаемых результатов.
  2. Более сложен в настройке.
  3. Для активации рекомендуется одновременно включить следующие опции в свойствах датчика уровня топлива:
    • Рассчитывать расход топлива по времени,
    • Расчет заправок по времени,
    • Расчет сливов по времени – для обработки сливов также требуется математическая модель расхода, которую можно создать, например, с помощью Мастера расхода по расчету.

В чем разница между алгоритмами

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

Из описанного выше следует, что ключевая разница алгоритмов заключается в том, что алгоритм по времени анализирует все сообщения, а алгоритм по пробегу исключает из анализа часть сообщений, используя упрощение. Оно основано на том, что судить об изменении уровня топлива во время остановки или стоянки (то есть на интервале с низкой скоростью) можно по двум сообщениям до и после рассматриваемой остановки или стоянки. Например, если автомобиль был на парковке с 14:00 до 16:00, а слив был осуществлен в промежутке 15:00-15:10, то узнать о факте слива можно, просто сравнив уровни топлива в 14:00 и 16:00.

Расход

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

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

Заправки

Детектирование заправок также происходит одинаково для обоих алгоритмов: система ищет сообщения с последовательным ростом показаний датчика уровня топлива. Однако алгоритм расчета заправок по пробегу вычисляет заправку во время стоянок всего по двум точкам (уровню топлива в конце предыдущего интервала движения и в начале следующего), не анализируя все сообщения за рассматриваемый интервал.

Сливы

Детектирование сливов происходит разным методом:

  • Алгоритм по пробегу вычисляет слив во время стоянки по двум точкам (уровням топлива в конце предыдущего интервала движения и в начале следующего), не анализируя все сообщения за рассматриваемый интервал.
  • Алгоритм по времени сравнивает фактический расход по датчику уровня топлива с ожидаемым расходом, определенным по математической модели.

При возникновении вопросов по конкретным практическим случаям вам стоит обратиться в техподдержку через почту support@gurtam.com. Обязательно указывайте в вашем письме краткое описание ситуации со скриншотами, точное имя объекта, имя шаблона отчета для проверки, минимальный интервал времени для проверки (например, не месяц, а одни сутки), а также прочие важные детали.

Олег Жарковский,Инженер Customer Service




Не детектируется заправка
  • technical_consulting
  • fuel
  • fuel_fillings

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

Возможные причины и их устранение

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

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

1. Заправка игнорируется из-за сглаживания

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

 Пояснения

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

Чем больше степень фильтрации, тем сильнее сглаживание, применяемое для компенсации колебаний показаний ДУТ. Чем сильнее сглаживание, тем проще анализировать обработанные данные, однако тем сильнее искажена входная информация. Поэтому для получения требуемой точности степень фильтрации стоит установить на минимально необходимую. Если же степень фильтрации слишком велика, то обработанные данные могут уже не содержать перепада уровня топлива, соответствующего заправке. В большинстве случаев не рекомендуется использовать степень фильтрации выше 10.

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

2. Заправка отфильтрована по объему

Попробуйте уменьшить значение опции Минимальный объем заправки в свойствах датчика уровня топлива.

 Пояснения

Данная опция является своего рода грубым фильтром, который разделяет заправку и обычные колебания уровня топлива, которые будут оставаться даже несмотря на применение фильтрации. Следовательно, Минимальный объем заправки стоит выбирать соразмерно значению этих колебаний, которые в некоторых случаях могут достигать даже 20 и более литров.

Если же установить Минимальный объем заправки слишком большим, то из результатов отчета может исчезнуть фактическая заправка.

3. Заправка происходит при наличии скорости

Скорректируйте настройки Детектора поездок, увеличив Минимальную скорость движения, если скорость не связана с фактической поездкой объекта, а связана с погрешностью исходных данных. Однако если скорость в таких сообщениях соизмерима со скоростью при фактических поездках (например, более 10 км/ч), то подобные сообщения, вероятно, можно удалить, а для избежания подобных ситуаций в будущем можно попробовать их отфильтровать. Пожалуйста, учитывайте, что вы не сможете восстановить сообщения, удаленные вручную или вследствие применения фильтрации валидности сообщений, поэтому к данным шагам стоит подходить с особым вниманием.

 Пояснения

Не всегда скорость, определяемая трекером и отображаемая в системе мониторинга, однозначно говорит о том, что объект движется. Это следует из наличия погрешности у спутниковых систем навигации (GPS, ГЛОНАСС и так далее). Для определения факта движения используется Минимальная скорость движения, которая определяет минимальный порог значения скорости, распознаваемый системой как движение.

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

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

 Пояснения

Датчики уровня топлива могут обладать инерционностью, то есть присылать данные с временны́ми задержками. Для некоторых ДУТ это является следствием встроенной фильтрации, в других случаях задержка прихода данных подразумевает необходимость техобслуживания ДУТ (например, чистку дренажного отверстия).

Ни один из вариантов не подходит

Вероятно, вы столкнулись с более сложной ситуацией, чем рассмотренные выше, и вам стоит обратиться в техподдержку через почту support@gurtam.com. Обязательно указывайте в вашем письме точное имя объекта, имя шаблона отчета для проверки, минимальный интервал времени для проверки (например, не месяц, а несколько суток), а также прочие важные детали.

Олег Жарковский,Инженер Customer Service

Не детектируется слив
  • technical_consulting
  • fuel
  • fuel_thefts

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

Возможные причины и их устранение

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

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

1. Слив игнорируется из-за сглаживания

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

 Пояснения

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

Чем больше степень фильтрации, тем сильнее сглаживание, применяемое для компенсации колебаний показаний ДУТ. Чем сильнее сглаживание, тем проще анализировать обработанные данные, однако тем сильнее искажена входная информация. Поэтому для получения требуемой точности степень фильтрации стоит установить на минимально необходимую. Если же степень фильтрации слишком велика, то обработанные данные могут уже не содержать перепада уровня топлива, соответствующего сливу. В большинстве случаев не рекомендуется использовать степень фильтрации выше 10.

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

2. Слив отфильтрован по объему

Попробуйте уменьшить значение опции Минимальный объем слива в свойствах датчика уровня топлива.

 Пояснения

Зачастую заявляемая производителями точность ДУТ в 1% не позволяет в реальных условиях детектировать небольшие сливы из-за наличия уже упомянутых выше колебаний топлива в баке. Поэтому сразу устанавливать Минимальный объем слива, например, в 1 литр будет довольно оптимистично. Данная опция является своего рода грубым фильтром, который разделяет слив и обычные колебания уровня топлива, которые будут оставаться даже несмотря на применение фильтрации. Следовательно, Минимальный объем слива стоит выбирать соразмерно значению этих колебаний, которые в некоторых случаях могут достигать даже 20 и более литров.

Если же установить Минимальный объем слива слишком большим, то из результатов отчета может исчезнуть фактический слив.

3. Слив происходит на коротких остановках

Попробуйте уменьшить значение опции Минимальное время остановки для определения слива в свойствах датчика уровня топлива.

 Пояснения

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

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

4. Слив происходит при наличии скорости

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

Другим методом решения является увеличение минимальной скорости движения на вкладке Детектор поездок, если скорость не связана с фактической поездкой объекта, а связана с погрешностью исходных данных. Однако если скорость в таких сообщениях соизмерима со скоростью при фактических поездках (например, более 10 км/ч), то подобные сообщения, вероятно, можно удалить, а для избежания подобных ситуаций в будущем можно попробовать их отфильтровать. Пожалуйста, учитывайте, что вы не сможете восстановить сообщения, удаленные вручную или вследствие применения фильтрации валидности сообщений, поэтому к данным шагам стоит подходить с особым вниманием.

 Пояснения

Не всегда скорость, определяемая трекером и отображаемая в системе мониторинга, однозначно говорит о том, что объект движется. Это следует из наличия погрешности у спутниковых систем навигации (GPS, ГЛОНАСС и так далее). Для определения факта движения используется Минимальная скорость движения, которая определяет минимальный порог значения скорости, распознаваемый системой как движение.

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

Ни один из вариантов не подходит

Вероятно, вы столкнулись с более сложной ситуацией, чем рассмотренные выше, и вам стоит обратиться в техподдержку через почту support@gurtam.com. Обязательно указывайте в вашем письме точное имя объекта, имя шаблона отчета для проверки, минимальный интервал времени для проверки (например, не месяц, а несколько суток), а также прочие важные детали.

Олег Жарковский,Инженер Customer Service

Как избавиться от ложных сливов топлива
  • technical_consulting
  • fuel
  • fuel_thefts

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

Для корректной настройки детектирования сливов необходимо знать не только технические особенности алгоритмов Wialon, но и принципы работы самого оборудования (трекеров, датчиков и топливной системы объекта). В данной статье изложены простые инструкции, следуя которым вы сможете избавиться от ложных сливов, ориентируясь лишь на график уровня топлива.

Обязательные шаги перед применением инструкций

  • В Wialon создан объект, сообщения от трекера отображаются в системе.
  • Датчик уровня топлива подключен к трекеру, тарировка бака произведена.
  • В объекте создан датчик с типом Датчик уровня топлива (ДУТ).
  • В свойствах ДУТ активирована опция Рассчитывать расход топлива по датчику.
  • Тарировочная таблица (Пары XY) внесена в Таблицу расчета датчика уровня топлива, после чего нажата кнопка Генерировать.
  • Создан шаблон отчета с графиком типа Обычный, который отображает Обработанный уровень топлива.
  • Также график отображает маркеры сливов и фон поездок (по умолчанию он розовый), остановок (голубой) и моточасов (желтый).

Поведение графика в области ложного слива

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

1. Скачки в процессе движения или работы двигателя

Во время работы двигателя, движения по неровной поверхности или любого движения в принципе происходят колебания топлива, которые считывает ДУТ. В зависимости от объема и формы бака, а также места установки ДУТ эти колебания могут достигать десятков литров, что может привести к детектированию сливов. В общем случае их можно компенсировать с помощью алгоритма сглаживания, настраиваемого через степень фильтрации.

Для этого в свойствах датчика уровня топлива активируйте опцию Фильтровать значения датчиков уровня топлива. Затем установите степень фильтрации (например, 3). Обязательно учитывайте, что высокие степени фильтрации стоит применять только при высокой частоте отправки сообщений (1-5 секунд между сообщениями). После применения фильтрации топливные алгоритмы будут работать не с исходными данными, а со сглаженными.

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

 Как работает фильтрация (сглаживание значений датчика)

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

Степень фильтрацииШирина окнаКоличество сообщений до/после центра окна
031


N

N — нечетное5×N(5×N-1)/2
N — четное5×N+15×N/2

Пример

Степень фильтрации установлена равной 3. Тогда ширина окна будет составлять 5×3=15. Следовательно, для сглаживания значений уровня топлива берутся 7 сообщений до и 7 сообщений после рассматриваемого сообщения.

Например, для вычисления значения в сообщении номер 61 будут использованы сообщения с 54 по 68.

2. Резкий скачок сразу после начала или прекращения движения

Показания ДУТ могут резко измениться в момент начала/прекращения движения, что может привести к детектированию слива. Если выбранная вами степень фильтрации не сглаживает эти скачки, а повышать ее вы не хотите (например, в вашем случае это приводит к большому искажению входных данных на других интервалах), то вы можете использовать один из двух временны́х фильтров в свойствах датчика уровня топлива:

  • Игнорировать сообщения после начала движения — эта опция позволяет исключить из анализа на сливы заданное количество секунд после начала движения.
  • Минимальное время остановки для определения слива — если длительность интервала без движения не превышает указанную, то этот интервал не будет анализироваться на сливы (таким образом можно отсечь колебания уровня топлива, например, во время коротких остановок на светофорах).

3. Плавное падение при работе двигателя и отсутствии движения

В системе Wialon существует 2 алгоритма для анализа топлива: алгоритм по пробегу (он используется по умолчанию) и алгоритм по времени. Для стационарных объектов и для объектов с длительными интервалами холостого хода рекомендуется использовать алгоритм по времени. Для этого активируйте 3 опции в свойствах датчика уровня топлива: Расчет заправок по времени, Расчет сливов по времени и Рассчитывать расход топлива по времени. Стоит пояснить, что в рассматриваемом случае можно было бы обойтись только опцией Расчет сливов по времени, но одновременное включение всех опций позволит достичь лучшей сходимости всех топливных показателей в отчетах.

При использовании алгоритма по времени происходит сравнение расхода по ДУТ с расходом по расчету, то есть со значением, рассчитанным по математической модели. На интервалах холостого хода расход по расчету в общем случае определятся по датчику зажигания или датчикам моточасов. Потому откройте свойства датчика зажигания или моточасов и проверьте, верная ли норма расхода в час установлена в поле Расход.

4. Слив во время движения, хотя график выглядит нормально

Наиболее вероятно, вы используете алгоритм анализа топлива по времени, а также активировали опцию Поиск сливов в движении в свойствах датчика уровня топлива. В таком случае происходит сравнение расхода по ДУТ с математически рассчитанным расходом. Если расход по расчету настроен неправильно, то ложный слив может быть детектирован там, где объект просто совершал поездку, а потому рекомедуется проверить математическую модель расхода по расчету. Она задается через:

  • датчики зажигания или датчики моточасов — в свойствах в поле Расход необходимо указать норму расхода в час на холостом ходу;
  • датчики полезной работы двигателя (ДПРД) — этот датчик может использовать любой параметр, который влияет на расход, и своим значением он определяет коэффициент изменения расхода, который далее перемножается с расходом из предыдущего пункта.

Базовую математическую модель расхода можно создать с помощью Мастера расхода по расчету на вкладке Датчики в свойствах объекта. Далее ее можно дополнить с учетом прочих влияющих на расход факторов (веса груза, температуры, работы навесного оборудования и так далее).

5. Значительные скачки до минимума/максимума

Если на графике видны скачки линии Обработанный уровень топлива до 0 или до максимального значения (зачастую это 2¹⁶-1=65535) и обратно к актуальному значению, то даже после применения сглаживания эти скачки могут приводить к детектированию ложных сливов. Такие скачки показаний могут быть связаны с некорректной конфигурацией или подключением датчика уровня топлива к трекеру.

Рекомендуется исправлять данную проблему со стороны оборудования, однако и со стороны Wialon вы можете попробовать отсечь эти показания с помощью Таблицы расчета. Для этого войдите в свойства ДУТ, перейдите во вкладку Таблица расчета и установите значения Нижней границы и/или Верхней границы, соответствующие пустому и полному баку. Однако в нижней границе лучше прописать не 0, а значение близкое к нулю (например, 0.1), чтобы отсечь ложные скачки показаний до 0.

6. Значительные скачки не до минимума/максимума

Если показания ДУТ изменяются на значительные величины (но не до 0 или до максимального значения), а затем возвращаются обратно к актуальному значению, то даже после применения сглаживания эти скачки могут приводить к детектированию ложных сливов. Подобное поведение может быть связано со скачками напряжения, которые можно заметить на графике с помощью линии Напряжение, если у вас создан Датчик напряжения.

Рекомендуется исправить подобные ситуации со стороны оборудования, однако и со стороны Wialon вы можете попробовать компенсировать это влияние через Валидацию. Для этого необходимо применить следующую инструкцию:

  1. Откройте вкладку Сообщения и запросите сообщения с исходными данными за интервал, который включает исследуемый скачок уровня топлива.
  2. Вручную или с помощью фильтра найдите другой параметр, который меняется одновременно с показаниями ДУТ.
    Предположим, это параметр pwr_ext, который для большинства трекеров соответствует внешнему напряжению.
  3. Определите, при преодолении какого значения найденного параметра показания ДУТ изменяются.
    Предположим, что если pwr_ext меньше 12, то ДУТ начинает присылать неправильные показания.
  4. Войдите в свойства объекта и создайте датчик с типом Произвольный цифровой датчик, используя параметр из пункта 3, а затем задайте для него Таблицу расчета со следующими строками:
    X = 0; a = 0; b = 0
    X = 12; a = 0; b = 1
  5. Сохраните созданный датчик и изменения свойств объекта, два раза нажав кнопку ОК.
  6. Снова войдите в свойства объекта, а затем в свойства ДУТ. Укажите датчик из пункта 4 в качестве валидатора с типом Проверка на неравенство нулю.

В примере выше рассматривается реальный случай, так как низкое напряжение действительно зачастую приводит к искажению показаний разных датчиков. То есть между передаваемыми параметрами напряжения и уровня топлива существует прямая связь. Однако вы можете использовать и непрямую связь, если заметите одновременное изменение показаний ДУТ и любого другого параметра. Возможно, трекер не присылает значение напряжения, однако присылает значение температуры, а датчик температуры тоже сбоит и присылает, например, 451 °F в момент скачка напряжения. В таком случае с помощью валидации попробуйте связать ДУТ и значение температуры, что тоже должно исправить ситуацию.

7. Плавное падение после заправки при наличии нескольких соединенных баков с ДУТ в каждом

Подобное изменение показаний ДУТ может быть связано с тем, что у объекта имеется несколько соединенных баков, между которыми происходит перетекание топлива. После заправки в один из баков выравнивание уровней между несколькими баками может занять некоторое время, и если вы создали датчики уровня топлива в Wialon отдельно, то сразу после заправки система может детектировать ложный слив по одному из баков.

При работе с несколькими соединенными баками мы рекомендуем для каждого из ДУТ создавать Произвольный датчик (например, с именами «ДУТ 1» и «ДУТ 2») и вносить в них свою тарировочную таблицу. После этого создайте отдельный датчик с типом Датчик уровня топлива, не вносите в него тарировочную таблицу, а вместо этого просто используйте следующую формулу: [ДУТ 1]+[ДУТ 2]

8. Резкое падение при достижении определенного уровня

Данная ситуация может наблюдаться для баков специфичной формы в момент перехода от широкой части к узкой (например, для баков в форме буквы «Г»). Это особенно вероятно, если тарировка была произведена по слишком малому количеству точек, а зачастую ее делают всего по 2 точкам (при пустом и полном баке). Потому имеет смысл перетарировать бак, используя небольшие порции.

9. Плавное изменение в одно и то же время

Иногда уровень топлива падает/растет в определенные моменты времени, а в некоторых случаях позже даже возвращается к актуальному значению. Происходить это может ночью, или во время поездки (особенно под нагрузкой), или спустя примерно одно и то же время после завершения поездки — то есть выделить общее правило затруднительно.

Предположительные причины:

  • изменение температуры, влияющее на объем топлива, а также на деформацию бака (особенно это касается гибких пластиковых баков);
  • образование «вакуума» из-за разницы давлений (активного забора топлива в двигатель);
  • оседание примесей в топливе или грязи в баке, которая происходит после завершения поездки (тряски).

Решение в большинстве случаев связано с оборудованием: установка крышки с клапаном для выравнивания давления, удаление грязи/осадка в баке или на ДУТ. Однако если ситуация связана только с изменением температуры, то вам помочь может использование датчика с типом Коэффициент температуры (пример его настройки можно найти в документации).

Ни один из вариантов не подходит

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

  1. Точность ДУТ недостаточна для бака данной формы, данного типа ТС, данного характера движения ТС, для данной местности и т.д. Тогда помочь сможет только увеличение настройки Минимальный объем слива в свойствах датчика уровня топлива. По сути это не исправление ситуации, а просто признание низкой точности ДУТ и настройка объекта в соответствии с этой точностью.
  2. Вы столкнулись с более сложной ситуацией, чем описано в выше, и вам стоит обратиться в техподдержку через почту support@gurtam.com. Обязательно указывайте в вашем письме краткое описание ситуации со скриншотами, точное имя объекта, имя шаблона отчета для проверки, минимальный интервал времени для проверки (например, не месяц, а одни сутки), а также прочие важные детали.
  3. Вероятно, слив действительно имел место.

Олег Жарковский,Инженер Customer Service

Движение топлива
  • technical_consulting
  • fuel
  • fuel_traffic
  • tables

Контроль топлива является одной из сильных сторон Wialon. Система уже давно позволяет рассчитывать фактический и ожидаемый расход топлива для групп и отдельных объектов, а также отслеживать заправки и сливы в реальном времени или за прошедший период. Но в Wialon существует еще один важный инструмент для контроля топлива, который может быть известен не всем, хотя он открывает уникальную возможность для учета выдач топливозаправщиками. Речь идет о таблице Движение топлива, и именно она будет рассмотрена в данной статье.

Особенности таблицы

Таблица Движение топлива является необычной по нескольким причинам. Фактически она совмещает в себе три таблицы: Заправки, Сливы и Датчики счетчиков. И несмотря на то, что она не доступна для группы объектов, при выполнении отчета по топливозаправщику она может отобразить данные и по другим объектам, принимающим топливо (потребителям).

Данную таблицу можно использовать разными способами:

  1. Для топливозаправщика, чтобы отображать выдачи топлива объектам-потребителям.
  2. Для любого объекта, чтобы выводить одним списком все его заправки и сливы.

  3. Совместить первый и второй способы, чтобы видеть и заправки, и выдачи топливозаправщика.

Далее в статье будет рассмотрен только первый способ, так как по сравнению со вторым он требует более нестандартных настроек.

Необходимые датчики

Тип объектаТип датчикаВозможности
Топливозаправщик

Датчик уровня топлива (ДУТ)

Позволяет отображать выдачи топлива (в виде сливов) и заправки (наполнение цистерны с топливом).
Топливозаправщик

Счетчик

Позволяет отображать объем топлива, выданного через заправочный пистолет-расходомер.

Использование счетчика дает более точный результат по сравнению с ДУТ.

ПотребительДУТПозволяет отображать объем заправки при получении топлива от топливозаправщика.
ТопливозаправщикНазначение водителяДля отображения имени водителя на топливозаправщике должен быть установлен картридер. Предполагается, что водитель заправляемого объекта прикладывает свою карту к картридеру топливозаправщика, чтобы выдача началась, и на это время он назначается на топливозаправщик, а после завершения выдачи водитель должен быть снят с объекта.

Логика работы таблицы

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

При выполнении отчета за выбранный интервал таблица ищет у топливозаправщика топливные активности разных типов: заправка, слив или работа счетчика. Поиск осуществляется точно так же, как в одноименных таблицах Заправки, Сливы и Датчики счетчиков. В настройках таблицы вы можете отфильтровать типы топливных активностей для отображения. Логика работы со всеми тремя типами активностей одинаковая. Для упрощения будем считать, что в примере рассматриваются только выдачи топлива.

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

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

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

  • ДУТ может быть инерционным, то есть отображать изменение уровня не сразу, а с некоторой задержкой.
  • Для компенсации неточностей ДУТ в Wialon используется сглаживание по соседним сообщениям, поэтому для корректного расчета заправки необходимо учитывать сообщения до ее начала и после ее конца.

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

На данный момент система уже вычислила интервалы активности топливозаправщика и интервалы заправок объектов-потребителей. Теперь необходимо их связать.

При работе с заправками в Wialon используются несколько временных меток:

  • Начало заправки — время из первого сообщения интервала заправки.
  • Конец заправки — время из последнего сообщения интервала заправки.
  • Время заправки — время из сообщения, после которого произошел максимальный рост топлива на интервале заправки. Именно это значение выводится в столбец Время в таблице Заправки.

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

В рассматриваемом на картинках примере получаем:

  • В строку с топливной активностью 1 будет выводиться заправка потребителя 1.
    В данном случае время (максимальный перепад уровня топлива) заправки потребителя попадает в интервал выдачи.
  • В строку с топливной активностью 2 будет выводиться заправка потребителя 2.
    Время этой заправки не попадает в интервалы выдачи, однако заправка имеет пересечения с несколькими выдачами и будет относится к первой по времени.
  • В одну строку с топливной активностью 3 не будет выводиться ни одна заправка.
    Интервал заправки потребителя 3 не имеет пересечений ни с одной выдачей.
  • Потенциальный потребитель 4 не будет выводиться в отчет.
    У него не было детектировано заправок, а по условию примера в настройках таблицы включена опция Учитывать только объекты с заправками.

Имена потребителей будут отображаться в столбце Геозоны/Объекты, в столбце Заправлено будет содержаться объем заправки потребителя, а в столбце Отклонение — разница между заправкой и выдачей.

Пример настройки для контроля выдач топлива

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

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

  • Чтобы скрыть заправки топливозаправщика, в фильтрации интервалов раскрываем блок Заправки, в нем включаем фильтр Заправки и в выпадающем меню выбираем вариант Без заправок.


  • Если на топливозаправщике не установлен пистолет-расходомер, но при этом на объекте имеются другие счетчики, то они могут повлиять на выводимый результат.
    Чтобы скрыть показания этих счетчиков, в фильтрации интервалов раскрываем блок Датчики, в нем включаем фильтр Маски датчиков и указываем имя, которое не соответствует именам счетчиков.


  • Если на топливозаправщике установлен пистолет-расходомер, то рекомендуется работать с данными, полученными от пистолета-расходомера, а не со сливами, детектированными по ДУТ.
    Чтобы скрыть сливы топливозаправщика, в фильтрации интервалов раскрываем блок Сливы, в нем включаем фильтр Сливы и в выпадающем меню выбираем вариант Без сливов.


  • На данном этапе в зависимости от предыдущих шагов в отчет будут выводиться только выдачи топлива, зафиксированные по ДУТ или по счетчику.
    В обоих случаях для отображения объектов-потребителей и их заправок необходимо отметить нужные объекты или группы объектов в фильтре Геозоны/Объекты и указать радиус приближения. Это фильтр повторяется в каждом из блоков (Заправки, Сливы, Датчики), поэтому настраивать его нужно в том блоке, который вы планируете использовать.
    Также рекомендуется включить опцию Учитывать только объекты с заправками, чтобы скрыть из результата отчета объекты, которые просто находились рядом, но не имели заправок.

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

Решение возможных проблем

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

Объемы выдачи или заправки не сходятся

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

  • Наличие параметров датчиков в сообщениях от топливозаправщика и потребителя.
  • Тарировку баков топливозаправщика и потребителя.
  • Коэффициент счетчика топливозаправщика (при его наличии).
  • Дополнительные настройки топливных датчиков топливозаправщика и потребителя.

Возможно, вам будут полезны другие статьи на тему топлива из раздела Другие материалы.

Потребитель не отображается или отображается неправильно

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

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

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

Выдача разделяется на несколько частей

Если выдача определяется по счетчику, то в блоке Датчики в настройках таблицы Движение топлива вы можете задать условие объединения интервалов. Например, если установить Таймаут на 30 секунд, то интервалы работы счетчика, между которыми прошло менее 30 секунд, будут объединены.

Если выдача определяется по ДУТ, то вы можете увеличить Таймаут для разделения сливов в свойствах ДУТ.

Выдачи не разделяются

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

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

Много небольших лишних выдач

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

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

Водители не отображаются корректно

Водители могут не отображаться в отчете, либо во всех строках может отображаться один водитель.

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

Попробуйте изучить логику автоматического назначения и снятия водителей. Вам может понадобиться проверить:

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

Ни один из вариантов не подходит

Вероятно, вы столкнулись с более сложной ситуацией, чем рассмотренные выше, и вам стоит обратиться в техподдержку через почту support@gurtam.com. Обязательно указывайте в вашем письме точное имя объекта, имя шаблона отчета для проверки, минимальный интервал времени для проверки (например, не месяц, а несколько суток), а также прочие важные детали.

Олег Жарковский,Инженер Customer Service

Не срабатывает команда
  • technical_consulting
  • commands
  • sms

Wialon не только принимает данные от трекеров, но также может отправлять на них команды. В данной статье вы найдете условия для выполнения команд, описание особенностей разных каналов отправки команд, а также возможные проблемы и варианты их решения.

Условия для выполнения команд

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

  1. В учетной записи включена услуга Команды.



  2. Пользователь обладает специальным правом Отправка команд в отношении объекта.



  3. Команда создана на одноименной вкладке Команды в свойствах объекта.


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

  4. Для выполнения команд по каналу SMS существует еще несколько дополнительных условий:
    • В учетной записи включена услуга SMS-сообщения.

    • В сервисе должны быть доступны SMS, то есть счетчик на верхней панели должен быть больше нуля.

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

    • На вкладке Основное в свойствах объекта должен быть указан Телефонный номер в международном формате, на который трекер будет получать SMS.

Особенности каналов отправки команд

Канал (тип связи) для отправки команды выбирается в ее свойствах. В зависимости от выбранного канала при выполнении команды необходимо учитывать состояние соединения объекта с сервером.

Объект поддерживает интернет соединение с сервером, если от него приходят сообщения с данными или keep alive/heart beat пакеты. Для проверки нынешнего статуса соединения можно использовать столбец Состояние соединения на панели Мониторинг.

КаналОсобенности

GPRS (TCP/UDP)

Объект обязательно должен поддерживать интернет соединение с сервером.

Virtual

Данный канал аналогичен по принципу отправки с TCP/UDP, однако виртуальная команда может быть выполнена, даже когда объект не подключен к серверу. В момент выполнения команда становится в очередь, а ее фактическая отправка будет произведена в момент выхода объекта на связь.

Для каждого типа устройства в Wialon предусмотрено ограничение количества виртуальных команд в очереди, а при переполнении очереди новая виртуальная команда вытеснит из очереди самую старую команду (она не будет отправлена).
SMSОбъект может не поддерживать интернет соединение с сервером.
АвтоПри отправке программа сама выберет тот канал, который доступен в данный момент. Если доступно несколько типов, то использован будет тот канал, который находится выше в данной таблице.
Если выбранный для команд канал связи в данный момент доступен, то кнопка выполнения команды напротив объекта в панели Мониторинг станет активной.

Проверка отправки команды со стороны Wialon

Факт выполнения команды фиксируется в Журнале объекта. Также эта информация доступна для просмотра:

  • на вкладке Сообщения при запросе Отправленных команд;
  • на вкладке Сообщения при запросе SMS-сообщений;
  • в отчете с таблицей Отправленные команды.

Запись о выполнении команды в журнале означает, что команда была выполнена со стороны Wialon. Далее она отправляется по TCP/UDP каналу или передается модему/SMPP шлюзу на отправку.

Если команда не была выполнена при нажатии соответствующей кнопки, то следует проверить соблюдение вышеуказанных требований. Ели все требования были соблюдены и объект не терял связь в момент выполнения команды, то вы можете отправить на support@gurtam.com подробное описание проблемы (имя пользователя, объект, имя команды и время выполнения) для анализа специалистами технической поддержки Wialon.

Возможные проблемы и методы их решения

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

ПроблемаВозможные причиныВарианты действий
SMS-команда не доставлена на объект

Проблемы с доставкой SMS-сообщений и TCP/UDP команд обычно связаны с проблемами на уровне сетей операторов связи/интернет провайдеров. Следует совместно с провайдером проверять маршрут доставки сообщения, устранять неполадки сети или искать другие маршруты доставки.

Если вы используете пакет 500 SMS, напишите техподдержке Wialon на support@gurtam.com.
Если вы используете собственный SMPP шлюз или модем, обратитесь к вашему SMPP провайдеру или GSM оператору для анализа ситуации.

Команда доставлена, но с некорректным текстом

Обычно такая проблема связана с кодировкой оператора связи и актуальна в основном для SMS-сообщений. В Wialon используется стандартная кодировка A5 (CCITT T.50)/ASCII (ANSI X3.4). Оператор связи получателя может использовать другой протокол и в результате не верно декодировать сообщение.

Пользователь должен связаться с оператором связи получателя для исправления ситуации.

Альтернативой является использование собственного SMPP шлюза с требуемой кодировкой.
Команда доставлена с корректным текстом, но трекер не выполнил/отклонил команду

В SMS задан неверный формат команды. Необходимо перепроверить синтаксис согласно руководству по прибору или обратиться к производителю оборудования.

Если используются стандартные команды Wialon (кроме Произвольное сообщение), убедитесь, что в команде переданы корректные параметры (например, номер входа трекера для активации). Также вы можете обратиться в техподдержку Wialon по адресу support@gurtam.com, предоставив подробное описание проблемы.

SMS команда получена от номера отправителя, который не внесен в список разрешенных.

Внесите разрешенный номер в настройках трекера.

Команда получена с неразрешенного трекеру IP.

Внесите разрешенный IP в настройках трекера. IP в Wialon Hosting зависит от дата-центра сервиса, и его можно видеть во вкладке Основное в свойствах любого объекта.

В настройках объекта не введен Пароль для выполнения команд (или он не совпадает с паролем в трекере).

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

Трекер не исправен.

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

Команда доставлена, выполнена трекером, но не получен ответ в системе Wialon

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

Найдите и активируйте соответствующую опцию при конфигурации устройства на вкладке Основное. Кнопка конфигурации находится справа от поля ввода типа устройства и является активной, если возможность конфигурации предусмотрена самим устройством.

Команда поступила c виртуального номера, который не может выступать в качестве получателя SMS.

В Wialon Hosting используется виртуальный номер 79037676122. Вы можете обратиться в техподдержку Wialon по адресу support@gurtam.com и уточнить возможность переключения вашего сервиса на другой доступный телефонный номер отправителя, чтобы получать SMS ответы трекеров на этот номе.
Если из-за особенностей маршрутов доставки SMS в определенную страну вы не можете задать другой номер отправителя для отправки SMS, то наиболее удобным решением будет подключить для своего сервиса Hosting собственный SMPP шлюз с возможностью приема SMS от трекеров. По вопросу подключения своего SMPP шлюза к сервису Hosting обратитесь к вашему менеджеру (или к техподдержке Wialon за техническими консультациями).


Сергей Новиков,Инженер Customer Service

Уведомления в Telegram
  • technical_consulting
  • notifications_to_telegram

Возможность отправлять информацию по разным канал является большим преимуществом. Стандартные варианты имеют свои минусы: отправленное по электронной почте письмо может затеряться в спаме, а SMS являются платными и не всегда доходят до получателя. В таких условиях мессенджер Telegram может стать удобной альтернативой. 

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

Часть информации (токены и ID) в инструкциях будет скрыта, так как это приватная информация. На понимание инструкций это не влияет.

Предварительные требования

Создать бота следуя инструкции. Здесь и далее будем предполагать, что Telegram установлен на вашем компьютере или телефоне. Работу по настройке можно вести в обеих версиях, однако делать это на компьютере проще, так как вам придется копировать информацию в настройки уведомления в Wialon.

Категории уведомлений

Условно, уведомления можно разделить на две категории:

  • «индивидуальные» — для одного выделенного пользователя (например клиент с одним личным автомобилем)
  • «массовые» — для нескольких пользователей сразу (например одной группы, команды, отдела, компании)

Настройка для Telegram уведомлений в Wialon одна — нужно задать Токен бота и ID канала:

Обычно вопросы возникают с ID канала. Именно от того, как вы заполните это поле, зависит, будет ли уведомление индивидуальным или массовым.

Индивидуальные уведомления

Открываем ссылку (приведена ниже) на компьютере или на телефоне с установленным Telegram:

https://telegram.me/userinfobot

В ответ получаем собственный ID:

Этот собственный ID и задаем в настройках уведомления:

При сработке такого уведомления, сообщение придет в чат боту и увидите его только вы:

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

Что бы узнать ID другого пользователя (следуйте инструкции userinfobot) просто перенаправьте ему сообщение этого пользователя (например у вас с ним чат уже есть, оттуда и перенаправляйте):

Массовые уведомления

Публичный канал

С массовой отправкой сразу нескольким пользователям все проще. Достаточно создать публичный канал Telegram, добавить туда бота и разрешить ему управлять уведомлениями.

В качестве ID канала для настройки уведомления в Wialon нужно использовать ID канала:

Берем только «pach_test» (без символов «t.me/»), ставим префикс «@» и добавляем в уведомление в Wialon:

Добавляем в этот канал любой нужный контакт (все они будут получать уведомления централизованно). Ждем сработки, результат ниже:

Закрытый канал

Создаем открытый канал, добавляем туда бота администратором. Отправляем запрос от имени бота в этот канал:

https://api.telegram.org/bot/sendMessage?chat_id=@yourchannelname&text=ping

Заменяем токен на токен своего бота:

Указываем ID своего канала:

Вставляем в адресную строку браузера и нажимаем Enter, например:

https://api.telegram.org/bot775ххххххх:AAH5Kp_cххххххххххххххххх/sendMessage?chat_id=@gurtamstudy&text=ping

В ответ получаем:

{"ok":true,"result":{"message_id":17,"chat":{"id":-1001xxxxxxxxx,"title":"Study","username":"gurtamstudy","type":"channel"},"date":1593066856,"text":"ping"}}

Удаляем сообщение, делаем канал закрытым. Вместо @yourchannelname в настройках уведомления используем значение «id»: -1001xxxxxxxxx

Закрытая группа

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

Создаем открытую группу, добавляем туда бота (можно без прав администратора). Отправляем запрос от имени бота в эту группу:

https://api.telegram.org/bot/sendMessage?chat_id=@yourchannelname&text=ping

Заменяем токен на токен своего бота:


Указываем ID своей группы:

Вставляем в адресную строку браузера и нажимаем Enter, например:

https://api.telegram.org/bot775ххххххх:AAH5Kp_cххххххххххххххххх/sendMessage?chat_id=@gurtam_study&text=ping

В ответ получаем:

{"ok":true,"result":{"message_id":2,"from":{"id":775ххххххх,"is_bot":true,"first_name":"pach_test","username":"pach_bot"},"chat":{"id":-1001xxxxxxxxx,"title":"Study group","username":"gurtam_study","type":"supergroup"},"date":1593070025,"text":"ping"}}


Удаляем сообщение, делаем группу закрытой. Вместо @yourchannelname в настройках уведомления используем значение «id»: -1001xxxxxxxxx

Павел Чеботарёв,Инженер Customer Service

Тахографы и Wialon
  • technical_consulting

Тахограф — это устройство, которое контролирует режим труда и отдыха (РТО) водителей, а также скорость движения транспортного средства, пройденный им путь и страну нахождения. Использование подобного устройства позволяет минимизировать риск возникновения аварийных ситуаций из-за усталости водителя и оптимизировать работу автопарка. Необходимость установки тахографа определяется законом.

В данной статье будут рассмотрены общие вопросы, касающиеся тахографии, а также те варианты расчета и отображения РТО, которые реализованы в Wialon.

Юридический аспект

Если обобщить, то тахограф является обязательным устройством для автомобилей, осуществляющих грузопассажирские перевозки. Однако разные страны имеют разные правила о необходимости установки тахографов и контроле РТО.

В Wialon поддержано только «Европейское соглашение, касающееся работы экипажей транспортных средств, производящих международные автомобильные перевозки», или сокращенно ЕСТР (в оригинале это соглашение называется AETR, от французского Accord Européen sur les Transports Routiers). Это единое соглашение о работе экипажей транспортных средств на территории европейских стран.

 Правила других стран

Перечисляемые далее правила не поддержаны в Wialon, однако о них может быть полезно знать:

  • В Российской Федерации правила использования тахографов определяются приказами Министерства транспорта РФ (в частности, приказом от 13 февраля 2013 г. №36 г. Москва).
  • В США функцию тахографов выполняют электронные устройства регистрации (electronic logging devices, ELD), а правила, которые определяют режим работы и отдыха водителей, называются Hours of Service (HOS). Для учета HOS на основе Wialon была создано решение Apollo ELD, познакомиться с которым можно на следующем сайте: eld.gurtam.com
  • В Австралии закон о тахографии называется Heavy Vehicle National Law and Regulations (NHVL).

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

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

Режимы работы

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

ПиктограммаНазваниеАльтернативные
названия
Описание

ВождениеУправление,
«колесо»‎‎‎,
«руль»‎‎‎

Используется для регистрации длительности непосредственного управления ТС.

Включается автоматически, когда карточка водителя вставлена в первый слот, двигатель включен, а скорость ТС не равна нулю.

Работа

Другая работа,
иные работы,
«молотки»

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

Включается вручную или автоматически, когда карточка водителя вставлена в первый слот, двигатель включен, а скорость ТС равна нулю.

ОтдыхПерерыв,
«кровать»,
«стул»‎

Используется для регистрации отдыха.

Включается вручную или автоматически при выключении зажигания.

РезервДоступность,
готовность,
ожидание,
«конверт»

Используется при наличии в экипаже ТС второго водителя.

Включается автоматически, когда карточка водителя вставлена во второй слот, а для первого водителя отображается режим «Вождение» или «Работа».

Использование режимов может отличаться от описания выше (например, в зависимости от требований при погрузке или от рекомендаций транспортной компании). А логика автоматического/ручного переключения режимов может зависеть от модели тахографа.

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

Примеры правил РТО

Чтобы иметь представление о том, какие критерии использует тахограф при контроле РТО, можно рассмотреть некоторые из правил ЕСТР:

  • Без остановки на перерыв можно ехать максимум 4,5 часа. После этого должен быть сделан перерыв на 45 минут.

     Примеры

    Пример 1. Водитель проехал 4,5 часа, а потом сделал перерыв на 45 минут. В данном случае нарушений нет.

    Пример 2. Водитель проехал 4,5 часа, а потом сделал перерыв на 30 минут. Это нарушение, так как продолжительность перерыва недостаточная.

  • Если в пределах 4,5 часов вождения сделать перерыв продолжительностью более чем 15 минут, но менее чем 45 минут, то в конце периода 4,5-часового вождения можно сделать перерыв такой длительности, которая в сумме с предыдущим перерывом составит 45 минут. Если же перерыв длится менее 15 минут, то он не будет засчитан.

     Примеры

    Пример 1. Водитель проехал 2 часа, сделал перерыв на 20 минут, потом проехал еще 2,5 часа и сделал перерыв на 25 минут. В данном случае нарушений нет, так как на период 4,5-часового вождения суммарно получилось 45 минут отдыха.

    Пример 2. Водитель проехал 2 часа, сделал перерыв на 10 минут, потом проехал еще 2,5 часа и сделал перерыв на 35 минут. Это нарушение, так как первый перерыв длился менее 15 минут, а потому не был засчитан. В результате на период 4,5-часового вождения суммарно не получилось 45 минут отдыха.

  • Максимальное время вождения в течение одной рабочей недели составляет 56 часов, а за две следующие друг за другом недели — 90 часов.

     Примеры

    Пример 1. Время вождения в первую неделю составило 50 часов, во вторую — 40 часов, а в третью — опять 50 часов. В данном случае нарушений нет, так как в каждую отдельную неделю лимит в 56 часов не был превышен, и суммарно для каждых двух последовательных недель был соблюден лимит в 90 часов.

    Пример 2. Время вождения в первую неделю составило 50 часов, во вторую — 50 часов, а в третью — 40 часов. В данном случае нарушение имеется: несмотря на то, что в каждой отдельной неделе лимит в 56 часов не был превышен, суммарно за первую и вторую недели был превышен лимит в 90 часов.

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

Устройство тахографов

Обычно тахографы делят на аналоговые и цифровые.

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

Цифровые имеют прямоугольную форму и устанавливаются в гнездо автомагнитолы (головного устройства). Техническая реализация цифрового тахографа представляет из себя зашифрованную систему постоянного энергонезависимого хранения данных с ограничением доступа к данным и термопринтером для вывода отчетов. Далее в статье будет идти речь только об этом типе тахографов.

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

Доступ к памяти тахографа осуществляется при помощи 4 видов пластиковых ключей-карт:

  1. Карта водителя — позволяет водителю сохранять данные о режимах работы за 28 дней.
  2. Карта компании/предприятия — позволяет транспортной компании считывать данные о рейсах ее транспортных средств.
  3. Карта мастерской — позволяет техническим специалистам настраивать тахограф.
  4. Карта контролера/инспектора — позволяет правоохранительным органам считывать допущенные водителем нарушения и произошедшие сбои в работе оборудования.

Данные в памяти тахографа хранятся в файлах, которые могут иметь разный формат (расширение) в зависимости от модели тахографа.

В Wialon можно отобразить только данные с карты водителя. Работа возможна с форматом DDD и прочими схожими по структуре форматами (например, TGD, V1B, C1B).

Контроль РТО в Wialon

Предыдущие разделы являются своеобразным введением в тему тахографии и контроля РТО. Далее перейдем к непосредственной работе в рамках Wialon.

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

Так как в получении информации участвует связка «тахограф-трекер-Wialon», то возможные проблемы не всегда получается решить со стороны Wialon.

В Wialon источником информации о РТО может являться не только тахограф. Следующая схема поможет разобраться с источниками и вариантами отображения информации о РТО, представленными в системе.

Источники информации о РТО

Отображаемая в Wialon информация о РТО может быть получена из нескольких источников.

Файл с карты водителя

Тахограф хранит в памяти файлы с разными данными. Информация о РТО конкретного водителя сохраняется на его карту. Загрузить файл с карты водителя в Wialon можно по-разному в зависимости от модели трекера:

  • С помощью команд — в разделе FAQ можно найти инструкцию об этом. Подобный метод доступен для трекеров, которые отображаются в списке поддержанных устройств по фильтру Загрузка файлов с тахографа.
  • Через стороннее ПО, например, подключив трекер к компьютеру. Далее файл нужно загрузить в Wialon через веб-приложение TachoManager и при загрузке выбрать, к какому водителю он относится.

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

Файл с карты водителя является единственным достоверным источником для вывода тахографической информации в Wialon. Контролер видит данные из этого же источника при проверке показаний тахографа на дороге.

Назначения и поездки

Тахограф определяет режим работы по наличию скорости у ТС, статусу зажигания и наличию карты в слоте. Эти данные имеются в Wialon и без тахографа: поездки, которые могут рассчитываться по датчику зажигания и скорости, и назначения/снятия водителей. Поэтому активность водителя можно определить по сообщениям от трекера, даже если на объект не установлен тахограф.

Назначения и поездки можно использовать только для примерной оценки выполнения РТО. В отличие от тахографа, который определяет текущий режим работы в реальном времени, назначения/снятия водителей и поездки в Wialon определяются по сообщениям от трекера, которые фиксируются с определенной частотой, меньшей чем у тахографа.

Онлайн-данные

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

  • Параметры от тахографа, которые трекер определяет по текущему режиму тахографа. На момент написания статьи такая возможность реализована только у трекеров производства Xirgo, RuptelaTeltonika и Navtelecom.
  • Назначения водителей и поездки из Wialon.

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

Онлайн-данные можно использовать только для примерной оценки выполнения РТО. В отличие от тахографа, у которого имеется алгоритм для пересчета предыдущих интервалов, в Wialon онлайн-данные сохраняются без последующего пересчета.

Отображение информации о РТО

Отобразить информацию о РТО в Wialon можно несколькими способами.

TachoView

Веб-приложение TachoView визуализирует информацию о РТО в виде цветных диаграмм и отчета об активности водителя или нарушениях режима.

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

Отчет по водителям

Таблица Активность водителя показывает информацию о РТО.

Таблица Нарушения режима работы показывает информацию о нарушении РТО.

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

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

Дополнительная информация об объекте и водителе

Для использования этого способа сперва необходимо включить опцию Активность водителя по онлайн-данным в общих настройках пользователя.

При наведении курсора на водителя информация о РТО и его нарушениях будет выводиться во всплывающую подсказку.

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

Источником информации для этого способа отображения всегда являются онлайн-данные.

Олег Жарковский,Инженер Customer Service

10
  • 10
  • 25
  • 30
Спасибо за ваш отзыв!
Сообщить об ошибке
Текст с ошибкой Комментарий
Максимум 500 символов