Оптимизация по Филипповичу

Выпускающийся сейчас уже большими сериями автобус МАЗ столичного автозавода является одной из передовых республиканских технологических разработок. Деталей, которые идут для его модификаций и другой техники, изготавливаемой на сборочном конвейере, - десятки тысяч наименований. Естественно, что-то упустить или забыть очень просто. А вот исправить потом, как говорится, "на ходу", порой невозможно.

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

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

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

О программе, превратившей "справочник" в рабочий инструмент инженеров МАЗа, и о ее создателе - Валерии Анатольевиче Филипповиче, пойдет речь в этой статье.

 

Идея автоматизации родилась не на пустом месте. Работая программистом, трудно было не замечать недостатки большинства заводских компьютерных программ и систем (прилично к тому времени устаревших), работающих на старой ЭВМ типа PDP. А когда информационную базу пришлось адаптировать для персональных компьютеров, родилась идея создать новый программный комплекс для автоматизации планирования производства изделий.

Его основой послужил, естественно, многотомный "Справочник маршрутов".

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

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

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

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

Сервер и автоматизированные рабочие места запрограммированы на Visual Fox Pro. Дабы принтеры не работали в графическом режиме, блоки печати писались на алгоритмическом языке Pascal.

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

Теперь немного об устройстве самого комплекса. Аппаратно-программный комплекс по сбору информации представляет собой набор ее регистраторов, находящихся в цехах и предназначенных для ввода данных и передачи их на концентратор. Далее, эти данные перенаправляются через COM-порт для обработки их ЭВМ. Ранее они передавались на устаревшую PDP, в новом варианте была реализована передача на ПЭВМ с процессором 486 (транспортная станция), а не прямо на сервер.

Такое решение связано с несколькими факторами. Во-первых, надежность работы системы Windows, несмотря на многие ее преимущества перед DOS, несколько ниже, чем у последней, а неожиданная потеря информации чревата для коллектива завода не только моральными, но и серьезными материальными потерями. Кроме того, транспортная станция на основе старенького процессора дешевле, чем любой Pentium. И для создания комплекса не пришлось закупать нового оборудования для цехов и ВЦ по подготовке данных и передаче их на вычислительный центр.

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

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

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

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

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

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

Эдуард ТРОШИН


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

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

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

A и В - конечные множества. Обозначаем обобщенное произведение множеств А и В через М. Определим R как транзитивное и иррефлексивное отношение порядка во множестве М.

Когда не каждая пара элементов из М находится в отношении R, то последнее назовем частичным порядком, а множество М - частично упорядоченным множеством по отношению к порядку R (далее М, R).

Эквивалентность на множестве (M, R) условимся считать тривиальным равенством.

Итак, определение 1 гласит: Элемент m0 из М назовем нижней гранью в том случае, когда не существует такого элемента m1 в М, чтобы m1Rm0. Определение 2. Элемент m0 из М назовем верхней гранью в том случае, когда не существует такого элемента m1 в М, чтобы m0Rm1. Определение 3. Последовательность пар элементов из M: m1Rm2, m1Rm3, ..., m1Rmi-1, m1Rmi, m1Rm1 назовем циклом. Сокращенное обозначение для цикла: m1Rm2Rm3R...mi-1RmiRm1. Определение 4. Петлей называется частный случай цикла, когда имеет место для некоторого элемента m из М отношение mRm.

Теорема 2. В определенной ранее паре (M. R), обладающей свойствами иррефлексивности и транзитивности, нет циклов.

Теперь докажем эту теорему. Предположим, что существует циклическая последовательность элементов в М: m1Rm2Rm3R...mi-1RmiRm1. Из свойства транзитивности следует, что: m1Rm3...,m1Rmi-1, m1Rmi, m1Rm1. Последнее выражение: m1Rm1 противоречит свойству иррефлексивности. Таким образом и доказывается эта теорема.

Надо добавить, что таких теорем, только для создания своего программного комплекса, Валерию Анатольевичу пришлось доказать несколько. Эта предназначалась как раз для модуля корректировки ошибок.


С программированием Валерий Анатольевич Филиппович, герой нашего материала, познакомился еще в далеких шестидесятых - он закончил факультет прикладной математики в 1971 году и стал одним из первых белорусских дипломированных программистов. Где только за свою жизнь не довелось ему работать! В университете, в различных НИИ и даже в Москве. Долгое время Валерий Анатольевич трудился там, в филиале одного крупного отраслевого института Министерства станкостроительной и инструментальной промышленности. Профиль работы Филипповича был довольно разнообразным - вместе с коллегами занимался, как сейчас говорят, "сопровождением" систем автоматизированной подготовки управляющих программ для станков с числовым программным управлением и обрабатывающих центров машиностроения. И это отвечало направлению его подготовки в университете.

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

После длительной работы в московском филиале в Минске с частыми и длительными командировками в Москву Филиппович перешел в Институт технической кибернетики Академии наук, где участвовал в разработке нескольких проектов для предприятий Советского Союза.

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

Программы, которые делали он и коллеги, были, конечно же, востребованы заказчиками, но денег у последних в то время не было. В итоге фирма закрылась. Кем только не работал Филиппович после этого! Жизнь заставила его даже на некоторое время стать предпринимателем. И, как он говорит теперь со смехом, "крутился", покупал и продавал разнообразные товары. Но психологически ему, высококвалифицированному специалисту, стоять на рынке оказалось слишком сложно. Бросив все, наш герой устроился на Минский автозавод... охранником. А затем, разыскав свободную должность программиста на одном из вычислительных центров предприятия, перешел туда.

Версия для печатиВерсия для печати

Номер: 

11 за 2004 год

Рубрика: 

Software
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!