AltiumのDbLibサポートは、電子部品とそのデータを管理するためのAltium Designerの最も古くからある、そして最も愛されている機能の一つです。オームの法則の存在を理解する前から、ソフトウェアの世界に存在していました。現在、Altium 365が新しいプロジェクトの作成や管理の新モードとなり、設計チームはプロジェクト、ライブラリ、部品データ、製造データをホストして共有できる安全なクラウド環境を利用できます。
部品データについては、Altium Designer 20.1に新しいComponent Sync機能が含まれており、ほぼ任意のデータベースやデータベースライブラリをAltium 365と同期させることができます。ここで提示された同じアイデアは、安全な環境でのオンプレミス展開のためのConcord Proにも適用されます。DbLibsが何であるか、どのように機能するか、何を達成するのに役立つか、そしてAltium 365とどのように統合するかについて議論します。ネタバレ注意:それは驚くほど簡単です。このガイドは、経験豊富なDbLibsユーザーと初心者の両方に適しており、Altiumのドキュメントと合わせて、成功した統合に必要なすべてを含んでいます。もはや関連性のない過去のアプローチをすべて飛ばし、新しい技術にのみ最初に飛び込みます。
DbLibsに馴染みがない場合、これが簡単な紹介となります。
Altium Designerは、多数のファイルベースのライブラリ形式をサポートしています:PcbLib、SchLib、LibPkg、IntLibs;PcbLibsはフットプリントを含み、SchLibsはスキーマティックシンボルとPcbLib内のフットプリントへのリンクを含み、IntLibsとLibPkgは複数のライブラリを統合することをユーザーに許可します。
平均的なAltiumユーザーが前述の種類のライブラリに慣れていると仮定すると、関係データベースの類推を使用して、それらのデータ構造に少し深く潜ることができます。
我々はSchLibを、Excelスプレッドシートに類似したデータベーステーブルのように想像することができます。テーブルの各行は1つのコンポーネントで、その名前によって識別されます。そのようなテーブルには多くの列があります:1つはスキーマティック図面のためのもの、1つは「コメント」フィールドのためのもの、1つはデザイネータのためのもの、そして我々の電子部品の各パラメーターのためのもの、例えば「電圧」や「温度」など。
同じ類推の下でのPcbLibは、類似したが単純化されたテーブルであり、「名前」列、説明、私たちのフットプリント図面、そしてそれ以上のものはほとんど含まれていません。
SchLibはPcbLibを指す必要があります。これらは通常、リレーショナルデータベースでは外部キーと呼ばれますが、やや専門的な用語に馴染みがない場合は、クリックすると適切なフットプリントが開くハイパーリンクと考えることができます。
追加で検討できる列には、データシート、アプリケーションノート、RoHS準拠声明、およびAltiumの統合された混合シミュレーション環境で使用するシミュレーションデータなどの文書があります。
比喩を完成させるために、LibPkgは私たちの全てのテーブル(またはExcelスプレッドシート)のリストであり、IntLibsはデータベースの圧縮エクスポートであり、それを必要とする誰とでも共有する準備ができています。
DbLibsはこの精神的な概念を現実にする機能であり、Altium Designerを任意のODBC互換データベースに接続できるようにします。
Altiumは1つまたは複数のデータベーステーブルを読み取り、それぞれが別のSchLibファイルとして機能します。テーブルの各行はDbLibのコンポーネントになります。基本的なコンポーネントパラメータを定義し、Altiumを適切なSchLibおよびPcbLibファイルに指すために使用されるいくつかの標準列があり、通常は1つの回路図シンボルまたはPCBフットプリントのみです。
DbLinkはDbLibsと似ていますが、内蔵された回路図シンボルやPCBフットプリントを持たず、外部のファイルベースのライブラリに依存し、既存の電子部品とのパラメータ同期に限定されます。
DbLibsはその柔軟性において驚異的です。そのため、類似の機能を有効にするために他のソフトウェアハウスが法外な価格を請求するのも不思議ではありません。なぜなら、それらはコンポーネントライブラリを既存のエンタープライズシステムに深く統合することを可能にするからです。
Altiumは一つの固定構造テーブルのみをサポートしていますが、そのテーブルがどのように作成されるかに制限はありません。どの現代のリレーショナルデータベースもデータベースビューを作成することを許可しています。ビューは、SQL言語で書かれた指示に従って、データベースによって動的かつ自動的に作成される仮想テーブルです。
データベースビューの最も典型的な例は、二つの異なるテーブルを結合することです。例えば、標準DbLibsを含むテーブルAと、電子部品の外部ドキュメントを含むテーブルBがあると仮定すると、次のようなクエリでビューを作成することによってそれらを結合できます:
SELECT * FROM A LEFT JOIN B WHERE “Part ID” = “Part ID”
ETL(抽出、変換、ロード)プロセスと呼ばれるものを通じて、任意のソフトウェアをAltium DesignerのライブラリにDbLibsを介して接続することが可能です。
無数の企業がETLソフトウェアとサービスを提供しており、しばしば、わずか数行のPythonで多くの作業を達成できます。
構造化された企業で働いている場合、R&D部門はサンプル電子部品の小規模倉庫を運営しているかもしれません。各部品には棚と箱番号があります。
小規模倉庫は、Excelスプレッドシート、Microsoft Access、またはPartKeeprのようなオープンソースソフトウェアなど、同様に軽量なソフトウェアによって管理される可能性が高いです。
Altium DbLibsをR&D倉庫と統合することで、開発を大幅に加速させることができます。ボードに追加したばかりの部品が思っているものか、またはコネクタのサイズをすばやく確認したいですか?ただダブルクリックして関連するパラメータを読むだけです。同様に、このような統合により、電子部品の棚と箱をBOMに直接リストし、Altium OutJobファイルからワンクリックで紙に印刷することができます。
Altium Designer環境の外で編集したいかもしれない最も重要なパラメータの一部は、各部品のメーカーとメーカー部品番号です。
パッシブ電子部品は、例えば、市場の変動、製品の製造国、EMS接続に応じて、10uF 16V 0603キャパシタの異なる部品番号を頻繁に追加する必要がある場合があります。Altiumのネイティブ機能とOctopartの統合は、エンジニアがこれらの電子部品を迅速に選択するのに大いに役立ちますが、一部の企業では、プロセスが必然的に専門部門を経由しなければならない場合があります。
防衛および航空宇宙企業は、データ漏洩を避けるためにインターネットアクセスのないファイアウォールの背後で作業する必要がある場合があり、その場合、AltiumのOctopart統合を特別なソリューションに置き換える必要があります。
これらの場合、Altium Designerの外で製造元と製造元部品番号のパラメータを編集することが有利であり、Active BOM、Draftsman、およびAltiumのExcelテンプレート機能を活用して詳細なBOMを生成することができます。
多くの企業は、生産およびプロトタイピングのために、内部でピック&プレースラインを運用しています。
P&Pは重いカーテシアン機械です:それらは特定の点でコンポーネントを選択し、XYオフセットと回転に基づいて、同様のXYオフセットと回転に基づいて別の点に移動します。
これらのパラメータのいくつかは、異なるボードで変化します。最も有名な例は、ボード原点に対するコンポーネント中心であり、EMSに提供する必要があるP&Pを構成します。他の値は、リール内の部品間の距離や電子部品のデフォルトの回転など、特定の部品番号でのみ変更されます。
多くのP&Pラインは、すべての電子部品のデータベースを保持し、操作を簡素化するために独自の管理ソフトウェアを実行しています。市場投入までの時間を短縮するため、多くの企業はPCB設計が進行中であってもこれらのパラメータの設定を開始します。この目的のために、ピックアンドプレース管理ソフトウェアはAltium DbLibsと統合され、Altiumのすべての環境で使用できます。
これらの値は、Altium Active BOM、ODB++エクスポート、またはDraftsmanテーブルなど、電子部品パラメータをサポートする任意のAltium機能にエクスポートできます。
私が水ポンプ用のパワーインバーターの主要メーカーで働いていたとき、会社は多くの他の企業と同様に、カスタム開発されたERPソフトウェアで運営されていました。このソフトウェアは何十年にもわたる無数のアップデートを生き延び、デジタルアーキテクチャの最も美しい作品ではありませんでしたが、毎回仕事を成し遂げました。
このソフトウェアとAltium Designerを統合するために、既存のライブラリにSKUパラメータを追加しました。各SKU(Stock Keeping Unit、在庫管理単位)は、ERPソフトウェア内の「製品」を指していました。
ERPには、数万点の電子部品のデータシートや、RoHS承認レポートなどの文脈データが含まれていました。データには、データ漏洩を避けるためにERPの外部に転送できない機密文書もありました。
ERPはデータをMicrosoft SQL Serverのテーブルにエクスポートし、"ComponentLink1Description"や"ComponentLink1URL"といったパターンに従って列を命名することで、整形された文書リンクを表示するビューがいくつか作成されました。同様に、購買部門がこれまで見た中で最も入念で一貫性のある記録を保持していたため、ERPソフトウェア内に直接コンポーネントの説明を書くことにしました。そして、これは将来にわたって続けられるでしょう。
Altiumのバージョン20.0まで、Altium 365をDbLibsと併用する場合、オンプレミスに限定されない限り、すべてのコラボレーション機能を完全に活用することはできませんでした。これは、安全なキャンパス内コラボレーションや部品管理には適していますが、外部のデザイナーやステークホルダーとの完全なコラボレーションには、時代遅れのファイル交換プロセスを使用していました。
Altium 365は、同じ単一の共有ライブラリから作業することで、常に最新で完璧に標準化されたコンポーネントデータを組織内で採用できるようにします。一人または複数のライブラリアンが回路図シンボル、コンポーネントのフットプリント、およびコンポーネントパラメータを描画および検証でき、全チームがAltiumのパーツリクエストフォームを通じて新しい電子コンポーネントの作成を要求できます。
Altium 365では、コンポーネントの変更はパートライフサイクルを通じて管理され、その採用はプロジェクト内で使用箇所機能を通じて追跡されます。これらの機能により、コンポーネントが避けられないほど時代遅れになった場合に、すべての設計を迅速に発見して更新することができます。これは、あまり集中化されていない環境では、しばしば数日間の作業を要するタスクです。
これらの機能やその他の機能は、DbLibsを採用した際に部分的に妥協されました。DbLibsは、Altium 365が背後で使用するデータベースとは別のデータベースに接続し、回路図シンボルとPCBフットプリントは独立して共有および整理されなければならず、ライフサイクル管理は避けられないほど外部のERPソフトウェアに依存します。これは、コンポーネントライブラリ管理のニーズにしばしば適していません。
年月を経るうちに、一部のユーザーからは大規模なライブラリを扱う際のパフォーマンス不足についての不満も寄せられており、主な回避策としてDbLib内に複数の別々のテーブルを用意することが挙げられていました。これに対し、Altium 365
Altium 20.1リリースノートは、106のバグ修正、Draftsman用の13の小さな新機能、7つのパフォーマンス改善を含むため、かなり長い読み物になります。少なくとも55の問題がコミュニティから報告されています。
この記事は、多くの機能の中の1つ、コンポーネントデータベースからサーバーデータ同期についてです。
言葉は難しそうですが、内容はシンプルです。DbLibsの力を取り入れ、それをAltium 365クラウドオファリングと統合します。
この機能は次のように動作します:ライブラリマイグレーターを使用して以前にDbLibをAltium 365に移行していた場合、新しいコンポーネント同期機能を使って、中断した作業を再開することができます。
これで、DbLibの列をAltium電子部品のパラメータにマッピングできるようになりました。DbLibと同じ方法ですが、パーセントや単位(ボルト、アンペア、オームなど)などの拡張データタイプをサポートしています。後ほど説明する3つの方法のいずれかで同期アクションがトリガーされると、Altiumはデータベースと既存のコンポーネントを比較して更新します。必要に応じて、新しく作成された電子部品のためのコンポーネントテンプレートを選択し、どのパラメータが新しいリビジョンをトリガーするかを決定することもできます。たとえば、製造元の部品番号の変更が新しいリビジョンをトリガーすることを望むかもしれませんが、倉庫の場所を更新するときにはそれが必要ないかもしれません。
第二の動作モードは、完全なDbLibを接続する代わりに、よりシンプルなデータベース(回路図シンボルやPCBフットプリントがない)を接続するときにトリガーされます。これには、Microsoft Accessデータベース、Excelスプレッドシート、CSV(カンマ区切り値)ファイル、またはOLE DBまたはODBCドライバーを含むその他のデータソースが含まれます。このモードでは、コンポーネント同期は古いDbLinkのように機能します。電子部品はAltium Designerによって定義され、Altium 365に保存され、データベースの列はコンポーネント内のパラメータになります。
既存の電子部品とデータベースの行は、指定された列の値が特定のコンポーネントパラメーターと等しい場合に一対一でマッチします。
コンポーネント同期機能はデスクトップ上で実行され、インターネットからアクセスできないデータベースをAltium 365と同期できるようにします。さらに、データはAltium 365に送信される前に圧縮されるため、膨大なライブラリを簡単に移行でき、インターネット接続を圧迫することがありません。
この例では、Mark HarrisのCelestial Database Libraryに含まれる0603 MLCCキャパシタのテーブルをライブラリマイグレータ機能を使用してAltium 365に移行しました。
この電子部品ライブラリには約6000のキャパシタが含まれていますが、Altiumはうまく処理します。
私は、データベースをデモンストレーション目的で簡単に編集できるように、Microsoft SQLサーバーに最初にホストされていたデータベーステーブルを、オープンソースのデータベース管理ソフトウェアであるDBeaverを使用してExcelテーブルに変換しました。
Altium Designerのプラットフォーム拡張ページで機能を有効にした後、新しいコンポーネント同期設定を作成しました。
設定は、Excelファイル内の唯一のシートを読み取り、クラウドと同期します。コンポーネント同期は、PartIdというキーのパラメーター/列によってコンポーネントを照合するように設定されています。
ヒント:プロパティパネルを常に開いた状態にしておくことを忘れないでください。クリックする際に追加の設定が必要なものを見逃さないようにするためです!
私は先に、Excelファイルのコンデンサの説明フィールドを変更しました。
手動でコンポーネント同期をトリガーした後、新しく更新されたコンデンサがコンポーネントとエクスプローラーパネルに表示されるのを確認できます。
新しいコンポーネント同期機能を3つの異なる方法でトリガーできます:
CmpSyncファイルを開いて、実行ボタンを押して同期を手動でトリガーします。タスクは現在のAltium Designerインスタンス内で実行され、操作が実行されている間は他のタスクを実行できませんが、別のインスタンスを開くことで実行できます。
スケジュールボタンを使用して、毎日または毎週のスケジュールを設定するか、Altium Designerワークスペースにログインしたときに同期をトリガーできます。
Altium Designerは新しいWindowsスケジュールタスクを作成します。
最後に紹介するのは、コマンドラインを使用してトリガーされるコンポーネント同期で、コマンドラインユーティリティは「C:\Program Files\Altium\AD20\System\ComponentSync.Executor.exe」の下にあります。
このモードは非常に柔軟で、外部スクリプトによってトリガーすることができます。
例えば、内部/外部ネットワークで公開されているプライベートAPIをクエリするシンプルなPythonスクリプトを書きたい場合は、以下の手順を通じて行います:
AltiumのDbLibs機能は、Altium Designerの中で最も強力でありながら、ある程度隠された機能の一つです。企業の電子部品データ管理における背景知識(そしてしばしば瞑想の良いセッション)を理解することは多くの努力を要しますが、設計の効率性とエラーレートの削減に驚くべき改善をもたらすことができます。
TRANSLATE: Altium 20まで、Altium 365とDbLibsの両方の利点を機能や使い勝手を損なうことなく利用することはできませんでした。なぜなら、複数のデータソースが競合し混乱を招く可能性があったからです。
Altium 20.1から、新しいコンポーネント同期機能により、データベースライブラリの機能とAltium 365のシンプルさおよび協働性を統合し、その部品を超えたシステムを作り出すことができるようになりました。この方法で電子部品のデータを同期することにより、管理とデータ追跡のための強力な機能セットを得ることができます。
この新機能に関する文書はこちらで見つけることができます。コンポーネントの自動ライブラリ移行と管理の最新情報を学びたい場合は、この最近の記事を読んでください。