Systém skladování a katalogizace elektronických součástek

Každý, kdo ve volném čase navrhuje a vyrábí různá zařízení, potřebuje mít nemalou zásobu elektronických a mechanických součástek. Já se dostal do stavu, kde začal být problém s jejich skladováním a katalogizací.

Dlouholetá zkušenost

Od počátku jsem neměl žádný systém na jejich třídění, protože mně při malém počtu vyhovoval sklad ve formě několika krabic s pytlíčky všeho možného. Problém ale nastal, pokud jsem v nějakou chvíli potřeboval konkrétní součástku, o níž jsem s určitostí věděl, že ji „někde“ mám. Ale kde? Po několika pokusech o její vyhledání byl cíl další cesty jasný… návštěva některého z dodavatelů a zakoupení nového kusu.

Jedná-li se o projekt, který je v procesu delší dobu, lze si BOM (Bill Of Materials) objednat u některého z distributorů (osobně používám Farnell – kvůli možnosti nákupu mnoha cizokrajných kusů, které v našich podmínkách jinak nelze sehnat; případně eBay/Aliexpress). Pokud ale potřebuji postavit něco ihned, lze narazit na nemalý problém. V případě pasivních součástek typu kondenzátor/odpor použijeme trochu matematiky a chybějící součástku „vyrobíme“ složením dostupného, ale s polovodiči to tak jednoduché není.

Úkol: vymyslet, co vlastně chci

Situace se s přísunem nových komponent stala neudržitelnou, a proto jsem se rozhodl využít prostředků moderní doby, nasadit katalogizační systém, a vytvořit systém skladování. Celou prvotní myšlenku jsem rozdělil do několika kroků:

  • Vybrat/vytvořit katalogizační systém,
  • vytvořit systém skladování.

Katalogizační systém

Pravda, zmínil jsem se o dlouholeté zkušenosti s krabicemi pytlíků, nicméně pro některé komponenty (povětšinou nářadí a mechaniku) jsem používal jeden z nejlepších vymožeností – Excel. Pro jednoduchou evidenci výborný nástroj, ale pokud si chce člověk ukládat datové listy, schémata a obrázky, je zde zakopaný pes – potřeba vytvoření vhodného úložiště s přesně definovanou a pevnou strukturou. Proto jsem chtěl něco, kde budu mít katalog a možnost přidávat datové soubory.

Podobných systémů určených pro skladové hospodářství je velké množství. V případě, že budu chtít vést seznam projektů, ke kterým budu alokovat příslušné zdroje, se dostávám do sféry velkých komerčních projektů. A jaké byly požadavky?

  • Přehledná grafická podoba se stromovou strukturou,
  • podpora drag-and-drop,
  • karta komponenty s možností zadání popisu, výrobce, typu pouzdra a příloh,
  • správa skladu – umístění,
  • databáze s neomezeným přístupem pro čtení i zápis,
  • datové soubory umístěné na diskovém prostoru,
  • pokud možno webový frontend neuzamykající uživatele na jedné platformě,
  • možnost vložení projektů a alokace příslušných komponent (BOM),
  • bez omezení počtu vložených objektů,
  • výhoda, ale ne podmínka, – Open Source.

Systém skladování

Jak skladovat elektronické součástky? Vcelku jednoduchá otázka, nicméně existuje nepřeberné množství možností, ze kterých je však možné vybrat to nejlepší a vytvořit jakýsi průnik řešení. Co ale od takového systému skladování očekávat?

  • Ochrana proti vlhkosti,
  • ochrana proti ESD (elektrostatický výboj),
  • sdružování podobných komponent do skupin,
  • jednoduchý, výstižný a nematoucí popis,
  • skladování nenáročné na místo.

Řešení: víceméně kompromis

Po zhruba týdenním přemítání, a zkoušení různých variant všeho možného, jsem ze všech víceméně povedených aplikací vybral PartKeepr, která je vyvíjena Timem A. Hummelem (felicitus). Jedná se o Open Source produkt, využívající MySQL (MariaDB)/PostgreSQL databázi PHP a framework Doctrine2. PartKeepr - mainZe všech požadavků zvládá vše bez problému + obsahuje další vlastnosti, které mohou práci se systémem ulehčit.

Instalace vyžaduje nakonfigurovaný databázový server, PHP a internetový server. Pokud je během konfigurace zjištěna neexistence některé ze závislostí (doctrine2, imagemagick, php-xsl), je správce okamžitě informován a je vyžadováno její doinstalování. Rozhodně není čeho se obávat – konfigurace je jednoduchá a rychlá. V mém případě používám vlastní virtuální server Arch Linux ve VMware Workstation. Frontend je navržen jednoduše a přehledně. Obsahuje vše co má – stromovou strukturu, seznam komponent v jednotlivých větvích, náhled na vybraný záznam a jednoduchou správu umístění.

