Vývoj elektroniky | 9. 9. 2015

Altium Vault – jeho filozofie

Mým úkolem v minulých letech bylo nasadit několik instalací Altium Vaultu v menších a středně velkých týmech. Sledoval jsem vývoj Altium Vaultu od jeho úplných počátků a myslím si, že se jedná o něco, co v našem oboru chybělo – řešení pro systematickou správu a archivaci dat celého týmu. Chtěl bych se proto podělit o své zkušenosti a názory na používání Vaultu v praxi, a to jak z technické stránky, tak i z hlediska fungování celého týmu vývojářů.

Altium Vault lze velmi zjednodušeně vnímat jako aktivní firemní úložiště/archiv dat vznikajících v Altium Designeru. Je to samostatný placený produkt, který byl poprvé představen v roce 2011 a od této doby se dostal do současné verze Altium Vault 2.5 (7/2015) [1]. Vývoj přinesl podstatná vylepšení ve způsobu i ergonomii používání. Základní principy zůstávají však stejné a především těm se budu věnovat. Začneme ale více obecně.

Setkal jsem se s názory, že Vault je něco obtížně uchopitelného a na webu je k němu mnoho materiálů, které neříkají nic konkrétního. Popsat v krátkosti, co je Altium Vault, je totiž náročné. Nejde o program typu „kliknu na tlačítko a dostanu nějaký výstup“ tak, jak to je v Altium Designeru. Jde o program zaměřený na správu dat, na vyplnění mezer vznikajících okolo Altium Designeru, když je použit v prostředí týmu. Musíme proto udělat odstup a zaměřit se na tým a jeho potřeby.

Správa dat [2], ke které je Altium Vault určen, se týká především postupů a pravidel. Není to pro většinu uživatelů Altium Designeru jednoduché ani oblíbené téma. Nejedná se totiž o úkol ani tak pro ně nebo pro firemní IT správce, jak by se mohlo zdát. Jde spíše o úkol pro vedoucí týmů, kteří by měli vytvořit fungující a jednoduše ovladatelnou infrastrukturu pro své kolegy. Tato infrastruktura musí být jednoduše použitelná s minimální údržbou. Navíc dostatečně flexibilní, aby dokázala podchytit všechny situace spojené s vývojem. Software je v něm pouze částí, která vše ukládá, zaznamenává a dokáže to zpětně rychle nalézt. Software jako takový však nedokáže správu dat podchytit bez plné podpory celého týmu, protože většina informací o datech není dostupná v elektronické formě. Například když se vývojář dozví, že poslední revize jeho zařízení není funkční, tak musí provést předem stanovené kroky, které jsou navrženy, s cílem předejít opakování chyby v budoucnu.

Obr. 1 Postup návrhu plošného spoje za použití Altium Vaultu

Správu dat v našem oboru tedy vnímám spíše jako styl přístupu k vývoji produktů. Styl s větším nadhledem, ne po jednotlivých projektech, ale s perspektivou dlouhodobě fungujícího týmu.

Vault vytváří centrální místo pro všechna data používaná pro vývoj plošných spojů. Jsou v něm uloženy schematické značky, footprinty, knihovny součástek, typizovaná schematická zapojení (Managed Sheets [3]), schematické šablony, soubory pro generování výstupů (OutputJobs [4]), zdrojová i výrobní data projektů a mnoho dalšího. Téměř všechna data vznikají v Altium Designeru, a poté jsou do Vaultu nahrána. Tím se uzamknou pro další úpravy. Ve Vaultu dostanou unikátní pojmenování a pak jsou zpět používána v Altium Designeru pro tvorbu vyšších celků. Ze symbolu a footprintu vznikne součástka, ze součástek schematický list (Managed Sheet), ze schematických listů a součástek vznikne projekt apod.

Obr.2 Příběh pracovníků Všichni, Někdo, Kdokoliv a Nikdo, kredit BPPM GmbH, www.heartofireland.eu

Tento postup dovoluje Vaultu sledovat, jaké vztahy mezi sebou data mají a tyto vztahy využít v podobě funkce Where Used [5]. Lze tedy snadno zjistit, ve kterém projektu byl například použit konkrétní driver spínaného zdroje přímo z knihovny součástek. Dále pak, že k němu existuje typizované zapojení Managed Sheet a vývojář tím pádem nemusí navrhovat a hlavně testovat zapojení znovu. Stejně tak lze využít vazby, když obdržíte zprávu z osazovací linky, že U16 na konkrétní desce má špatný footprint. Přímo ve Vaultu zjistíte, co je U16 v daném projektu za součástku, jaký používá footprint a provedete jeho opravu. Následně zjistíte, které další součástky tento footprint také používají, aktualizujete tyto součástky a jejich předchozí revize označíte za neplatné. Tím svým kolegům signalizujete existující problém a oni se vyvarují Vaší chyby. To je jeden z hlavních benefitů technologie Vaultu.

