Я работаю в Altium. Илья Левин о хобби, ЕСКД, автоматизации и стремлении изменить к лучшему всю индустрию

0
318

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

Контакты Ильи: Telegram, Linkedin.

Детство

Я родился в небольшом городе Копейске в Челябинской области. Всё детство мы с братьями собирали металлические конструкторы, гоняли на машинке с педалями по двору, играли с отцовской техникой – от фотоаппаратов до печатных машинок.

Естественно, вся техника сначала разбиралась и не всегда собиралась в том же виде обратно. Мне было около 6 лет, когда я увидел на полке красную коробку с надписью BASF. Оказалось, что папа приобрёл диковинное по тем временам устройство – компьютер на базе процессора i286, а в той коробке были 5-дюймовые дискеты. Так началось моё знакомство с этой удивительной техникой.

Я работаю в Altium. Илья Левин о хобби, ЕСКД, автоматизации и стремлении изменить к лучшему всю индустрию

Правда, подпустили меня к компьютеру только через несколько лет, и это был уже Pentium I. Помню, как мы зачем-то делили HDD объёмом 60 Мб на три логических диска; как записывали архив с игрой на нескольких дискетах, чтобы поделиться ею с приятелями; как мы с братьями забирали шарик из мышки друг у друга. Помню и матричный принтер Epson LX-800, который, кстати, до сих пор работает.

Чуть позже у каждого из нас появился свой собственный ПК. Мой первый был на базе AMD, без корпуса; материнская плата и блок питания лежали просто на подоконнике. Как-то раз я спалил редкий процессор Athlon, потому что забыл подключить кулер.

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

В школьные годы компьютеры были всегда рядом; видно было, как развиваются технологии – от MS-DOS к Windows, 3.11, 95, 98, Me. Затем появилось ядро NT, которое с трудом устанавливалось на старые машины. LCD-мониторы очень быстро вытеснили ЭЛТ, а USB – COM- и LPT-порты. В мышках вместо шарика появились ИК- и лазерные сенсоры. Казалось, технологии несутся вперёд, и что их не догнать.

Учёба в вузе

В 2006 году, окончив школу, я решил поступать в лучший вуз области – Южно-Уральский государственный университет. Как оказалось позднее, выбранный приборостроительный факультет был одним из сложнейших в университете.

Я работаю в Altium. Илья Левин о хобби, ЕСКД, автоматизации и стремлении изменить к лучшему всю индустрию

Так выглядела табличка нашей кафедры все 5 лет моей учёбы. Обучение было довольно академическим: теории, коллоквиумы, практики, байки, лабораторные. Все преподаватели с большим возрастом и опытом. Теория в электронике меняется не быстро, поэтому многое из изученного пригодилось в будущем. На лекциях по химии нам показывали водородные бомбы, на физике – волновые процессы в p-n переходах.

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

Первая работа

На пятом курсе обучения нужно было выбрать предприятие для прохождения преддипломной практики и написать сам диплом. Я выбрал завод, который находился ровно между моим домом и университетом. На кафедре предприятие одобрили, и в ноябре 2010 года я фактически устроился на работу – в ОАО НПО “Электромашина”, техником на полставки, с зарплатой 3750 руб./месяц. Но уже с января 2011 стал полноценным сотрудником завода, с полным окладом.

Я работаю в Altium. Илья Левин о хобби, ЕСКД, автоматизации и стремлении изменить к лучшему всю индустрию

Вот так выглядело моё первое рабочее место. Меня распределили в группу конструкторов печатных плат при конструкторско-технологическом центре. В ней были довольно опытные возрастные конструктора печатных плат, которые имели много опыта в проектировании ещё на бумаге, а затем, с появлением САПР, и на компьютере. В тот момент они проектировали в P-CAD 2006, но имелся и большой задел плат, разработанных ещё в P-CAD 4.5.

Помню, как ведущий инженер-конструктор, не веря, что я добровольно пришёл к ним на работу, спросил: “Тебя кто-то заставил?”. Однако моя задача на тот момент была довольно проста – написать диплом и закончить высшее образование, поэтому ни оплата, ни условия труда меня особо не волновали.

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

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

Я работаю в Altium. Илья Левин о хобби, ЕСКД, автоматизации и стремлении изменить к лучшему всю индустрию

Это была моя первая печатная плата, разработанная в P-CAD 2006, – плата с многосекционными индикаторами. Я раньше никогда не сталкивался с подобными программами: какие-то синие нитки связей, всё перепутано, всё пересекается, обратный слой, переходные отверстия.

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

Начало карьеры