A právě umístění komponent a sklad je dalším z kroků, které jsem musel nějakým způsobem vyřešit. Ve stručnosti, každá součástka musí být umístěna tak, aby ji bylo možno jednoduše vyhledat, a zároveň musí být splněny určité fyzikální podmínky pro její uchování. Fyzikálními podmínkami se rozumí hlavně ochrana proti vlhkosti, ESD a radiaci. V mém případě nemusím radiaci řešit, tedy maximálně UV záření, ale určitě nebudu nechávat citlivé součástky (zejména LCD a optické senzory) na přímém slunečním světle.

Absorber vlhkostiVlhkost je ale závažnější problém. Součástku nám, až na výjimky, nezničí, ale vzdušná vlhkost společně s kyslíkem působí na kontakty, které pomalu oxidují. Po nějaké době můžeme mít problém takovou součástku kvalitně zapájet na plošný spoj. Proto vzniklo množství doporučení a norem, jak součástky skladovat, chránit, detekovat vlhkost a následně se jí zbavit. Takovým příkladem může být IPC/JEDEC J-STD-033C. Indikátor vlhkostiObecně lže napsat, že je důležité zabránit průniku vzdušné vlhkosti k příslušné součástce a pokud se tak stane, použít některý z dostupných absorbentů vlhkosti. Při detekci vlhkosti se můžeme setkat s různými papírky obsahujícími barevné kapky chemických sloučenin. Pokud překročí vlhkost určitý práh, kapka/terčík změní barvu.

Vlhkost ale pravděpodobně součástku nezničí, ale připraví nás na zdlouhavý proces odstraňování oxidů z pájecích plošek. Elektrostatický výboj (ESD) má pro zejména polovodičové součástky likvidační účinek. Dochází k nevratnému „propálení“ PN přechodů. Na příslušné součástce opticky neuvidíme žádnou známku zničení, ale po zapájení nám zařízení nebude pracovat vůbec nebo omezeně. V dnešní době obsahuje velké množství produktů vnitřní ESD ochrany, ale já budu raději opatrný a laxní přístup přenechám jiným „kapacitám“.