Jak se tyto problémy řeší bez odpovídající správy dat? Spoléháním se na disciplínu v týmu, paměť jednotlivých vývojářů nebo přesouváním zodpovědnosti na pracovníky Všichni, Někdo, Kdokoliv a Nikdo, viz obr. 2. Jak často k podobným scénářům dochází? Na to si jistě dokážete odpovědět sami podle svých zkušeností. Podle těch mých to bývají jednotky případů ročně. Nemusí se vždy jednat o fatální problémy, ale často i jedna chyba způsobí, že je nutné vydat novou revizi desky, a to, jak všichni víme, stojí především u složitějších projektů mnoho peněz a času.

Hlavním znakem Vaultu je organizace dat do položek [6], což je ekvivalent souborů na disku. Položka může získat jméno automaticky nebo ručním zadáním. Každá položka je však pouze úložné místo, kontejner pro revize dat. Položka je prázdná dokud se do ní nenahrají data, která založí první revizi [6]. Jakákoliv následná změna dat původní revizi nepřepíše, ale založí revizi novou s vyšším stupněm do stejné položky. Jakmile jsou data do revize jednou nahrána, tak není způsob jak je změnit. Potřebuje někdo v týmu upravit schematickou značku, aby odpovídala rozložení vývodů v novém datasheetu? Upraví existující značku a ta se uloží do stejné položky pod novou revizí. Staré projekty mohou dále používat značku původní, nové projekty značku novou. Žádné nepříjemné problémy vznikající postupnými úpravami knihoven. A ano, i ve starých projektech můžete rychle aktualizovat ze starších symbolů na nové, ale aktualizovaný projekt musí být opět vydán v nové revizi. Princip je takto snadný. Ve Vaultu je tedy zachována celá historie úprav, jednou nahraná data zde zůstávají navždy a není možné je upravit nebo doplňovat jinak než vydáním jejich nové revize.

Položky jsou ve Vaultu organizovány do adresářů/zón a podadresářů [7] stejně jako na disku. Tyto adresáře slouží k nastavování práv, automatického pojmenování a několika dalších věcí. Klíčové však je to, že pozice položky v adresářové struktuře není určující pro odkazování se na ni. Když se položky z Vaultu použijí (např. součástka LM555), tak jsou odkazovány přímo jménem položky včetně revize (LM555-V1.A), ale bez adresářové cesty (odkaz tedy není Knihovna\IO\LM555-V1.A, ale pouze LM555-V1.A). Díky tomu můžete položky mezi adresáři průběžně přesouvat podle potřeb, to ale nezpůsobí porušení odkazu na ni a adresářová struktura tak slouží jako flexibilní třídicí mechanizmus přizpůsobující se podle aktuálních potřeb. Na druhou stranu musí být volené jméno položky v celém Vaultu unikátní, čemuž napomáhá právě automatické pojmenování.

Další standardní vlastností ve Vaultu je, že každá revize (ne položka, revize) má vlastní stav [8]. Tento stav reprezentuje aktuálnost dat, zda se mohou nebo nesmějí používat, jakým stupněm kontroly prošla nebo i z jakého důvodu se nesmějí použít. Stavy tedy mohou být například Prázdné, Nahráno, Zkontrolováno, Chyba apod. Jejich úkolem je členy týmu informovat, kterou revizi použít, kterou ne a případně i automatizovaně, na základě hodnoty stavu, zakázat některé operace.

Obr. 3 Detail položky se zobrazením historie změn stavů u všech revizí

Stavy jsou plně uživatelsky definovatelné – text, barva, povolené přechody mezi stavy a kdo změny stavu smí realizovat. Změny stavů jsou přitom jediná změna dat, která nevyžaduje novou revizi. Každý přechod lze doplnit krátkou textovou poznámkou s vysvětlením dané změny (v čem je chyba, jakou součástku použít jako přímou náhradu, jak byla provedena kontrola apod.). Všechny změny stavů jsou zaznamenány včetně informací, kdo a kdy je provedl. Opět plná historie sloužící k pozdějšímu určení co a jak se stalo.