Через полгода закончилось обучение в ВУЗе, я получил диплом и почётную должность инженера-конструктора 3 категории. Дальше началась основная трудовая деятельность в конструкторском отделе.

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

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

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

Переход с P-CAD на Altium

Через некоторое время мы одновременно с P-CAD 2006 стали использовать Altium Designer (тогда – в версии Summer 09), поскольку он имел корректный импорт имеющихся плат, схем и библиотек. Было решено постепенно переходить на это ПО. Но у нас не было ни базы, ни знаний, ни опыта работы с этим ECAD. Всё изучалось постепенно и пошагово, благо что весь функционал был интуитивно понятным, тем более что по сравнению с P-CAD Altium казался чем-то прогрессивным, новым и целостным. Главным было то, что проекты становились теперь полностью связанными – схема являлась частью проекта, и любое изменение на ней можно было без лишних движений отразить на плате и наоборот.

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

Иногда принципиальные схемы были и такими
Иногда принципиальные схемы были и такими

Молодым конструкторам переход дался относительно просто, в отличие от опытного состава. Но постепенно все конструктора всё же перешли на Altium Designer. Чего не скажешь про многочисленные схемотехнические отделы, которые порой запускали в работу принципиальные схемы очень низкого качества. Иногда даже совсем в неприемлемом формате, с цепями в виде линий. Конструктора плат имели больше компетенции в разработке целостных проектов, чтобы всё было связано, поэтому схемы часто обрабатывались уже по ходу разработки печатной платы.

В процессе перехода необходимо было перевести все имеющиеся платы в Altium Designer, поэтому мне удалось поработать ещё и в P-CAD 4.5, чтобы сначала перевести их в 2006, а затем уже в Altium. Со временем эта работа всё больше поручалась вновь приходящим студентам, поэтому процесс по полному переводу в Altium Designer всего архива плат так до сих пор ещё и не завершён.

Документация

Когда люди слышат комбинацию букв ЕСКД, у некоторых начинает дёргаться глаз, всплывают неприятные воспоминания и негативные эмоции. Моё отношение к ЕСКД довольно позитивное: это хотя бы какая-то систематизация требований при формировании всей документации на всех предприятиях.

ЕСКД по сути должна унифицировать подходы в КД, чтобы все предприятия могли общаться между собой на одном языке при обмене документацией. Поэтому идея единой системы хорошая. А вот с реализацией, как всегда, беда. Как правило, трудности возникают, когда на предприятии требуют излишне досконально исполнять все ГОСТы. При этом резко возрастает трудоёмкость создания такой документации, тем более с применением современных САПР. ЕСКД должна быть отправной точкой, неким ориентиром общей концепции документации, а дальше уже должны приниматься местные упрощения, стандарты и инструкции для того, чтобы не затягивать выпуск документации.

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

Типовой пример чертежа печатной платы
Типовой пример чертежа печатной платы

Мы же уже имели собственные стандарты оформления, но, поскольку работали с военными представительствами, то ЕСКД были вынуждены исполнять исключительно дотошно. Почти вся документация оформлялась в “Компасе”. К нам приходили бумажные перечни элементов, и из них спецификация заполнялась вручную каждой строчкой, с ручным подсчётом количества, ручной сортировкой и переносами.

Чертежи плат оформлялись экспортом из Altium Designer через DXF, с кучей костылей через замену отверстий на условно графические значки. Затем вручную накладывалась координатная сетка, делались все виды платы и вручную размещалась таблица отверстий.

Хобби, ставшее прорывом

Как-то, сидя в субботу на работе, я наблюдал, как конструктор тратил весь день, чтобы создать в “Компасе” чертёж печатной платы. Прилежно делая тот самый экспорт в DXF, затем запуская небольшую программу по замене отверстий на значки, потом импортируя в “Компас”, раскладывая на слои и так далее. Разработка одного чертёжа занимала около 8 часов. И это в субботу, когда никто не звонит с вопросами, когда нет срочных задач. В то время в Altium Designer не было совершенно никаких способов изменить ситуацию. Шёл 2013 год.

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

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

Через несколько месяцев разработки – и дома, и по вечерам на работе, и на выходных – появилась версия скрипта, которую можно было показать коллегам, и которая уже могла оформить чертёж внутри Altium Designer. Более предметно и подробно процесс создания я описывал на Хабре.

В итоге почти через год мы полностью отказались от “Компаса” для разработки чертежей плат. Все наши чертежи в Altium поддерживали обновление при изменении топологии, всё проходило и нормоконтроль, и военных представителей.

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

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

“Главкон” и BoardAssistant