Nástroje a materiál pro práci se součástkamiMůj systém uskladnění součástek je relativně jednoduchý. Součástky uchovávám v antistatických pytlíčcích se zajišťovacím otvorem (ZIP) a vloženým absorbentem vlhkosti. Jeden pytlíček na jeden typ (P/N, SKU). Nemixuji různé rozměry. Označuji lihovým fixem na fólie patřičným označením (ISO1540DR, EFM32GG942F1024-QFP64, LTC5510IUF#PBF, …) a identifikací umístění. Umístění rozlišuji dle určení součástky (IC-Audio, IC-MCU, Wireless-A, Wireless-L, …). Součástky a absorbent vlhkost umístěné v antistatickém sáčkuSkupinu součástek se stejným umístění ukládám do větších antistatických pytlíků s větším absorbentem a indikátorem vlhkosti. A to celé do papírových laminovaných krabic s popisem.

Tak, a to jsou vesměs polovodičové součástky. Sice mám několik malých plastikových boxů, které se běžně

pro součástky používají, ale u nich je problém s velikostí a umístěním v antistatických pytlech, ach ta cena…, a vlhkostí. Součástky v boxuNepožívám je ani pro pasivní komponenty SMD. Mám raději nastříhané a popsané pásky umístěné kde jinde než v pytlíku a krabici.

Co se změnilo?

Mám vlastní katalog obsahující spoustu příloh a logicky řešené uchování komponent. Samozřejmě nemusím mít obavu ze zničení vlivem nějaké události, kromě odcizení a ohně.

Poznámky

Začátky s PartKeepr

Přidání první součástky

Ve stromu Categories klikneme pravým tlačítkem myši na Root, vybereme z menu „Add Category“, novou kategorii vytvoříme a uložíme. Takto můžeme vytvořit celý strom kategorií. S výběrem vhodných kategorií jsem měl zpočátku problém, a využil jsem již hotového a vytvářím kategorie podle prezentací výrobců a distributorů:
http://www.ti.com/
http://www.digikey.com/product-search/en/integrated-circuits-ics
http://cz.farnell.com/semiconductors-ics
http://en.wikipedia.org/wiki/Electronic_component

PartKeepr - part - basicKategorie je vytvořena, jdeme vytvářet komponenty. K tomu slouží tlačítko „Add Part“ v části Parts List. Po výběru nám systém zobrazí dialogové okno s možností definice mnoha padametrů. V záložce Basic Data zadávám název, popis, počáteční počet (Initial Stock Level), komentář, umístění (Storage Location) a typ pouzdra (Footprint). Umístění a typ pouzdra můžeme bez uzavření dialogu definovat přes menu Edit v hlavním okně. Pro název a umístění volím takový text, který přepíšu na sáček s komponenty. Pro název používám P/N, SKU výrobce. Protože se mi několikrát stalo, že jsem měl několik stejných součástek od různých výrobců, vyplňuji kartu Manufacturers s přesným kódem příslušného výrobce (měl by být podobný názvu). Karta Attachments je pro mě jedna z nejdůležitějších. Zde přidávám katalogové listy, obrázky, doporučená schémata, S parametry a příručky. PartKeepr - part - attachmentsNe vždy na internetu dokumentace vydrží, ale v mém systému je pro ni místo vždy. Pokud výrobce dodává EDA CAD/CAE knihovny ve formát . bxl, tím lépe. Jedná se o univerzální datový formát, ve kterém bývají uloženy schématické značky a definice pouzdra pro návrh schémat a PCB (např. pomocí programů Eagle, Altium PCAD). Takže soubory .bxl přidávat vždy. A kde je stáhnout? Na internetových stránkách výrobců součástek (např. Maxim Integrated, Texas Instruments, Silicon Laboratories, Analog Devices). Bohužel ne všichni výrobci je poskytují. Pro konverzi do formátu našeho oblíbeného návrhového systému slouží aplikace Ultra Librarian.
Možná jedna poznámka, první obrázek mezi přílohami bude zobrazen v hlavním okně, v části Part Details příslušné součástky.

Kategorie

Práce se systémem PartKeepr je jednoduchá a intuitivní, ale není problém z počátku tápat. Nejdůležitější věcí, která uživatele nemine, je definice kategorií komponent. Vše záleží zcela na nás. Nicméně, pokud na začátku zvolíme špatný model, nic nebrání tomu jej časem přepracovat. Díky podpoře drag-and-drop můžeme jednoduše přemístit existující záznamy z jedné kategorie do druhé.
Zde je část mého stromu vytvořených kategorií:

SQL a datové soubory

SQL je opět jednoduchou záležitostí. Podmínkou je přístup na server, na kterém je spuštěn databázový systém a vlastnictví příslušných oprávnění. Veškeré tabulky mají logické názvy a strukturu.
MariaDB [partkpr]> show tables;

Příklad dotazu:

SELECT ALL Part.name, Footprint.name, Part.description, PartCategory.categoryPath
FROM PartCategory, Part LEFT JOIN Footprint ON Part.footprint_id = Footprint.id
WHERE Part.category_id = PartCategory.id
ORDER BY PartCategory.categoryPath;

S datovými soubory je situace jiná. Jsou umístěny v adresáři /data kořene našeho webového serveru. Názvy těchto souborů jsou při kopírování na server (přes rozhraní PartKeepr) změněny na formát podobný fb359cd0-7d73-48cd-9dc2-026e83888bab.pdf. Proto je při vyhledávání konkrétního souboru nutné zapátrat v SQL databázi.

Jaké součástky vybírat

V první řadě záleží na možnostech, jaké máme při výrobě a osazování PCB. Pokud si necháme plošné spoje vyrábět profesionální firmou, je možné vyrobit nejtenčí spoj s přesností 4 mils (mil je délková jednotka běžně používaná v elektronice, 1 mil = 1/1000 palce, 1 mm = 39,37 mils). Možnosti osazování jsou dány technickým zázemím a zkušenostmi.
Při výběru je nutné brát ohledy na cílový projekt. Bude provozován za extrémních podmínek (teplota, radiace)? Existuje několik řad komponent, které jsou cíleny pro vesmírný provoz, armádní účely, automobilový průmysl a spotřební elektroniku. Právě součástky určené pro automobilový průmysl musí splňovat velké kvalitativní nároky. Jsou odolné vůči extrémním teplotám a ESD. Důvod je logický, pokud se v automobilu porouchá řídící jednotka, může vzniklá situace způsobit újmy na majetku a hlavně životech. Pokud se nám to stane u televize nebo mobilu, nic podobného pravděpodobně nehrozí. Tyto součástky bývají označovány jako AEC-Q100 Qualified (u některých výrobců se v P/N, na rozdíl od ostatních řad, přidává písmenko Q).

Napsat komentář