Opět bych nastínil scénář, jak revize a stavy mohou pomoci při běžné práci. Pro své zákazníky vyrábíte zařízení, postupně je inovujete tak, jak se mění dostupnost součástek nebo jak se mění požadavky trhu. RS232 vyměníte za USB, USB za Ethernet atd. Přijde Váš dobrý zákazník, který u Vás nakoupil před 5 lety, že potřebuje doplnit zásoby Vašich zařízení s RS232 přesně, jak bylo v době prvního nákupu. Bez dobře prováděné správy dat nastává obvykle panické prohledávání emailové schránky, aby se našla data, která se posílala v té době do výroby, vyptávání se kolegů, jak to asi tenkrát bylo, a následné hledání v archivovaných projektových souborech ty, které odpovídají tomu, co zákazník dříve obdržel. Časově náročným porovnáváním projektových dat s nalezenými gerber daty zjistíte, že v projektu někdo v pozdější době udělal úpravy a projekt ručně vracíte do původního stavu, možná se na nic nezapomnělo. Následně budete vzpomínat, které součástky už je nutné nahradit za aktuálně dostupné a které je ještě možné ponechat. Projekt ukládáte pod aktualizovaným jménem zpět do archivu. Snad jej v budoucnu někdo objeví, až bude potřeba, aby nemusel udělat stejné úkony znovu. Pokud by to ve Vašem případě nevypadalo až takto katastroficky, tak dobře pro Vás, umíte to lépe.

S Vaultem je každá revize dat automaticky pojmenována volitelným unikátním označením, které je vhodné mít součástí vlastního výrobku. Zjistili bychom tedy, že zákazník měl zařízení v revizi V1.3.B. Přímo ve Vaultu si prohlédnete seznam použitých součástek a jejich stavy. Tedy zda jsou stále aktuální, nebo jsou nutné náhrady. Pokud je nutná náhrada, tak si z Vaultu otevřeme zdrojová data tohoto projektu. Pomocí Item Manageru [9] v jednom kroku nahradíme součástky se špatnými stavy za jejich aktuální revize a doplníme potřebné změny v zapojení a na desce. Projekt nahrajeme zpět do Vaultu (Release projektu [10]), čímž se vygenerují nová výrobní data podle původního nastavení, které je součástí původní revize projektu a vše se uloží pod novou revizí V1.3.C.

Ano, je to extrémní porovnání, ale věřím, že jste podobnou situaci již zažili. Pojmenování položek, revizí, stavy i strukturu dat ve Vaultu si ještě projdeme v budoucnu podrobněji.

V rámci tohoto seznámení se s Vaultem bych ještě rád zmínil, že Vault je dostupný ve třech edicích, které bych v krátkosti popsal takto:

  • Component – knihovna součástek
  • Workgroup – knihovna součástek se správou projektů i výrobních dat
  • Enterprise – knihovna součástek se správou projektů i výrobních dat, rozšířené o možnosti pro realtime spolupráci týmu a funkce pro IT správu Altium Designeru pro velké počty instalací

Podrobné porovnání je v [11] a v Techdocs [12]. Ucelená správa dat vzniká až při použití edice Workgoup, edice Component je však vstup do světa správy dat, který lze s růstem týmu jednoduše zvětšovat. Všechny edice mají shodnou instalaci, dostupné funkce jsou určené použitým licenčním souborem. Upgrade na vyšší edici tedy spočívá v nahrání nového licenčního souboru, doplněním nastavení Vaultu a sestavením nových postupů pro nově zpřístupněné části Vaultu.

 

Petr Tošovský, Retry s. r. o.

www.edatools.cz

Zdroje:

[1] www.altium.com/altium-vault/whats-new

[2] techdocs.altium.com/display/DMAN/Design+Data+-Management

[3] techdocs.altium.com/display/DMAN/Releasing+a-+Schematic+Sheet+to+a+Vault

[4] techdocs.altium.com/display/ADOH/Understanding+and+Using+Output+Jobs

[5] techdocs.altium.com/display/DMAN/Where–Used+Capabilities

[6] techdocs.altium.com/display/DMAN/Items+and+Item+Revisions

[7] techdocs.altium.com/display/ADRR/EDesignData_Pnl–Vaults((Vaults))_AD#Vaults-OrganizingtheVault

[8] techdocs.altium.com/display/DMAN/Item+Lifecycle+-Management

[9] techdocs.altium.com/display/DMAN/Managing+Vault+Items+with+the+Item+Manager

[10] techdocs.altium.com/display/DMAN/A+Walk-+Through+the+Board+Design+Release+Process#A-WalkThroughtheBoardDesignReleaseProcess-Releasea-ConfigurationoftheDesign

[11] www.altium.com/altium-vault/licensing

[12] techdocs.altium.com/display/DMAN/Altium+-Vault+Licensing#AltiumVaultLicensing-Altium-VaultLicensingExplainedObr