(57)【特許請求の範囲】
【請求項１】
複数のプロセスを制御するための工業用制御システム（１０）であって、
前記複数のプロセスとの間でＩ／Ｏデータを交換する、複数のＩ／Ｏモジュール（３０、３５）と、
前記Ｉ／Ｏモジュール（３０、３５）との間で、前記Ｉ／Ｏデータを交換する、スキャナ（５０、５５）と、
前記スキャナ（５０、５５）との間で前記Ｉ／Ｏデータを交換する、工業用コントローラ（１５）とを備え、
前記工業用コントローラ（１５）は、メモリ（１７）を有し、該メモリには複数のキャストタグ（１２５）が記憶され、
前記スキャナは、前記Ｉ／Ｏデータを含む接続パケット（１００）を、前記工業用コントローラ（１５）へ送信し、
各Ｉ／Ｏモジュールのデータ構造はデータタイプからなるフォーマットによって定められ、前記キャストタグ（１２５）は、関連するＩ／Ｏモジュールの名称とデータタイプからなり、
前記接続パケット（１００）のなかのＩ／Ｏデータのうち、前記データタイプに対応するＩ／Ｏデータがサブセットを構成し、
前記工業用コントローラ（１５）は、
前記スキャナから送信された前記Ｉ／Ｏデータを含む接続パケット（１００）を受信し、
該接続パケット（１００）のなかのＩ／Ｏデータであって、前記キャストタグが示すＩ／Ｏモジュールから送信されたＩ／Ｏデータのうち、前記キャストタグが示すデータタイプに対応するサブセットを、前記Ｉ／Ｏモジュールのデータ構造に基づき参照する、
ことを特徴とする前記工業用制御システム（１０）。
【請求項２】
前記キャストタグ（１２５）は、特定のＩ／Ｏモジュール（３０）用の前記Ｉ／Ｏデータのうちの入力データを参照する第１のキャストタグと、特定のＩ／Ｏモジュール（３０）用の前記Ｉ／Ｏデータのうちの出力データを参照する第２のキャストタグとを含む、請求項１に記載の工業用制御システム。
【請求項３】
前記Ｉ／Ｏデータは、入力データおよび出力データのうちの少なくとも１つである、請求項１に記載の工業用制御システム。
【請求項４】
前記Ｉ／Ｏデータを含む前記接続パケットの編成に基づいて前記キャストタグ（１２５）を生成するプログラミングターミナル（２０）を更に含む、請求項１に記載の工業用制御システム。
【請求項５】
前記工業用コントローラ（１５）とインターフェースし、前記Ｉ／Ｏモジュール（３０）のうちの１つのＩ／Ｏデータを参照するために前記キャストタグ（１２５）を使用するインターフェースユニットを更に含む、請求項１に記載の工業用制御システム。
【請求項６】
各キャストタグ（１２５）は、前記Ｉ／Ｏモジュール（３０）に関連する前記Ｉ／Ｏデータを特定するシンボルと、データのタイプと、前記サブセットへの参照とを含む、請求項１に記載の工業用制御システム。
【請求項７】
前記スキャナ（５０、５５）は、前記工業用コントローラ（１５）と前記Ｉ／Ｏモジュール（３０）との間でデータを中継する、請求項１に記載の工業用制御システム。
【請求項８】
前記スキャナ（５０、５５）は、前記Ｉ／Ｏデータの少なくとも１つの一部を収集するために前記Ｉ／Ｏモジュール（３０）をポーリングする、請求項１に記載の工業用制御システム。
【請求項９】
前記Ｉ／Ｏモジュール（３０）は、前記Ｉ／Ｏデータの少なくとも１つの一部を前記スキャナ（５０、５５）に送信する、請求項１に記載の工業用制御システム。
【請求項１０】
前記モジュール（３０）の各々に関連する前記Ｉ／Ｏデータを含む前記接続パケット（１００）は、予め定められた順序で連結されている、請求項１に記載の工業用制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的には自動制御システムに関し、より詳細には、工業用制御データを区分するための方法および装置に関するものである。
【背景技術】
【０００２】
工業用コントローラとは工業プロセスまたは製造機器を制御するための使用される特別用途のコンピュータのことである。工業用コントローラは記憶されたプログラムの命令により、制御されるプロセスのステータスを表す一連の入力信号を検査し、プロセスの制御に影響する出力信号を変更する。入力および出力信号は、二進（すなわちオンまたはオフ）信号でもよいし、これとは異なり、連続するレンジの値をとるアナログ入出力信号を使用することもできる。二進入出力信号は単一ビットのデータで表示でき、アナログの入出力信号は多数のビットデータワードで表示できる。
【０００３】
工業用コントローラの種々の部品は、１つ以上の通信ネットワークによって相互に接続すべき工場または製造設備のまわりに空間的に分散されていることが多い。これら通信ネットワークはリアルタイムの制御を行うのに必要とされるように、高度に信頼性があり、かつ良好に定められた最小の遅延時間でデータを送ることを特徴とする。工業コントローラ技術では、ControlNet（登録商標）DeviceNet（登録商標）およびEtherNet/IP（登録商標）を含む（これらだけに限定されるものではない）一般に多数の異なる通信ネットワークが使用されている。上記通信ネットワークの仕様は公表されており、それらのプロトコルは、多数のメーカーおよび供給者によって広く使用されている。これら通信ネットワークは、物理的な特徴、例えばメディアのタイプ（例えば同軸ケーブル、撚り対線、光ファイバーなど）、運用プロトコル（ボーレート、チャンネル数、ワード伝送サイズ、接続メッセージの使用など）、データをどのようにフォーマットするかおよびデータをどのように収集して標準メッセージとするかという点で、互いに異なっている。
【０００４】
工業用制御システムで共通するコンポーネントは、入力または出力（Ｉ／Ｏ）モジュールであり、このモジュールは、被制御プロセスまたはマシンからの工業用コントローラのためのデータを取り込み、工業用コントローラから被制御プロセスまたは機器にデータを提供するようになっている。Ｉ／Ｏモジュールは上記のように、工業用コントローラから離間しており、通信ネットワークを介して接続されている。
【０００５】
工業用制御システムで使用されている種々のＩ／Ｏモジュールは、異なるインターバルおよび周波数でデータを発生し得る。コントローラの各々がそのデータを発生する際に、コントローラがＩ／Ｏモジュールと非同期状態でインターフェースされていると仮定した場合、制御システムは、その制御動作を同期化する上の問題に遭遇し、ネットワークのトラヒックは扱いにくくなる。例えばコントローラはモジュールがデータを発生するのと同じ周波数の、特定のＩ／Ｏモジュールからのデータを必要としない。Ｉ／Ｏモジュールが、そのデータを更新するたびにコントローラへトランザクションを送ると仮定した場合、現在の制御判断に対してコントローラが必要としないデータのためのトランザクションを処理することがコントローラに求められる。
【０００６】
ネットワークのトラヒックを最適化し、異なるネットワークのタイプの間での変換およびプロキシを行い、更に同期データ転送フレームを発生するためにＩ／Ｏモジュールとコントローラとの間の物理的または論理的中継器としてスキャナを使用できる。このスキャナは、所定の更新インターバルでデータを収集し、このデータを単一の最適化された接続パケットにまとめ、更新インターバルごとに１つのトランザクションを使用して最適化された接続パケットをコントローラに転送するよう、Ｉ／Ｏモジュールとインターフェースできる。従って、コントローラは制御判断目的のためのデータを必要とすると仮定した場合に、制御された所定のインターバルでデータを受信する。
【０００７】
最適化された接続パケットを発生する際に、スキャナはコントローラへ最適化された接続パケットを周期的に送る。最適化された接続パケットとは、Ｉ／Ｏモジュールの各々から収集されたデータを示す、構造の定められていないデータのブロックのことである。各モジュールからのデータはフォーマットすることなく所定の順序で連結される。最適化された接続パケットの構成はあらかじめ決定される。この所定の構成は最適化された接続パケット内のデータを参照する前に、制御プリケーションおよびプログラム開発システムによって使用される（すなわち制御アプリケーションを開発するのに使用される）。例えば特定のＩ／Ｏモジュールの出力が最適化された接続パケットのうちのビットＮ−Ｋで存在する場合、制御アプリケーション内のプログラム命令は、制御判断を発生する際に使用するために、まさにこれらビットを参照する。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
制御アプリケーションを開発する際に、アプリケーション開発者は最適化された接続パケットのマッピングについて知っていなければならない。制御アプリケーションを構成するプログラムコマンド内には、最適化された接続パケットのパーツへの固定されたレファレンスが含まれる。最適化された接続パケットのマッピングがＩ／Ｏモジュールの追加または削除に起因して変化した場合、コントローラが適当なデータを参照するようにスキャナ等によってサービスを受けるＩ／Ｏモジュールの順序の変化、すなわち固定されたレファレンスを制御アプリケーション内で更新しなければならない。
【０００９】
最適化された接続パケットに対し固定されたレファレンス構造が課される結果、プログラムの維持および完全性に関して制御アプリケーション開発者にとって種々の問題が生じる。プログラマティックなレファレンスで使用されるデータのドキュメンテーションは、非実在的または非効率であり得る。従って、プログラムの修正が必要なときに、プログラムレファレンスを更新するタスクは、困難で、不正確で、時間がかかることである。
【００１０】
最適化された接続パケットから生じる問題を解決するための１つの技術は、組み合わされたパケットを個々のロケーションにコピーすることである。これら個々のロケーションは、制御プログラムによってより容易に参照できる。しかしながら、最適化された接続パケットと個々のロケーションの間で変換を行うのに同じコンフィギュレーション制御の問題が存在する。この技術は、プログラムメンテナンスも必要とし、コピーの遅延を生じさせ、データの完全性と妥協しなければならないことがある。
【００１１】
本明細書のこの章は、以下、説明し、および／または請求項に記載する本発明の種々の特徴に関連し得る技術の種々の特徴を説明するものである。この章は本発明の種々の特徴の、より良好な理解を容易にするための背景情報を提供するものであり、本明細書のこの章における記載は、従来技術を認めるものではなく、上記に鑑み、読むべきものであると理解すべきである。
【課題を解決するための手段】
【００１２】
本発明の１つの特徴は、処理ユニットとメモリとを含む工業用コントローラで見られるものである。この工業用コントローラは、構造が定められていないデータブロックとして配置された複数のＩ／ＯモジュールからのＩ／Ｏデータを含む、最適化された接続パケットを使用し、通信するようになっている。処理ユニットは、プロセスを制御するように、最適化された接続パケット内のＩ／Ｏデータに対して演算をするように作動できる。メモリは、複数のキャストタグを記憶するように作動でき、各キャストタグはＩ／Ｏモジュールのうちの１つに関連し、関連したＩ／ＯモジュールのためのＩ／Ｏデータの少なくとも一部を含む、フォーマットされていないデータブロックのサブセットに論理的なレファレンスを提供する。
【００１３】
本発明の別の特徴は、工業用制御データをレファレンスするための方法で見られる。この方法は、複数のＩ／Ｏモジュールとの間でＩ／Ｏデータを交換することを含む。フォーマットされていないデータブロック内に配置された各モジュールのためのＩ／Ｏデータを含む、最適化された接続パケットが発生され、複数のキャストタグが定められる。各キャストタグはＩ／Ｏモジュールのうちの１つに関連し、関連したＩ／ＯモジュールのためのＩ／Ｏデータのうちの少なくとも一部を含むフォーマットされていないデータブロックのサブセットにロジカルレファレンスを提供する。
【００１４】
本発明の更に別の特徴は、複数のＩ／Ｏモジュール、スキャナおよび工業用コントローラを含む工業用制御システム内に見られる。これらＩ／Ｏモジュールはプロセスとの間でＩ／Ｏデータを交換するようにプロセスとインターフェースするように作動する。スキャナは、Ｉ／Ｏモジュールとの間でＩ／Ｏデータを交換し、フォーマットされていないデータブロック内に配置された各モジュールに対するＩ／Ｏデータを含む最適化された接続パケットを使用して通信するように作動できる。工業用コントローラは、スキャナとの間で最適化された接続パケットを交換し、最適化された接続パケット内に含まれるＩ／Ｏデータを使用してプロセスを制御するように作動できる。工業用コントローラは、更に複数のキャストタグを記憶するように作動でき、各キャストタグは、Ｉ／Ｏモジュールのうちの１つに関連し、関連したＩ／ＯモジュールのためのＩ／Ｏデータの少なくとも一部を含むフォーマットされていないデータブロックのサブセットへロジカルレファレンスを提供する。
以下、添付図面を参照し、本発明を説明するが、図中、同様な参照番号は同様な部品を示す。
【００１５】
本発明は種々の変形および変更をしやすい。図面に示した例により本発明の特定の実施例について記載したが、更に本発明について詳細に説明する。しかしながら特定の実施例の説明は本発明を開示した特定の形態だけに限定するものではなく、むしろ逆に特許請求の範囲に記載した発明の要旨内に入るすべての変形例および均等例をカバーするものであると理解すべきである。
【実施例】
【００１６】
以下、本発明の１つ以上の特定の実施例について説明する。本発明は本明細書に記載の実施例および表示だけに限定されるものではなく、特許請求の範囲に入る実施例の一部および異なる実施例の構成要素の組み合わせを含む実施例の変形された形態を含むものである。工学または設計プロジェクトの場合のように、かかる実際の実現例の開発にあたり、開発者の特定の目標、例えば実現例ごとに異なり得る、システムに関連する制限およびビジネスに関連する制限の順守を達成するのに多数の実現例固有の判断を行わなければならない。更に、かかる開発の努力は複雑で、かつ時間のかかることであるが、それにもかかわらず、この明細書から利益を享受する当業者のための設計、製造および製品のルーティン状の企画ではないと理解すべきである。重要または本質的であると明示しない限り、本願におけるいずれの記載も、本発明にとって重要なこと、または本質的なことであるとは見なされない。
【００１７】
次に添付図面を参照すると、これら数個の図にわたって、同様な部品には同様な参照番号がつけられており、特に図１を参照し、工業用制御システム１０に関連して本発明について説明する。一般に、工業用制御システム１０は処理ユニット１６およびメモリ１７を備えた工業用コントローラ１５（例えばプログラマブルロジックコントローラ（ＰＬＣ））と、プログラミングターミナル２０と、ヒューマン−マシンインターフェース（ＨＭＩ）２５と、Ｉ／Ｏモジュール３０、３５と、センサ４０と、アクチュエータ４５と、スキャナ５０、５５と、通信メディア６０、６５、７０とを備える。
【００１８】
プログラミングターミナル２０によって工業用制御システム１０のコンフィギュアリング、変更、デバッギングおよびメンテナンスが可能となっている。例えば、プログラミングターミナル２０は、工業用コントローラ１５と通信し、コントローラの動作の特徴、例えばメモリ１７に記憶され、処理ユニット１６によって実行される制御プログラムを変更することができる。ＨＭＩ２５は、工業用制御システム１０を作動させ、自動化された工業プロセスを実行するためのオペレータインターフェースを提供する。
【００１９】
より詳細に後述するように、プログラミングターミナル２０は工業用コントローラ１５とスキャナ５０、５５との間で送られる構造の定められていないデータにデータ構造を重ねるのに使用できるキャストタグを定める。これらキャストタグは工業用制御システム１０内の他のエンティティ、例えば工業用コントローラ１５またはＨＭＩ２５によって使用され、データの所定の構造に関する知識をあらかじめ必要とすることなく、構造の定められていないデータブロックの個々のサブセットを論理的に参照することができる。従って、多数のモジュールからのデータを含む構造の定められていないデータブロック内にデータオブジェクトが埋め込まれていた場合でも、Ｉ／Ｏモジュール３０のコンフィギュレーションおよびステートを示すＩ／Ｏモジュールによって維持されるデータオブジェクトを論理的に参照するのに、キャストタグを使用できる。
【００２０】
Ｉ／Ｏモジュール３０、３５は、制御されるプロセスに関連するセンサ４０およびアクチュエータ４５に対するインターフェースを提供する。センサ４０はパラメータ、例えば流体の温度、圧力、流量、トルク、電流などを検出できる。アクチュエータ４５は、ロボットシステムに関連するモータ、バルブなど、ファン、ビーター、ポンプおよび同等品を制御する。例えば、あるタイプのアクチュエータ４５は、関連するモータを駆動するための周波数可変ドライブ信号を発生するようになっているモータドライブである。説明を容易にするために、Ｉ／Ｏモジュール３０、３５のすべてに対して個々のセンサ４０およびアクチュエータ４５を図示しているわけではない。
【００２１】
工業用コントローラ１５において、Ｉ／Ｏモジュール３０、３５からの入力信号は、制御プログラムにより処理され、更に信号は出力信号として（例えばアクチュエータ４５へ）送られる。本発明にとって、制御される特定のプロセスおよび特定の入出力モジュールのタイプは重要なことではない。Ｉ／Ｏモジュール３０、３５は、工業用コントローラ１５と一体的でもよいし、工業用コントローラ１５と離間していてもよい。一実施例では、この工業用制御システム１０は米国ウィスコンシン州ミルウォーキーのロックウェルオートメーション社が提供するLogix（登録商標）コンポーネントを使って実現できる。
【００２２】
通信メディア６０、６５、７０は、ケーブルの形態をとってもよいし、または別個のワイヤーでもよいし、またはリピーター、ルーター、ブリッジおよびゲートウェイも含み得るデジタルネットワークを含んでもよい。適当な通信メディア６０、６５、７０として、DeviceNet（登録商標）、Ethernet/IP（登録商標）またはContorolNet（登録商標）ネットワークを挙げることができるが、これらもロックウェルオートメーション社によって提供されている。
【００２３】
図１に示されるように、Ｉ／Ｏモジュール３０は、スキャナ５０の下のサブネット（通信メディア７０）として接続されている。スキャナ５０は、Ｉ／Ｏモジュール３０と工業用コントローラ１５との間の中継器として働く。スキャナ５５は通信メディア６０にも接続しているが、それに関連するＩ／Ｏモジュール３５はスキャナ５５と通信するために別個のチャンネル（通信メディア６５）を使ってスキャナ５５の下に結合されている。
【００２４】
スキャナ５０、５５は、（例えば通信メディア６０で使用される）１つの通信プロトコルから、（例えばチャンネル（通信メディア６５）またはサブネット（通信メディア７０）で使用される）別のプロトコルに変換するためのルーターとしても作動できる。システム１０内のＩ／Ｏモジュールをインターフェースするための異なる技術を示すのに、スキャナ５０、５５の構造も提供されている。実際の実現例は、図示したインターフェース構造または別のインターフェース構造のうちの１つを使用する１つのスキャナ５０、５５しか含まなくてもよい。説明を容易にするために、次の説明はスキャナ５０を参照するが、これら技術はスキャナ５０、５５のいずれにも同じように適用できる。
【００２５】
図示されている実施例では、工業用コントローラ１５は、オブジェクト指向のプログラム言語を使ってプログラムされている。プログラムターミナル２０は、工業用コントローラ１５のメモリ１７に記憶されており、その機能を実現するのに使用される種々のオブジェクトを変更、追加または削除するために、工業用コントローラ１５とインターフェースできる。工業用コントローラ１５の機能を実現するためにメモリ内に維持されるオブジェクトを工業用コントローラの制御プログラムと総称できる。従って、プログラムターミナル２０は、工業用コントローラ１５の制御プログラムを更新するためのプログラムインターフェースを提供する。
【００２６】
スキャナ５０は、更新インターバル中に入力データを収集するためにＩ／Ｏモジュール３０とインターフェースし、図２により詳細に示される単一の最適化された接続パケット１００にデータを統合し、最適化された接続パケット１００を工業用コントローラ１５に転送する。更新（例えば最適化された制御パケット１００）の間の特定のインターバルは特定の実現例に応じて変わり得る。スキャナ５０は出力データを工業用コントローラ１５からＩ／Ｏモジュール３０へ伝送し、前の入力データへの制御プログラムの演算に基づき、制御されるアクチュエータ４５のうちの１つのステートも変える。
【００２７】
スキャナ５０は、Ｉ／Ｏモジュール３０からのデータを収集するために種々の技術を使用できる。例えばスキャナ５０は、Ｉ／Ｏモジュール３０を周期的にポーリングし、モニタされる各パラメータに対する最新のデータ値をリクエストできる。新しいデータを発生していないＩ／Ｏモジュール３０は、前のデータ値で応答することになる。これとは異なり、Ｉ／Ｏモジュール３０は、新しいデータを発生したときはいつもフラグを設定することができる。スキャナ５０はこのフラグをモニタし、フラグを設定したときに限り（すなわち転送後、このフラグはクリアされる）、更新インターバル中にデータをリクエストする。更に別の技術では、Ｉ／Ｏモジュール３０は、モジュールが発生したときに（例えば同期状態で、または非同期状態で）スキャナ５０にデータを送ることができる。この技術の結果、スキャナ５０とＩ／Ｏモジュール３０との間に別のトラヒックが生じることがあり、このトラヒックは、工業用コントローラ１５が予想されたインターバルで最適化された接続パケット１００だけを受信したかのように、工業用コントローラ１５に影響することはない。アナログモジュール（例えばＩ／Ｏモジュール３５のうちの１つ）の場合、スキャナ５５にデータを連続的に利用できる。
【００２８】
次に図２を参照する。ここには最適化された接続パケット１００を伝送するための、工業用コントローラ１５とスキャナ５０との間のインターフェースを示す図が示されている。最適化された接続パケット１００は、Ｉ／Ｏモジュール３５の各々から収集されたデータを示す、構造の定められていないデータのブロックとなっている。各Ｉ／Ｏモジュール３０からのデータは、フォーマットすることなく所定の順序で連結される。
【００２９】
図示した例では、モジュール１およびモジュール２と称すＩ／Ｏモジュール３５のうちの２つは、モータドライブに関係しており、次にこれらモータドライブはモータにドライブ信号を提供する。モータドライブは最適化された接続パケット１００により工業用コントローラ１５との間で速度データを交換する。次の表１および２には、速度制御データのデータ要素に対するデータ構造の一例が示されている。表１は、速度制御データの要素の各々に対するフォーマット情報を示すものであり、表２は、Ｉ／Ｏモジュール３０内のデータオブジェクトを最適化された接続パケット１００内に含まれるよう、データブロック内にどのように組み立てるかを示す。スキャナ５５の場合（Ｉ／Ｏモジュール内のバッファを示す）データオブジェクトは、スキャナ５５によりＩ／Ｏモジュール３５のための単一のＩ／Ｏデータブロックに連結される。
【００３０】
Ｉ／Ｏモジュール３０のデータオブジェクトは、Ｉ／Ｏモジュール３０のコンフィギュレーションおよびステートを示す。Ｉ／Ｏモジュール３０、３５のすべてに対するデータブロックは、最適化された接続パケット１００を形成するように連結される。データ構造およびデータブロックフォーマットは、単に図解のために記載したものであり、本発明の用途は、特定のデータ構造またはフォーマットに限定されるものではない。
【表１】
0005118836.tif 000002
【表２】
0005118836.tif 000003
【００３１】
表１に示されるように、速度制御データはモータが所望する速度で作動しているかどうかを示す論理フラグ（AtSpeed）、局部的に、またはネットワークを通してトルク基準が提供されているかどかを示す論理フラグ（RefFromNet）、モータドライブが局部的に、またはネットワークを通して制御されているかどうかを示す論理フラグ（ControlFromNet）、モータドライブがレディ状態であるかどうかを示す論理フラグ（Ready）、モータが逆方向に作動していることを示す論理フラグ（Running Reverse）またはモータが順方向に作動していることを示す論理フラグ（Running Foward）、およびモータドライブが故障ステートであるかどうかを示す論理フラグ(Faulted）を含む。将来の使用のために１つのフラグ（パッド）が保留されている。速度制御データは保留された１バイトフィールド（パッド）も含み、そのうちの１バイトはモータスピード（SpeedActualRPM）の最小位ビット用であり、１つのバイトはモータ速度の最大位ビット用である。２つのモジュールのための速度制御データが、最適化された接続パケット１００内で単に連結されているので、その結果、各モジュール用の上記速度制御データを含むビットのストリームが得られる。従って、Ｉ／Ｏモジュールのための各データオブジェクトは、所定の態様であるが、最適化された接続パケット１００内で任意にオフセットされる。
【００３２】
最適化された接続パケット１００はモジュール１のためのデータでスタートし、次に他のモジュールからのデータが続き、次にモジュール２のためのデータが続くと仮定すると、ビット０〜３１（すなわちブロック１１５）は、モジュール１の速度制御データを示し、ビット６２８〜６５９（すなわちブロック１２０）はモジュール２のための速度制御データを示す。
【００３３】
各Ｉ／Ｏモジュール３０に対し１つのデータブロック１１５、１２０しか示されていないが、多数のデータブロックを使用できる。例えば入力データからの別個のブロック内にＩ／Ｏモジュール３０のための出力データまたはコンフィギュレーションデータが含まれてもよい。更に入力データを別個のデータブロックに分離してもよく、この場合、各データブロックはＩ／Ｏモジュール３０上のバッファのうちの１つと関連する。
【００３４】
工業用制御システム１０は、最適化された接続パケット１００内の個々のブロック１１５、１２０を参照するキャストタグ１２５を使用する。一般に、キャストタグ１２５は、特定のＩ／Ｏモジュール３０のためのデータオブジェクトを含む最適化された接続パケット１００のうちの一部に、ロジカルレファレンスを提供する。工業用コントローラ１５内のロジック１３０は最適化された接続パケット１００のうちの個々のビットに対するハードレファレンスの代わりにキャストタグ１２５を使用できる。
【００３５】
代表的な工業用制御環境では、単一のデータエリアを参照するのに１つのタグを使用できる。１つのタグは、一般に名称またはシンボルと、メンバーの名称およびデータフォーマットを特定するデータのタイプと、データセットの特定の物理的ロケーションを参照するデータオブジェクトとを含む。従来のタグのためのデータオブジェクトは、データセット全体を示し、一般に１つのタグしか特定のデータオブジェクトを参照しない。
【００３６】
キャストタグ１２５は、次の点で従来のタグと異なっている。すなわちキャストタグのデータオブジェクトはデータセットのうちのサブセットしか参照せず、タグが参照するデータの部分の上にそのデータのタイプが重ねられている点で従来のタグと異なる。多数のキャストタグ１２５は異なるＩ／Ｏモジュール３０に対するデータセットの異なるサブセットを参照することができ、そのデータに自己の独立したデータタイプを課す。プログラミングの見地からは、タグは独立しているように見える。従って、各キャストタグ１２５はＩ／Ｏモジュール３０のうちの１つのＩ／Ｏデータを参照し、キャストタグ１２５が定義するメンバーは、Ｉ／Ｏモジュール３０のうちのバッファに記憶された個々のデータ要素を参照する。
【００３７】
上記表１に示された構造は、メンバーおよび速度制御データのデータ要素に対するデータフォーマットを特定するためのキャストタグ１２５内で使用されるデータタイプを示す。従って、キャストタグ１２５のModule1.AtSpeedではModule1はシンボルであり、AtSpeedは論理フォーマットによるデータタイプのメンバーの１つとして定義される。データオブジェクトは最適化された接続パケット１００のビット７を参照する。
【００３８】
表３および４に示された下記の疑似コードの例は、キャストタグ１２５を使用するプログマティックレファレンスが前のハードレファレンスコマンドとどのように異なるかを示す。この疑似コードは使用される実際のコードを示すものではなく、むしろハードレファレンスを通してキャストタグ１２５によって得られる利点を概念的に示すものである。
【表３】
0005118836.tif 000004
【表４】
0005118836.tif 000005
【００３９】
表３の例から明らかなように、データを連結するためにスキャナ５０によって使用される命令を知らなくても、キャストタグ１２５によって関連するＩ／Ｏモジュール３０のパラメータを参照することが可能となっている。更に、キャストタグ１２５ではデータフォーマットが指定され、このフォーマットはプログラマティックレファレンス内に含まれなくてもよい。
【００４０】
図１を参照すると、キャストタグ１２５はプログラミングターミナル２０によりインスタント化され、維持され、工業用コントローラ１５の制御プログラムを発生するためにプログラミング環境内で使用できる。プログラミング環境では、各Ｉ／Ｏモジュール３０のためのデータは独立しているように見え、ロジック内の名称によって各メンバーを参照することができる。キャストタグ１２５は工業用コントローラ１５にも記憶される。
【００４１】
一部のケースでは、制御プログラムを工業用コントローラを１５にローディングする前に制御プログラムをコンパイルしてもよく、レファレンスはコンパイルされたコード内の物理的レファレンスに変換される。しかしながら、スキャナ５０によって使用される最適化された接続パケット１００の編成が（例えばＩ／Ｏモジュール３０の追加または削除に起因して）変化した場合、キャストタグ１２５だけを更新しなければならない。制御プログラムは、次に再コンパイルでき、キャストタグ１２５によって指定される新しいレファレンスがコンパイルされたコード内に組み込まれる。従って、制御プログラム内では変更は不要である。制御プログラムを解読する別のケースでは、制御プログラム内で直接キャストタグ１２５を参照することができる。
【００４２】
工業用コントローラ１５はキャストタグ１２５を記憶するので、工業用制御システム１０内の他のエンティティは、工業用コントローラ１５が記憶するモジュールデータを参照するために、キャストタグ１２５が作成したロジカルレファレンスも使用できる。例えばＨＭＩ２５が、モジュール１に関連するモータが、モジュール１のAtSpeedレファレンスを使用する速度となっているかどうかを判断するために、工業用コントローラ１５に問い合わせできる。更にＨＭＩ２５はそのディスプレイにモジュール１および２に関連したモータのステータスを連続的にディスプレイするように作動できる自らのコードを含むことができる。ＨＭＩコードはステータス情報にアクセスするためにモジュール１のAtSpeedおよびモジュール２のAtSpeedレファレンスを使用するだけでよい。最適化された接続パケット１００の編成が変化した場合、ＨＭＩ２５のコードは変えなくてもよい。
【００４３】
キャストタグ１２５は、制御プログラムを再構成するのに使用することもできる。例えば図１に示されているプログラミングターミナル２０を除く、あるプログラミングターミナル、例えばノートブックコンピュータで実現されているフィールドプログラミングターミナルが工業用コントローラ１５とインターフェスする場合、このターミナルはキャストタグ１２５を使って最適化されたデータパケット１００の構造を決定し、制御プログラムコードを分析することもできる。
【００４４】
キャストタグ１２５を使用することにより、工業用制御システム１０で使用されるコードの開発および維持が大幅に簡略化される。最適化された接続パケット１００の編成が変更されてもコードを変更しなくてもよく、キャストタグ１２５を更新するだけでよい。更にキャストタグ１２５を一旦定めれば、ユーザーは工業用制御システム１０内のモジュールデータにアクセスするのに最適化された接続パケット１００のマッピングを記述した外部ドキュメントにアクセスしなくてもよいので、より容易に工業用制御システム１０とインターフェースできる。
【００４５】
これまで開示した特定の実施例は、単に説明のためのものであり、本発明は本明細書に記載の内容から利益を享受できる当業者には明らかで、異なっており、かつ均等な態様で、本発明を変形したり実施したりすることができる。更に、特許請求の範囲に記載の構造または設計を除く、本明細書に示した構造または設計の細部のみに本発明を限定する意図はない。従って、これまで開示した特定の実施例を変形または変更することが可能であり、かかるすべての変形例は本発明の用紙の範囲内に入るものと見なされることが明らかである。従って、本明細書で求める保護範囲は特許請求の範囲に記載されている。
【図面の簡単な説明】
【００４６】
【図１】本発明の図示した実施例にかかわる工業用制御システムの簡略化されたブロック図である。
【図２】最適化された接続パケットを伝送するための、工業用コントローラとスキャナとの間のインターフェースを示す図である。
【符号の説明】
【００４７】
１５  工業用コントローラ
１６  処理ユニット
１７  メモリ
２０  プログラミングターミナル
２５  ヒューマン−マシンインターフェース
３０  Ｉ／Ｏモジュール 
３５  Ｉ／Ｏモジュール
４０  センサ
４５  アクチュエータ
５０  スキャナ
５５  スキャナ
１２５  キャストタグ
【図１】
0005118836.tif 000006
【図２】
0005118836.tif 000007