エンバカデロでは、Delphi、C++Builder、RAD Studioにより、RAD Server、FireDAC、InterBaseなどの関連技術を活用したエンタープライズソリューションの構築事例を募集しています。この記事は、Bruce McKibben氏が、自身が手掛けたMacaos Systemについて紹介したものです。
Table of Contents
Macaosについて
エレクトロニクス設計に使用する優れたツールは数多くありますが、その多くは、単一のプリント回路基板(PCB)の設計記述データの生成までしかサポートしていません。しかし、そこから最終的な電子機器のアセンブリに至るまでには、パネル化とデパネル化、はんだペーストステンシル設計、コンポーネントデータ管理、回路内テストなど、数多くのデータ操作ステップが存在します。Macaos Systemは、このギャップを埋めるために構築されました。
エンタープライズプロジェクトにDelphiを選択した理由
私たちのスタートアップは、1990年代後半、Delphi 3で作成されたフロッピーディスクで配布する単純なPCB用の価格計算ツールでした。現在、当社の主力アプリケーション「Macaos Enterprise」は、オンラインの価格設定と注文、製造データ管理、データアーカイブなどの機能を提供するクラウドベースのシステムです。
最初にDelphiの使用を選択した理由は、簡単に習得できること、迅速なUI 開発、イベントドリブンの対話機能、そしてネイティブコンパイルなどです。25年経った今でも、これらの機能は私たちにとって重要です。多層システムへの拡張を始めたとき、Linux版のDelphi「Kylix」の登場によりLinuxサーバー用の中間層サービスの構築が可能になりました。その一部は現在も運用されています。しかし、Kylixの販売終了からDelphi 10.2で再びLinuxサポートがリリースされるまでの12年間のギャップで、別の開発環境への移植しなければならない状況が迫っていました。
現在、当社の主力製品は、VCLベースのデスクトップアプリケーションです。また、iOSおよびAndroid向けのモバイルコンパニオンアプリも開発しています。そして中間層は、Linux上で稼働するRAD Serverによって構築されています。
エレクトロニクス製造のマーケット概要
エレクトロニクス設計から最終的なアセンブリ/製品化までのパスには、多くのステップが含まれます。
通常、顧客のレイアウトエンジニアは、CADシステムから製造データを生成し、購買部門に送信します。次に、購入者は製造データをいくかのサプライヤーに送信し、ベア PCB(コンポーネントなし)または PCBアセンブリ(コンポーネントあり) の製造価格の見積りを要求します。次に、サプライヤの販売部門が価格を計算します。これには、さまざまな PCB メーカーや電子部品サプライヤからの価格見積りの依頼が含まれる場合があります。
個々のPCBは、製造ラインの機械に適したサイズのパネルにステップアップする必要があります。また、PCB上にあるそれぞれのはんだ接合部に適切な量のはんだペーストを塗布するためのステンシルの設計も必要になることがあります。コンポーネントを取り付けた後、はんだ接合が損なわれないように、個々のボードを慎重にパネルから分離する 必要があります。
PCBAは通常、コンポーネントが正しく取り付けられていること、回路が期待どおりに機能することを確認する機能テストを実施します。このテストには、PCBAへのファームウェアのアップロードが含まれることもあります。
Macaos Systemとは
Macaos Systemは、次の3つの主要なクライアントアプリケーションを核に構成されています。
- Macaos Enterprise: 顧客が製造データのアップロード、価格見積りの取得、注文の実施と追跡、ドキュメントのアーカイブに使用。パネル化、ステンシル設計、はんだパレット設計、デパネル化、コンポーネントデータ管理、テストフィクスチャ設計用のモジュールも用意。これらのモジュールの多くは、PCBAメーカーによっても使用されます。ユーザーは、iOSおよびAndroidで利用できるMacaos Roverモバイルアプリを使って、この機能のサブセットにアクセスできます。
- Macaos Perception: サプライヤーが注文と顧客関係を管理するために使用します。
- Macaos Convergence: サプライチェーン情報の流れを管理するために、サプライヤーとメーカーが使用します。
アップロードされた製造データはサーバーに保存され、必要に応じてクライアントプログラムに渡されます。これにより、従来型のデータを電子メールに添付して送信する方式と比較して、セキュリティ、バージョン管理、データの整合性の大幅な向上が実現できます。
Linux上のRAD Server、FireDAC、Delphiの役割
RAD Server上では、FireDACによる堅牢なデータベース接続機能とローカルシステムを用いて、製造データのサーバーサイドでの処理を実装しています。これにより、さまざまなユーザーが必要に応じてデータにアクセス可能になっています。
Delphi Linuxコンパイラを使用することで、最小の労力で、従来のWindows上で稼働していた製造データ処理の独自コードを、Linuxへと移植することができました。
Macaos EnterpriseデスクトップアプリケーションでDelphiによって解決した課題
私たちの現在の開発プロジェクトは、PCBAの機能テストのためのシンプルで柔軟なプラットフォームの提供をゴールとしています。このプラットフォームは、テストフィクスチャ/治具、電子機器ケージ、そしてMacaos Enterpriseデスクトップ アプリケーションに含まれるテストルーチンモジュールによって構成されています。PCBAのフィクスチャ/治具は、Macaos Enterpriseのテストフィクスチャモジュールで設計されます。設計エンジニアがテスト手順を構成し、出荷前にメーカーが実行することを想定しています。
プロジェクトのゴールを、以下にまとめました。
- 簡単に設定可能なテストルーチン
- 拡張可能でカスタマイズ可能なシステム
- テストルーチンとテスト結果のクラウドアーカイブ
- デスクトップまたはモバイルアプリケーション、 Webブラウザでテスト結果にアクセス
- テスト結果を外部データベースにエクスポート
- 再利用可能な電子機器
再利用可能な電子機器ケージには、64~4テストポイントやプローブクロスバースイッチが含まれており、PCBA上の最大64のテストポイントのいずれかで測定を行うことができます。また、いくつかの組み込み測定器と、さまざまな追加のプラグイン機器が利用可能です。マイクロコントローラーは、httpベースのAPIによって駆動可能な、さまざまな低レベルのテスト操作インターフェイスを用意しています。
このエンタープライズソリューションで使用したRAD Studioの機能と関連機能
DelphiとRAD Serverは、このプロジェクトにとって理想的なツールであると考えています。テストルーチンモジュールは、THttpClient
を使用してエレクトロニクスケージと通信し、Linux上で稼働する中間層RAD Serverと通信します。デスクトップとモバイルの両方のクライアントアプリケーションも、RAD Serverを使用してテスト結果にアクセスします。Delphiは、Windows(VCL)、iOSおよびAndroid(FMX)、Linux(RAD Server)向けのコンパイルを同じくサポートしており、これらのプラットフォーム間で多くのコードを再利用できます。Delphiの TJSONTextWriter
と TJSONTextReader
クラスを使用してテストルーチンをシリアル化することで、標準化された柔軟なストレージ形式を提供しています。
このプロジェクトの課題の1つは、テストルーチンの設計を簡単かつ単純にすることです。そのパラダイムは、ツールボックスから個々のテスト操作を選択し、特定の測定が行われるように構成し、テストルーチンシーケンスの適切なポイントにドロップするという方式です。Delphi で使用できるさまざまなサードパーティコンポーネントは、直感的なユーザーインターフェイスの開発に大いに役立ちます。多くのケースで、TMSのTAdvTableViewコンポーネントを使用して、テストルーチンシーケンスの管理/表示を実装しています。
エンタープライズソリューションにDelphi+RAD Serverを用いた結果
DelphiとRAD Serverが提供するマルチプラットフォーム機能により、Linuxサーバーと、デスクトップおよびモバイルクライアントの間で、柔軟なデータアクセス性が提供されました。RAD Serverに搭載されたFireDAC テクノロジーを用いることで、以前の Kylixベースの中間層サービスと比較して、安定性と柔軟性が大幅に向上しています。また、DelphiのGUI設計パラダイムとイベント駆動パラダイムは、クリーンで直感的なユーザーエクスペリエンスの作成に役立っています。
Bruce McKibben氏による投稿。詳細は、www.macaos.comをご覧ください。
この記事は、Enterprise Article Showcaseへ投稿されたものです。RAD Studio、Delphi、C++Builderと関連技術を用いて構築した開発プロジェクトの成功事例をお持ちの方は、ぜひご連絡ください。詳細はこちらをご覧ください。