Однажды мне на почту пришло письмо от компании “Главкон” с предложением о сотрудничестве. На тот момент ребята занимались похожей автоматизацией выпуска документации в Altium Designer, только упор был на текстовую документацию и работу с базой элементов. Им для полноты картины как раз не хватало конструкторского модуля разработки чертежей, а у меня был опыт разработки подобного решения.

Поэтому мы с нуля разработали уже на c# полноценный конструкторский модуль, который включает в себя не только инструменты разработки чертежа платы, но и сборочного чертежа. В итоге получился единый комплексный продукт. Через некоторое время этим продуктом и стало решение для Altium Designer — BoardAssistant, который мы до сих пор поддерживаем и развиваем.

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

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

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

Потолок в развитии

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

В 2016 году я получил должность ведущего инженера-конструктора. В тот момент я уже долгое время закрывал все вопросы, связанные с Altium Designer: по его работе, внедрению, всей базе элементов, практически всему, что связано с печатными платами – от разводки до заказов плат у производителей. Я решал вопросы и со сборкой, и с наладкой, и с тестированием, и с проверкой документации, и всё меньше и меньше занимался той самой разработкой топологий печатных плат.

Я работаю в Altium. Илья Левин о хобби, ЕСКД, автоматизации и стремлении изменить к лучшему всю индустрию

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

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

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

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

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

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

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

Джунгли зовут

В феврале 2019 года я приехал в Москву. Каменные джунгли оказались довольно сильным потрясением после 8 лет работы на одном режимном предприятии. Моё резюме нашла компания НВП “Болид” и пригласила на работу. Здесь было всё новое, включая задачи. Руководство предприятия поставило задачу максимальной автоматизации конструкторского отдела и производства, позволив мне предлагать и внедрять любые средства и методы, которые бы ускорили проектирование и сборку печатных плат.

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

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

Я работаю в Altium. Илья Левин о хобби, ЕСКД, автоматизации и стремлении изменить к лучшему всю индустрию

В итоге сегодня оператору достаточно отсканировать 2D-код с печатной платы, в котором содержится уникальный ID платы, и Altium Designer скачает из PDM-системы проект, откроет его и автоматически отобразит на панели всю комплектацию, которая была установлена конкретно на эту плату.

А надо сказать, что в документации у нас закладывается комплектация на 150% BOM, что означает наличие множественных замен почти у всех компонентов. Но внутри PDM-системы на каждую конкретную плату можно получить уже 100% BOM с реально установленными на неё элементами.

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

Затем для упрощения работы конструкторов был внедрён максимально лёгкий способ создания документации на плату с использованием Draftsman. Была разработана библиотека с фотографиями компонентов и отображением их при сборке по Altium Designer; внедрён умный поиск по всей базе элементов с отображением применяемости по всем документам и приборам; создан интегратор для PDM, позволяющий отправлять проекты на сервер, и многое другое.

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

И ещё проекты…

Но и это ещё не всё. В 2020 году ко мне обратилась голландская компания Sintecs с запросом о создании плагина для модуля Mentor HyperLynx. Задача была в том, чтобы дать возможность пользователям Altium Designer применять в HyperLynx моделирование своих разработок без лишних настроек, без подготовки и настройки файлов.

Я работаю в Altium. Илья Левин о хобби, ЕСКД, автоматизации и стремлении изменить к лучшему всю индустрию

Так появился плагин HyperLynx Connector, который добавили в глобальные Extension для пользователей Altium по всему миру. Этот плагин даёт возможность бесшовного взаимодействия HyperLynx и Altium с поддержкой параметров компонентов, указания IBIS моделей к ним, дифференциальных пар и полного стека печатной платы в соответствии с файлом печатной платы.

Я работаю в Altium. Илья Левин о хобби, ЕСКД, автоматизации и стремлении изменить к лучшему всю индустрию

Ещё один проект – бесплатный плагин BoasTools (о нем рассказывали в нашей статье «Плагин PCB BoasTools, расширяющий возможности Altium Designer«), который мы сделали с расчётом на глобальное распространение. В нём мы применили лучшие свои наработки в плане визуальной идентичности с интерфейсом Altium Designer и принципа модульности – каждый отдельный инструмент внедрён отдельным элементом в проект разработки плагина.

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

В заключение

Проектирование электроники – это особый вид искусства. У каждого свои инструменты, свои техники работы и у всех получается свой уникальный результат. Эта область деятельности настолько обширна, что каждый день можно узнавать что-то новое не только об инструментах САПР, но и о технологиях производства, моделировании, одновременной командной работе, веб-интерфейсах, серверных возможностях и многом другом.

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

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