Часть 2: Роботизация бизнес-процессов
Часть 3: Волшебные интерфейсы и оживление железа
Часть 4: Автоматические личные кабинеты и чат-боты
Часть 5: Автоматизация на производстве
Часть 6: Траблшутинг на предприятии (в этой публикации)
Что такое "траблшубинг" (определение из Википедии)
Траблшутинг (англ. troubleshooting — устранение неполадок, работа над проблемой) — форма решения проблем, часто применяемая к ремонту неработающих устройств или процессов. Представляет собой систематический, опосредованный определённой логикой поиск источника проблемы с целью её решения.
Какие у вас возникают ассоциации, когда слышите фразу "при зависании весов сотрудник КИПиА идет на участок автоотгрузки и перезагружает весовой терминал"?
Старая проблема с "зависанием" весовых терминалов Mettler Toledo на участке автоотгрузки цемента
Участок отгрузки навального цемента на заводе представляет собой 2 силоса, под каждым из которых установлены статические автомобильные весы Mettler Toledo для взвешивания цементовозов - до начала и после окончения отгрузки. В третьей части я уже рассказывал об этом.
![Участок автоотгрузки начального цемента на заводе (двое статических весов под двумя силосами) Участок автоотгрузки начального цемента на заводе (двое статических весов под двумя силосами)](https://habrastorage.org/getpro/habr/upload_files/7d3/7e4/62b/7d37e462b250a8e80f0284b8afc51b02.png)
Периодически я слышал, что на заводе иногда "зависают" автомобильные весы, из-за чего приостанавливается отгрузка. И возобновляется после того, как на место приходит сотрудник КИПиА и "перезагружает" весы.
Слышал я об этом потому что, как правило, звонки или письма от автодиспетчеров сначала поступали в мое подразделение к консультанту 1С. Тот диагностировал проблему, понимал, что "зависание" весов не связано с ERP-системой и передавал задачу в смежное подразделение - отдел автоматизации производства, сотрудники которого находятся непосредственно на заводе. Начальник отдела автоматизации производства считал, что весы "зависают" из-за некорректной интеграции с ERP-системой.
Но многократные проверки контура программной интеграции весов с ERP-системой показывали, что в 1С проблем не возникает и "зависание" происходит на стороне весовых терминалов.
Надоедливые письма и диагностика одного дня
Недавно я получил очередное письмо от начальника отдела автоматизации производства, что из-за ERP ночью "зависли" весы, отгрузка была приостановлена на полчаса, мы не устраняем проблему на стороне 1С, а сотрудникам КИПиА приходится ходить на участок автоотгрузки и "перезагружать" весы. В письме он сослался на то, что "зависания" начались с 2020 года, когда нами была выполнена интеграция весов с ERP.
Мне было лень переписываться и я решил досконально разобраться в проблеме:
От консультанта 1С я узнал, что в момент "зависания" весов у насыпщика на экране выводится сообщение "Нет связи с сервером".
От программиста 1С я узнал, ч то в момент "зависания" в базе данных MSSQL весов (подключена к ERP, как внешний источник данных) появляется запись с отрицательным значением взвешивания порожней машины. А после "перезагрузки" весов создается новая запись с корректным весов и отгрузка продолжается в обычном режиме.
![При "зависании" весов Toledo в базе данных MSSQL, подключенной к ERP, появляется запись с отрицательным значением При "зависании" весов Toledo в базе данных MSSQL, подключенной к ERP, появляется запись с отрицательным значением](https://habrastorage.org/getpro/habr/upload_files/1df/aee/e53/1dfaeee538d4b39cd2c858020c888f5b.png)
Чтобы исключить возможные ошибки в данных на стороне 1C ERP, я проверил записи в базе данных MSSQL - при "зависании" весов появляется запись с отрицательным значением, а после "перезагрузки" создается новая запись с корректным весом.
![Запись с отрицательным значением взвешивания также появляется в базе данных MSSQL весов Запись с отрицательным значением взвешивания также появляется в базе данных MSSQL весов](https://habrastorage.org/getpro/habr/upload_files/9a4/7f4/3be/9a47f43be396288459049fb855b1a8fc.png)
Чтобы убедиться, что запись с отрицательным значением веса при "зависании" весов это не случайность, я проверил наличие подобных занисей в базе данных MSSQL, оказалось, что они были и раньше. Вероятно, в это время также "зависали" весы.
![Некорректные записи в базе данных MSSQL появлялись и раньше, вероятно, что в это время весы "зависали" Некорректные записи в базе данных MSSQL появлялись и раньше, вероятно, что в это время весы "зависали"](https://habrastorage.org/getpro/habr/upload_files/fea/7ec/555/fea7ec555335a453bd58c0fe4b49b4b0.png)
Дальнейший анализ восстановленной из архива базы данных MSSQL показал, что проблема возникает в самого начала эксплуатации весов - с 2015 года.
![Некорретные записи в базе данных MSSQL были с самого начала эксплуатации весов Mettler Toledo Некорретные записи в базе данных MSSQL были с самого начала эксплуатации весов Mettler Toledo](https://habrastorage.org/getpro/habr/upload_files/349/9f1/d16/3499f1d16391696aa918bf6a87f8fba9.png)
От программиста 1С я получил описание логики интеграции весов с ERP и фрагмент кода (каждые 5 секунд он получает текущее значение веса и отображает в его интерфейсе 1C на рабочем месте автодиспетчера). Маловероятно, что это может быть причиной "зависания" весов. Учитывая, что процедура выполняется каждые 5 секунд, а весы "зависают" всего пару раз в месяц.
Фрагмент кода 1С для получения текущего веса
&НаКлиенте
Процедура ЗаполнитьВесВесов()
попытка
document = элементы.адресвесы1.Документ;
п = document.getElementsByTagName("frameset")[0].getElementsByTagName("frame")[0].contentWindow.document.getElementById("cu1") ;
Вес =Число(Стрзаменить(п.innerHTML, " kg", ""));
ТекущийВесБрутто1 =Вес;
Исключение
КонецПопытки;
Попытка
document = элементы.адресвесы2.Документ;
п = document.getElementsByTagName("frameset")[0].getElementsByTagName("frame")[0].contentWindow.document.getElementById("cu1") ;
Вес =Число(Стрзаменить(п.innerHTML, " kg", ""));
ТекущийВесБрутто2 =Вес;
Исключение
КонецПопытки;
КонецПроцедуры
Процедура вызывается 1 раз в 5 секунд и выполняется команда на javascript для получения значения текущего веса, которое отображается в рабочем месте автодиспетчера в ERP.
До интеграции весов Mettler Toledo с 1C, текущее значение веса выводилось на монитор автодиспетчеру через открытую страницу браузера.
![](https://habrastorage.org/getpro/habr/upload_files/2f6/993/001/2f6993001d3ef2bff92991c92389502b.png)
От системного администратора я узнал, что в помещении насыпщика нет компьютера, а значит, есть какой-то неопознанный экран куда выводится сообщение "Нет связи с сервером".
В телефоне я нашел фотографию экрана монитора автодиспетчера, когда данные с весов выводились через веб-интерфейс на странице в браузера. Эта фотография была сделана во время обследования процесса работы автодиспетчера, еще до начала интеграции весов с ERP.
![По фотографии видно, что веб-интерфейс правых весов ничего не показывает, это значит, что проблема с весами существовала еще до начала интеграции с ERP По фотографии видно, что веб-интерфейс правых весов ничего не показывает, это значит, что проблема с весами существовала еще до начала интеграции с ERP](https://habrastorage.org/getpro/habr/upload_files/777/b92/4fa/777b924fa9a9d115a808666a0ab70f43.png)
После диагностики я написал письмо начальнику отдела автоматизации производства о результатах (отсутствие проблем на стороне 1С или интеграции весов с ERP) и попросил проверить кабели, датчики и подключения. На что в ответном письме получил смайлик, который означал, что я написал глупости.
![](https://habrastorage.org/getpro/habr/upload_files/601/85e/46b/60185e46b9b55c40356460f011f9730b.png)
И краткий комментарий, что "Mettler Toledo это промышленные весы, очень надежные, а проблему надо искать на стороне 1С".
Неопознанный экран у насыпщика, отсутствие проблем на стороне 1С и поход в гемба
Неопознанный экран в помещении у насыпщика с надписью "Нет связи с сервером" не давал мне покоя, и я попросил системного администратора сходить на участок автоотгрузки и сфотографировать, как же выглядит помещение насыпщика и какие там установленные экраны.
Удивительные фотографии из гемба
Это может показаться банальным, но факт остается фактом. Вот такую картину я увидел, когда системный администратор прислал мне фотографии в вайбер из помещения насыпщика.
Что такое "гемба" (определение из Википедии)
Гэмба (яп. 現場 гэмба), гэнти гэмбуцу (яп. 現地現物, «наличный товар на местах») — обозначения подхода, характерного для японской управленческой практики кайдзен, согласно которому для полноценного понимания ситуации считается необходимым прийти на гэмба — место выполнения рабочего процесса, собрать факты и непосредственно на месте принять решение. В русскоязычной литературе обычно используются написания «гемба» и «генти генбуцу».
![](https://habrastorage.org/getpro/habr/upload_files/26b/8c3/e38/26b8c3e38f9713fc512b5da2474b1155.png)
![](https://habrastorage.org/getpro/habr/upload_files/1a6/fac/c7e/1a6facc7e551092a7fb0a40110e8b538.png)
Меня заинтересовала стоимость этих интерфейсов и я нашел спецификацию на приобретение - 2800 евро за 1 настольный терминал.
![](https://habrastorage.org/getpro/habr/upload_files/108/0e8/b4b/1080e8b4b442c9eba7e1be01a7817c7e.png)
Каким бы дорогим, качественным и надежным не было промышленное оборудование, все его преимущества обнуляются после вмешательства рукож@пых специалистов.
Стало понятно, что проблема "зависания" терминалов Mettler Toledo может быть связана проводами, которые держались на соплях и изоленте.
Чтобы подтвердить это предположение, на следующий день утром мы смоделировали ситуацию: машина заехала на весы, а системный администратор пошевелил провода. На экране появилось сообщение "Нет связи с сервером", а весы сразу "зависли".
Я попросил системного администратора вызвать дежурного сотрудника КИПиА и посмотреть, что именно тот делает для "перезагрузки" весы. Все оказалось намного банальнее, чем я представлял.
Примерно через 30 минут на весовую пришел сотрудник КИПиА, посмотрел на экран весов. Определил кабель, который идет от экрана к бесперебойнику. Подошел к бесперебойнику, вытащил кабель питания и вставил его обратно. "Перезагрузка" весов выполнена, и он ушел. Вот такую важную задачу годами выполнял "киповец".
!["Перезагрузить" промышленные весы означает, что нужно вытащить кабель питания из бесперебойника и вставить его обратно. "Перезагрузить" промышленные весы означает, что нужно вытащить кабель питания из бесперебойника и вставить его обратно.](https://habrastorage.org/getpro/habr/upload_files/a5c/d09/e25/a5cd09e25a8d04af372259034dae73d8.png)
Так какие у вас возникают ассоциации, когда слышите фразу "при зависании весов сотрудник КИПиА идет на участок автоотгрузки и перезагружает весовой терминал"?
На следующий день с директором завода была согласована остановка автоотгрузки на несколько часов для приведения в порядок проводов и подключений на весовой. Заодно в помещении у насыпщика начался косметический ремонт.
![](https://habrastorage.org/getpro/habr/upload_files/89a/669/c2a/89a669c2adc1dacaaf72bef6220ed792.png)
Еще пара фоток терминалов в процессе взвешивания
![Выполняется отгрузка по заданию Выполняется отгрузка по заданию](https://habrastorage.org/getpro/habr/upload_files/ff7/a6a/bb7/ff7a6abb7188b0a0d81936505f498c71.png)
![Отгружен вес по заданию Отгружен вес по заданию](https://habrastorage.org/getpro/habr/upload_files/b86/2c8/ad4/b862c8ad410c829efd4a834d717b402e.png)
Проблема 2015 года с периодическим "зависанием" автомобильных весов Mettler Toledo решилась за 2 дня.
Мораль сей басни такова
Когда вы слышите проблему - словам не верьте, господа. Идите в гемба и смотрите, что происходит на местах.
Спасибо, что дочитали до конца!
В одной из следующих публикаций я расскажу про обследование процесса производства цемента и исследование данных, и какие системные ошибки (в технологии производства) удалось выявить и исправить.
Satyricon
Вай как у меня полыхнуло сейчас. Классика жанра - это у вас всё не работает. Начинаешь разбираться, а там на местах полный пипец.