実際、部品のリストのコストを計算することは、オンラインディレクトリでの長時間の検索、ディストリビューターの呼び出し、通信および回答の待機などに関連する不快で日常的なプロセスです。 などなど。 しかし、それでさえ悪くはありませんが、それは反復プロセスです。 コストが許容範囲を超えていることに突然気付いた開発者は、回路および他のコンポーネントの他のオプションを探し始めます。 そして再び検索.... そして、ルーチンは開発者の敵です。 それを避けるために、多くの人が最適性を犠牲にします。 しかし、幸いなことに、この問題は軽減できます。
インターネットには長い間、多くのサプライヤからデータを収集し、開発者にとって便利な形式でオンラインで提供する無線コンポーネント用の検索エンジンがあります。 さまざまなサービスと検索ツールも提供されています。 たとえば、BOMを検索エンジン(部品表、材料および付属品のリスト)にインポートし、このリストで自動検索を実行します。
無線コンポーネントには多くの検索エンジンがあります。 octopart.comを選択しました。
残りの部分からは、リモート検索クエリ(APIクエリ)のサービスに関する非常に明確なドキュメントで際立っています。
オクトパート検索の対象となるサプライヤーのリストも、以前に使用されたリストと完全に一致していました。
さまざまなアプリケーション向けに、組み込みマイクロプロセッサデバイスのカスタムメイドの小さなバッチを開発しています。 私の主な競争上の優位性は、期限のスピードと正確さです。 これは、Farnell、Moser、Digi-Key、Future、Avnet、TMEなどのグローバルオンラインディストリビューターのサービスを使用する場合にのみ実現できます。 これらのディストリビューターと検索オクトパートの倉庫で。
ここで、これまでの目標は購入することではなく、価格を見つけることであり、選択したオプションによっては、価格のダイナミクスさえあることに注意する必要があります。 私たちは、それを最適化するための努力から、価格変動を調査またはテストします。 この場合に必要な検索エンジンは、非常に柔軟で効率的でなければならないことは明らかです。 ここでは、購入専用に作成された厳格なオンライン検索フォームとサービスはほとんど役に立ちません。 明らかに、オープンで柔軟なスタンドアロンPCアプリケーションが必要です。
このためにMS Accessを選びました。 これは、 MS Officeスイートのプロフェッショナル版のプログラムの1つです。 MS AccessでのプログラミングはVBA言語で行われます。これは、翻訳中のアプリケーションのVisual Basicを意味します。
MS Accessの機能は、最大数十万レコードの小さなデータベースで作業する際の驚くべき柔軟性と速度です。 BOMを使用する場合、これで十分です。 MS Accessでは、コードのコンパイルは瞬時に行われ、データとプログラムは1つのファイルに含まれます;最近では、MS Accessファイルを実行するために、MS Office全体を購入する必要はありません。 無料の実行エンジンをダウンロードするだけです。
これが私のプログラム、つまりフロントエンドの外観です。
プログラムは何をしますか
- ExcelスプレッドシートからBOMをインポートします(はい、MS Officeはまだ必要ですが、プログラムは開いています。CSVまたはtxtからインポートできます)。
- BOMをMS Accessで編集可能な表に変換し、必要なフィールドで補完します。
- 購入した多くの部品の数を設定できます。
- 必要なコンポーネントの名前が抽出されるBOMの任意の列を選択できます。
- 検索条件を指定できます:完全一致または柔軟。
- 任意の文字列を自由に検索から除外し、それらの価格の更新を禁止できます。
- 指定された1行またはリスト全体でOctopartデータベースを検索します。
- 検索に参加している各行に対して、最低価格を挿入します。
- 通貨を自国通貨に変換します。
- 通貨でBOMの全コストを計算します。
プログラムは完全に開いています。 モジュールタブには、すべてのソーステキストがあります。 すべてのラベルとボタンのレイアウトは自由に変更できます。 唯一の要求はOctopartキーを取得することです。 これはOctopartからの要求に応じて発行されるOctopart APIユーザーキーです 。
典型的なアプリケーションシナリオ
Altium Designerで電子回路とプリント基板を作成するプログラムで働いています。 この種のすべてのプログラムと同様に、Altiumは、作成されたスキームに従ってBOMを生成する機能を備えています。 BOMの場合、プログラムとの互換性のために、価格計算にはいくつかの簡単な要件があります。
- 列名を含む見出しを含む
- 数量という名前の列が含まれています。
- 特定の名目値の部品数がバッチで記録されます。
- コンポーネントのかなり正確な名前の列が含まれています。 この名前は検索を整理します。
ExcelのBOMの例を次に示します。
ExcelにBOMがあるので、プログラムで[ BOMのインポート ]をクリックします。
プログラムウィンドウのテーブルは、BOMの内容に従って変換され、追加の列が追加されます。
- 最低価格 -ディストリビューターとのすべての見つかったポジションの最低価格。
- 売り手 -売り手の名前;
- Found MPN -Octopartから取得したコンポーネントの詳細な説明。
- 在庫数量 -売り手の倉庫で入手可能な特定の価格のコンポーネントの量。
- 価格の修正 -このフィールドに1を入力すると、たとえば、他のソースから価格が見つかった場合に、この行を価格の検索および更新から切り離します。
- 製品URL-コンポーネント販売者のオファーページへのリンク。
次に、 フィールド選択リストによる検索で、 検索する BOMテーブルのフィールドを選択します。
次に、 Quant.multiplierフィールドに興味のあるパーティーの数を設定します。 最も単純な場合、これはボードの数です。 これは重要なパラメーターです。すべての売り手にとって、同じ額面の特定の数の購入部品から価格が急激に低下し始めるためです。 ボード(パーティ)の数を変えることにより、特定の予算の制約の下で1つのボードの最適なコスト価格を見つけることができます。
別のニュアンスは、倉庫に指定した数量が常にあるとは限らないこと、または販売者がそのような少数のコンポーネントを販売することに同意しないことです。 次に、[Quant.multiplier]フィールドの値を変更して、見つかった位置の最大数を取得する必要があります。
ところで、プログラムのBOMテーブルは階層的です。 プログラムの左側のプラス記号をクリックすると、選択した行のサブテーブルが表示され、見つかったすべてのオファーのリストが表示されます。
結論として、 Recalc最低価格とBOMコストボタンをクリックすることは残ります。
プログラムはOctopartからダウンロードした価格オファーのすべてのレコードを調べ、各コンポーネントの最低価格を見つけます。 これは、指定したコンポーネントの数を考慮します。これは、 数量フィールドとQuant.multiplier値の積に等しくなります。 提案はそれ以上でなければなりません。 コンポーネントの最小注文数量に対する売り手の要件も考慮されます。
その後、1ロットの合計BOM価格がBOMコストフィールドに表示されます。
重要! 正しい価格変換を行うには、 tbl_CurrRatesテーブルを編集する必要があります。 この表には、すべての通貨がリストされているわけではなく、検索時に処理する必要がある通貨のみがリストされています。 テーブルは補足することができます。
プログラムとデータは一緒にAccessファイルに格納されるため、クライアントとサーバーの部分、インストール、ディレクトリの場所への依存などはありません。 ファイルをプリント回路基板の作業ドラフトのフォルダーにコピーし、好きな名前に変更し、BOMをインポートして、スキャンをクリックするだけです。 Accessファイルは、プロジェクトの数だけコピーされます。 さらに、複数のプロジェクトのAccess BOMの外部テーブルへのリンクを使用して集計し、異なるプロジェクトの個別購入のロジスティクスコストを削減することもできます。 確かに、これは別のプロジェクトのトピックです。
以下にレイアウトされているプログラムからデモデータの110レコードをスキャンするには、59秒しかかかりません。 為替レートの変更を考慮して、BOMのコストを毎日再確認するか、回路設計プログラムが追加しない他の費用またはコンポーネントをBOMに追加できます。
上級ユーザーは、基準に基づいて最低価格を計算するアルゴリズムを自由に変更して、さまざまなサプライヤーの数を最小限に抑え、関税を削減し、物流コストを削減できます。
デモデータを含むプログラムファイルにリンクします 。