Какими параметрами проверяется соответствие тра и приложений при выверке
7.1. При поступлении изменений и дополнений в ТРА станций обслуживаемых участков, а также телеграмм о предстоящем вводе в эксплуатацию объектов железнодорожной автоматики и телемеханики («адрес 13») начальник депо обеспечивает изучение требований поступивших изменений ТРА станций, инструкций по вводимому объекту причастными работниками, установленным в ОАО «РЖД» порядком и включает их в тематику инструктажа в папки: «Материалы по изменениям ТРА станций» и «Материалы в адрес 13,14».
7.2. Машинистом-инструктором локомотивных бригад в 10-суточный срок проводится инструктаж с каждым работником локомотивных бригад закрепленной колонны.
7.3. Инструктаж проводится с использованием АРМ для инструктажа локомотивных бригад по изменениям ТРА станций обслуживаемых участков и оформляется машинистом-инструктором локомотивных бригад в отдельном журнале (ведомости) инструктажа по изменениям ТРА станций.
7.4. При инструктаже в обязательном порядке должна использоваться схема станции с указанием на ней места вводимого изменения.
7.5. Инструктаж считается усвоенным при условии, что инструктируемый произвел соответствующие отметки в персональной выписке из ТРА и схеме станции, прошел проверку знаний с использованием автоматизированной системы АС ГРАТ (кроме моторвагонного депо), а также ответил на вопросы по тематике инструктажа. Инструктируемый и инструктирующий расписываются в журнале (ведомости) инструктажа с указанием даты его проведения.
7.6. По истечении 10-ти суток с момента начала инструктажа машинистом-инструктором локомотивных бригад передаются ответственному работнику (инженеру отдела эксплуатации, машинисту-инструктору), назначенному приказом начальника депо, сведения о результатах инструктажа и список не проинструктированных локомотивных бригад (очередной отпуск, болезнь, командировка и т.д.) для внесения в ведомость инструктажа при перерыве в работе свыше 10-ти дней.
7.7. По окончании журнала инструктажа по изменениям ТРА станций, при условии инструктажа в полном объеме всех работников локомотивных бригад закрепленной колонны, установленным порядком журнал передается машинистом-инструктором локомотивных бригад в архив депо и хранится один год.
7.8. В отделе эксплуатации депо приказом начальника депо из числа инженеров назначается ответственный работник, который ведет общий учет проинструктированных работников локомотивных бригад.
1. Контроль работы тахографов, установленных на транспортные средства, должен осуществляться мастерскими, владельцами транспортных средств и контрольными органами в целях исключения нарушения водителем, управляющим транспортным средством для перевозки грузов или пассажиров, установленного режима труда и отдыха.
2. При контроле должна осуществляться проверка соблюдения следующих требований:
1) на транспортном средстве, подлежащем оснащению тахографом в соответствии с приложением N 2 к настоящему приказу, установлен тахограф, сведения о модели которого учтены ФБУ "Росавтотранс" в перечне сведений о моделях тахографов в соответствии с приложением N 3 к настоящему приказу;
2) установленный на транспортное средство тахограф активизирован (осуществляется взаимная аутентификация карт и блока СКЗИ тахографа);
3) тахограф работает исправно, не блокирован и не подвергнут модификации;
4) регистрируемая тахографом информация не блокируется и не корректируется;
5) сведения о результатах поверки тахографа, подтверждающие его пригодность для применения, содержатся в Федеральном информационном фонде по обеспечению единства измерений и (или) на тахограф нанесен знак поверки и (или) оформлено свидетельство о поверке тахографа, и (или) сделана запись в паспорте (формуляре) тахографа, заверенная подписью поверителя и знаком поверки с не истекшим сроком действия.
3. После выпуска транспортного средства на линию водитель должен контролировать работоспособность тахографа в соответствии с руководством по эксплуатации.
4. При осуществлении контроля должны производиться:
1) визуальное исследование элементов тахографа, мест и правильности их установки на транспортном средстве в соответствии с требованиями организации-изготовителя тахографа, включая проверку наличия пломб с номером мастерской, производившей установку тахографа;
2) проверка наличия в транспортном средстве руководства по эксплуатации тахографа, установленного на данное транспортное средство;
3) проверка распечатки данных из тахографа и с карт водителей;
4) проверка выгрузки данных из тахографа и с карт водителей;
6) проверка вывода информации на дисплей;
7) проверка ручного ввода информации о местоположении транспортного средства в момент начала и окончания периодов времени управления транспортным средством;
8) проверка автоматического определения местоположения транспортного средства;
9) проверка соответствия фактического местоположения транспортного средства и данных, содержащихся в памяти бортового устройства, в состав которых блоком СКЗИ тахографа автоматически включается текущее время, дата, координаты местоположения транспортного средства и заводской номер блока СКЗИ тахографа, подписанные квалифицированной электронной подписью;
10) проверка наличия сведений о результатах поверки тахографа, подтверждающих его пригодность для применения, в Федеральном информационном фонде по обеспечению единства измерений и (или) проверка наличия на тахографе знака поверки и (или) свидетельства о поверке и (или) записи в паспорте (формуляре) тахографа, заверенной подписью поверителя и знаком поверки, с не истекшим сроком действия.
7.1. При поступлении изменений и дополнений в ТРА станций обслуживаемых участков, а также телеграмм о предстоящем вводе в эксплуатацию объектов железнодорожной автоматики и телемеханики («адрес 13») начальник депо обеспечивает изучение требований поступивших изменений ТРА станций, инструкций по вводимому объекту причастными работниками, установленным в ОАО «РЖД» порядком и включает их в тематику инструктажа в папки: «Материалы по изменениям ТРА станций» и «Материалы в адрес 13,14».
7.2. Машинистом-инструктором локомотивных бригад в 10-суточный срок проводится инструктаж с каждым работником локомотивных бригад закрепленной колонны.
7.3. Инструктаж проводится с использованием АРМ для инструктажа локомотивных бригад по изменениям ТРА станций обслуживаемых участков и оформляется машинистом-инструктором локомотивных бригад в отдельном журнале (ведомости) инструктажа по изменениям ТРА станций.
7.4. При инструктаже в обязательном порядке должна использоваться схема станции с указанием на ней места вводимого изменения.
7.5. Инструктаж считается усвоенным при условии, что инструктируемый произвел соответствующие отметки в персональной выписке из ТРА и схеме станции, прошел проверку знаний с использованием автоматизированной системы АС ГРАТ (кроме моторвагонного депо), а также ответил на вопросы по тематике инструктажа. Инструктируемый и инструктирующий расписываются в журнале (ведомости) инструктажа с указанием даты его проведения.
7.6. По истечении 10-ти суток с момента начала инструктажа машинистом-инструктором локомотивных бригад передаются ответственному работнику (инженеру отдела эксплуатации, машинисту-инструктору), назначенному приказом начальника депо, сведения о результатах инструктажа и список не проинструктированных локомотивных бригад (очередной отпуск, болезнь, командировка и т.д.) для внесения в ведомость инструктажа при перерыве в работе свыше 10-ти дней.
7.7. По окончании журнала инструктажа по изменениям ТРА станций, при условии инструктажа в полном объеме всех работников локомотивных бригад закрепленной колонны, установленным порядком журнал передается машинистом-инструктором локомотивных бригад в архив депо и хранится один год.
7.8. В отделе эксплуатации депо приказом начальника депо из числа инженеров назначается ответственный работник, который ведет общий учет проинструктированных работников локомотивных бригад.
Введение
Очень часто возникает проблема диагностики дефектов в тестовой или рабочей среде, где нет инструментов разработки и отладки. И единственным способом понять, в чем ошибка – добавление строк кода с отладочной информацией и повторная установка приложения, если такие строки не были добавлены ранее. А можно ли сразу писать код так, чтобы информации, которую протоколирует приложение, было бы достаточно для диагностики проблемы?
В статье я совсем не буду касаться таких вопросов как инструменты для протоколирования. Но в любом случае, нужно понимать, что такие инструменты существуют и позволяют фильтровать записываемые в протокол данные и настраивать запись протокола в различные источники.
Основная задача статьи – дать представление разработчикам, какими способами проводится протоколирование, и дать рекомендации о том, где в программе вставлять строчки кода для протоколирования. В этой статье, в основном, будем говорить о трассировке.
Протоколирование
- Быть уверенным, что система работает и работает правильно
- Понимать, почему система и ее данные находятся в текущем состоянии
- Иметь возможность быстро найти неисправность
- Узнать, как систему можно усовершенствовать
Подходы к протоколированию
Трассировка
* картинка взята из статьи Lazy logger levels
- обо всех ошибках – обработанных и не обработанных
- параметры запуска и загруженную конфигурацию
- а также события, описанные ниже.
- Какие события нужно писать в трассировочный лог
- Как правильно выбрать уровень для события
- Как правильно выбрать категории событий
- Какую информацию нужно записывать при возникновении того или иного события
Какие события нужно вносить в трассировочный лог
- Используется ли модульные тесты при разработке.
Использование модульных тестов позволяет значительно снизить количество ошибок в бизнес логике методов, не взаимодействующих с внешними системами (внешними по отношению к данному слою приложения). Однако при взаимодействии кода с внешней системой (взаимодействие кода бизнес слоя с базой данных, взаимодействие слоев бизнес логики, расположенных на разных компьютерах и прочее) модульные тесты не эффективны потому, что конфигурация разных слоев может быть разной в разных средах. Исходя из этого, можно сделать вывод, что при использовании модульных тестов логично выполнять только трассировку взаимодействий между слоями и трассировку ошибок (т.к. считаем, что логика каждого слоя в отдельности очень хорошо протестирована). Если же модульных тестов нет — трассировать нужно каждую ветку логики программы (вход в метод, выход, возникновение в методе ошибки, каждую ветку условного оператора) - Тип приложения.
В таблице представлены некоторые типы приложений и события для протоколирования в трассировочный лог (понятно, что есть и другие типы приложений).
Какие данные нужно вносить в трассировочный лог
Кроме простого названия (описания) события, для анализа работы часто нужна еще дополнительная информация. Следующая таблица показывает данные, которые полезно было бы записывать. Понятно, что далеко не всегда нужно писать события настолько подробно. Кроме того, обычно инструменты трассировки позволяют некоторую из указанной ниже информации записывать автоматически.
Данные | Описание |
Дата и время | Дата и время возникновения события |
Сервер | Сервер, на котором событие возникло (полезно при анализе журналов, собранных с различных серверов) |
Процесс | Название процесса, где возникло событие. Это необходимо, например, в случае если разные процессы используют общие библиотеки. |
Метод | Название метода, возможно, включающий название класса и библиотеки |
Категория события | Название слоя или логического модуля |
Уровень | Уровень детализации события |
Название | Название события (запуск или завершение метода, ошибка, изменение состояние объекта и прочее) |
Детальная информация | Например, детальная информация об ошибке (а при критической ошибке может быть и детальная информация о системе), значение параметра(-ов), название объекта или описание действия над объектом |
Учетная запись, под которой работает процесс | |
Учетная запись пользователя, который вызвал действие | Учетная запись пользователя, который сделал начальный вызов, что привело к данному событию |
Стек | Стек вызовов методов, которая привела к данному событию. Может быть полезен при детальном анализе события |
Корреляционный номер процесса | Если приложение многопользовательское, то важно понимать к какому запросу (пользователю) относится та или иная запись о события |
Корреляционный номер инициирующего процесса | Если приложение распределенное, то данный номер используется для сопоставления событий на разных серверах (или процессах). Например, можно передавать с клиента на сервер корреляционный номер и сохранять его при трассировке. В дальнейшем можно сопоставлять вызов клиентского приложения с событием на сервере |
Уровни трассировки
Уровни в основном используются для фильтрации событий при записи в журнал. Это нужно для предотвращения записи в журнал данных, которые в данный период времени не нужны.
Например, такой инструмент как NLog, предоставляет по умолчанию 6 уровней событий (от более детального до менее детального): trace, debug, info, warn, error, fatal (более детально см. в документации к NLog)
Далее, в конфигурации можно указать, что, например, в рабочей среде, в журнал трассировки писать события уровня Error и Fatal (а все остальные игнорировать), а при возникновении проблемы изменить конфигурацию так, чтобы записывать все события.
Следующая таблица показывает мои рекомендации по выбору уровней событий при трассировке
Событие | Уровень |
Загруженная конфигурация / смена конфигурации | Info |
Действия пользователя | Info |
Начало и окончание каждого «публичного» метода (или метода, который реализует логику согласно спецификации), входные/выходные параметры, результат работы такого метода | Info |
В публичных методах входные/выходные параметры, которые являются наборами данных | Debug |
Логика (ветки программы) описанная спецификацией | Info |
Начало и окончание остальных методов, входные/выходные параметры, результат работы | Trace |
Шаги остальных методов | Trace |
Доступ к внешним ресурсам (например: БД, web-сервисы) | Info |
Детальная информация о запросах (командах) доступа к внешним ресурсам и полученном результате | Debug |
Неожиданные исключения (не критические) | Error |
Исключение, описанное в спецификации | Warn/Error |
Обработанные исключения | Warn/Info/ Debug |
Критическое исключение (обработанное или не обработанное) | Fatal |
Выбор категорий событий
Второй важный параметр, по которому можно настроить фильтрацию записи событий в журнал — это категории событий. Эти категории разработчик должен выбирать сам (т.е. инструменты не предоставляют категории по умолчанию)
Я рекомендую придерживаться таких рекомендаций — для каждого отдельного логического уровня сделать отдельную категорию. Например: уровень интерфейса (UIControls), уровень бизнес-логики (BusinessLogic), уровень доступа к данным (DAL), модуль поиска (Search), программа настройки конфигурации (ConfigManager) и так далее.
Далее, если у вас есть отдельные компоненты внутри слоя, то можно для их трассировки выбрать отдельные подкатегории, отделяя от основной категории точкой.
Например, визуальный компонент для отображения облака тегов (который располагается в уровне интерфейса)— UIControls.TagsControl.
Таким образом, при возникновении проблемы с компонентом, с одной стороны вы всегда сможете по журналу определить, какой компонент создал то или иное событие, с другой — более гибко настроить фильтрацию записи в журнал событий только по выбранному компоненту.
Заключение
Протоколирование — важная функция в любом приложении и требует внимательного анализа и проектирования. Несмотря на то, что трассировка обычно не описывается в требованиях, правильное ее использование может в значительной степени ускорить процесс обнаружения и исправление дефектов на тестовой и рабочей среде.
Данные выкладки — это мои практика и наблюдения, и, соответственно, у вас могут быть свой опыт и своя методика по использованию протоколирования (и трассировки в частности). С удовольствием выслушаю критические отзывы и замечания для улучшения рекомендаций.
Читайте также: