При совместной работе в САПР печатных плат часто возникают проблемы с синхронизацией изменений в проектах. Кроме этого, определенные трудности может вызвать обеспечение общего доступа к необходимым для работы с проектом библиотекам компонентов и файлов данных. Altium Vault Server (AVS) позволяет легко управлять процессом работы с проектами, отслеживая актуальность версий входящих в него файлов, разграничивая права пользователей и обеспечивая централизованное хранение библиотек компонентов.
При совместной работе в САПР печатных плат часто возникают проблемы с синхронизацией изменений в проектах. Кроме этого, определенные трудности может вызвать обеспечение общего доступа к необходимым для работы с проектом библиотекам компонентов и файлов данных. Altium Vault Server (AVS) позволяет легко управлять процессом работы с проектами, отслеживая актуальность версий входящих в него файлов, разграничивая права пользователей и обеспечивая централизованное хранение библиотек компонентов.
При разработке конструкторской документации инженерам приходится работать с большим количеством различных документов и файлов. Например, проект печатной платы в САПР Altium Designer включает, помимо основных файлов схем и плат, набор файлов для производства и сборки и комплект чертежей. Файлы проекта постоянно изменяются, при этом пользователи, работающие над проектом, могут не знать обо всех изменениях в файлах проекта. Это может привести к ошибкам, например, несоответствию платы и последней версии схемы или gerber-файла для производства и последней модификации платы, не говоря уже о таких случаях, когда и схема, и плата остались недоработанными. Большинство существующих САПР позволяют выполнять различные верификации и синхронизации проекта, однако эти процедуры не могут запуститься без команды пользователя; если он забудет выполнить проверку или проконтролировать ее запуск, то, скорее всего, в проекте возникнет ошибка. Цена исправления этой ошибки может сравниться со стоимостью всей разработки!
Начиная с 13 версии Altium Designer, все файлы проекта хранятся на централизованном сервере AVS [1]. Мы рассмотрим основные преимущества этого подхода и процесс регистрации проекта в AVS, не касаясь вопросов непосредственной работы над проектом и схемой в Altium Designer, которые подробно рассмотрены, например, в [2]. Для начала работы с AVS необходимо создать проект. Этот процесс описан в [1, 5]. Компоненты, которые хранятся на сервере, доступны в панели Vault (а не Libraries, как обычно), которая вызывается из раздела System в правом нижнем углу окна прграммы (рис. 1а). В этой панели выбирается нужный сервер (DXP → Preferences → Data Management → Vaults, рис. 1б). В нашем примере выбран сервер RODNIK; в общем случае, к проекту можно подключить несколько серверов. Далее в дереве проектов следует выбрать нужную библиотеку (рис. 1в) и нужный компонент из списка (рис. 1г). Для добавления компонента на схему необходимо в его контекстном меню (правая клавиша мыши) выбрать Place (рис. 1д). Дальнейшая работа с компонентами и создание схемы выполняется так же, как и при работе без AVS. Специфичные для работы с хранилищем действия выполняются только тогда, когда работа над проектом завершена и его необходимо поместить в хранилище. Предположим, что наш проект готов. В САПР Altium Designer завершенный проект получает статус Release (выпуск). Перед помещением в хранилище проект нужно зарегистрировать, т.е. указать место его хранения и некоторые дополнительные правила. Для этого нажатием на соответствующую пиктограмму (рис. 2) следует открыть окно с маршрутом выпуска проекта платы (PCB Release View, рис. 3). Выпуск проекта начинается с создания так называемой конфигурации, в которой задаются состав пакета документации и выходных файлов проекта и уровень его проверки. Различные конфигурации позволяют проводить итерации одного проекта –это может быть, например, разработка опытного образца или серийного продукта. Чтобы создать конфигурацию, необходимо щелкнуть левой клавишей мыши на названии проекта или его конфигурации (на рис. 3а: Test – название проекта, 1 Configuration – название конфигурации). В открывшемся окне Configuration Manager for... необходимо задать название конфигурации и указать файл .Outjob, который будет использоваться в данной конфигурации (рис. 4а). В описываемом примере имеется всего один файл Test.OutJob, он же и выбран. В этом файле указано, какие документы необходимо создать и какие проверки должны проводиться. Иными словами, этот файл управляет выпуском проекта. Ниже мы расскажем о нем подробнее. Независимо от настроек конфигурации, в этом же окне выполняется регистрация проекта в хранилище. Для этого указывается нужное хранилище (рис. 4б) и создается новый объект (Item) хранилища (рис. 4в). При создании нового объекта рекомендуется выбрать подходящую для этого папку, так как каждая папка в хранилище имеет свое назначение. Конечно, можно создавать и общие папки, не присваивая им никаких статусов, но гораздо удобнее указать, какие именно объекты будут храниться в папке. В описываемом примере была выбрана папка Project (рис. 4г) и в нее добавлен объект ItemID = Test со свойством Contetnt Type = Altium-pcb-design, т.е. проект печатной платы (рис. 4д). Здесь же можно задавать ограничения и указывать пользователей для совместной работы (рис. 4е). После того, как заданы все параметры, необходимо последовательно закрыть все диалоговые окна и продолжить работу с маршрутом (см. рис. 3). Зачастую с более-менее сложными проектами работают несколько человек. Это могут быть специалисты как в разных прикладных областях (например, конструктор делает плату, а разработчик – схему), так и в одной (топологию одной платы могут разрабатывать несколько инженеров-конструкторов). В таких случаях необходимо обеспечить многопользовательскую работы над одним проектом. Наиболее удобным инструментом для реализации такой возможности является система контроля версий [3]. Программа Altium Designer имеет встроенный интерфейс для работы с такими системами и позволяет отслеживать версии документов при совместной работе над проектом [4]. Однако бывает так, что пользователи, внеся изменения в своей части проекта, не вносят эти изменения в общий проект на сервере. При работе с AVS эта проблема решается так: при передаче проекта в хранилище в окне PCB Release проверяется актуальность версий всех файлов, входящих в проект (рис. 3б). В рассматриваемом примере указан статус Not in VCS, т.е. данный проект не проверяется системой контроля версий. Если проект готов, для него создана хотя бы одна конфигурация с указанием настроек регистрации проекта в хранилище и он (необязательно) зарегистрирован в системе контроля версий, можно запускать процесс передачи проекта в хранилище, или, применяя терминологию Altium, выпускать проект. Перед этим его состояние нужно сменить с Design Mode (режим разработки) в Release Mode (режим выпуска, рис. 3е). После этого можно самостоятельно выполнить все этапы выпуска проекта (рис. 3г, д, ж), либо же сразу запустить процедуру Commit Release (рис. 3ж), которая автоматически выполняет следующие шаги: Контроль версий (Checkout Snapshot). Перед передачей проекта в Vault нужно убедиться в том, что версии всех файлы проекта актуальны и проверены системой контроля версий. Это обеспечивает соблюдение важных требований – сохранения текущей версии всех файлов проекта и фиксации изменений в системе контроля версий. При этом стоит помнить, что в системе контроля версий регистрируется вся папка с проектом, поэтому не рекомендуется хранить в ней файлы, не относящиеся к проекту. Проверка проекта (Validate Design) на соблюдение правил, которые ранее были заданы в файле .Outjob и указаны в настройках конфигурации [4]. Проверяются схема (ERC – Electrical Rule Check), плата (DRC – Design Rule Check), синхронизация между платой и схемой и посадочные места. Если хотя бы один пункт проверки завершается неудачей, процесс выпуска проекта прерывается. Генерация выходных файлов (Generate Outputs) – формирование выходной документации описанной в файле .Outjob. В соответствующих разделах хранилища сохраняются чертежи, отчеты и файлы для производства. Выпуск проекта (Commit Release) – сохранение проекта в хранилище. Изменение сохраненной версии проекта в состояние Release Mode невозможно, пока проект не переключат в Design Mode. После выполнения всех этапов создается отчет о полученных из проекта файлах (рис. 5), а сами файлы вместе с документацией сохраняются на сервере. Стоит отметить, что процесс передачи проекта в хранилище выполняется только в том случае, если в файле .OutJob указаны документы, которые нужно создать, и пройдены заданные там же проверки. Файл .OutJob создается командой меню File → New → Output Job File. В структуре проекта появляется новый документ с тремя областями: выбор варианта для вывода документации (в тех случаях если разрабатывается многовариантный проект, рис. 6а); выбор документа, отчета, проверки или файла для станков с ЧПУ (рис. 6б); выбор формата в котором должен быть сохранен нужный документ или отчет (рис. 6в). В иерархическом списке (рис. 6б) документы разделяются по типам. Наиболее интересная группа здесь – Validation Outputs, в которую можно добавить отчеты ERC, DRC и синхронизацию и задать параметры для каждого из этих отчетов. Эти отчеты нужны для выполнения проверок; кроме этого, их можно использовать и самостоятельно для унификации работы с проектами, т.е. КД выпускается и проверяется на всем предприятии с помощью единого файла .Outjob. В заключение перечислим основные преимущества, которые дает использование AVS пользователям, долгое время работающим с Altium Designer и хранящим результаты работы на общих сетевых ресурсах или локальных дисках. Централизованное хранение в базе данных. Библиотечные элементы и проекты, а также все что к ним так или иначе привязано, будут храниться в базе данных с удобным интерфейсом – панелью Vault. Все объекты, хранящиеся в этой базе, имеют уникальные идентификаторы и распределяются о папкам с определенными свойствами: например, файл схемы нельзя сохранить в папку с библиотеками. Администрирование сервера. Администратор AVS создает пользователей и их группы, а автор проекта указывает тех пользователей и группы, которые имеют права на совместную работу с проектом. Все изменения, вносимые пользователями в библиотеки или проекты, персонифицированы, т.е. выполняются пользователем только после авторизации в системе. Это позволяет контролировать процесс работы и ее результаты. Автоматизация проверок, синхронизации и выпуска документации. При выгрузке проекта в хранилище он проходит ряд проверок на целостность и актуальность данных. Если выяснится, например, что в схеме есть неутвержденный элемент или на плате не хватает элемента, который есть в схеме, то такой проект не будет сдан в хранилище, а соответствующий комплект документации не будет создан. Доступ через web-интерфейс. Для доступа к проекту необязательно иметь установленную копию Altium Designer. Проект можно просмотреть через web-интерфейс, доступный по адресу вида http://server:9780, где server – имя сервера в сети, а 9780 – номер порта, на котором работает AVS. Литература Сабунин А. Altium Vault – первое знакомство. – Электроника: НТБ, 2013, №3. Сабунин А.Е. Altium Designer. Новые решения в проектировании электронных устройств. – М.: Солон-Пресс, 2009. http://ru.wikipedia.org/wiki/Subversion Сабунин А., Худяков С. Altium Designer 10: Многопользовательская работа с использованием системы управления версиями SVN. – Современная электроника, 2013, №1. Altium Vault. Создание библиотеки компонентов. – https://www.youtube.com/user/SabuninAlexey