ソリューションで、現実の世界に存在するオブジェクトの状態を表し、そのモニタリングを行うことを可能にします。これにより、あらゆるワークフローを通過しているオブジェクトの状態を監視し更新するシステムの構築が容易になります。フローにおいて、単一または複数の制御アプリケーションで処理されているバッチやロットを制御し、ロット状態をその処理中に更新するシステムを構築することができます。プロセスの実装を例示する目的で、システム全体にわたるエラーの検出とレポーティングを行いながら、シンプルなロットの発送と最新のロット状態のモニタリングの管理が可能な製造実行システムの設計をサポートする、簡単な一連のユースケースを作成しながら説明します。この一連のユースケースは、ワークフローを含むあらゆるタイプのシステムに適用されます。使用して状態情報の送信と監視を行うあらゆる製造システム。してのDDS市場競争力を維持するためには、その製造システムが市場投入までの時間が短縮可能なもので、かつ需要、市場競争の状況、法規制に即して生産を調整できるように俊敏性と再構成可能性に優れているシステムである必要があります。同様に、サプライヤーのコンポーネントとITシステムの両方を統合するニーズは、柔軟性と拡張性が向上した製造アーキテクチャのニーズを高めています。システム内の同様のニーズに対応するために効果的に使用されています。テクノロジーを使用して構築されています。これらのテクノロジーは、一般に製造システムのより高度な分散性と処理能力、そして実質的なリアルタイムの決定性のニーズへの十分な適合性に欠けています。Webテクノロジーを使用して構築された集中型ブローカです。規格に規定されているように、データ中心的なパブリッシュ・サブスクライブ型テクノロジーは、マニュファクチャリングサービスバスを実装するための新しいプラットフォームです。DDS規格で高パフォーマンス、かつ高度に拡張可能な実装です。システムから独立した製造制御システムのモニタリングと統合のための技術層を提供します。自動サービス検出、データ標準化、健全性モニタリング、媒介、その他多くのSOAサービスを直接インフラストラクチャに提供します。DDSは、生産ループにおける運用に必要な拡張性、パフォーマンス、決定性、リアルタイムのQoS(サービス品質)のサポートを備えています。ピアツーピア型アーキテクチャは工場での展開を簡素化するほか、追加のサービスやコンピュータの管理が不要です。このサンプルでは、チョコレート製造プロセスを例に、MSBを実装する際のDDSの使用方法について説明します。チョコレートのバッチは、製造実行システムによって制御されているワークフローに従います。DDSアプリケーションのセットとして構築された製造実行システムは、異なる種類のチョコレートのレシピを設定し、製造される必要のあるバッチ(ロット)を定義し、各作業セルへのバッチ経路を制御し、さらに製造プロセスの状態を監視するのに使用されます。このサンプルは、異なる作業セルにロットを発送し、各作業セルの動作パラメータの設定とモニタリングを行うことにより、同様に動作するその他のディスクリート製造プロセスにも当てはめることができます。このサンプルで説明することこのサンプルでは、3つのアプリケーションについて説明します。これらのアプリケーションは同じマシンまたは同じネットワーク上の異なるマシン上で実行できます。調整に関する概念は、ワークフローに従うさまざまなシステムに適用できます。(ManufacturingExecutionSystem):チョコレートの最初の状態の最新情報を提供して、以下を含むロットを配信します。コントローラに割り当てますロットが完了状態にあるという通知をMESシステムが受信すると、ロットの登録が解除され、処理中の特定のロットに対するメモリの消去とその状態情報の削除が可能になります。フローは、製造実行システムが次に実行すべきレシピを決定した時点で開始します。コントローラにそのロットを割り当てます。フィルタリングを使用して、ロットを処理すべきときのみ確実に更新を確認します。ロットの状態)トピックをリッスンして更新します。ロットの最新情報のみを確実に受信します。選択した場所に解凍します。このドキュメントの場所をEXAMPLE_HOMEとして参照します。このドキュメントの場所をEXAMPLE_HOMEとして参照します。Professionalをまだインストールしていない場合は、ダウンロードしてインストールしてください。製品を試すことができます。ダウンロードには、サンプルを実行するために必要なライブラリと、分散システムの可視化およびデバッグに使用できるツールが含まれています。サンプルの実行Windowsシステムでは、EXAMPLE_HOME\ExampleCode\scriptsディレクトリに移動します。ファイルのダウンロード]Linuxシステムでは、EXAMPLE_HOME/ExampleCode/scriptsディレクトリに移動します。このディレクトリには、アプリケーションを開始するためのスクリプトファイルが4つあります。コントローラの起動用)これらのスクリプトまたはバッチファイルは、同じマシンで実行することも、このサンプルをコピーして複数のマシンで実行することもできます。複数のマシンで実行すると、UDPを介して通信します。ファイルのダウンロード]同じネットワークの複数のマシンにアクセスできる場合は、これらのアプリケーションを別々のマシンで実行してください。マルチキャストなしでサンプルを実行するネットワークがマルチキャストをサポートしていない場合、ユニキャストデータのみを使用してこのサンプルを実行できます。ユニキャストのみで実行するには、次の2つの手順を実行する必要があります。パラメータ「--no-multicast」を使用して、3つのすべてのアプリケーションを実行します。これにより、アプリケーションはネットワークのマルチキャストに依存しない.xmlファイルをロードします。base_profile_no_multicast.xmlファイルを編集します。これらのアドレスは、有効なUDPv4またはUDPv6アドレスです。特定のアプリケーションのソースコード。コードは、FooInterface.hとFooInterface.cxxに含まれていますサンプルのビルドすべてのプラットフォームで、まず、NDDSHOMEという環境変数を設定する必要があります。DDSインストール内のndds.5.xxディレクトリを指している必要があります。RTIコアライブラリとユーティリティ入門ガイドを参照してください。WindowsシステムWindowsシステムでは、EXAMPLE_HOME\ExampleCode\win32\ChocolateFactory-.slnファイルを開いて開始します。このコードは、アプリケーションへのインターフェイスを表すライブラリ、ソース、およびIDLファイルの組み合わせで構成されています。Studioのソリューションファイルは、必要なコードと必要なライブラリとのリンクを自動的に生成するように設定されています。ファイルのダウンロード]LinuxシステムLinuxシステムでアプリケーションをビルドするには、ディレクトリをExampleCodeディレクトリに変更し、次のコマンドを使用します。バージョンの組み合わせになります。ファイルをダウンロードしてください。ストリームに含まれる、ひとつのエレメントまたは現実の世界のオブジェクトを表すものは何か?」です。ロットの状態をその処理中に更新するシステムでは、ロットはシステムにおいて個別のオブジェクトであることは明らかです。このサンプルでは、ChocolateFactory.idlファイルのデータタイプをモデリングしています。OMGによって定義されるインタフェース定義言語)を使用して、言語非依存型のデータタイプを定義します。してモデリングされます。キーと呼ばれる固有識別子のセットによって記述されます。このサンプルでは、キーフィールドとして、lotIDを使用します。//@key各チョコレートロットは、固有のオブジェクトとして表されるというこの前提においてはひとつの弱点があります。それは、ロットが複数のステーションコントローラに従って動作するということです。これは選択するオプションがあることを意味します。このデータはロットIDのみに対応付けることができます。これは、異なるステーションからの同じロットの更新情報が同じ論理キューに保管され、キューを適切に設定しないと、更新情報が相互に上書きされる可能性があるということです。コントローラIDの両方に対応付けることができます。コントローラから受信する同じロットの更新情報が相互に上書きされないことを確信できます。Data(状況によって変化する状態のデータ)としてモデリングされています。このデータは一部のオブジェクトの状態が変化したときのみ更新されます。このケースでは、ロットの状態の変化に従って状態の変化が発生します。そのオブジェクトの状態は常に変化しているというわけではありませんその他のアプリケーションは、起動前にオブジェクトがパブリッシュされたとしても、各オブジェクトの最新の状態を知る必要がありますこのデータは常に送信されているわけではないため、信頼性をもって送信される必要があります。プロファイルのXMLファイルで設定されています。これらの設定は、確実な配信を確保するために、DataWriterとDataReaderの両方で有効化されている必要があることに注意してください。DDSを使用するメリットのひとつは、状態が変化すると同時にデータを送信できるだけでなく、後で接続された関連アプリケーションも起動直後に最新の状態データを確実に受信できる機能です。これが意味することは、チョコレートロットの状態は変化の発生時に送信が可能ということです。関連アプリケーションは、まだ起動していないとしても、起動直後に最新のロット状態を受信します。後で接続されたアプリケーションへの送信を可能にするには、データは一時的にローカルで送信されるか、より高いレベルの耐久性をもって送信される必要があります。コントローラにロット状態の最新情報のみを送信するために、このXMLはロット状態インスタンス毎に1つのサイズ履歴を保持するように、DataWriterで履歴キャッシュを設定します。<depth>1</depth></history>このデータは極めて高いスループットに対応するように調整する必要はありませんが、安定した信頼性を得るように調整します。XMLのプロファイルに記述されています。コントローラ)のタイプを指定できます。アプリケーションのDDSインタフェースを作成するコードは、StationControllerInterfaceクラスに含まれています。ChocolateRecipeReader、ChocolateLotStateWriter、ChocolateLotStateReaderエンティティを作成するのに使用される必要なDDSエンティティを作成します。DataReaderのラッパーです。WaitSetオブジェクトを含みます。このクラスは、ステーションコントローラが受信すべき、チョコレートロットの状態データを指定するコンテンツベースのフィルタを作成します。ロットの情報を削除できる)。DataWriterのラッパーです。ステーションコントローラは、ロットを処理中、またロットの処理が完了した時点で、ロット状態の更新情報をパブリッシュします。メソッドを使用して書き込まれます。このクラスは、ロットが完了したという通知を受信したときにステーションコントローラが使用するUnregisterChocolateLotState()メソッドを提供します。unregister_instance()コールを呼び出します。DataReaderのラッパーです。レシピの次のステップのクエリを実行します。その後、チョコレートロットの状態を更新し、その更新情報をレシピの次のステーションコントローラに送信します。(C++)大抵の場合、MESシステムでははるかに複雑な論理が取り入れられていますが、DDSの概念を実例で説明するために、このサンプルでは非常にシンプルにまとめられています。各ロットの最初の状態の最新情報を送信します。して、間もなくロットを処理することを最初のステーションコントローラに通知します。以下に示すように、ロット数といつ処理を開始したいかを指定できます。[time-in-ms]また製造実行システムは、そのシステム自身を含め、すべてのステーションントローラから更新情報を受信するように、チョコレートロットの状態をサブスクライブします。アプリケーションのDDSインタフェースを作成するコードは、MESInterfaceクラスに含まれています。ChocolateLotStateWriterとChocolateLotStateReaderエンティティを作成するのに使用される必要なDDSエンティティを作成します。DataWriterのラッパーです。DataReaderのラッパーです。ジェネレータアプリケーションは、3つの事前に設定済みのチョコレートレシピを送信します。これは3つのアプリケーションの中でもっともシンプルです。アプリケーションのDDSインタフェースを作成するコードは、RecipePublisherInterfaceクラスに含まれています。ChocolateRecipeDataWriterエンティティを作成するのに使用される必要なDDSエンティティを作成します。DataWriterのラッパーです。これらのレシピは、状態データとしてモデリングされています。質問を投稿してください。Codeでのサンプルに貢献してみましょう。