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

Выпущенное Enterra в 2010 году приложение TMAP, контролирующее работу тоннелепроходческого механизированного комплекса (ТМК), подверглось очередному обновлению. Заказчик попросил немного изменить алгоритм контроля ряда параметров комплекса и ещё некоторые данные в отчетах представлять более подробно. Эта фраза, конечно, ничего толком не объяснит без небольшой лекции о том, как мы это приложение создавали. Впереди Вас ждет интересный рассказ о том, как устроено это приложение. Оно ведь является частью систем управления огромными и не очень ТМК производства компании HerrenknechtAG.  
TMK1

Самый крупный в мире проходческий щит, диаметром 15,2 метра, построил в 2010 году заказчик нашего ПО, компания HerrenknechtAG. Он способен проходить за сутки до 22 метров. Его собирались использовать для прокладки автомобильного туннеля через центр Мадрида. Тоннель длиной 3650 метров строили, чтобы избавить столицу Испании от пробок. В таких вот ТМК и используется наше ПО.

TMK2

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

Немного истории В конце 2009 года мы получили от немецкой компании HerrenknechtAG заказ на разработку программного обеспечения для систем контроля их огромных машин, которые пробивают тоннели по всему миру. Задача стояла нетривиальная. Дело в том, что целью приложения должны были стать сбор и визуализация данных, получаемых от тоннелепроходческого комплекса через OPC (OLE for Process Control) сервер. Необходимо было решение, которое сочетало бы в себе одновременно две системы: по сбору данных и визуализации. Но это только половина проблемы. Вторая её часть заключалась в необходимости иметь дело с огромным количеством датчиков – от двух до трех тысяч. Эти тысячи датчиков до десяти раз в секунду посылают из разных концов ТМК поток данных о сотнях параметров. В результате база данных, с которой программа должна иметь дело, быстро становилась необъятной. Кроме перечисленного, надо было предоставить заказчику ещё и удобный пользовательский интерфейс, а также четкую архитектуру программного обеспечения. Достаточно высоким требованиям должно было соответствовать и само многоуровневое программное приложение с сервером специального применения. Связь между клиентом и сервером была реализована с использованием технологии .NET WCF. Что получилось Разумеется, чтобы создать ПО, наши специалисты с самого начала начали разбираться в том, как вообще работает ТМК. Например, выяснилось, что комплекс имеет стадии работы – он двигается, откачивает воду и грязь, бурит, удаляет продукты бурения, укрепляет пройденный участок кольцами бетонных тюбингов и так далее. В итоге программисты Enterra решили использовать это для элегантного решения проблемы роста базы данных с показателями работы ТМК. Решение приняли простое – программа обрабатывает данные по циклам работы, используя в качестве отсечки окончание установки тюбинга. После установки тюбинга начинается новый цикл и данные составляются в другой отчёт. В итоге формируются аналитические отчеты по кольцам с доступной детализацией по каждому кольцу.
TMK3
Так выглядит образец отчета «по кольцу», предоставляемый программой. Пользователь также может кастомизировать его в определенных пределах. Программа может производить их автоматически по завершении очередного цикла или выдавать по запросу. В целом программа имеет следующий ряд особенностей:
  • защищенный от сбоев сервер, способный обрабатывать большое количество данных, получаемых с OPC сервера, и сохранять информацию в базе данных;
  • пользовательский интерфейс с виртуальной клавиатурой;
  • конструктор форм;
  • индикаторы;
  • разработчик отчетов с последующей их печатью;
  • графики средних (минимальный и максимальный) и текущих значений;
  • пользователь и управление правами пользователя;
  • многоязычный интерфейс;
  • настройки сервера;
  • отправка отчетов об ошибках по электронной почте.
TMK4
Вот так выглядит интерфейс окна индикаторов. TMK5 А вот так можно это окно с индикаторами настроить. Отдельно стоит упомянуть успешную реализацию разработчиками Enterra функции связи OPC. Все данные, полученные от проходческого щита, поступают на сервер OPC, а затем обрабатываются и визуализируются.
TMK6
Главные компоненты системы: OPC Server (Kepware’s COM server), RDBMS server (MS SQL 2005), Application server (.NET 3.5 Windows Service), Client application (.NET 3.5 WinForms application). Коммуникация между клиентом и сервером реализована с помощью технологии .NETWCF. Для визуализации данных и составления отчетов используется наш специальный продукт Perpetuum .NETModelKitSuite.
TMK7
Управление потоком данных от сенсоров. TMK8 Пример визуализации показателей.
Видео работы системы
Дополнения Ну вот, теперь фраза об алгоритме контроля ряда параметров комплекса и некоторых данных в отчетах приобретает смысл. В частности, в обновлениях по ряду показателей мы отказались от отсечки данных «по кольцам». Заказчик объяснил, что некоторые данные ему потребовалось получать по конкретным стадиям работы ТМК. Пришлось провести очень серьезную работу с базами данных и всей системой в целом, чтобы появились такие исключения. Что касается детализации некоторых параметров, то заказчик попросил дать ему возможность отслеживать их в реальном времени почти по миллисекундам, что мы и сделали. Выглядит просто, да? В общем, разработчики Enterra справились с усложнившейся задачей. Сейчас не так-то просто успешно реализовать проект с использованием новейших технологий Microsoft и своих знаний в. NET разработке с использованием компонентов для визуализации данных. Важно ещё и сопровождать этот проект впоследствии, отвечая на новые потребности заказчика. Что мы и делаем.