(57)【要約】【課題】ネットワーク上のタイムスタンピングプロトコルを利用する動作制御タイミングモデルを提供する。【解決手段】特許請求された本発明の内容は、産業オートメーション環境内の動作制御に関連する動作を調整するための動作制御タイミングモデルの利用を容易にするシステムおよび／または方法を提供する。例えば、周期タイミング構成要素は、タイミングモデル（例えば、それは選択、プリセット等をすることができる）によって定められたタイミングを実行することができる。一例では、周期タイミング構成要素は、タイミングモデルを利用して、データの送信、データの受信、データに関連する計算の実行（例えばコマンドを生成するため）、データの取り込み、受信されたコマンドの適用等を調整することができる。【選択図】  図１
2008135005.tif 000002
【特許請求の範囲】
【請求項１】
産業オートメーション環境での動作制御に関連するタイミングの調整を容易にするシステム（１００、５００、６００、７００、８００、９００、１０００、１１００、１２００、１３００）であって、前記システムは
ネットワーク接続経由で異種の動作制御構成要素（１０２、５０２、５０６、６０４、７０４、８０４、９０４、１００４、１１０２、１１０４、１２０２、１２０４、１３０２、１３０４）と通信する動作制御構成要素（１０２、５０２、５０６、６０４、７０４、８０４、９０４、１００４、１１０２、１１０４、１２０２、１２０４、１３０２、１３０４）と、
タイミングモデルを利用して、動作制御と関連する動作制御構成要素の動作のタイミングを調整する周期タイミング構成要素（１０４、７１２）と、
を含む、動作制御に関連するタイミングの調整を容易にするシステム。
【請求項２】
前記動作制御構成要素は、コントローラ、制御軸オブジェクト、駆動装置、および駆動軸オブジェクトの少なくとも１つである、請求項１に記載のシステム。
【請求項３】
前記動作制御構成要素および前記異種の動作制御構成要素は、時間についての共通の理解を利用して、前記タイミングモデルにしたがって前記動作を遂行する、請求項１に記載のシステム。
【請求項４】
前記動作は、データの送信、データの受信、データに関連する計算の遂行、データの取り込み、および受信したコマンドの適用の１つ以上である、請求項１に記載のシステム。
【請求項５】
前記周期タイミング構成要素は、１つの粗い更新期間において駆動装置の位置および速度の１つ以上の更新を実施する単一サイクルタイミングモデルを使用し、前記周期タイミング構成要素は、前記単一サイクルタイミングモデルを利用して前記１つの粗い更新期間のバランスのとれた部分を入力データの送信、出力データの送信および非動作関連データの送信に割り当てる、請求項１に記載のシステム。
【請求項６】
前記周期タイミング構成要素は、２つの粗い更新期間において駆動装置の位置および速度の少なくとも一つの更新を実施する２サイクルタイミングモデルを使用し、前記周期タイミング構成要素は、前記２サイクルのタイミングモデルを利用して、入力データ送信に１つの粗い更新期間を、かつコマンドの生成および前記コマンドの出力データ送信に第２の粗い更新期間を割り振る、請求項１に記載のシステム。
【請求項７】
前記周期タイミング構成要素は、３つの粗い更新期間において駆動装置の位置および速度の１つ以上の更新を実施する３サイクルタイミングモデルを使用し、前記周期タイミング構成要素は、前記３サイクルタイミングモデルを利用して、入力データ転送のために１つの粗い更新期間を、前記入力データ上で計算を行なうために第２の粗い更新期間を、および出力データ転送のために第３の粗い更新期間を配分する、請求項１に記載のシステム。
【請求項８】
前記動作制御構成要素は、前記タイミングモデルに基づき粗い更新期間の始めに実データを取り込む駆動装置であり、前記駆動装置は少なくとも１つの異種の駆動装置と同時にイーサネット（登録商標）（登録商標）スイッチに前記実データを送信し、また前記イーサネット（登録商標）（登録商標）スイッチは、前記駆動装置および前記少なくとも１つの異種の駆動装置からの前記実データを、コントローラへの送信のためにシリアル化する、請求項１に記載のシステム。
【請求項９】
前記周期タイミング構成要素は前記タイミングモデルを用いてプリセットされる、請求項１に記載のシステム。
【請求項１０】
前記周期タイミング構成要素は、１組のタイミングモデルから前記タイミングモデルを選択する、請求項１に記載のシステム。
【請求項１１】
産業オートメーション環境で動作制御の調整を容易にする方法（２００、３００、４００）であって、前記方法は
タイミングモデル（２０２、３０２、４０２）に関連する粗い更新期間の始めに駆動装置に関連する実データを取り込むことと、
前記タイミングモデル（２０４、３０４、４０６）にしたがってネットワーク経由でコントローラに前記実データを送信することと、
前記実データに対応する、前記コントローラによって生成されたコマンド出力データを、前記タイミングモデル（２０８、３０８、４０８）にしたがって前記ネットワーク経由で受信することと、
前記コマンド出力データ（２１０、３１０、４１２）を適用することと、
を含む、動作制御の調整を容易にする方法。
【請求項１２】
前記実データおよび前記コマンド出力データは、前記駆動装置の位置および前記駆動装置の速度の少なくとも１つに関連する、請求項１１に記載の方法
【請求項１３】
単一サイクルタイミングモデルの利用によって、実データ取り込みからの前記粗い更新期間中に前記コマンド出力データを適用することをさらに含む、請求項１１に記載の方法。
【請求項１４】
請求項１１に記載の方法であって、前記方法は
２サイクルのタイミングモデルを使用して前記粗い更新期間中に前記実データを送信することと、
前記２サイクルのタイミングモデルを利用して次の粗い更新期間中に前記コマンド出力データを受信することと、
をさらに含む、請求項１１に記載の方法。
【請求項１５】
請求項１１に記載の方法であって、前記方法は
３サイクルのタイミングモデルを使用して前記粗い更新期間中に前記実データを送信することと、
前記粗い更新期間中に用意される前記実データに対応する前記コマンド出力データを受信することと、をさらに含み、前記コマンド出力データは、前記粗い更新期間の後に続く２つの粗い更新期間である異種の粗い更新期間に受信される、請求項１１に記載の方法。
【請求項１６】
動作に関連するデータトラフィック用の全二重ネットワーク帯域幅を利用することをさらに含む、請求項１５に記載の方法。
【請求項１７】
入力および出力データパケットの並行処理を実施することをさらに含む、請求項１５に記載の方法。
【請求項１８】
産業オートメーション環境での動作制御の調整を容易にするシステム（１００、５００、６００、７００、８００、９００、１０００、１１００、１２００、１３００）であって、前記システムは
タイミングモデル（１０２、５０６、６０４、７０４、８０４、９０４、１００４、１１０２、１２０２、１３０２）に関連する第一の時間セグメント中に実データを受信するための手段と、
前記タイミングモデル（１０２、５０６、６０４、７０４、８０４、９０４、１００４、１１０２、１２０２、１３０２）に関連する第二の時間セグメント中に前記実データに対応するコマンド出力データを生成するための手段と、
前記タイミングモデル（１０２、５０６、６０４、７０４、８０４、９０４、１００４、１１０２、１２０２、１３０２）に関連する第三の時間セグメント中に前記コマンド出力データを送信するための手段と、
を含む、動作制御の調整を容易にするシステム。
【請求項１９】
前記タイミングモデルは、単一サイクルタイミングモデル、２サイクルタイミングモデルあるいは３サイクルタイミングモデルの少なくとも一つである、請求項１８記載のシステム。
【請求項２０】
前記実データおよび前記コマンド出力データは、前記駆動装置の位置および前記駆動装置の速度の少なくとも１つに関連する、請求項１８記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は産業制御システムに関し、より詳しくはネットワーク上のタイムスタンピングプロトコルを利用する動作制御を可能にすることに関する。
【背景技術】
【０００２】
コンピュータ技術の進歩により、今日の企業は、わずか数年前の本質的に同様の企業に比べてより効率的に業務を行うことができる。例えば、内部ネットワーキングにより、会社の従業員は電子メールで瞬時に通信し、データファイルを速やかに異なる従業員へ転送し、データファイルを操作し、プロジェクトに関連するデータを共有して仕事の生産物等中の重複を減らすことができる。さらに、工場アプリケーションは、技術の進歩によって部分的にあるいは完全に自動化できるようになった。例えば、かつて労働者が重機械や他の様々な危険な条件の近くで行わなければならなかった操作も、いまでは、それらから安全な距離を保って行うことができる。
【０００３】
さらに、人間の行動に付随する不完全性は、高精密な機械の利用を通じて最小限度に抑えられている。これらの工場の装置の多くは、生産に関するデータを、作業現場のシステム／プロセス／プロジェクトマネージャーがアクセスできるデータベースに供給する。例えば、センサーおよび関連するソフトウェアは、ある特定の機械が、決まった時間を与えられた作業を完了した回数を検知することができる。さらに、センサーからのデータをシステム警報に関係のある処理装置に伝達することができる。したがってファクトリーオートメーションシステムは、収集したデータを検討し、自動的かつ／または半自動的な装置の保守、装置の入れ替え、およびプロセスの自動化に関係する他の様々な工程のスケジュールを作成することができる。
【０００４】
産業プロセスの自動化に関してはさまざまな進歩があったが、コントローラの利用および設計にはほとんど変化がなかった。産業用コントローラは、産業プロセス、製造機器、およびネットワーク化されたシステムによるデータ収集のような他のファクトリーオートメーションプロセスの制御のために利用される専用コンピュータである。コントローラは、しばしば他のコンピュータシステムと協力して稼動し、大多数の近代的で自動化された生産工程が行われる環境を形成する。これらの工程は、鉄鋼生産のような材料のフロントエンド処理から、事前に処理された材料の組み立てを含む自動車生産のようなより入り組んだ製作過程までを含んでいる。しばしば、自動車の場合のように、複雑な組み立て品は産業制御プロセスを支援する先端技術ロボット工学で製造することができる。
【０００５】
制御システムは、ロボットなどの機械に関連する動作を制御するために使用することができる。これらのシステムの多くは、対象システム中の動作を命じるソースを含んでいる。例えば、ソース（例えばコントローラ）は対象物（例えば駆動装置、モータ等）を動作させるために利用することができる。動作制御は、コントローラから駆動装置へ送られるコマンドデータ、および駆動装置からコントローラへ送られる実データを定期的に更新することにより達成することができる。従来の動作制御ネットワークは、高性能の協調動作を達成するため、コントローラおよび多数の駆動装置間の正確な、時間的に同期したデータ交換を用いている。従来のネットワーク解決法は、ネットワーク更新周期がタイムスロットに分割されるタイムスロット手法を使用している。ネットワーク内の各ノードは、対応する、割り当てられたタイムスロットを利用してそのデータを送信する。
【０００６】
タイムスロット手法の利用は、イーサネット（登録商標）のようなオープンスタンダードネットワークとともに使用された場合、問題が多い。例えば、ノードがネットワーク上でいつ交信することができるか制限すると、標準イーサネット（登録商標）プロトコルが侵害され、通常、これらの動作制御プロトコルが一般ネットワークから切断された状態に留まるか、あるいはゲートウェイ装置を適用することが必要になる。さらに、タイムスロットプロトコルは、組み立てに対して広範囲な構成および調停を必要とし、通常ネットワークが動作している間、修正できない。したがって、ノードは実行中にネットワークに追加したり、ネットワークから取り除いたりすることができない。その結果、ネットワークの更新に関連する中断時間が高価なものになる。さらに、タイムスロットプロトコルを採用している装置は、コントローラの更新周期と同期して動作するようにせざるを得ない。したがって、駆動装置は、コントローラの更新期間の整数倍である１セットの更新頻度に限定される。
【０００７】
さらに、タイムスロット法はネットワークの全帯域幅をスケジュールする傾向があるため、従来の動作制御技術は、ネットワーク上の非動作制御データの通信を許容しない。従来の動作制御ネットワークプロトコルは、各ドライブノードがその実データを送るための特定のタイムスロット、およびコントローラがコマンドデータを送るためのタイムスロットを、形成するか交渉することができる。プロトコルによっては、更新周期の一部を、非動作制御データを渡すために確保しておくことができる。しかし、通常、複数の非動作ノードがネットワーク上で共存することはできない。なぜなら、それらノードは動作に関するタイムスロットスケジューリングに関連する送信と干渉するからである。したがって、非動作メッセージは、非動作メッセージ・タイムスロットが利用できるようになるまでその送信を遅らせるゲートウェイ経由でのみ、ネットワークを通して伝達することができる。
【０００８】
さらに、動作制御ネットワークは、従来、サイズと内容が固定されているデータ構造によって制約されてきた。そのような制約は、部分的には時間同期および決定性データ転送を提供するためにこれらのネットワークによって使用されるタイムスロットプロトコルに起因している。データ構造が、関連するタイムスロットに関するサイズ限度を越えると、送信が次のタイムスロットに割り当てられたネットワークノードからのデータと衝突するおそれがある。現在の動作制御プロトコルは、通常実行中に変更することができない、構成時間における固定長データ構造を定義する。なぜなら、タイムスロッティングは駆動装置とコントローラのノード間で受け渡しされるデータパケットのサイズに基づいて決定されるからである。したがって、ネットワーク帯域幅はしばしば不適当なサイズであるデータパケットにより浪費される（例えば、もしデータパケットが大きすぎれば、余分な「パッド」データがネットワーク上を送信され、もしデータパケットが小さすぎれば、データを伝えるために複数の送信が要求される場合もある）。
【０００９】
ここに記述されたいくつかの態様の基本的理解を与えるために、以下に特許請求された発明の内容の簡単な要約を示す。この要約は広範囲にわたる概観ではなく、鍵となる／重大な要素を識別することとか、あるいは特許請求された発明の内容の範囲を正確に描写することを意図するものではない。その唯一の目的は、後に述べるより詳細な説明の序論として、単純化した形式でいくつかの概念を示すことにある。
【００１０】
ここに記述された、特許請求された発明の内容は、産業オートメーション環境内の動作の制御に関連する工程を連携させるための動作制御タイミングモデルの利用に関する。例えば、周期タイミング構成要素は、タイミングモデルによって述べられるタイミング（例えば、選択されたり、プリセットされたりできる、等）を実行することができる。さらに説明すれば、周期タイミング構成要素は、タイミングモデルを利用して、データの送信、データの受信、データに関連する計算の実行（例えばコマンドの生成）、データの取り込み、受け取ったコマンドの適用などを連携させることができる。例えば、タイミングモデルは、粗い更新期間内の更新を行なうことができる、１サイクルタイミングモデルであってよい。さらに、２つの粗い更新期間内の更新を達成することができる、２サイクルタイミングモデルを利用することができる。さらに、更新を行なうために３つの粗い更新期間を使用する、３サイクルタイミングモデルを利用することができる。
【００１１】
１つ以上の態様によれば、動作制御は、産業オートメーション環境中でタイムスタンピングプロトコルを利用することによってネットワーク上で可能になる。コントローラと駆動装置は、動作制御をサポートするオープンネットワーク経由で交信できる。例えば、コントローラと駆動装置はイーサネット（登録商標）に基づくネットワーク上で交信することができる。コントローラおよび／または駆動装置は、動作に関連する通信を生成することができる。駆動装置は、例えば、関連する物理的性質（例えば実データ）を測定することができ、コントローラは、特別の駆動装置によって実施することができるコマンド（例えばコマンドデータ）を生成することができる。動作に関連するデータは、測定が行われた時間に関係しているかもしれないタイムスタンプ（例えば実データ）、および／またはデータがもたらされることになっている時間（例えばコマンドデータ）を含むことができる。さらに、動作制御ネットワーク内の各ノード（例えばコントローラ、制御軸オブジェクト、駆動装置、駆動軸オブジェクト等）は、異種のネットワークノードに関連する他の異種のクロックと同期できるクロックを利用することができる。したがって、動作制御ネットワーク内のノードは、時間についての共通の理解を得ることができる。ネットワーク時刻を利用すると、駆動装置は新しいコマンドを実行することができ、それらコマンドは、タイムスタンプに関連する時間に、受け取ったコマンドと関係付けることができる。さらに、駆動装置は、分析されるコントローラへ後に転送することができる実データとともに、測定が行われる時刻に関連するタイムスタンプを含むことができる。
【００１２】
１つの態様によれば、平衡更新周期を使用して、動作関連データおよび非動作関連データをネットワーク上で送信することができる。例えば、更新周期は、入力転送区間、計算区間および出力転送区間のようなさまざまな区間に分割することができる。動作関連データは入力転送区間（例えば、駆動装置からコントローラに実データを送信する）、および／または出力転送区間（例えば、コントローラから駆動装置にコマンドデータを送信する）中に転送することができる。これらの区間中において、非動作関連データと比較して、動作関連データにはより高い優先順位を割り当てることができる。したがって、動作関連データおよび非動作関連データの両方がこれらの区間中にネットワークを通して送信される場合に動作関連データの配送が最小の待ち時間で行われることを容易にするために、より高い優先順位の動作関連データは待ち行列において非動作関連データの前に並べることができる。さらに、計算区間中に、コントローラは受信された実データを評価することができ、さらにその後動作関連データの送信が静止している間に、動作入力データの後に送信するように待ち行列に入れられた、より低い優先順位の非動作データは、ネットワークを通して送信することができる。したがって当然、より低い優先順位の非動作データパケットのトラフィックは更新周期期間中の計算区間中に送信するように再編成される。データを転送する特別の時間に特別のノードを割り当てるためにタイムスロッティングを利用しないで更新周期を別個の区間へ分割すると、動作制御データおよび非動作制御データが同じネットワークを通して送信されることが可能になり、動作制御データがネットワークのリソースのすべてあるいは大多数を利用しないで済むようになる。
【００１３】
さらに、任意のサイズおよび／または構造に関連する動的データは、ここに説明される特許請求された発明の内容のタイムスタンピングプロトコルに関連して、利用することができる。例えば、データ構造のサイズおよび／または内容は更新ごとに変化することができる。一実施例によれば、データはその構造について記述するデータパケットのヘッダーに情報を含むことができ、受信ノードが受信データを利用することを可能にする。
【００１４】
タイムスロッティングプロトコルと異なり、タイムスタンプ動作制御データを利用すると、動作制御ネットワークの効率が向上する。例えば、タイムスタンピングによって、種々のサイズのデータパケットを使用することが可能になる。したがって、タイムスロッティング技術に関連する固定データ構造にはよくあることだが、ネットワーク上で追加のデータおよび／またはパケットを転送する必要はない。さらに、タイムスタンピングプロトコルの利用によって複雑さを低減することができる。さらに、タイムスタンピングプロトコルを利用すると、ノードを付加したりおよび／または動作制御ネットワークから取り除いたりすることができる。
【００１５】
前述の、およびそれに関連する目的の遂行のために、本発明の説明に役立つ態様を、以下の説明および付加された図面と関連して記述する。しかしながら、これらの態様は発明の原理が使用されうる少数のいろいろな方法のみを示すものであり、本発明は、そのような態様およびそれらと等価なものすべて含むことを意図している。本発明のその他の利点および新奇な特徴は、図面に関連して考えれば、以下の本発明の詳細な説明から明白になるであろう。
【００１６】
附属書Ａは、タイムスタンピング動作制御に関連する様々な典型的な態様について記述する―この附属書は本出願の明細書の一部と見なされるべきである。
【発明を実施するための最良の形態】
【００１７】
特許請求された発明の内容を、図面を参照して説明する。図中、同じ要素を指す場合には同じ参照番号を使用する。以下の説明では、説明の目的で、特許請求された発明の内容について完全に理解できるよう、特定の詳細が多数述べられている。しかしながら、そのような内容がこれらの特定の詳細なしで実行できることは明白である場合もある。他の例では、発明の説明を容易にするために、周知の構造物および装置をブロック図の形で示す。
【００１８】
この出願中で使用されるとき、「構成要素」、「システム」等の用語はコンピュータ関連の実体、すなわちハードウェア、ハードウェアとソフトウェアの組合せ、ソフトウェアあるいは実行中のソフトウェアのいずれかを指すものとする。例えば、構成要素はプロセッサ上で作動するプロセス、プロセッサ、オブジェクト、インスタンス、実行可能なもの、実行のスレッド、プログラムおよび／またはコンピュータであり得るが、これらに限定されるわけではない。実例として、コンピュータ上で作動するアプリケーションとコンピュータの両方が構成要素であり得る。１つ以上の構成要素がプロセスおよび／または実行のスレッド内に存在してもよく、また、構成要素は１つのコンピュータに局在しおよび／または２つ以上のコンピュータ間に分散してもよい。
【００１９】
さらに、特許請求された発明の内容は、標準プログラミングおよび／またはエンジニアリング技術を使用して、開示された発明の内容を実施するコンピュータを制御するソフトウェア、ファームウェア、ハードウェアあるいはそれらの任意の組合せを生産する方法、装置、あるいは製品として実施されてもよい。ここに使用される「製品」という用語は、任意のコンピュータが読める素子、キャリヤーあるいは媒体からアクセス可能なコンピュータプログラムを包含するものとする。例えば、コンピュータ読取り可能な媒体は磁気記憶装置（例えばハードディスク、フロッピー（登録商標）ディスク、磁気テープ等）、光ディスク（例えばコンパクトディスク（CD）、デジタル汎用ディスク（DVD）等）、スマートカードおよびフラッシュメモリ素子（例えば、カード、スティック、主要駆動装置等）を含むことができるが、これらに限定されない。さらに、なお、電子メールを送受信するか、インターネットあるいはローカルエリアネットワーク（LAN）のようなネットワークにアクセスするのに使用されるようなコンピュータ可読の電子データを搬送するために、搬送波を使用することができる。勿論、当業者は、特許請求された発明の内容の趣旨から逸脱せずに、多くの変更がこの構成になされる可能性があることを認めるだろう。さらに、「例示的な」という単語は、ここでは、例、過去の例あるいは説明の意味で使用される。「例示的である」としてここに説明された態様あるいは設計については、必ずしも他の態様あるいは設計より好ましいまたは有利であるとは解釈されない。
【００２０】
図１は、産業オートメーション環境中で動作制御に関連するタイミングを調整するシステム１００を図示する。システム１００は、異種の動作制御構成要素（図示せず）と交信する動作制御構成要素１０２を含む。動作制御構成要素１０２は、例えば駆動装置、駆動軸オブジェクト、コントローラ、制御軸オブジェクトなどであり得る。一例では、動作制御構成要素１０２は、コントローラと（例えばネットワーク接続経由で）交信できる駆動装置であり得る。そのようなものとして、駆動装置はコントローラに実データ（例えば、位置および／または速度へ関連づけられている）を送信することができる。また、コントローラは、１つ以上の駆動装置に送信することができるコマンドを生成するために実データを利用することができる。そのあと、この１つ以上の駆動装置は、このコマンドを利用して位置および／またはそれと関連する速度を更新することができる。しかしながら、特許請求された発明の内容が前述の例に限定されない。システム１００は、動作制御構成要素１０２に関係した動作制御と関連する工程のタイミングを調整するためにタイミングモデルを利用する周期タイミング構成要素１０４をさらに含む。例えば、周期タイミング構成要素１０４は、データ送信、データ受信、データに関連する計算の実行（例えばコマンドを生成すること）、データの取り込み、受信コマンドの適用等を調整することができる。
【００２１】
動作制御構成要素１０２および異種の動作制御構成要素は、時間について共通の理解を有することができる。さらに、周期タイミング構成要素１０４は、時間についての共通の理解を利用して、特定のタイミングモデルに従ったタスクの遂行を達成することができる。例えば、このタイミングモデルは、入力トラフィックがネットワーク接続上で転送されうる（例えば、駆動装置がコントローラにデータを送信することができる）第１期間、動作トラフィックが生じない第２の期間、出力トラフィックが通信される（例えばコントローラが駆動装置へコマンドのようなデータを送信する）第３期間、などを提供することができる。しかしながら、特許請求された発明の内容はそのように限定されない（例えば、動作トラフィックがネットワークを横断しない期間を設ける必要はない、等）。したがって、タイムスロッティングにより各ノード（例えば各コントローラ、駆動装置、等）に独自の送信時間を割り当てる従来の技術とは対照的に、動作制御構成要素１０２は、複数のノード（例えば動作制御構成要素１０２および／または任意の異種の動作制御構成要素）が、共通の時間を利用して動作関連データ（および／または異なるタイプのデータ）をネットワーク接続経由で送信および／または受信できるようにする。
【００２２】
動作制御構成要素１０２からは分離しているものとして図示されているが、動作制御構成要素１０２は周期タイミング構成要素１０４および／またはその一部を含むことができると想定される。動作制御構成要素１０２のそれぞれは、図示されたように対応する周期タイミング構成要素１０４と結合されることができる。さらに／あるいは、周期タイミング構成要素１０４は複数の動作制御構成要素１０２と結合することができる。
【００２３】
周期タイミング構成要素１０４はいかなる形式のタイミングモデル（例えばいかなる形式の共通産業プロトコル（Common Industrial Protocol (CIP)）動作タイミングモデル）も使用することができる。例えば周期タイミング構成要素１０４は、１つの粗い更新期間（Coarse Update Period （CUP））（例えばコントローラ更新期間、接続更新期間等）、２つのＣＵＰ、３つのＣＵＰなどにおいて更新する位置および／または速度（例えば駆動装置の）をもたらすタイミングモデルを利用することができる。一例では、ＣＵＰは１ミリ秒であり得る。しかし、特許請求された発明の内容はこれに限定されない。
【００２４】
一例によれば、動作制御構成要素１０２は、実位置および／または速度と関連するデータを取り込むことができる駆動装置であり得る。周期タイミング構成要素１０４は、駆動装置がＣＵＰの開始時期の実位置および／または速度と関係するデータを取得することが可能なようにすることができる。その後、駆動装置は、実位置および／または速度データをコントローラに送信することができ、またコントローラ（例えば周期タイミング構成要素１０４によって連携している）からデータ（例えばコマンド）を受信することができる。受信されたデータは駆動装置に関連する実位置および／または実速度を更新するために利用することができる。更新（例えば駆動装置での実データの取り込みから、取り込まれたデータに対応するコマンドデータを適用するまでの時間（それは位置更新遅延と呼ぶことができる））を行なうことに関連するＣＵＰの数は、周期タイミング構成要素１０４によって利用されるタイミングモデルに依存することができる。
【００２５】
一例では、周期タイミング構成要素１０４はいかなる動作制御タイミングモデルも利用することができる。例えば、周期タイミング構成要素１０４はタイミングモデルを用いて予め設定できる。別の例によれば、周期タイミング構成要素１０４は一組のタイミングモデルの中から一つのタイミングモデルを選ぶことを可能にすることができる。そのような選択は、自動的に（例えば周期タイミング構成要素１０４によって）および／またはユーザー入力に応じて達成することができる。さらに、周期タイミング構成要素１０４によって利用されたタイミングモデルは更新することができる。しかしながら、特許請求された発明の内容は上述の例に限定されない。
【００２６】
図２−図４は、産業オートメーション環境中での動作制御データの転送および／または更新を調整するために周期タイミング構成要素（例えば図１の周期タイミング構成要素１０４）によって使用されるタイミングモデルの例を示す。これら図示されたタイミングモデルは例として用意されたものであり、特許請求された発明の内容がそのように限定されるわけではない。
【００２７】
図２は、産業オートメーション環境中の動作制御に関して利用される単一サイクルタイミングモデル２００の一例を示す。単一サイクルタイミングモデル２００は、位置および／または速度更新を１サイクル（例えば１つの粗い更新期間（ＣＵＰ）、例えば１ミリ秒）で行なうために利用することができる。したがって、動作制御更新は最小の位置更新遅延で起こり得るため、単一サイクルタイミングモデル２００は、複数の駆動軸間のマスタ−スレーブ関係に関して使用することができる。１  ２０２で、駆動装置の粗い割込サービスは、サイクルの初めの駆動装置位置および／または速度を読むことによりスタートすることができる。例えば、駆動装置はフィードバックカウント数を取り込み、実位置および／または速度を計算することができる。図示されてはいないが、任意の数の駆動装置が同時に単一サイクルタイミングモデル２００（および／またはここに説明されたいずれのタイミングモデルも）を利用することができると想定されている。２  ２０４で、駆動装置はコントローラに（例えば媒体（ネットワーク）経由で）実際の入力データ（例えば、位置および／または速度に関連する）を送信することができる。３  ２０６で、コントローラタスクは位相オフセット遅延の後にスタートすることができる。図示されたように、位相オフセット遅延は約３３０マイクロ秒であり得る。しかしながら、本発明の請求項はこの位相オフセット遅延の利用に限定されているわけではなく、代わりに、どんな位相オフセット遅延も使用することができる。コントローラは、駆動装置から得られた実データを読むことができる。さらに他の例によれば、コントローラの動作プランナは、駆動装置および／または異なる駆動装置からの位置データに基づきコマンド出力データ（例えば、位置および／または速度に関連する）を計算することができる。４  ２０８で、コントローラは駆動装置にコマンド出力データを送信することができる。さらに５  ２１０で、駆動装置の粗い割込サービスがスタートできる。例えば、駆動装置はコマンド出力データを読み、そのようなデータを駆動装置の制御構造に適用することができる。
【００２８】
コントローラがコマンド出力データを生成する時間セグメント（例えば３  ２０６の）中に、非動作パケットはネットワーク経由で転送することができる。したがって、例えば、もしイーサネット（登録商標）モジュールが全負荷状態であっても、単一サイクルタイミングモデル２００は非動作関連データのためにＣＵＰの３３％を留保しておくことができる。さらに、ネットワーク帯域幅の３３％を駆動装置からコントローラへの入力データのために留保しておくことができ、また別の３３％をコントローラから駆動装置への出力データ送信に利用することができる。したがって、単一サイクルタイミングモデル２００は、バランスのとれた配信時間および入出力のためのネットワーク負荷を提供することができる。しかしながら、特許請求された発明の内容は前述の例に限定されるものではない。
【００２９】
次に図３を参照して、産業オートメーション環境中の動作制御（例えばＣＩＰ動作）のために使用することができる２サイクルタイミングモデル３００の例を示す。１  ３０２で、駆動装置の粗い割込サービスがスタートできる（例えば、フィードバックカウント値は取り込むことができ、実位置および／または速度を計算することができる）。２  ３０４で、駆動装置はコントローラに実際の入力データを送信することができる。一例によれば、２サイクルタイミングモデル３００は、入力データが駆動装置からコントローラへ送られる粗い更新期間すべてを利用することができる。例えば、入力データは、粗い更新期間の全期間中いつでも駆動装置からコントローラへ送ることができる。
【００３０】
３  ３０６で、コントローラタスクは、コントローラに関連する次の更新期間中にスタートすることができる。例えば、コントローラは、直近の更新期間（例えば、２  ３０４でコントローラへ実際の入力を転送するために利用される粗い更新期間）から直ちに実際の入力データを読むことができ、また、動作プランナは対応するコマンド出力データ（例えば、位置および／または速度に関係する）を計算することができる。４  ３０８で、コントローラは駆動装置にコマンド出力データを送信することができる。コマンド出力データの転送は、例えばコントローラのコマンド出力データの計算の後に続くこの第２の粗い更新期間のどの時間にでも生じてもよい。５  ３１０では、駆動装置の粗い割込サービスが始まり得る。こうして、駆動装置はコマンド出力データを読んで、それを駆動装置の制御構造に適用することができる。
【００３１】
２サイクルタイミングモデル３００は、２つの粗い更新期間の位置更新遅延に関係付けられる。一例では、２サイクルタイミングモデル３００は、入力通信用のネットワーク帯域幅の５０％、および出力通信用のネットワーク帯域幅の５０％を利用することができる。さらに、入出力配信時刻はバランスが取れていないことがある。例えば入力データに関連する送信は粗い更新期間全体を利用することができる一方、出力データ転送は粗い更新期間の一部だけしか利用できず、残りの粗い更新期間をコントローラがコマンド出力データの生成に関連して使用することができる。なお、入力と出力は、同じ粗い更新期間（例えばネットワーク経由の双方向トラフィック）中に送信することができる。したがって（図示されていないが）、駆動装置は図３に示されている両方の粗い更新期間中に実際の入力データを送信することができる。
【００３２】
図４は、動作制御（例えばＣＩＰ動作）に関して産業オートメーション環境の中で使用することができる３サイクルタイミングモデル４００の例を示す。３サイクルタイミングモデル４００は、第一の粗い更新期間を入力のために、第二の粗い更新期間を計算のために、および第三の粗い更新期間を出力のために利用することができる。一例によれば、第一、第二および第三の粗い更新期間は各々完全な粗い更新期間であり得る。３サイクルタイミングモデル４００は、上述の２サイクルタイミングモデル（例えば図３の２サイクルタイミングモデル３００）と次の点で、すなわち３サイクルタイミングモデル４００は、出力転送のために利用されるサイクルの始まりにそのような計算を行なう場合と異なり、計算のための追加的な完全なサイクルを含むことができるという点で、異なり得る。
【００３３】
１  ４０２で、駆動装置の粗い割込サービスは、フィードバックカウント数を取り込み、実位置および／または実速度を計算することによりスタートすることができるが、その一方で２  ２０４では、コントローラタスクは同時にスタートすることができる。コントローラタスクは最後の粗い更新期間から実位置および／または実速度を読むことを可能にすることができる。さらに、３  ４０６で、駆動装置はコントローラに実位置および／または実速度を送信することができる。さらに、４  ４０８で、コントローラは最後のタスク実行から駆動装置に計算されたコマンド出力データ（例えば、位置および／または速度に関連づけられた）を送信することができる。５  ４１０で、コントローラ動作プランナは、次の更新のためのコマンド出力データを計算することができる。さらに６  ４１２で、コマンドデータを読み駆動装置の制御構造にそのようなデータを適用すること（例えば位置および／または速度を更新すること）により、粗い割込サービスがスタートできる。
【００３４】
３サイクルタイミングモデル４００は、駆動装置からコントローラに実データを、およびコントローラから駆動装置にコマンド出力データ（例えば、前の粗い更新期間に受け取られた実データから計算された）を同時に移送することを可能にでき、また、両方の送信は、それらが有効にされる粗い更新期間全体を利用することができる。したがって、３サイクルタイミングモデル４００は、ネットワーク接続（例えば、切り替えられたイーサネット（登録商標））の全二重性を活用することができる。３サイクルタイミングモデル４００は、全二重ネットワーク帯域幅の１００％を動作トラフィックのために使用することができる。しかしながら、特許請求された発明の内容はそのように限定されない。さらに、入出力パケットの並行処理を達成することができる（例えばネットワークが全負荷状態の場合）。さらに、３サイクルタイミングモデル４００はバランスの取れた入力と出力の配信時刻を提供する。それらは各々１つの粗い更新期間であり得る。前述の単一および２サイクルタイミングモデルと比較して、３サイクルタイミングモデル４００は、ミリ秒当たりより多数の軸をサポートすることができる。しかし、３サイクルタイミングモデル４００は、３つの粗い更新期間の位置更新遅延に関係付けられる可能性がある。例えば、３サイクルタイミングモデル４００（例えば、１００メガビット／秒のイーサネット（登録商標）を使用する、１２５バイト／軸のパケットに基づいている）は１００軸／ｍｓｅｃをサポートでき、図３の２サイクルタイミングモデル３００は５０軸／ｍｓｅｃをサポートでき、また、図２の単一サイクルタイミングモデル２００は３０軸／ｍｓｅｃをサポートすることができる。したがって、３サイクルタイミングモデル４００を利用して、多数の軸が使用可能になる。しかしながら、特許請求された発明の内容は、それぞれのタイミングモデルがある軸数／ｍｓｅｃ（またはバイト／軸）をサポートできるというようには限定されていない。
【００３５】
図５は、産業オートメーション環境中での動作制御に関連する入力送信をシリアル化するシステム５００を示す。システム５００は、同時（例えばタイミングモデルにが示す入力期間中の）に、あるいは同時に近い状態で入力データを送信することができる駆動装置５０２をいくつでも含むことができる。例えば、駆動装置５０２は、粗い更新期間の始め、あるいはその近くで入力データを送信することができる。この例によれば、駆動装置５０２の各々は、粗い更新期間の最初あるいはその近くに実データ（例えば、位置および／または速度に関連づけられている）を取り込むことができる。さらに別の例によると、これらのデータパケットは、高優先順位データパケットであり得る（例えば、非動作関連データパケットと比較して、動作関連データパケットはより高い優先順位に結びつき得る）。データはイーサネット（登録商標）スイッチ５０４に送信することができる。イーサネット（登録商標）スイッチ５０４は、その後駆動装置５０２からのデータをシリアル化し、このシリアル化データをさらにコントローラ５０６に転送することができる。
【００３６】
以下の説明全体を通して単一サイクルタイミングモデル（例えば図２の単一サイクルタイミングモデル２００）が説明されているが、どんなタイミングモデルも使用することができる。例えば、単一サイクルタイミングモデルに加えてあるいはその代わりに、図３の２サイクルのタイミングモデル３００および／または図４の３サイクルタイミングモデル４００を利用することができる。
【００３７】
図６を見ると、産業オートメーション環境中で動作の制御を容易にするタイムスタンピングの仕組みを利用するシステム６００が図示されている。システム６００は、制御ネットワーク（図示せず）上でデータを受信および／または送信するインターフェース６０２を含む。インターフェース６０２は動作制御構成要素６０４にデータを供給する。同構成要素は受信したデータを使用して、あとでネットワーク上を異種の動作制御構成要素（図示せず）に逆送信され得る出力を生成する。動作制御構成要素６０４はクロック６０６、およびタイムスタンプ構成要素６１０を利用する更新構成要素６０８を含む。
【００３８】
インターフェース６０２は、ネットワークに交信可能に結合でき、そのネットワーク経由でデータを受信および／または送信できる。インターフェース６０２はハードウェア、ソフトウェアあるいはそれらの組合せであり得る。さらに、インターフェース６０２は、有線接続、無線接続、ポートなどであり得る。インターフェース６０２はネットワークからデータを得、かつ／またはネットワークにデータを供給する。そのネットワークは、例えばイーサネット（登録商標）系のネットワークのようなオープンスタンダードネットワークであってよい。さらに、このネットワークはDeviceNetおよび／またはControlNetネットワークであり得る。しかしながら、特許請求された発明の内容は、そのような例に限定されるものではない。ネットワークは、動作制御（例えば共通産業プロトコル（Common Industrial Protocol（CIP））ネットワーク）をサポートするどのネットワークであってもよい。インターフェース６０２はどのような形式のデータも受け取りかつ／または提供することができる。例えば、インターフェース６０２は、コマンドデータおよび／または実データ（例えば実際の第一位置、実際の第二位置、実際の速度、実際の加速度、実際のトルク、実際の電流、実際の電圧、実際の周波数等のような駆動装置に関連する実データ）を送受信できる。さらに他の例によれば、入出力データ、ヒューマン−マシンインターフェースデータ、ストリームビデオデータ、メッセージデータなども、インターフェース６０２経由で交換することができる。
【００３９】
インターフェース６０２は、動作制御構成要素６０４に交信可能に接続されている。動作制御構成要素６０４は動作制御ネットワーク中でノードに関係している。例えば、動作制御構成要素６０４は、コントローラ、駆動装置、制御軸オブジェクト、駆動軸オブジェクトなどであり得る。駆動装置はモータの動力を制御するように設計されている装置であり得る。制御軸オブジェクトは、コントローラに基づく軸の属性、サービスおよび挙動を定義するオブジェクトであり得る。さらに、駆動軸オブジェクトは、駆動装置に基づく軸の属性、サービスおよび挙動を定義するオブジェクトであり得る。軸は、ある形の動作を示す動作制御システムの論理素子であり得る。軸は、回転するもの、線形のもの、物理的なもの、仮想的なものが可能であり、制御、観察されることが可能である。オブジェクトは、例えばCommon Industrial Protocol（CIP）動作標準のような動作標準を利用することができる。ネットワークは、動作制御構成要素６０４に加え、同様の、任意数の異種の動作制御構成要素も含むことができると想定される。ここでそれぞれの動作制御構成要素は、ネットワークの異種のノードに関係付けられている。
【００４０】
動作制御構成要素６０４はクロック６０６を含む。クロック６０６は、動作制御ネットワーク内の様々なノードに位置する異種の動作制御構成要素に関連する、他のすべてのクロックと同期することができる。または、ネットワーク中の全ノードのサブセットのクロックは同期させることができる。ＩＥＥＥ  １５８８精密時間プロトコルは、例えば、クロック６０６と、他のネットワークノードに関連するクロックとの同期を可能にできる。クロック６０６を同期させるために考えられる他のプロトコルはＮＴＭ、ＮＴＰなどである。しかしながら、ここに付加された請求項はそのように限定されるわけではない。クロック６０６を他のノードと同期させることによって、ネットワーク全体に渉って時間についての共通の理解が存在することになる。例を挙げれば、クロック６０６は、精度がナノ秒の範囲（例えば５０‐１００ナノ秒の精度）にあるようにネットワーク中の異種のクロックと同期させることができる。クロック６０６はインターフェース６０２経由でマルチキャストパケットを受け取ることにより同期させることができる。一つの例では、マルチキャストパケットは、１ミリ秒毎、２ミリ秒毎等に動作制御ネットワーク上を送信されるタイムスタンプを含むことができる。クロック６０６はマルチキャストパケットを取得して、タイムスタンプに同期することができる。さらに、クロック６０６は、受信したマルチキャストパケットに同期する場合、ネットワーク遅延を補償することができる。
【００４１】
動作制御構成要素６０２はさらに、動作制御構成要素６０４に関連する特性を修正することができる更新構成要素６０８を含んでいる。実例として、更新構成要素６０８は、動作制御構成要素６０４によって利用されるコマンドの修正、異種の動作制御構成要素によって利用されるべきコマンドの生成、動作制御構成要素６０４に関連する測定データの更新等を容易にすることができる。例えば、動作制御構成要素６０２は、コントローラによって生成された新しいコマンドデータのセットを受け取ることができる駆動装置および／または駆動軸オブジェクトであり得る。インターフェース６０２はコマンドデータを受け取り、更新構成要素６０８はそのデータを処理することができる。実例として、コマンドデータは、駆動装置が特別の位置、速度、トルク等と関連付けられること、また、更新構成要素６０８はそのような変更を実行できること、を示すことができる。さらに、更新構成要素６０８は、駆動装置に関連する実データを測定し、その実データを、インターフェース６０２経由でネットワーク上をコントローラおよび／または制御軸オブジェクトに送ることができる。別の例によれば、動作制御構成要素６０４は、インターフェース６０２経由で駆動装置および／または駆動軸オブジェクトから実データを受け取るコントローラおよび／または制御軸オブジェクトであり得る。したがって、コントローラおよび／または制御軸オブジェクトは、更新構成要素６０８を利用して、駆動装置に関連する受信実データの評価に基づいたコマンドデータを生成することができる。その後、コマンドデータは、そのような変化を達成するためにインターフェース６０２経由でネットワーク上で適切な駆動装置および／または駆動軸オブジェクトに送ることができる。
【００４２】
更新構成要素６０８はタイムスタンプ構成要素６１０を用いて動作制御構成要素６０４および／または対応するデータの更新を実施することができる。タイムスタンプ構成要素６１０は、インターフェース６０２経由のネットワーク上の転送のために生成されたデータ中へタイムスタンプを組み込むことができる。さらに／あるいは、タイムスタンプ構成要素６１０はインターフェース６０２経由で受信したデータを評価して、そのデータと関連するタイムスタンプを識別することができる。データ中にタイムスタンプを含ませると、データを厳格な配信タイミングなしに配信することが可能になる。時間はタイムスタンプをデータ中に組み込むことにより明示的に搬送される。新しいデータが動作制御構成要素６０４によって受信されると、更新構成要素６０８はそのデータを、タイムスタンプ構成要素６１０によって識別されたタイムスタンプに対応する適切な時間に、そのタイムスタンプ値をクロック６０６によって特定された時間と比較することによって、利用することができる。さらに、クロック６０６が示す、測定が行われた時間は、タイムスタンプ構成要素６１０によって実データ中に組み込むことができる。これと対照的に、従来のタイムスロットプロトコルは時間を更新周期の一部として明示的ではなく搬送する。これは、通常いろいろな動作制御構成要素の厳格な、または「硬い」同期を必要とする。あるタイムスロットプロトコルに関連するデータが遅いと、それはもはやその本来の更新周期またはタイムスロットに関係付けられないため、そのデータは実際上失われる。
【００４３】
システム６００上を転送されるデータ中にタイムスタンプを組み込むと、従来技術では一般的であるような、動作制御ネットワーク上の送信をタイムスロットへ時間的に組み込む必要性は軽減される。したがって、タイムスタンピングプロトコルは、特定のノードが通信を許される周期内の個々のタイムスロットの複雑な構成やネゴシエーションを要求しない。さらに、ネットワーク上を送信されるタイムスタンピングデータによって、スケジューリングの要求はネットワークに課せられないので、動作制御は非動作ネットワークのトラフィックをも含むネットワーク上で機能することができる。
【００４４】
図７に、動作制御ネットワーク中のネットワークリソース利用のバランスをとることを可能とするシステム７００を示す。システム７００はコマンドデータ、実データ、非動作関連データ等をネットワーク上で他のノードからまたは他のノードへ受信および／または送信するインターフェース７０２を含む。インターフェース７０２は動作制御構成要素７０４と結合されており、この構成要素はクロック７０６と更新構成要素７０８を含む。動作制御構成要素７０４は、動作制御ネットワーク中のノードと関連するハードウェアおよび／またはオブジェクトであり得る。更新構成要素７０８は動作制御構成要素７０４と関連するコマンドおよび／またはデータの更新を容易にする。更新構成要素７０８はさらにタイムスタンプをデータに組み込みかつ／またはデータと関連するタイムスタンプを評価することができるタイムスタンプ構成要素７１０を含む。
【００４５】
動作制御構成要素７１２は、接続更新期間の明確な区間への分割を可能にする周期タイミング構成要素７１２をさらに含む。例えば、接続更新期間は、３個の明確な区間、すなわち入力転送区間、計算区間、および出力転送区間に分割できる。実例として、クロック７０６は現在の時間を識別できるが、この時間は動作制御ネットワークのノードに渉って均一である。周期タイミング構成要素７１２は現在の時間に対応する区間を決定でき、したがって動作制御構成要素７０４が特定のアクションを遂行することを可能にできる。周期タイミング構成要素７１２は、動作制御構成要素７０４に含まれているものとして表される場合であっても、動作制御構成要素７０４から分離していたり、動作制御ネットワーク中の動作制御構成要素の一部だけに含まれたりしてもよいと考えられる。
【００４６】
一例では、周期タイミング構成要素７１２は、現在の時間が入力転送区間内にあることを認識することができる。したがって、周期タイミング構成要素７１２により、駆動装置および／または駆動軸オブジェクトからコントローラおよび／または制御軸オブジェクトへ、インターフェース７０２を介してネットワーク上でデータを送信することができる。したがって、もし動作制御構成要素７０４が駆動装置および／または駆動軸オブジェクトである場合、周期タイミング構成要素７１２は、インターフェース７０２および／または動作制御構成要素７０４がこの時間区間中に実データをコントローラおよび／または制御軸オブジェクトに送信できるようにすることができる。
【００４７】
他の例によれば、周期タイミング構成要素７１２は計算区間および／または出力転送区間を識別することができる。計算区間中に、コントローラは、入力転送区間中に受け取られた駆動装置入力データを処理し、駆動装置に返送すべき新しい出力データを計算する。このデータの送信は、計算区間の終わりまでに開始することができる。さらに、出力転送区間中に、出力データパケットは駆動装置に送られ、次の接続更新周期の開始に先立って到着することができる。
【００４８】
周期タイミング構成要素７１２は、各ノードがタイムスロッティング技術によって異なる時にデータを送信するよう予定するのではなく、動作制御ネットワーク内の駆動ノード（例えば動作制御構成要素７０４、異種の動作制御構成要素）が類似の時間および／または同時に実データを送信することができるようにする。周期タイミング構成要素７１２が、スイッチされる全二重イーサネット（登録商標）と関連して使用される場合、タイムスロッティング技術を利用せずに、駆動パケットをネットワークセグメント上で中央スイッチとコントローラの間で背中合わせにパックすれば、ネットワーク帯域幅をより効率的に使用できる。さらに、パケットは、タイムスタンピングプロトコルの使用によって、ネットワークのパケット間ギャップを用いて分離することができる。それに比べて、タイムスロットプロトコルは、タイムベース歪みおよび／または他の待ち時間の影響を吸収するために、送信されたパケットとパケットの間にさらに余裕部分を必要とする。
【００４９】
周期タイミング構成要素７１２を利用すると、非動作対応データ（例えば入出力データ、ヒューマン−マシンインターフェースデータ、ストリームビデオデータ、コントローラからコントローラへの明示的なあるいは非明示的なメッセージデータ等）を、動作関連データ（例えばコマンドデータ、実データ等）に加えてネットワーク上で送信することが可能になる。例えば、周期タイミング構成要素７１２は現在の時間が計算区間に関係しているという識別を容易にすることができる。計算区間に先立って、入力データ（例えば実データ）は駆動装置からコントローラに到着できる。計算区間中に、優先順位がより低いデータ（例えば非動作関連データ）はネットワーク全体にわたって通信することができる。
【００５０】
さらに、計算区間中に、コントローラ（例えば動作制御構成要素７０４）は入力データを評価し、駆動ノードのための新しいコマンド位置を計算することができる。入力データを評価できるのは、マスタ駆動装置とスレーブ駆動装置間がギヤおよび／またはカムで結ばれていることが多いからである。したがって、スレーブ駆動装置のために計算される新しいコマンドのために、マスタ駆動装置の現在位置が決定される。
【００５１】
更新周期は例えば周期タイミング構成要素７１２を用いて３分割することができる。しかしながら、どんな分割も利用可能であり、したがって、本発明の請求項はこの例に限定されない。この例によれば、最初の３分の１は、駆動装置からコントローラへの入力トラフィック用とし、最後の３分の１は、コントローラから駆動装置へ転送されるデータ用とすることができる。計算区間中に、より低い優先順位の非動作データは、ネットワーク中の様々なノードへ、およびノードから、送ることができる。
【００５２】
一例によれば、動作制御パケットはネットワーク上の転送用の最高優先順位と、そして非動作関連パケットはより低い優先順位と、対応付けることができる。駆動装置パケットを同時に送信すると、イーサネット（登録商標）スイッチに組み込まれたサービスの質（ＱｏＳ）の機能性を効果的に使用して、より低い優先順位の非動作パケットの発信を、スピードが重視される高優先順位駆動パケットがコントローラに送信された後まで延ばすことができる。その後、非動作パケットはコントローラが計算を行なっている計算区間中に送信することができる。このような動作および非動作パケットの分離は、あるパケットが送信されることになっている特定のタイムスロットを利用せずに、自動的に達成することができる。
【００５３】
周期タイミング構成要素７１２が計算区間の終了を確認すると、動作制御パケットはネットワーク上で駆動装置に送信できる。したがって、新しいコマンドデータが次のサイクル中に使用するために駆動装置に提供される。周期タイミング構成要素７１２は、同期サービスを有するドライブ装置、および同期サービスを持たないドライブ装置をサポートすることができる。例えば、同期している駆動装置はタイマイベントの利用によりコントローラ介在のないコントローラへデータを送ることができる。別の例によれば、同期のない駆動装置はコントローラに実データを送り返す前にコントローラからのコマンド更新を待つことができる。
【００５４】
周期タイミング構成要素７１２は単一サイクルタイミングモデルの利用を可能にできる。例えば、スレーブコマンド位置配送によるマスタ実位置取り込みは、周期タイミング構成要素７１２経由で単一サイクル内に完了させることができる。これと対照的に、タイムスロッティングに関連している従来の技術では、タイムスロッティングプロトコルが、処理される実位置データのための時間を一般に見込んでおかないので、通常２サイクルタイミングモデルを使用し、また、コントローラのコマンドデータの前に送信されるべき新しいコマンドデータが、送信される。
【００５５】
図８は、動作制御ネットワーク中で動的に構造化されたデータの転送を可能にするシステム８００を示す。システム８００は、ネットワーク（例えばイーサネット（登録商標）、DeviceNet、ControlNet等）上でデータを受け取りかつ／または送信するインターフェース８０２と、動作制御ネットワーク内の特定のノードと関連している動作制御構成要素８０４（例えばコントローラ、制御軸オブジェクト、駆動軸オブジェクト等）とを含んでいる。動作制御構成要素８０４は、動作制御ネットワーク内の異種の動作制御構成要素（図示せず）に関係している他のクロックと同期しているクロック８０６を含んでいて、時間についての共通の理解を提供する。動作制御構成要素８０４は、さらに動作制御構成要素８０４に関連するコマンドおよび／またはデータの更新を可能にする更新構成要素８０８を含む。更新構成要素８０８はタイムスタンプ構成要素８１０、動的データジェネレーター８１２およびデータ形式評価装置８１４を含むことができる。
【００５６】
更新構成要素８０８は、例えば動作制御構成要素８０４（例えば駆動装置、駆動軸オブジェクト等）に関連するコマンドを、動作制御ネットワーク内の遠隔ノードに位置するコントローラによって生成され受信されたコマンドデータに基づいて、更新できる。さらに／あるいは、更新構成要素８０８は動作制御構成要素８０４（例えば、駆動装置、軸オブジェクト等）に関連する特性（例えば位置、速度、トルク等）を測定するために使用することができる。これら測定値は、その後動作制御ネットワーク上の異なるノードに位置する異種の動作制御構成要素に送信することができる。さらに、更新構成要素８０８は、コマンドデータを生成するために動作制御ネットワーク内の様々なノードに位置する任意の数の駆動装置から動作制御構成要素８０４（例えばコントローラ、制御軸オブジェクト等）が受信した実データを分析するために利用することができる。このコマンドデータは対応する駆動装置および／または駆動軸オブジェクトに送信することができる。動作制御構成要素８０４および／または更新構成要素８０８によって生成されたデータは、タイムスタンプを含んでいる。そのタイムスタンプはタイムスタンプ構成要素８１０によってパケットに組み入れることができる。さらに、タイムスタンプ構成要素８１０は、タイムスタンプを評価して、クロック８０６によって決定される特定の時間にアクションを行なうことを可能にする。
【００５７】
更新構成要素８０８は、任意のサイズおよび／または内容に関係し得る動的データを生成する動的データジェネレーター８１２を含んでいる。データ構造は更新ごとにサイズおよび／または内容が変化することがあり得る。動的データジェネレーター８１２は、データ内の構造の記述を含むことができる。例えば、動的データジェネレーター８１２は、データの構造を示すデータブロックヘッダーに情報を含むことができる。
【００５８】
さらに、動的データジェネレーター８１２は、単一の動的データパケット内に、異なる優先レベルを備えたデータブロックを生成することができる。優先レベルは、駆動装置（例えば受信動作制御構成要素経由で）においてデータが適用される割合を決定することができる。例えば、動的データジェネレーター８１２は、優先順位の高い周期的データブロック、優先順位が中程度のイベントデータブロック、および優先順位の低いサービスデータブロックを生成することができる。単一の動的データパケット内のこれら３つのデータブロックを組み合わせると、各タイプのデータ用の個々のパケットを送る場合と比較して、イーサネット（登録商標）帯域幅を効率的に使用することができる。
【００５９】
周期的データは、周期的にＣＩＰ動作接続によって転送することができる高優先順位リアルタイムデータでありえる。イベントデータは、指定されたイベントが生じた後、ＣＩＰ動作接続によって転送することができる中間優先順位のリアルタイムデータであり得る。イベントは例えば登録、市場入力トランザクションなどであり得る。サービスデータは、コントローラによって要求された時、周期的にＣＩＰ動作接続によって転送することができる、より低い優先順位のリアルタイムデータであり得る。サービスデータは駆動軸オブジェクト属性にアクセスし、駆動装置に基づいた動作プランナを実行し、駆動装置診断などを行なうサービス要求メッセージを含むことができる。
【００６０】
更新構成要素８０８は、形式設定を決定するために動作制御ネットワーク内の異種のノードからインターフェース８０２経由で受信したデータを評価するために利用できるデータ形式評価装置８１４をさらに含んでいる。例えば、受信された動的データは、異なる処理優先順位を持つ異種のデータブロックが、動作制御構成要素８０４（例えばコントローラ、駆動装置等）内の定番地バッファ（図示せず）にコピーされることを可能にするオフセットをヘッダーに含むことができる。データ形式評価装置８１４は受信されたデータパケットの構造の理解を容易にすることができる。このデータパケットはその後更新構成要素８０８で使用することができる。
【００６１】
データパケットのサイズは、多くの理由で、更新の間に変化する場合がある。例えば、駆動装置の動作モードは、位置ループコントローラからトルクループコントローラへのように変化する場合がある。異なるデータがこれら異種の動作モードの各々に必要であり、したがって、変更が生じる時、データサイズは変化する。さらに、定期情報（例えば、診断情報、駆動装置の位置誤差の傾向と関連するデータ等）が駆動装置からコントローラに提供された場合、パケットのサイズは変化しうる。したがって、動的データジェネレーター８１２はこの情報を送信データに加えることができる。
【００６２】
従来の動作制御プロトコルは、構成時に固定サイズのデータ構造を利用するが、これは実行時間には変更することができない。したがって、データ構造の固定部分は頻繁に転送されるわけではないイベントデータおよびサービスデータと関連付けられるので、ネットワーク帯域幅は浪費される傾向がある。これに対して、動的データジェネレーター８１２および／またはデータ形式評価装置８１４を利用すると、ネットワーク上で送信されるデータのための柔軟で動的な形式が提供される。
【００６３】
図９は、動作制御ネットワークに対するノードの追加および／または削除を容易にするシステム９００を示す。システム９００は、ネットワーク上の交信を受信し、かつ／または送信するインターフェース９０２を含んでいる。例えば、実データ、コマンドデータおよび／または非動作関連のデータは、インターフェース９０２経由で送信しかつ／または獲得することができる。システム９００はさらに動作制御構成要素９０４を含む。この要素は動作制御ネットワーク中のノードに関連付けることができる。例えば、動作制御構成要素９０４はコントローラ、制御軸オブジェクト、駆動装置、駆動軸オブジェクト、等であり得る。一例では、動作制御構成要素９０４が駆動装置であるなら、それはモータの動力の制御を達成することができる。他の態様によれば、動作制御構成要素９０４は、ネットワーク中の遠隔ノードに位置する駆動装置および／または駆動軸オブジェクトにインターフェース９０２を介して送信できるコマンドデータを生成できるコントローラであり得る。
【００６４】
動作制御構成要素９０４は異なる動作制御構成要素（図示せず）と関連するクロックと同期しているクロック９０６を含み、ネットワークを通じて時間の共通の理解を提供する。さらに、動作制御構成要素は、動作制御構成要素９０４と関連するコマンド、データ等の更新を容易にする更新構成要素９０８を含む。例えば、動作制御構成要素９０４は、特定の更新周期のためのコマンドデータを、インターフェース９０２を介して異なるネットワークノードに位置するコントローラから受け取る駆動装置であり得る。更新構成要素９０８は、駆動装置と関連するコマンドを修正して、受信したコマンドデータに従うようにすることを可能にできる。コントローラによって生成され受信されたコマンドデータは、そのコマンドデータが制御ループに適用されるべき時を示す関連するタイムスタンプを持っていることがあり得る。したがって、更新構成要素９０８は、受信されたコマンドデータに関連するタイムスタンプを評価するタイムスタンプ構成要素９１０を利用することができる。消費側ノードの動作制御構成要素（例えば、動作制御構成要素９０４、駆動装置、駆動軸オブジェクト等）は、タイムスタンプ構成要素９１０の利用によって、タイムスタンプを備えたコマンドデータを受け取ることができ、もしデータがネットワーク上の待ち時間により遅く到着したとしても、動作制御構成要素９０４はデータの待ち時間を補償し、データを適切な方法で制御ループに適用することができる。したがって、タイムスタンププロトコルは、遅延データの受信を見込んで、その遅延データの適用を可能にする。一方、硬く同期化された従来のタイムスロットプロトコルは、通常遅延データを許容せず、したがって一般的にはそのような遅延データを廃棄する。さらに、タイムスタンプ構成要素９１０は、駆動装置からコントローラへ送られるべき実データにタイムスタンプを組み入れることができる。そのような場合、タイムスタンプは、データが取り込まれた時刻と関係付けることができる。
【００６５】
動作制御構成要素９０４はさらにノード母集団構成要素９１２を含むことができ、これは動作制御ネットワークに対するノード（例えば様々な遠隔ネットワーク位置での異種の動作制御構成要素）の追加および／または削除をサポートすることができる。例を挙げれば、新しい駆動ノードをネットワークに加えることができ、ノード母集団構成要素９１２は新しい駆動ノードアドレスに割り当てられたコントローラの中の新しい制御軸オブジェクトの実例を示す助けになる。なお、ネットワーク構成に続いて、ネットワークに新しい駆動ノードを加えることができる。これと比較して、従来の技術は、構成ツールが動作制御更新周期をスケジューリングした後に、あるノードがあるタイムスロット内に通信することを許すためにノードを加えるか削除することをサポートしない。したがって、一般に従来の技術は、タイムスロットマッピングを再構成してネットワーク内のノード数の変更を可能にすることを必要としていた。対照的に、ノード母集団構成要素９１２は、構成の後および／またはネットワークが動作中に、ネットワークに対するノードの付加および／または除去を許容する。なお、ノード母集団構成要素９１２は動作制御構成要素９０４（例えばコントローラ）に含まれるものとして図示されているが、動作制御ネットワークおよびその組合せ等の中のいかなる場所にも位置するスタンドアローン構成要素であってもよい。
【００６６】
図１０は、産業オートメーション環境中のオープンネットワーク上の動作制御を可能にするシステム１０００を示す。システム１０００は、タイムスタンプを備えたデータ（例えばコマンドデータ、実データ等）を受信し、そのデータを動作制御構成要素１００４（例えば、駆動装置、駆動軸オブジェクト、コントローラ、制御軸オブジェクト、等）に提供するインターフェース１００２を含んでいる。動作制御構成要素１００４は、動作制御ネットワーク内の他のクロックと同期しているクロック１００６を含むことができる。さらに、動作制御構成要素１００４は、タイムスタンプ構成要素１０１０を含む更新構成要素１００８を含むことができる。更新構成要素１００８はタイムスタンプ構成要素１０１０を含み、タイムスタンプ構成要素１０１０は、動作制御構成要素１００４の更新に関してインターフェース１００２経由で送受信されるデータに関連するタイムスタンプを評価しかつ／または含むことができる。
【００６７】
動作制御構成要素１００４は、タイムスタンプを利用している受信データを補間しかつ／または補外することができるデータ調節構成要素１０１２をさらに含むことができる。実例として、動作制御構成要素１００４（例えばコントローラ）は、駆動装置からタイムスタンプを備えた実データを受信し、また、データ調節構成要素１０１２は、実データタイムスタンプを使用して実データからコントロール更新期間の開始に関連する時間を補外することができる。したがって、コントローラによって表現される実データは、コントロール更新期間開始時刻に関連付けることができる。別の例によれば、動作制御構成要素１００４（例えば駆動装置）によって受信されたコマンドデータは、コマンドが制御ループに適用されることになっている場合に、データ調節構成要素１０１２経由で駆動装置更新期間の開始と揃えられるように補外されることができる。動作制御構成要素１００４（例えば駆動装置）は、もし新しい駆動装置更新期間のための新しいコマンドデータがコントローラによって提供されない場合に、データ調節構成要素１０１２を利用して駆動装置の更新のためのコマンドデータを補外することもできる。したがって、データ調節構成要素１０１２は、送信待ち時間が乱れている間も継続的な動作を可能にすることができる。
【００６８】
図１１は、時間スタンピングプロトコルを利用する動作制御ネットワーク上でコントローラおよび駆動装置の間の通信を容易にするシステム１１００を示す。システム１１００は、ネットワーク１１０６上でデータを送信するコントローラ１１０２（例えば制御軸オブジェクト）および駆動装置１１０４（例えば、駆動軸オブジェクト）を含んでいる。コントローラ１１０２は、受信された実データを評価し、かつ／またはそのような評価に基づいたコマンドデータを生成できる更新構成要素１１０８を含む。更新構成要素１１０８は、受信された実データに関連するタイムスタンプを評価することができ、かつ／またはネットワーク１１０６経由で駆動装置１１０４に送信されるべきコマンドデータを備えたタイムスタンプを含むことができる、タイムスタンプ構成要素１１１０を利用する。実データのタイムスタンプは、駆動装置が実際の特性を測定した時間と対応付けることができる。さらに、コマンドデータのタイムスタンプは、駆動装置が関連するコマンドを実行するべき時間と関係付けられる。
【００６９】
駆動装置１１０４はさらに、更新構成要素１１１２およびタイムスタンプ構成要素１１１４を含むことができる。更新構成要素１１０８および更新構成要素１１１２は実質的に類似したものにすることができ、かつ／または、タイムスタンプ構成要素１１１０およびタイムスタンプ構成要素１１１４は、実質的に類似したものにすることができることは認識しておく必要がある。しかしながら、特許請求された本発明の内容はそのように限定されていない。
【００７０】
周期タイミング構成要素（図示せず）（例えば図２の周期タイミング構成要素２１２）は、システム１１１０に関連して利用して更新周期を異種の区間へ分割することを可能にすることができる。例えば、周期タイミング構成要素は更新周期を３つの区間、すなわち、入力転送区間、計算区間、および出力転送区間、に分割することができる。本例によれば、入力転送区間中に、駆動装置１１０４は測定値に対応する実データをネットワーク１１０６上でコントローラ１１０２へ転送することができる。さらに、計算区間は、コントローラ１１０２が送信された実データを評価し、かつ／または駆動装置１１０４によって使用される新しいコマンドデータを生成する時間を提供することができる。計算区間の経過中に、非動作関連データをネットワーク１１０６上で送信することができる。さらに出力転送区間中に、コントローラ１１０２は、ネットワーク１１０６経由で、生成されたコマンドデータを駆動装置１１０４に提供することができる。３つの区間は相互の比較で任意の長さの時間になり得る。例えば、更新周期の３分の１が区間の各々に割り当てられることもあり得る。しかしながら、特許請求された本発明の内容はそのように限定されておらず、その代り、任意の比率の使用を想定している。さらに、区間の長さは実行中に変化する可能性がある。実例を挙げれば、もしネットワーク１１０６がほんの少量の動作制御データしか転送せず、一方大量のＩ／Ｏデータを通信する場合、計算区間はより高いＩ／Ｏトラフィックを収容するために拡大されるかもしれない。別の例によれば、最適化は、計算区間がＩ／Ｏ要求、動作制御トラフィック、計算上の要求、軸の数等に基づいて決定されるように、リアルタイムで達成されることができる。
【００７１】
周期タイミング構成要素を利用するさらに別の例によれば、非動作データは、更新周期の任意の区間中に送ることができると想定される。例えば、スイッチはデータを待ち行列に並べて、高優先順位の動作関連データが適切な区間中にバッファの前方に配置される一方、低優先順位の非動作関連データは計算区間中に送信することができるようにすることができる。さらに、インプット転送区間および／または出力転送区間が動作関連データで完全には満たされていない場合、動作関連データの送信の後に非動作関連データを送信して、ネットワーク帯域幅を最大限に利用することができる。
【００７２】
図１２は、タイムスタンピングプロトコルの使用を通じて、動作制御データおよび／または非動作データをネットワーク上でコントローラと駆動装置の間で通信することを可能にするシステム１２００を示す。システム１２００はＭ台のコントローラ１２０２とＮ台の駆動装置１２０４とを含む。ここにＭとＮは任意の正の整数である。コントローラ１２０２はネットワーク１２０６を経由して駆動装置と交信する。コントローラ１２０２は更新構成要素１２０８を含むことができ、この構成要素はコントローラ１２０２の更新に関してタイムスタンプ構成要素１２１０を利用する。さらに、駆動装置は更新構成要素１２０８に実質的に同様であり得る更新構成要素１２１２と、タイムスタンプ構成要素１２１０と実質的に同様であり得るタイムスタンプ構成要素１２１４とを含むことができる。さらに、ＣＩＰ動作は、ピアコントローラ１２０２同士間、あるいはピア駆動装置１２０４同士間のピアツーピア接続をサポートすることができる。例えば、マルチキャストのピアツーピア接続を使用することができる。
【００７３】
システム１２００は例えば複数のコントローラ１２０２の利用をサポートする。これに比べ、従来のタイムスロッティングプロトコルは、通常１つのネットワーク上で複数のコントローラを使用することができない。コントローラ１２０２は実質的に同様の更新期間あるいは異なる更新期間で動作することができる。一例によれば、これらのコントローラ１２０２は、位相シフトを利用してコントローラ１２０２の各々に対応する動作データトラフィックのバランスを保つことができる。しかしながら、特許請求された本発明の内容はそのように限定されていない。
【００７４】
システム１２００は、いかなる時でも駆動装置１２０４の追加および／または削除をサポートする。一例では、駆動装置１２０４は構成が行われた後に追加することができる。これは、タイムスロッティングを使用する従来の動作制御プロトコルでは許容されない。さらに、システム１２００が動作中でも、駆動装置１２０４は追加および／または削除することができる。したがって、通常タイムスロットプロトコルの再構成に見られる休止時間は削減される。
【００７５】
図１３は、ＣＩＰ動作駆動接続上でのデータ交信を容易にするシステム１３００を示す。ＣＩＰ動作駆動接続は二つの一方向ユニキャスト接続を含むことができ、１つはコントローラ１３０２から駆動装置１３０４へのデータの送信であり、もう一つは駆動装置１３０４からコントローラ１３０２へのデータの送信である。両接続とも、タイムスタンプ（例えば３２ビットのタイムスタンプ）からなるヘッダーと、駆動ノードにサポートされた各軸インスタンスのための一連のデータブロックとを含むデータ構造を利用することができる。インスタンスは、さらに多軸駆動プラットホーム用のラックスロットによって構成することができる。
【００７６】
駆動装置１３０４とコントローラ１３０２の間のデータ交換のペースは、コントローラから駆動装置へのデータパケットが１つ受信されるごとに駆動装置からコントローラへ１つのデータパケットが送信されるように、コントローラ１３０２によって調整される。コントローラ対駆動装置接続パケットは、構成されたコントローラ更新期間にしたがって周期的に送ることができる。このコントローラ更新期間は接続更新期間と同じである。駆動装置がそのコントロール計算を行なう更新期間に対応する駆動装置更新期間は、コントローラ更新期間より速くてもよく、また通常はコントローラ更新期間より速い。従来の時間スロット動作制御プロトコルは硬く同期されており、駆動装置更新期間の整数倍であるコントローラ更新期間を利用する。しかしながら、ＣＩＰ動作駆動接続パケットはタイムスタンプを含んでいるので、コントローラ更新期間が駆動装置更新期間と整数関係を持つことは要求されない。
【００７７】
ＣＩＰ動作駆動接続パケット内のインスタンスデータブロックは、それぞれ周期的データチャネル１３０６、イベントデータチャネル１３０８、およびサービスデータチャネル１３１０に関連する３セットのデータブロックを含むことができる。ある一定の更新用データブロックのサイズは可変で、接続およびインスタンスデータブロックヘッダーによって決定することができる。さらに、一例によれば、データチャネル（例えば周期的データチャネル１３０６、イベントデータチャネル１３０８、サービスデータチャネル１３１０）は異種のデータ処理優先順位を持つことがあり得る。
【００７８】
周期的データチャネル１３０６は、接続更新期間中にサンプリングおよび／または計算できる周期的なデータブロックを搬送することができる。さらに、周期的データチャネル１３０６は、配分されたシステム時間の利用によって動作制御システム中の他のノードと同期を取ることができる。周期的なデータは、直ちに処理されかつ／または駆動装置更新期間内の駆動軸に適用される、高優先順位データであり得る。
【００７９】
イベントデータチャネル１３０８は、駆動イベント（例えば登録、ホーミング等）に関連するデータを搬送することができる。これらのイベントは接続更新期間内に生じる可能性がある。イベントデータの優先順位は中程度でよく、イベントデータは接続更新期間内に処理されかつ／または適用されることができる。
【００８０】
サービスデータチャネル１３１０は、オンライン構成および／または診断の機能性の一部として駆動軸オブジェクトの属性値を読みかつ／または書くために、サービスリクエストに関連するデータを搬送することができる。さらに、サービスデータチャネル１３１０は、コントローラ命令実行の一部として駆動軸オブジェクトの挙動に影響を与えるサービスリクエストを提供することができる。サービスデータの優先順位は最下位でよく、またサービスデータはバックグラウンドタスクとしてバッファに格納し、かつ／または処理することができる。さらにサービスリクエストは、接続更新期間内あるいはそれより遅い任意の時点で処理することができる。
【００８１】
ＣＩＰ動作駆動接続の構造は、サイズおよび／または内容において動的であり得る。各ブロックの構造は接続構造内のヘッダーの内容によって決定することができ、したがって、コネクションデータを解釈する駆動装置に個別の構造形式の定義を送る必要性は軽減される。さらに、ＣＩＰ動作コネクションデータ構造内のデータはすべて例えば単一のオブジェクトを目標とすることができる。
【００８２】
図１４−図１６には、特許請求された本発明の種々の態様に従う諸手法が図示されている。説明を簡潔にするために、各手法は一連の行為として示され説明されているが、特許請求された本発明の内容は行為の順序によって限定されない。なぜなら、ここに示され記述されたものとは異なり、いくつかの行為が異なる順序で生じる場合および／または他の行為と同時に生じる場合があるからである。例えば、当業者には当然のことであるが、手法というものは、状態図のように一連の相互に関連する状態あるいはイベントとして、別の形で表わされる可能性もある。さらに、特許請求された本発明の内容に従う手法を実行するために、図示された行為のすべてが必要とされるとは限らない可能性もある。また、以下およびこの明細書の全体にわたって開示された諸手法を製品に格納し、コンピュータにそのような方法を送り転送することを容易にすることもできる。ここに使用されている製品という用語は、任意のコンピュータが読める素子、キャリヤーあるいは媒体からアクセス可能なコンピュータプログラムを包含することを意図している。
【００８３】
図１４は、産業オートメーション環境中のネットワーク上のタイムスタンピングプロトコルによって動作制御を容易にする手法１４００を示す。１４０２で、タイムスタンプは動作関連データに組み入れられる。動作関連データは、例えば駆動装置に使用されて動作における変化をもたらす、コントローラによって生成されたコマンドデータであってもよい。別の例によれば、動作関連データは、実データ（例えば、実際の第一位置、実際の第二位置、実際の速度、実際の加速度、実際のトルク、実際の電流、実際の電圧、実際の周波数等の、駆動装置に関連する実際のデータ）であり得る。実データはある測定可能な値であって、次の更新周期で使用される適切なコマンドを生成するために、コントローラが使用することができるものである。動作関連データに組み入れられたタイムスタンプは、コマンドが実施されるべき時間（例えばコマンドデータの利用）および／または測定（例えば実データの利用）に関連する時間に関連付けることができる。タイムスタンプは、例えば動作関連データパケットのヘッダーに含まれる。
【００８４】
１４０４で、タイムスタンプを備えた動作関連データはネットワーク上を送信される。任意のネットワークおよび／またはネットワーク接続の利用は特許請求された本発明の範囲以内にあると想定される。一例によれば、データは、ＣＩＰネットワークのような、動作制御をサポートするネットワーク上を転送できる。例えば、データはコントローラから駆動装置（例えばコマンドデータ）に、および／または駆動装置からコントローラ（例えば実データ）に送信することができる。１４０６では、タイムスタンプを備えた動作関連データが受信される。１４０８では、受信装置（例えばコントローラ、制御軸オブジェクト、駆動装置、駆動軸オブジェクト等）はタイムスタンプを含む動作関連データを利用して更新することができる。例を挙げれば、コントローラは、測定が駆動装置でなされた時間に対応するタイムスタンプを備える実データを受け取ることができる。したがって、コントローラはこのデータを使用して、駆動装置に逆転送できかつ／または次の更新周期の間に駆動装置によって実行することができる、新しいコマンドを生成することができる。他の説明によれば、駆動装置はコマンドが実行されることになっている時間（例えば、駆動装置には、特定の位置、速度、加速度、トルク、電流、周波数、電圧等を変更する命令を与えることができる）に対応付けられたタイムスタンプを備えるコマンドデータを受け取ることができる。その時間は動作制御ネットワーク内のノードを同期させることにより決定することができる。したがって、時間についての共通の理解が存在することになる。対応する時間が来ると、駆動装置は新しいコマンドを実行することができる。したがって、タイムスロッティング技術とは対照的に、厳格な構成要求は軽減でき、構成の後に続いてノードの追加または削除ができ、そして今回のスタンピングを使用することにより、ネットワーク待ち時間により遅延したとしても、データをやはり利用することができる。
【００８５】
図１５は、動作制御ネットワークのための動作制御更新に関連する、バランスのとれた単一サイクルタイミングを可能にする手法１５００を示す。１５０２で、タイムスタンプは動作関連データに関係付けられる。１５０４で、タイムスタンプを備えた動作関連データを送信するための適切な区間が識別される。例えば、ノードに関連するクロックは、異種のノードと関係する異種のクロックと同期させてネットワーク内の時間についての共通の理解を生み出すことができる。さらに、現在時間に基づいて、特定の区間を識別することができる。一態様によれば、更新周期は入力転送区間、計算区間および出力転送区間に分割することができる。入力転送区間中には、動作関連データは駆動装置からコントローラに送信することができ（例えば実データの送信）、一方出力転送区間中には、動作関連データはコントローラから駆動装置に送信することができる（例えばコマンドデータの送信）。計算区間中では、動作関連データの発信は静止していて、それによって、非動作関連データは利用可能なネットワーク帯域幅を利用できる。１５０６では、動作関連データは識別された時間区間中にネットワーク上をタイムスタンプ付きで送信される。１５０８で、タイムスタンプ付き動作関連データは受信ノードによって受信される。１５１０で、受信ノード（例えば受信装置）は、受信されたタイムスタンプ付き動作関連データに基づいて更新することができる。
【００８６】
図１６は、動作制御ネットワーク上で動的な動作関連データの送信を可能にする手法１６００を示す。１６０２で、動的な動作関連データが生成される。データ構造のサイズおよび／または内容は、１つの更新から次の更新の間で変化することができる。動的な動作関連データは、構造の説明をデータ自身内、例えばデータパケットのヘッダー中に含むことができる。１６０４では、タイムスタンプは動作関連データ中に組み込まれる。例えば、タイムスタンプは、アクションが実行されるべき時間（例えば新しいコマンドデータの利用）および／またはアクションが行われた時間（例えば実データに関連する測定）に関係付けることができる。１６０６では、タイムスタンプを備えた動作関連データは、ネットワーク上を（例えばコントローラから駆動装置まで、駆動装置からコントローラまで）送信される。１６０８では、タイムスタンプ付き動作関連データが受信される。１６１０では、タイムスタンプ付き動作関連データの形式が決定される。例えば、受信データのヘッダーを評価して、構造を識別することができる。そのような決定は、データの復元を容易にするために実施することができる。１６１２では、タイムスタンプ付き動作関連データは受信装置を更新するために利用される。
【００８７】
図１７−図２５は、タイムスタンピング動作制御に関連する種々の態様を図示する典型的なタイミングダイヤグラムである。なお、これらのタイミングダイヤグラムは例として示されるものであり、特許請求された発明の内容はこれらの例に限定されない。
【００８８】
個別にみていくと、図１７は、コントローラ対駆動装置接続によって送られたコマンドデータとタイムスタンプを精密な補間を利用する駆動軸に適用する方法を示す例示的なタイミングダイヤグラムである。この例によれば、接続データは、コントローラ更新期間（ＣＵＰ）が駆動装置更新期間の整数倍でない接続サイクル中に、コントローラから駆動装置に転送される。制御タスクの一部として、コントローラは、新しいコマンドデータを備えたコントローラ対駆動装置接続パケットの送信を、インクリメンタルな更新ＩＤおよび現在のコントローラ更新期間の開始時を参照する新しいコントローラタイムスタンプを備えた駆動装置をターゲットとして開始する。目標軸のためのインスタンスデータブロックはさらに指令目標時間を含んでいるが、それはこの例においてはコントローラタイムスタンプに加算されるべき２＊コントローラ更新期間（CUP）の細かい補間遅延をサポートするために、２にセットされている。駆動装置は、新しいコントローラ対駆動装置接続のパケットデータのためのすべての駆動装置更新期間をチェックする周期的な駆動タスクを作動させるが、これは変更された更新ＩＤをチェックすることにより遂行することができる。もし駆動タスクが新しいデータを発見した場合、これはコマンドデータ更新周期であり、コマンドデータはさらに処理することができる。
【００８９】
その後、駆動装置は同期動作をチェックすることができる。もし駆動装置が同期されていない場合、遅い更新チェックを行なう必要はない。これは、遅い更新チェックを省略することで、始動時あるいは駆動装置が時間同期サービスを持たないときに、駆動装置の制御が可能になるからである。もし駆動装置が同期されていれば、駆動装置は現在の駆動装置更新タイムスタンプと、コントローラ対駆動装置接続パケット中のコントローラタイムスタンプとの間の差を計算する。もしその差がコントローラ更新遅延上限＊コントローラ更新期間より大きい場合、駆動装置はコントローラ更新の障害を投げる。さらに、もし時間差が接続更新期間の２倍を超過している場合、現在の精密補間多項式は事実上、新しいデータが到着するまで駆動装置が遅いデータ条件に乗ることを許容する、補外多項式となる。
【００９０】
コマンドデータはその後に適用することができる。この例では精密な補間器が使用されるので、駆動装置は、コントローラタイムスタンプのターゲット時間に適用されているコマンドリファレンス（Ｔｃｔｒ１）と、指令目標時間とコントローラ更新期間の積（２＊ＣＵＰ）との和に基づいて、精密補間多項式用係数を計算する。もしターゲット時間が駆動装置中の現在のシステム時間未満である場合、このコマンドデータに基づいて多項式への新しい係数がさらに計算され、補外計算の精度を向上させる。一般に、コマンドデータが遅い場合はいつでも、データはまだ利用可能な最も新しいコマンドデータを表わし、できるだけ早く適用されるべきである。
【００９１】
図１８は、コントローラ更新期間（ＣＵＰ）が駆動装置更新期間の整数倍ではない、別の例示的なタイミングダイヤグラムを示す。この例に示されるように、指令目標時間は１にセットされ、計算された多項式は、精密補間ではなくむしろ補外の目的で適用される。この補外により、駆動装置は、前の軸軌跡に基づいてその制御計算を行なう時に正確なコマンドデータ値を計算することができる。
【００９２】
図１９は、異なる駆動装置更新期間を有する２つの駆動軸と、これら駆動装置更新期間のどちらの整数倍でもない１つの関連するコントローラ更新期間との間の連携を示す例示的なタイミングダイヤグラムである。コントローラの動作プランナタスクは、同一のコマンド位置およびタイムスタンプを、システム時間と同期してはいるが異なる駆動装置更新レートで作動している２つのスレーブ駆動軸に送る。コマンド位置データが２つの駆動装置に到着すると、それらはコントローラタイムスタンプ、指令目標時間およびコントローラ更新期間を使用して、（コントローラタイムスタンプ＋指令目標時間＊コントローラ更新期間）に等しい時間の多項式値は指定されたコマンド位置値であるという制約に基づいて、補間多項式への新しい係数を計算する。駆動装置更新レートへの依存性がないので、各駆動装置によって計算された多項式の係数は同一であり得る。いずれの駆動装置もこの目標時間と一致する更新を持たないので、駆動装置は、新しいコマンド位置がコントローラから受信されるまで、精密補間多項式を使用して各駆動装置更新のコマンド位置参照値を計算する。もし新しいコマンド位置が目標時間のかなり後まで到着しない場合、駆動装置は同じ多項式を使用し続けて、上記のダイヤグラム中に示されるような後続の駆動装置更新のためのコマンド位置を「補外」する。この補外は、新しいデータが到着し、新しい係数を計算することができるまで継続する。このようにして、補間によると補外によるとに関わらず、各スレーブ軸は滑らかに作動し、２つの軸はマスタ軸と位相固定された状態を保つ。
【００９３】
図２０は、コントローラ対駆動装置接続パケットがＣＩＰネットワークを伝わる間に著しい遅延を招く場合であっても、多数のＣＩＰ運動駆動軸の正確な協調を維持することができることを示す例示的なタイミングダイヤグラムである。この例によれば、スレーブ駆動軸２用のパケットは送信の間に重要な遅延を招いている。その結果、この軸に対するコマンド位置は最後の精密補間多項式から補外される。これにより、軸は送信待ち時間の乱れを通って滑らかに移動することができる。新しいコマンドデータが到着すると、新しい指令値が補外エラーのために補外値に合わないことがある。このエラーは結果として動作プロファイルへの乱れをもたらす場合がある。補外エラーの大きさは、動作プロファイルの動力学およびコントローラ更新レートに依存する。現実世界の応用においては、ほとんどの場合、いくつかの更新期間にわたって続く送信待ち時間は、関連する動作プロファイルを大きく乱すことなしに生じ得る。
【００９４】
図２１は、駆動装置とコントローラの間の相対タイムスタンプに基づいて、コントローラが駆動装置からの軸位置データを調節する方法を説明する例示的なタイミングダイヤグラムである。例えば、もしドライブタイムスタンプがコントローラのローカルな更新タイムスタンプと一致しない場合、コントローラは軌跡に基づいてコントローラのタイムスタンプに対応するように実際の応答データ値を補外することができる。
【００９５】
図２２は、実データと、駆動装置対コントローラ接続によって配信されたタイムスタンプとをどのように使用して駆動軸の実際位置をコントローラのタイムベースに調節できるかを示す例示的なタイミングダイヤグラムである。軸が同期されていると、駆動装置は、現在の駆動タスクタイムスタンプを最後のコマンドデータ更新中に決定される実際の更新ウィンドウと比較する。実際の更新ウィンドウは、１つの駆動装置更新期間分存続し、次のコントローラ更新の計算された時間に終了する。タイムスタンプがタイムウィンドウ内にあれば、これは実データ更新周期である。タイムスタンプがウィンドウの前にあれば、駆動装置は後続の駆動タスクを待ってコントローラへ実データを送る（これは、フィードバックの取り込みと、次のコントローラタスクの開始の間に過度の時間があるような状況を防ぐ）。軸が同期されておらず、コマンド更新がコントローラ対駆動装置接続を介して受信される場合、これもまた実際の更新周期であり、駆動装置は以下のように進む。この他の場合には、いかなるアクショもとられず、タスクは終了する。
【００９６】
もし実際の更新周期が識別される場合、駆動装置は、現在の駆動装置の更新タイムスタンプおよびインクリメントされた更新ＩＤを含むこの駆動タスクからの最新の実データと共に、駆動装置対コントローラ接続パケットをコントローラへ送る。このパケット中のコントローラへ送られた追加のデータはすべて前の駆動タスクに由来していてもよい。これにより駆動タスク実行中の最も初期の時点で駆動送信が生じる。コントローラはさらに変更された更新ＩＤをチェックすることにより、駆動装置からの新しいデータをチェックする。下記は更新ＩＤが変わったかどうかにかかわらず行なわれる。ある態様によれば、更新ＩＤは駆動装置が同期されていない場合に新しい実データを検出する唯一の方法である場合がある。
【００９７】
さらに、駆動装置は、駆動ノード制御バイトの同期されたビットをチェックして、駆動軸が同期されているかどうかを判断する。もし駆動軸が同期されていない場合、コントローラは、実データを適用して遅い更新チェックおよびタイムスタンプ補正を回避する。こうした回避をすると、始動時、あるいは駆動装置が同期サービスを全く持っていない場合でも、駆動装置の作動が可能になる。
【００９８】
遅い更新チェックを利用して、コントローラが現在の接続更新期間タイムスタンプと、駆動装置対コントローラ接続パケット中のタイムスタンプとの間の差を計算することもできる。その差が逃した更新の許容範囲＊更新期間より大きい場合、コントローラはコントローラ同期の障害を投げる。さらに、以前に計算された時間差が０でない場合、実データ値を前の軸の実際の軌跡に基づいて補外し、コントローラのタイムスタンプと並べることができる。動作プランナは実際の入力が暗黙の中にコントローラ更新期間の始めにタイムスタンプされていると考えるので、この補正は必要な場合もあり。さらに、コントローラは実データを動作プランナへの入力として適用することができ、動作プランナは新しいコマンド参照データを計算する。
【００９９】
図２３は、駆動装置対駆動装置ピア接続によって配信された実データおよびタイムスタンプを、駆動軸の実際位置をコントローラのタイムベースに合わせるのに使用する方法を示す例示的なタイミングダイヤグラムである。この例において、マスタ軸位置は生産側駆動装置によって捕捉され、マルチキャストＣＩＰ動作ピア駆動装置対駆動装置接続（例えば伝導軸システムアプリケーション中の）を経由して、１つ以上の消費側駆動装置に送られる。マスタ実位置が別の駆動装置によって消費される場合、接続上に生じた遅延を補うために、補外は消費側によって行われる。これは、消費されている実データ要素に関連する生産側のタイムスタンプＴｐｒｏと、消費側のコントローラによってラッチされた消費側のタイムスタンプＴｃｏｎとを使用して行われる。ひとたびピア接続遅延の補正がなされれば、消費側駆動装置に関連する遠隔スレーブ軸は電子伝動装置によってマスタ軸に対して正確に同期させることができる。これは、消費側と生産側の駆動装置が異なる更新レートで作動している場合に利用することができる。さらに、消費側と生産側の双方の駆動装置が分配されたシステム時間から離れて作動する限り、消費側の駆動装置の更新期間は生産側駆動装置より長かったり短かったりする。
【０１００】
図２４は、生産側駆動装置が多数の消費側駆動装置にコマンド位置を分配する場合の、例示的なタイミングダイヤグラムである。マスタコマンド位置が別の駆動装置によって消費される場合、消費側によって補外が行われ接続上に生じた遅延を補償する。これは、消費されている実データ要素に関連する生産側のタイムスタンプＴｐｒｏと、消費側のコントローラによってラッチされた消費側のタイムスタンプＴｃｏｎとを使用して行われる。ひとたびピア接続遅延の補正がなされれば、消費側駆動装置に関連する遠隔スレーブ軸は、電子伝動装置によってマスタ軸に対して正確に同期させることができる。
【０１０１】
図２５は、生産側の駆動装置が、ローカルなマスタコマンド位置参照の適用をマスタコマンドの遅延を表わす生産側更新期間Ｔｍｃｄ１個分だけ遅延させるように構成されている場合の、例示的なタイミングダイヤグラムである。これはピア接続上に生じた遅延を補償するため必要とされる補外量を最小限度に抑える。この例において、マスタコマンドの遅延は２５０マイクロ秒である。消費側駆動装置の更新期間も２５０マイクロ秒なので、正味の補外時間は０である。
【０１０２】
図２６では、発明の種々の態様を実施するための例示的な環境２６１０は、コンピュータ２６１２を含む。コンピュータ２６１２は演算処理装置２６１４、システムメモリ２６１６およびシステムバス２６１８を含む。システムバス２６１８は、システムメモリ２６１６を含むがこれに限定されないシステム構成要素を、演算処理装置２６１４に結合する。演算処理装置２６１４は様々な利用可能なプロセッサのどれでもよい。２重のマイクロプロセッサおよび他のマルチプロセッサアーキテクチャも演算処理装置２６１４として使用することができる。
【０１０３】
システムバス２６１８は、メモリーバスまたはメモリーコントローラー、周辺バスか外部バス、および／または、８ビットバス、工業標準アーキテクチャ（ＩＳＡ）、マイクロチャネルアーキテクチャ（ＭＳＡ）、拡張ＩＳＡ（ＥＩＳＡ）、インテリジェント駆動装置エレクトロニクス（ＩＤＥ）、ＶＥＳＡローカルバス（ＶＬＢ）、周辺構成要素相互接続（ＰＣＩ）、ユニバーサルシリアルバス（ＵＳＢ）、高度なグラフィックスポート（ＡＧＰ）、パーソナルコンピュータメモリーカード国際機関バス（ＰＣＭＣＩＡ）および小コンピュータシステムインターフェース（ＳＣＳＩ）を含むがこれに限定されない利用可能なバスアーキテクチャを使用するローカルバス、を含む数種のバス構造のうちのどれであってもよい。
【０１０４】
システムメモリ２６１６は揮発性メモリ２６２０および不揮発性メモリ２６２２を含む。起動時などにコンピュータ２６１２内の構成要素間で情報を転送する基本ルーチンを含む基本入出力システム（BIOS）は、不揮発性メモリ２６２２に格納されている。限定としてではなく例としてあげれば、不揮発性メモリ２６２２は読み取り専用メモリ（ROM）、プログラマブルROM（PROM）、電気的にプログラマブルなＲＯＭ（EPROM）、電気的に消去可能なＲＯＭ（EEPROM）あるいはフラッシュメモリを含むことができる。揮発性メモリ２６２０はランダムアクセスメモリ（RAM）を含むが、それは外部キャッシュメモリとして働く。限定としてではなく例としてあげれば、ＲＡＭは、同期ＲＡＭ（ＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、同期ＤＲＡＭ（ＳＤＲＡＭ）、ダブルデータレートＳＤＲＡＭ（ＤＤＲ  ＳＤＲＡＭ）、エンハンストＳＤＲＡＭ（ＥＳＤＲＡＭ）、シンクリンクＤＲＡＭ（ＳＬＤＲＡＭ）およびダイレクトラムバスＲＡＭ（ＤＲＲＡＭ）など、さまざまな形で利用可能である。
【０１０５】
コンピュータ２６１２は、取外し可能な／取外し可能でない、揮発性の／不揮発性のコンピュータ記憶媒体も含んでいる。図２６は、例えばディスク記憶装置２６２４を示す。ディスク記憶装置２６２４は、磁気ディスクドライブ、フロッピー（登録商標）ディスクドライブ、テープドライブ、Ｊａｚドライブ、Ｚｉｐドライブ、ＬＳ−１００ドライブ、フラッシュ・メモリカードあるいはメモリースティックのような装置を含むが、これらに限定されない。さらに、ディスク記憶装置２６２４は記憶媒体を、他の記憶媒体と分離したあるいは結合した状態で含むことができる。他の記憶媒体としては、コンパクトディスクＲＯＭ装置（ＣＤ-ＲＯＭ）、ＣＤ記録可能ドライブ（ＣＤ-Ｒドライブ）、CD-書き換え可能なドライブ（ＣＤ-ＲＷドライブ）あるいはデジタル汎用ディスクＲＯＭドライブ（ＤＶＤ-ＲＯＭ）のような光ディスクドライブが含まれるが、これに限定されない。ディスク記憶装置２６２４をシステムバス２６１８に容易に接続するため、通常インターフェース２６２６のような取外し可能か取外し不可能なインターフェースが使用される。
【０１０６】
図２６は、ユーザーと、適切な操作環境２６１０に記述された基礎的なコンピュータリソースとの間の仲介者として働くソフトウェアを示す。そのようなソフトウェアはオペレーティングシステム２６２８を含む。オペレーティングシステム２６２８はディスク記憶装置２６２４上に格納することができ、コンピュータシステム２６１２のリソースを制御し割り付ける働きを有する。システムアプリケーション２６３０は、システムメモリ２６１６またはディスク記憶装置２６２４上に格納されたプログラム・モジュール２６３２およびプログラムデータ２６３４を通してオペレーティングシステム２６２８によってリソースの管理を利用する。なお、本発明の内容は、様々なオペレーティングシステムあるいはオペレーティングシステムの組合せで実行することができる。
【０１０７】
ユーザーは入力装置２６３６を通してコンピュータ２６１２へコマンドまたは情報を入力する。入力装置２６３６はマウス等のポインティング装置、トラックボール、スタイラス、タッチパッド、キーボード、マイクロホン、ジョイスティック、ゲームパッド、衛星放送アンテナ、スキャナ、テレビジョンチューナカード、デジタルカメラ、デジタルビデオカメラ、ウェブカメラ等を含むが、しかしこれらに限定されない。これらおよび他の入力装置はインタフェースポート２６３８経由でシステムバス２６１８を通して演算処理装置２６１４に接続する。インタフェースポート２６３８は、例えばシリアルポート、パラレルポート、ゲームポートおよびユニバーサルシリアルバス（ＵＳＢ）を含んでいる。出力装置２６４０は、入力装置２６３６として同一形式のポートのうちのいくつかを使用する。したがって、例えばＵＳＢポートは、コンピュータ２６１２に対して入力をし、またコンピュータ２６１２から出力装置２６４０へ情報を出力するために使用されてもよい。出力アダプタ２６４２は、他の出力装置２６４０の中でも、モニター、スピーカーおよびプリンターのようないくつかの出力装置２６４０が特別のアダプタを要求することを示すために図示されている。出力アダプタ２６４２は、出力装置２６４０とシステムバス２６１８との間の接続の手段を提供するビデオおよびサウンドカードを含むが、これらは例示のために挙げたものであって、これに限定されるものではない。なお、他の装置および／または装置のシステムは、遠隔コンピュータ２６４４のように、入力と出力能力の双方を提供する。
【０１０８】
コンピュータ２６１２は、遠隔コンピュータ２６４４のような１つ以上の遠隔コンピュータへの論理的接続を使用して、ネットワーク化された環境中で作動することができる。遠隔コンピュータ２６４４は、パーソナルコンピュータ、サーバー、ルーター、ネットワークＰＣ、ワークステーション、マイクロプロセッサベースの機器、ピア装置あるいは他の共通ネットワークノード等であり、また通常コンピュータ２６１２に関連して記述した構成要素の多くあるいはすべてを含む。簡潔にする目的で、遠隔コンピュータ２６４４では記憶装置２６４６だけが図示されている。遠隔コンピュータ２６４４は、ネットワークインターフェイス２６４８を通してコンピュータ２６１２に論理的に接続され、また、通信接続２６５０経由で物理的に接続される。ネットワークインターフェイス２６４８は、ローカルエリアネットワーク（ＬＡＮ）および広域ネットワーク（ＷＡＮ）のような通信網を包含する。ＬＡＮ技術はファイバー分配データインターフェース（ＦＤＤＩ）、銅分配データインターフェース（ＣＤＤＩ）、イーサネット（登録商標）／ＩＥＥＥ  ８０２．３、トークンリング／ＩＥＥＥ  ８０２．５などを含んでいる。ＷＡＮ技術は二地点間リンク、統合サービスデジタルネットワーク（ＩＳＤＮ）のような回線交換網およびその変形、パケット交換ネットワーク、またデジタル加入者回線（ＤＳＬ）を含んでいるが、これらに限定されない。
【０１０９】
通信接続２６５０は、ネットワークインターフェイス２６４８をバス２６１８に接続するために使用されるハードウェア／ソフトウェアを指す。通信接続２６５０は、図面を明確にするためにコンピュータ２６１２の内部に示されているが、それはコンピュータ２６１２の外部にあってもよい。ネットワークインターフェイス２６４８への接続に必要なハードウェア／ソフトウェアは、例を挙げる目的だけのために言うなら、通常の電話級モデム、ケーブルモデムおよびＤＳＬモデムを含むモデム、ＩＳＤＮアダプタおよびイーサネット（登録商標）カードなどのような内部および外部技術を含む。
【０１１０】
図２７は、本発明が関与することができる、サンプルを計算する環境２７００の概要ブロック図である。システム２７００は１つ以上のクライアント２７１０を含む。クライアント２７１０はハードウェアおよび／またはソフトウェア（例えばスレッド、プロセス、計算装置）であり得る。システム２７００はさらに１つ以上のサーバー２７３０を含んでいる。サーバー２７３０もまたハードウェアおよび／またはソフトウェア（例えばスレッド、プロセス、計算装置）であり得る。サーバー２７３０は、例えば、本発明を使用して変換を行なうためにスレッドを収容することができる。クライアント２７１０とサーバー２７３０との間の１つの可能な通信は、２つ以上のコンピュータプロセス間で送信されるのに適したデータパケットの形とすることができる。システム２７００は、クライアント２７１０とサーバー２７３０との間の通信を容易にするために使用することができるコミュニケーションの枠組み２７５０を含む。クライアント２７１０は、クライアント２７１０の局所的情報を格納するために使用することができる１つ以上のクライアントデータ記憶装置２７６０に操作可能に接続される。同様に、サーバー２７３０は、サーバー２７３０の局所的情報を格納するために使用することができる１つ以上のサーバーデータ記憶装置２７４０に操作可能に接続される。
【０１１１】
上の説明は、発明の実施例を含んでいる。本発明を説明する目的のために、構成要素または手法のすべての考えられる組合せを述べることはもちろん不可能であるが、当業者には、多くのさらなる本発明の組合せおよび置換が可能であることが認識できるであろう。したがって、本発明は、添付の特許請求の範囲の精神および範囲内におけるすべての変更、修正および変形を包含することを意図している。さらに、「を含む」という用語が詳細な説明または請求項のどちらかで使用されるかぎりにおいて、この用語は、請求項中で転換句として使用されたときの「からなる」の解釈と同様に包括的である。
【０１１２】
附属書Ａ
１  接続
ＣＩＰ動作は、駆動軸オブジェクトがサポートする３つの異なる接続構造を定義する。コントローラ対駆動装置の接続、駆動装置対コントローラの接続および駆動装置のピアツーピア接続である。初めの２つの接続構造は、コントローラ軸オブジェクトと駆動軸オブジェクトとの間に双方向接続を提供し、ともにＣＩＰ動作駆動接続と呼ばれる。駆動装置のピアツーピア接続は、それが駆動装置に適用されるように、等しくピアコントローラに適用されるＣＩＰ動作ピア接続の特定の応用である。
【０１１３】
1.1  ＣＩＰ動作駆動接続
次のセクションに、動作コントローラと駆動装置間の双方向データ転送のためのコントローラ対駆動装置接続および駆動装置対コントローラ接続を含むＣＩＰ動作駆動接続形式について記述する。
【０１１４】
1.1.1  駆動接続の特徴
以下はＣＩＰ動作駆動接続に関連する特徴のリストである：
1. １つのコントローラ更新期間の待ち時間付き周期的なデータおよびイベントを通過させる能力。
2. 駆動構成、チューニングおよび診断用の駆動装置に低優先順位サービスを要求する能力。
3. 双方向ユニキャスト接続を用いたスター形またはディジーチェーン型ネットワークトポロジに適用可能。
4. １つのネットワークノード当たり軸インスタンスを２５５まで扱う能力。
5. １つの通信ノードがサービスする多数の軸インスタンスを有する駆動装置を扱う能力。
6. 要素定義はベンダ固有の拡張のみならず標準拡張の余地を提供する。
7. 個々の軸インスタンスは異なる接続データ構造を持ちうる。
8. 駆動動作モードおよび周期的コマンドの双方ならびに実データセット構成は、駆動動作モードが進行中にその同期変更を可能とする周期的データ構造に組み込まれている。
9. 多チャンネルのパラメータの周期的リード／ライトアクセスをサポートする。各データチャネルの内容は周期的な接続データの一部として明確に定義されているので、関連データがどんな属性をマップしているかについて曖昧さがない。
10. データバッファ／配列転送サービスをサポートする。この配列データの転送能力は、高速化する駆動装置から配列データを得るために使用するか、高速ゲインスケジューリングまたはカムテーブル構築用に配列データを駆動装置に設定するために使用することができる。
11. 障害およびシャットダウン要求のクリア等の様々な基本状態制御機能を開始するためのエラー報告付き駆動制御および駆動応答ビットのハンドシェーキングメカニズムをサポートする。
12. 接続ヘッダはタイムスタンプを含み、コントローラまたは駆動装置のコントローラの更新タイマイベントが発生した時にシステム時間を提供する。
13. 接続タイミングモデルは、タイムスタンプ付きデータを用いて、異なる更新レートおよび位相オフセットを有する駆動装置およびコントローラをサポートすることができる。従って、コントローラの更新期間は駆動装置の更新期間の整数倍である必要はなくなった。
14. 接続タイミングモデルは、低価格ＶＦＤ駆動装置等の時間同期サービスを持たない駆動装置で動作する能力をも含む。
15. 標準イーサネット（登録商標）トランスポートプロトコル（例えばＴＣＰおよびＵＤＰ）を用いた重要なＨＭＩ、Ｉ／Ｏ、メッセージングおよび他のイーサネット（登録商標）トラッフィック、ＣＩＰまたは非ＣＩＰの存在下で確実に動作する能力。
16. 既存のノードへのＣＩＰ動作駆動接続動作に悪影響を与えることなく、実行中にイーサネット（登録商標）ノードを加えるか取り除く能力。（ネットワークトポロジ依存）。
17. 他の駆動ノードの動作を混乱させることなくオンラインでＣＩＰ動作駆動ノードを加えるか取り除く能力。（ネットワークトポロジ依存）。
18. 送信されたコマンドデータを実現できる限り最大限に利用する遅れたまたは逃した更新パケットの存在下での動作制御性能の向上。
19. 既存の駆動装置および制御装置ならびにＣＩＰ動作駆動接続データ構造の旧バージョンとの上位互換を容易にする組み込み型接続形式改訂。
20. 接続形式は、３２ビットワードが３２ビットで配列し、１６ビットワードが１６ビットで配列されるように組織されている。これによりメモリアクセスが容易になる。
【表１】
2008135005.tif 000003
【表２】
2008135005.tif 000004
【０１１５】
1.1.2  ＣＩＰ動作駆動接続の概要
ＣＩＰ動作駆動接続は、実際には２つの一方向性ユニキャスト接続から成る。１つはコントローラから駆動装置へとデータを渡し、他方は駆動装置からコントローラへとデータを渡す。双方の接続データ構造は、駆動ノードがサポートする各軸インスタンス毎に一連のデータブロックが後に続く３２ビットのタイムスタンプを含む接続ヘッダから始まる。
駆動装置とコントローラ間のデータ交換は、受信されたコントローラ対駆動装置のデータパケットごとに送信される駆動装置対コントローラの１つのデータパケットを用いてコントローラがペースを定める。コントローラ対駆動装置の接続パケットは、構成されたコントローラ更新期間に従って定期的に送信される。駆動装置更新期間、即ち駆動装置がその制御演算を行なう更新期間は、通常コントローラ更新期間よりはるかに早く、ほとんどの動作制御プロトコルは、コントローラ更新期間が駆動装置更新期間の整数倍であることを必要とする。しかし、ＣＩＰ動作駆動接続パケットがタイムスタンプを包含しているので、コントローラの更新期間は駆動装置の更新期間といかなる固定関係をも持つ必要はない。詳細なタイミングダイヤグラムがこの文献の終わりに含まれている。
ＣＩＰ動作駆動接続パケット内のインスタンスデータブロックはそれぞれ、周期的、イベントおよびサービスデータ・チャネルに関連する３セットのデータブロックから成る。これら所与の更新用データブロックのサイズは可変であり、接続およびインスタンスデータブロックのヘッダによって決定される。駆動装置の観点から、これら別個の３つのデータチャネルは、図８に示すような異なるデータ処理優先順位を有する。
これら３つのデータチャネルに固有の機能性は以下のとおりである：
●周期的データチャネル−コントローラ更新期間毎にサンプリングまたは演算され、かつ分配されたシステム時間の使用を通じて動作制御システムにおける他のノードと同期した周期的なデータブロックを運ぶ。周期的データは、直ちに処理されねばならず、１つの駆動装置更新期間内の駆動軸に適用されねばならない高優先順位のデータである。
●イベントデータチャネル−最後のコントローラ更新期間内に発生した駆動イベント（例えば登録、ホーミング等）に関連するイベントデータを運ぶ。イベントデータは中間の優先順位を有し、１つのコントローラ更新期間内に処理され適用されるべきデータである。
●サービスデータチャネル−駆動軸オブジェクトの属性値をオンライン構成および診断機能性の一部として読み取りまたは書き込むサービス要求に加え、コントローラ命令実行の一部として駆動軸オブジェクトの挙動に影響するサービス要求と関連するデータを運ぶ。サービスデータは最下位の優先順位にあり、通常バックグラウンドタスクとしてバッファされ処理される。サービス要求がコントローラ更新期間内に処理されるという保証はない。
まとめると、これら３つのデータチャネルは産業用動作制御の駆動データ接続ソリューションに包括的なコントローラを提供する。
【０１１６】
1.2  コントローラ対駆動装置接続
その構成データ要素の個々の詳細な説明を容易にするために、ＣＩＰ動作コントローラ対駆動装置の接続を以下のように組織する：
【表３】
2008135005.tif 000005
【０１１７】
1.2.1  コントローラ対駆動装置の接続ヘッダ
コントローラ対駆動装置の接続ヘッダは、インスタンスデータブロックの解析に必要とされる重要な軸構成情報を含む。接続ヘッダの固定部分を以下のように定義する。
【表４】
2008135005.tif 000006
●接続形式：この列挙されたバイトは、次の定義によるＣＩＰ動作接続形式を決定する：
【表５】
2008135005.tif 000007
●接続方式：この４ビットの列挙は下に示すようなＣＩＰ動作接続方式を定義する。コントローラ対駆動装置の接続に対する有効値は２と６である。固定接続は操作中の固定接続サイズを有し、ControlNetおよびDeviceNetのように低性能かつ通常、時間同期サービスをサポートしない単純な単軸駆動装置に関連するＣＩＰネットワークをサポートする。可変接続は、接続データ構造のサイズが動作中に変化することを許容し、またEtherNet/IPのような高性能ＣＩＰネットワークを対象とする。
０＝固定式コントローラ・ピアツーピア接続
１＝固定式駆動装置ピアツーピア接続
２＝固定式コントローラ対駆動装置接続
３＝固定式駆動装置対コントローラ接続
４＝可変式コントローラ・ピアツーピア接続
５＝可変式駆動装置ピアツーピア接続
６＝可変式コントローラ対駆動装置接続
７＝可変式駆動装置対コントローラ接続
８−１５＝予備
●形式改訂：最初は１から始まり、この値はインターフェースに影響を及ぼすコントローラ対駆動装置接続の形式の改訂ごとに１ずつ増える。形式改訂は、新しい駆動装置が古いコントローラによって生成される接続形式をサポートできるようにする。また、古い駆動装置が、サポートできないコントローラからの新しい接続形式を認識して適切なエラーを生成することを可能にする。
●更新ＩＤ：この周期的なトランザクション番号は更新期間ごとにインクリメントされる。更新ＩＤはＣＩＰシーケンスカウントに似ており、接続バッファに新しいデータが含まれているかどうかを判断するために駆動装置が使用する。更新ＩＤが変化していない場合、駆動装置は新しいデータが到着するまで、前の軌跡に基づく補外によって、更新を逃していてもそれなしで乗り切ろうとする。駆動軸が同期していないか、時間同期サービスをサポートしない場合、タイムスタンプデータは含まれていないか無効のいずれかであり、補外の乗り切りは試みられない。その場合、駆動装置にとっては更新ＩＤが新しい接続データを検出する唯一の手段となる。
●ノード制御：関連する駆動装置用通信ノードの状態を制御するのに使用されるビットが含まれる。
【表６】
2008135005.tif 000008
遠隔操作ビットは、駆動ノードが駆動装置の完全な制御をコントローラに渡すことを要求するのに使用される。このビットが空である場合、駆動装置はローカルインタフェースの排他的制御の下にある；ＣＩＰ動作コントローラは、駆動装置を遠隔制御モードに切り替えること以外、駆動装置の挙動に何ら影響を及ぼすことはできない。
同期制御ビットは駆動装置の同期動作を要求するためにコントローラが使用する。同期動作はシステム時間に同期した駆動ノードのローカルタイマを有し、かつ駆動ノードは、接続データを処理するためにコントローラタイムスタンプを使用していると定義される。同期制御ビットは、またコントローラタイムスタンプが有効であることを暗に示す。ビットは同期動作の継続中引き続き設定されているものとする。非同期モードにおいて、ローカルタイマが同期されていることは要求されないし、タイムスタンピングは必要でなく、有効であることすら要求されない。
コントローラデータ有効ビットは、駆動ノードがインスタンスデータブロックを処理するように設定されねばならない。接続初期設定シーケンス中には、インスタンスデータブロックにおいて接続データがまだ初期化されていない期間がありうる。駆動装置は、このビットをまずチェックして空であると見いだすことにより、この状態を認識することができる。
ノード障害リセットビットは、駆動装置が通信ノードをリセットしてノード障害ビットのクリアを試みるよう要求するのに用いる。コントローラがノード障害ビットが空であると検出すると、ノード障害リセットビットがクリアされる。通信障害が続く場合、ノード障害ビットはセットされたままでよく、その場合、電力サイクルまたは完全な再構成処理を行なわねばならない。
【０１１８】
1.2.1.1  固定接続ヘッダ
接続形式が固定式コントローラ対駆動装置接続である場合、インスタンスデータブロックが上記ヘッダの直後に続く。
【０１１９】
1.2.1.2  可変接続ヘッダ
接続形式が可変式コントローラ対駆動装置接続である場合、接続ヘッダは多軸駆動装置のアドレス指定およびタイムスタンピングと関連する追加フィールドを含む。
【表７】
2008135005.tif 000009
●インスタンスカウント：この値は、ＣＩＰ動作コントローラ対駆動装置の接続データ構造内にあるインスタンスデータブロックの数を反映する。
●タイムコンフィギュレーション：このビットマップバイトは、コントローラのタイミング情報の使用法および形式を決定するフラグを含んでいる。
【表８】
2008135005.tif 000010
●コントローラ更新期間：この要素は、コントローラデータの更新期間をナノ秒で指定する。接続が同期しているとき、駆動装置はコントローラタイムスタンプと共にコントローラ更新期間を用いて、逃したまたは遅れた更新をチェックすることができる。最後のコントローラタイムスタンプと現在のローカル駆動装置タイムスタンプとの間の差が、下記により与えられる極大値を越える場合、
最大遅延＝コントローラ・更新遅延上限＊コントローラ更新期間
駆動軸オブジェクトのノード障害クラス属性にコントローラ更新障害ビットを設定する。また、オプションコントローラ更新遅延下限属性も利用できる。最後のコントローラタイムスタンプと現在のローカル駆動装置タイムスタンプとの間の差が、下記により与えられる極大値を越える場合、
最大遅延＝コントローラ更新遅延下限＊コントローラ更新期間
駆動軸オブジェクトのノード警報クラス属性にコントローラ更新警報ビットが設定される。
接続が同期され微細な補間が可能であるとき、駆動装置はコントローラタイムスタンプ値と共にコントローラ更新期間を用いて補間／補外多項式に対して新しい係数を計算する。
接続が同期しない場合、駆動装置は遅延更新チェックを行なわない。この場合、コマンドデータは直ちに適用されるべきであり、このことは指令リファレンスとしてのデータを直ちに適用することを意味する。
●コントローラタイムスタンプ：この要素は、コントローラの更新タイマイベントが発生したとき、コントローラ更新期間の初めに６４ビットのシステム時間値の下位３２ビットを運ぶ。従って、コントローラタイムスタンプは、接続に含まれるコマンドデータと直接関連付けられている。駆動装置は駆動装置のローカルシステム時間値の上位３２ビットを使用してこの値を元の６４ビットの表現に戻す。単位タイムスタンプはナノ秒で表わされる。コントローラ更新期間と一緒にすると、駆動装置は、駆動装置とコントローラ間の更新タイミングの差に対してコマンドデータ値を修正するためのコマンド補間／補外多項式の計算に必要な情報をすべて所有する。これらの差は、コントローラ更新期間が駆動装置の更新期間の整数倍でないか、駆動装置の更新がコントローラに対して位相ずれを起こしたときに発生しうる。
【０１２０】
1.2.2  インスタンスデータブロック
接続ヘッダの後に、上記インスタンスカウントによって決定される１つ以上のインスタンスデータブロックがある。インスタンスデータブロックは次の基本構造を有する：
【表９】
2008135005.tif 000011
【０１２１】
1.2.2.1  インスタンスデータヘッダ
インスタンスデータヘッダは、３つのデータチャネルに含まれるデータを解析し適用するのに必要な重大な軸構成情報を含んでいる。このヘッダは多軸駆動装置の用途に対応するために可変接続形式に含まれているだけである。駆動装置通信用インタフェースは、ヘッダ内の情報を使用して処理用に別々の固定記憶装置の位置に個別データブロックをコピーすることができる。
固定接続形式に対して構成されれば、単軸インスタンス用の周期的データブロックだけがサポートされ、どの情報もインスタンス番号かブロックサイジングを指定する必要はない。従って、インスタンスデータヘッダは含まれない。
【表１０】
2008135005.tif 000012
●インスタンス番号：これは次のインスタンスデータブロックが適用される固有の駆動軸オブジェクトインスタンスを識別する番号である。駆動軸オブジェクトインスタンスは、インスタンス１から始まる連続的な一連のインスタンス番号として作成される。接続データ構造内では、個々の連続のインスタンスデータブロックのインスタンス番号は序数のシーケンス、即ち１、２、３等とすべきである。（ただし、インスタンス０はクラスインスタンスとして定義され、一般に接続データの一部として使用されない。）このように、ＣＩＰ動作駆動接続は理論上２５５のインスタンスにサービスすることができる。
●インスタンスブロック長：この値は、ヘッダを含む３２ビットワードのインスタンスデータブロックのサイズを表わす。インスタンスブロック長は、駆動装置が周期的、イベントおよびサービスのブロックのサイズを追加する必要なく次のインスタンスデータブロックに直接アクセスしたいときに有用である。
●周期的ブロック長：この値は周期的データブロックに対するサイズをヘッダを含む３２ビットワード単位で表わす。
●周期的コマンドブロック長：この値は周期的コマンドデータブロックに対するサイズをヘッダを含む３２ビットワード単位で表わす。
●周期的書込ブロック長：この値は周期的書込データブロックに対するサイズをヘッダを含む３２ビットワード単位で表わす。周期的書込ブロック長０は、駆動装置が周期的読書き機能性をサポートする必要がないことを示す。
●イベントブロック長：この値はイベントデータブロックに対するサイズをヘッダを含む３２ビットワード単位で表わす。イベントブロック長が０である場合、駆動装置はイベント機能性をサポートする必要はない。
●サービスブロック長：この値はサービスデータブロックに対するサイズをヘッダを含む３２ビットワード単位で表わす。サービスブロック長の値０は、処理するサービス要求がないことを示す。
【０１２２】
1.2.2.2  周期的データブロック
周期的データブロックの最上部の周期的データヘッダは接続形式にかかわらず常に含まれている。このヘッダは、コントローラ対駆動装置接続および駆動装置対コントローラ接続の双方の周期的データブロックの内容と関連した重要な要素および制御モードとフィードバックコンフィギュレーションによって決定されるデータのコンテキストを含む。ヘッダは、また対象とする駆動軸の状態を制御するメカニズムを提供する。
【表１１】
2008135005.tif 000013
●制御モード：この８ビットの列挙値は、動作コントローラに現在構成されているコマンドデータの制御モードのコンテキストを決定する。この値はオンライン中に、また駆動軸が作動状態にある間でも変更することができる。駆動装置が特定の制御モード遷移をサポートしない場合、不正な遷移に応じて多くのアクションのいずれか１つを行なうように構成できる例外が発生する。
●フィードバックコンフィギュレーション：この８ビットの列挙値は、動作コントローラに現在構成されているコマンドデータのフィードバックコンテキストを示す。コマンドデータはフィードバック１、フィードバック２のいずれかのフィードバックチャンネル、またはセンサレス動作用のノーフィードバックを基準とすることができる。オンライン中に、また駆動軸が作動状態にある間でも、この値を変更することができる。特定のフィードバックコンフィギュレーションの遷移が駆動装置によってサポートされていない場合、不正な遷移に応じて多くのアクションのいずれか１つを行なうように構成することができる例外を発生する。
●駆動制御：この８ビットのワードは、駆動パラメータを渡すか返すことを必要とせず、従って、ＣＩＰサービスの開始を要求しない駆動動作を直接実行するのに使用することができる列挙されたパラメータである。このデータ要素に有効な列挙を以下に示す：
【表１２】
2008135005.tif 000014
駆動制御メカニズムを介した駆動操作の実行は以下のように動作する：
１．コントローラは所望の駆動制御要求コードを設定する。
２．駆動装置は新しい駆動制御要求コードを検出し、要求された動作を開始する。
３．一旦要求された動作が完了すると、駆動装置は動作を承認するために、駆動装置対コントローラ接続の駆動応答要素に、適合した肯定応答コードを設定する。同時に、要求されたアクションが成功している場合、駆動装置は応答コードを０に設定し、要求された動作が失敗した場合、適切なエラーコードを設定する。
４．コントローラは一致する駆動応答肯定応答コードを見て応答コードを処理し、次の更新周期の発信駆動制御要求コードをゼロにする。（あるいは、異なる駆動制御要求コードを発行することができ、ステップ２と共に繰り返す。）
５．駆動装置は駆動制御要求コードがゼロであることを見て、次の更新周期の前に対応する駆動応答肯定応答コードをゼロにする。
●コマンドデータの構成：このビットマップ値は、個々の可能なリアルタイム指令リファレンスごとにビットを定義する。コマンドデータはコマンドデータセット内でビット数と同順で現われるので、指令位置はコントローラ対駆動装置接続のリアルタイムデータ構造における指令トルクの前に現われる。
【表１３】
2008135005.tif 000015
コマンドデータブロックは、アクティブ動作プランナの位置により、コントローラ対駆動装置接続または駆動装置対コントローラ接続のいずれかに現われうる。アクティブ動作プランナの位置は、駆動制御モード属性に含まれるプランナモード値によって決定される。
コントローラで動作プランナが作動中であることをプランナモードが示す場合、上記コントローラコマンドデータ要素はコントローラ対駆動装置接続の周期的データ構造に適用され、下表に示すように駆動軸オブジェクトにおける対応する属性に対応付けられる。コマンドデータ要素の単位は、関連する駆動軸オブジェクトの属性に定義された単位と一致する。
【表１４】
2008135005.tif 000016
プランナモードが、動作プランナが駆動装置において作動中であることを示す場合、上記コントローラコマンドデータ要素は駆動装置対コントローラ接続の周期的データ構造に適用され、次表に示すように駆動軸オブジェクトにおける対応する属性に対応付けられる。
【表１５】
2008135005.tif 000017
指定された駆動オペレーティングモードをサポートするために必要なコマンドデータ要素が接続データに含まれていることを保証することがコントローラの仕事である。
●実データコンフィギュレーション：このビットマップ値は、次の更新における駆動装置対制御接続のインスタンスデータブロックの実データセットに含まれる個々の可能なリアルタイム実データ属性ごとに定義されたビットを有する。実データがビット数と同順に現われるので、実位置が実データセット構造における実トルクの前に現われる。このメカニズムを使用して、実データセットの内容は、駆動動作中のいかなる時にも変更することができる。
【表１６】
2008135005.tif 000018
上記実データ要素は、下表に示す駆動軸オブジェクトにおいて対応する属性に対応付けられる。実データ要素の単位は、関連する駆動軸オブジェクト属性に定義された単位と一致する。
【表１７】
2008135005.tif 000019
●状態データ構成：このビットマップバイトは、次の更新において駆動装置対制御接続のインスタンスデータブロックの状態データセットの内容を決定するフラグを含む。状態データはビット数と同順に現われるので、駆動状態は例えば状態データ構造内の故障履歴データセットの前に現われる。これら状態データ要素の個々の定義は、対応する駆動軸オブジェクトの属性仕様を調べることで分かる。
【表１８】
2008135005.tif 000020
●補間制御：バイトは微細な補間アルゴリズムを制御し、かつ駆動制御構造に対するコマンドデータの目標時間を決定するのに必要な情報を含む。
【表１９】
2008135005.tif 000021
指令目標時間−コントローラの動作プランナによって定義されているように、この２ビットの整数はコマンドデータが対象とする接続タイムスタンプに関連する固有の時間を定義する。絶対指令目標時間は、コントローラからのコントローラタイムスタンプと、指令ターゲット時間＊コントローラ更新期間の積との和である。
指令目標時間０は、コマンドデータが現在の更新サイクルの開始を目標としていることを暗示し、従って制御構造に直ちに適用される必要がある。この場合、微細補間は必要としない。この状態は、コントローラ更新期間が駆動装置更新期間より著しく短いとき、または制御された軸の動作がコントローラ更新期間の範囲内でほぼ一定であるときに発生しうる。
指令目標時間１は、コマンドデータの目標が次の接続更新タイマイベントであることを暗示する。この場合、指令補間器はまず軸の現在の軌跡に基づいた次のコマンドデータ値を予測する補外器として機能する。これは、コントローラ更新期間が駆動装置更新期間とほぼ同じであるか、制御された軸の動作がコントローラ更新期間中、比較的一定であるときの典型的な設定である。
指令目標時間２は、コマンドデータの目標が接続タイムスタンプからの２つの接続更新タイマイベントであることを暗示する。この場合、指令補間器は、目標とされる時間にコマンドデータ値に達する、モータの現在の動力に基づいた滑らかな軌跡を算出することができる。これはまさしく微細な補間であり、コントローラ更新期間が駆動装置更新期間より著しく大きいときに適用可能である。
●周期的コマンドデータ：周期的なコマンドデータは、次の駆動装置更新中に関連する駆動軸インスタンスに適用される必要がある高優先順位のデータを含む。このブロックは、駆動装置の制御アルゴリズムへの参照として適用され、周期的コマンドデータヘッダにおいてコマンドデータセット要素によって明示的に決定されるコマンドデータ要素から成る。
【０１２３】
1.2.2.3．  周期的書込データブロック
周期的書込データブロックは、駆動装置内の目標とする１つ以上の駆動軸オブジェクトの設定パラメータを同期更新するのに使用することができる。このメカニズムを機能ブロックプログラムと連動して使用して、高度な外側ループ制御、ゲインスケジューリングおよび動的制限アルゴリズムを実行することができる。処理にいくつかの駆動更新周期がかかる、サービスチャネルのセット駆動属性サービス要求とは異なり、周期的書込データメカニズムは、目標のパラメータが次に利用可能な駆動装置更新で適用されることを保証する。
周期的書込データブロックは可変接続形式でサポートされるだけである。
【表２０】
2008135005.tif 000022
このブロックに関連するヘッダは、周期的書込データブロックの内容と関連する重要な要素を含んでいる。
●周期的書込ブロックＩＤ：この１６ビットのＩＤは、予め定義された周期的書込ブロックの構造を決定して、この更新のための周期的書込データに適用する。周期的書込ブロック構造は設定周期的書込データリスト（Set Cyclic Write Data List）サービスを用いて定義される。このサービスに対する成功応答は、周期的データをこの形式で渡すために次の接続更新において使用することができる新しい周期的書込ブロックＩＤを含む。
●周期的読取ブロックＩＤ：この１６ビットのＩＤは、予め定義された周期的読取ブロックの構造を決定して、駆動装置対コントローラの次の接続更新用の周期的読取データに適用する。周期的読取ブロック構造は設定周期的読取データブロック（Set Cyclic Read Data Block）サービスを用いて定義される。このサービスに対する成功応答は、駆動装置が新しい周期的読取データ形式を次の利用可能な駆動装置対コントローラの接続更新に使用することを可能にするために次の接続更新で使用することができる新しい周期的読取ブロックＩＤを含む。
●周期的書込データ：周期的書込データは、次の駆動装置更新中に関連する駆動軸インスタンスに適用される必要がある高優先順位のデータを含んでいる。このブロックは、制御アルゴリズムが使用する駆動軸オブジェクト属性に適用されるパラメータのデータ要素から成る。周期的書込データの内容は、周期的書込データヘッダに見出される周期的書込ブロックＩＤによって識別される構造によって明示的に決定される。
【０１２４】
1.2.3．  イベントデータブロック
イベントデータブロックはイベントチャンネルに関する情報を伝達するのに使用される。特に駆動装置対コントローラ接続用のイベントデータブロックは、駆動装置対コントローラ接続のイベントデータブロックを介して送信される駆動装置からのイベント通知の肯定応答受領と同様、駆動装置においてイベントチェック機能のアーミングを制御するために使用される。
コントローラ対駆動接続用のイベントデータブロックには次の形式がある。
【表２１】
2008135005.tif 000023
●イベントチェック制御：この３２ビットのワードは様々な駆動入力、例えばマーカおよび登録入力にイベントを発生させることを可能にするために使用される同じ名前の駆動軸オブジェクト属性にコピーされる。これらのイベントが発生すると、駆動装置はイベントが発生した時の時間と正確な軸位置の双方を取り込む。イベントチェック制御の最後の４ビットはアクティブなイベント数を指定する２進値であり、文字通りこのイベントデータブロックに記録されたイベント肯定応答ＩＤの数である。
イベント制御のメカニズムは以下のように動作する：
1.  コントローラは適切なイベントチェックビットを設定し発生する特定のイベント条件を探す。イベントチェック制御ワードのマルチビットは任意の時間に設定されてよい。
2.  駆動装置はイベントチェック制御要求ビットが設定されていることを検出し、要求されたイベントチェックアクションを開始する。
3.  駆動装置は対応するイベントチェック状態ビットを設定し、駆動装置が今、指定されたイベント条件を積極的にチェックしていることを確認応答する。
4.  コントローラは、指定されたイベントトリガーが駆動装置で「装備された」ことを示す駆動装置からのイベントチェック状態ビットが設定されていることを確認する。この更新をはじめ、コントローラは、指定されたイベント条件と一致する駆動装置からのいかなるイベント通知をも処理することができる。
5.  駆動装置は指定されたイベント条件を検出し、コントローラにイベント通知データブロックを送信する。イベントチェック制御ワードに、関連する自動再装備ビットが空である場合、駆動装置は指定されたイベントのチェックを中止する。しかしながら、コントローラがイベントチェック要求ビットをクリアするまで、イベントチェック状態ビットは設定されたままとなる。なお、同じ更新において他のイベント用の通知も送信することができる。
6.  コントローラはイベント通知を処理してイベント肯定応答を駆動装置に送信し、自動再装備ができない場合、次のコントローラ対駆動接続の更新のために、関連するイベントチェックビットをクリアする。
7.  駆動装置は、イベントチェック要求ビットが空であることを検出し、次の駆動装置対コントローラの接続更新の前に対応するイベントチェック状態ビットをクリアする。
8.  コントローラは、関連するイベントチェック状態ビットがリセットされたことを確認するとすぐにイベントチェックビットを再び設定することができる。従って、コントローラがイベント通知を受信した時から駆動装置が次のイベントのために再装備されるまでの最短時間が、１つのコントローラ更新期間となる。
自動再装備イベントチェックが要求される登録イベントの場合、イベント取り扱いシーケンスは以下のようになる：
1.  コントローラは適切なイベントチェックビットを設定し、発生する特定のイベント条件を探し、かつそのイベント条件のために自動再装備ビットも設定する。
2.  駆動装置は、イベントチェック制御要求ビットが設定されたことを検出し、要求されたイベントチェックアクションを開始する。
3.  駆動装置は対応するイベントチェック状態と自動再装備ビットを設定し、駆動装置が今、指定されたイベント条件を積極的にチェックしていると応答する。
4.  コントローラは、指定されたイベントトリガーが駆動装置に「装備」されていることを示す駆動装置からのイベントチェック状態ビットが設定されていることを確認する。この更新をはじめ、コントローラは、指定されたイベント条件と一致する駆動装置からのいかなるイベント通知も処理することができる。
5.  駆動装置は指定されたイベント条件を検出し、コントローラにイベント通知データブロックを送信する。対応する自動再装備ビットが設定されるので、駆動装置は指定されたイベントを引き続きチェックする。コントローラがイベントチェック要求ビットをクリアするまで、イベントチェック状態ビットは設定された状態を保つ。
6.  コントローラはイベント通知を処理して駆動装置にイベント肯定応答を送信するが、自動再装備ビットが有効であるので、次のコントローラ対駆動接続の更新のために関連するイベントチェックビットを設定されたままにしておく。
7.  駆動装置はコントローラからイベント肯定応答を受信する。指定されたイベントが再び発生している場合、駆動装置は今度は別のイベント通知を送信することができる。
さもなければ・・・
8.  駆動装置は指定されたイベント条件を引き続きチェックし、イベント条件が発生するといつでもコントローラにイベント通知データブロックを送信する。コントローラがイベントチェック要求ビットをクリアするまでイベントチェック状態ビットは設定されたままとなる。自動再装備の特性により、イベントチェックは引き続き有効であり、イベントチェックメカニズムを再装備する際、通常の１サイクル遅延中に登録イベントの見逃しがないことが保証される。自動再装備特性の好ましくない点は、自動再装備が理論的にコントローラ更新期間当たり１つ指定されたイベントを処理するのに数多くの興味のないイベントを発生しうるということである。
●イベント肯定応答ＩＤ：元のイベント通知によってこのイベントに割り当てられたトランザクション番号。駆動装置に保存されている現イベントＩＤをインクリメントして各イベントに新しいイベントＩＤを割り当てる。駆動装置はイベントＩＤを用いてイベントデータトランザクションを完了するためにイベント肯定応答を適切なイベント通知に適合させることができる。
●イベント肯定応答状態：イベントに対するコントローラの応答を示す列挙値。値０は、イベントが成功裡に処理されたことを示す。０でない値は、イベント処理でエラーが発生し、イベントが再送されるべきであることを示す。
【０１２５】
1.2.4  サービスデータブロック
サービスデータブロックは、ある更新において１つのインスタンス当たり１つのサービス要求が駆動装置に送信されることを可能にする。サービス要求は、成功またはエラーを示す駆動装置からの特定サービス応答を要求する。応答サービスが要求データを含む場合もある。いずれの場合にも、コントローラが駆動装置から関連するサービス応答を受信するまで、サービス要求データはコントローラ対駆動装置接続のデータ構造の中に存続する。
各サービス要求は下に示すように組織されたデータブロックによって表わされる。
サービスデータブロックの最初の４バイトは従来のＣＩＰ標準の通信形式に従わないこともある。これは、この接続構造が基本的に明示的な通信接続ではなくてＣＩＰの暗黙のＩ／Ｏ接続だからである。しかしながら、固定接続形式の場合、下に定義するサービス特定要求データは明示的通信接続を介して送信され、また明示的サービス要求形式のためのＣＩＰ規則に従う。
【表２２】
2008135005.tif 000024
●トランザクションＩＤ：コントローラがこのサービス要求に割り当てるトランザクション番号。コントローラに保存されている現トランザクションＩＤをインクリメントして各サービス要求に新しいトランザクションＩＤを割り当てる。コントローラはトランザクションＩＤを用いて、サービス応答と適切なサービス要求を適合させ、サービストランザクションを完成することができる。
●サービスコード：後続のオブジェクト特定サービス要求を決定する識別子。サポートされるサービスコードのリストを本書類のオブジェクト特定サービスのセクションに示す。ＣＩＰ共通サービスは一般にサービスデータブロックに適用することはできない。
●サービス特定要求データ：サービス特定要求データの形式と構文は指定されたサービスコードに依存する。これはサービス特定要求データがコントローラ対駆動装置接続で渡されるか、明示的通信接続の一部として渡されるかにかかわらず当てはまる。
【０１２６】
1.2.5  コントローラ対駆動装置接続のタイミング
ＣＩＰ動作駆動接続データ交換は、コントローラがコントローラ対駆動装置接続パケットを介して開始する。コマンドデータと共にタイムスタンプ情報をこのパケットに含めることで、他の動作制御ネットワークプロトコルが課す厳しいタイミング要求が緩和される。図１２のダイヤグラムは、微細な補間が必要なとき、コントローラ対駆動装置接続によって運ばれるコマンドデータとタイムスタンプが駆動軸にどのように適用されるかを示す。
下記ステップは、コントローラ更新期間（ＣＵＰ）が駆動装置更新期間の整数倍でない一般的なケースの典型的な接続サイクル中に、接続データがコントローラから駆動装置までどのように転送されるかを詳細に記述するものである。
1.  コントローラ送信：制御タスクの一部として、コントローラは、現在のコントローラ更新期間の開始時に時間を参照するインクリメントされた更新ＩＤと新規のコントローラタイムスタンプを用いて、目標駆動装置に新規のコマンドデータと共にコントローラ対駆動装置接続パケットの送信を開始する。目標軸用のインスタンスデータブロックは指令目標時間をも含み、この例においては２＊コントローラ更新期間（ＣＵＰ）の微細な補間間隔をサポートするために２に設定している。
2.  指令更新ＩＤチェック：駆動装置は、新規のコントローラ対駆動装置接続パケットデータ用のあらゆる駆動装置更新期間をチェックする周期的な駆動タスクを実行する。これは、変更された更新ＩＤをチェックすることにより容易に行うことができる。駆動タスクが新規データを見出すと、これはコマンドデータ更新周期であり、コマンドデータは次のシーケンスに従ってさらに処理されねばならない。
3.  同期動作チェック：次に、駆動装置は自身が同期しているかどうかをチェックする。同期していない場合、遅い更新チェックを行なう必要がないので、適用コマンドデータステップにスキップする。遅い更新チェックを回避することにより、始動中、または駆動装置が何らの時刻同期サービスも有さない場合でも、駆動装置の制御が可能になる。
4.  遅延更新チェック：駆動装置が同期している場合、駆動装置はコントローラ対駆動装置接続パケット内の現在の駆動更新タイムスタンプとコントローラタイムスタンプ間の差を算出する。差がコントローラ更新遅延上限＊コントローラ更新期間より大きい場合、駆動装置はコントローラ更新障害を投げる。時間差が接続更新期間の２倍を越えている場合、現在の微細な補間器多項式は、新規データが到着するまで、事実上、駆動装置が遅延データ条件を乗り切ることを可能にする補外器多項式になっている。
5.  適用コマンドデータ：この例においては微細な補間器が用いられているので、駆動装置は、コントローラタイムスタンプ、Tctr1プラス指令目標時間とコントローラ更新期間の積、２＊ＣＵＰの目標時間に適用されているコマンドリファレンスに基づき、微細な補間多項式用の係数を算出する。目標時間が駆動装置において現在のシステム時間未満である場合、やはり多項式に対する新規の係数が補外計算の正確さを向上させるためにこのコマンドデータに基づいて算出される。一般に、コマンドデータが遅れている場合は常に、データは利用可能な最新のコマンドデータをやはり表わしており、できるだけ早く適用されるべきである。
指令目標時間を１に設定すると、ステップ５で算出された多項式は微細補間の目的ではなくむしろ補外に適用される。補外多項式は、駆動装置が前の軸軌跡に基づいてその制御演算を行なう時に、駆動装置が正確なコマンドデータ値を算出することを可能にする。図１３のダイヤグラムに、コントローラ更新期間（ＣＵＰ）が駆動装置更新期間の整数倍ではない一般の場合におけるこのタイミングモデルを示す。
なお上記の例においては、所与のコントローラ更新期間に多くの駆動装置更新期間はない。この場合、微細な補間は駆動装置の性能にとって決定的とはならず、コマンドデータを、微細な補間のサポートに必要な余分な遅延なしに駆動装置の制御構造に、より直接的に適用することができる。しかしながら、補外にはコマンドデータに補外エラーがより直接的に現れるという欠点があり、結果として微細な補間を用いるときよりも粗い動作が得られる。
新規の多項式係数を算出して、新規コマンドデータをできるだけ早期に使用するために、コントローラ対駆動装置接続パケットに関連するすべての周期的データを指令目標時間にかかわらず駆動タスク指令更新に適用すべきである。
【０１２７】
1.2.5.1  駆動装置更新期間独立
図１４のタイミングダイヤグラムは、駆動装置更新期間が異なるにもかかわらず、かつ一方の駆動装置更新期間の整数倍ではない関連するコントローラ更新期間を有するにもかかわらず、２つの駆動軸をいかに緊密に連携させることができるかを示す。
図１４のタイミングダイヤグラムにおいては、コントローラの動作プランナのタスクは、システム時間と同期しつつ、異なる駆動更新レートで作動している２つのスレーブ駆動軸に同一の指令位置およびタイムスタンプを送信する。指令位置データが２台の駆動装置に到着すると、これら駆動装置は、（コントローラタイムスタンプ＋指令目標時間＊コントローラ更新期間）に等しい時間の多項式の値は指定された指令位置値であるという制約に基づき、コントローラタイムスタンプ、指令目標時間およびコントローラ更新期間を用いて補間多項式に対する新規の係数を算出する。駆動装置更新レートへの依存性はないので、各駆動装置が算出した多項式の係数は同一である。どちらの駆動装置にもこの目標時間と一致する更新がないので、駆動装置は、新規の指令位置をコントローラから受信するまで、微細な補間多項式を用いて各駆動装置更新の指令位置参照を計算する。目標時間のしばらく後まで、新規の指令位置が到着しない場合、駆動装置は、引き続き同じ多項式を用いて上記ダイヤグラムに示すように後の駆動装置更新のための指令位置を「補外する」。新規のデータが到着し、新規の係数を計算することができるまで、この補外は継続する。このように、補間または補外によって、スレーブ軸はそれぞれ円滑に動き、２つの軸はマスタ軸と共に位相ロックされている。
【０１２８】
1.2.5.2  送信待ち時間独立
コントローラ対駆動装置接続パケットがＣＩＰネットワークを移動する間に著しい遅延を招くときでも、多くのＣＩＰ動作駆動軸の正確な連携を維持することができる。図１５のダイヤグラムにおいては、スレーブ駆動軸２用のパケットは送信中に有意な遅延を引き起こしている。その結果、この軸用の指令位置は最後の微細な補間多項式から補外されねばならない。これは、軸が送信待ち時間の障害の中で円滑に動くことを可能にする。新規コマンドデータが到着するとき、新規の指令値が補外エラーのために補外値と一致しないこともある。このエラーは動作プロファイルに障害をもたらしうる。補外エラーの大きさは、動作プロファイルの動力学およびコントローラ更新レートに依存する。ほとんどの現実世界の応用においては、いくつかの更新期間の間持続する送信待ち時間は、関連する動作プロファイルに顕著な外乱なしに発生する場合がある。
【０１２９】
1.3  駆動装置対コントローラ接続
上述のコントローラ対駆動装置接続のデータ構造のように、ＣＩＰ動作コントローラ対駆動装置接続は以下のように組織される：
【表２３】
2008135005.tif 000025
【０１３０】
1.3.1  駆動装置対コントローラ接続ヘッダ
駆動装置対コントローラ接続ヘッダは、駆動装置対コントローラ接続データブロックを解析するのに必要な重大な軸構成情報を含む。接続ヘッダの固定部分は以下のように定義されている：
【表２４】
2008135005.tif 000026
●接続形式：接続方式に対する要求値が、固定式駆動装置対コントローラ接続方式を示す要求値３、または固定式駆動装置対コントローラの接続方式を示す要求値７のいずれかであることを除き、コントローラ対駆動装置の定義と同じである。
0＝固定式コントローラ・ピアツーピア接続
1＝固定式駆動装置ピアツーピア接続
2＝固定式コントローラ対駆動装置接続
3＝固定式駆動装置対コントローラ接続
4＝可変式コントローラ・ピアツーピア接続
5＝可変式駆動装置ピアツーピア接続
6＝可変式コントローラ対駆動装置接続
7＝可変式駆動装置対コントローラ接続
8-15＝予備
●形式改訂：コントローラ対駆動装置の定義と同じ。
●更新ＩＤ：駆動装置対コントローラ接続の更新ＩＤは、先のコントローラ対駆動装置更新ＩＤの更新ＩＤと一致するべきであり、従って更新期間ごとにインクリメントされるべきである。関連するコントローラ対駆動装置パケットが失われるか遅延する場合、あたかもコントローラ対駆動装置パケットが時間通りに到着したかのように、駆動装置対コントローラ更新ＩＤはインクリメントされるべきである。これは、ＣＩＰ動作制御システムが失われたか逃したコントローラ対駆動装置パケットを乗り切り、適合する更新ＩＤとの同期を維持することを可能にする。
更新ＩＤはＣＩＰメッセージシーケンスカウントに似ており、接続バッファに新規のデータが含まれているかどうかを判断するためにコントローラが使用する。更新ＩＤが変化していない場合、コントローラは新規更新が到来するまで、前の軌跡に基づいた補外によって、更新を逃していてもそれなしで乗り切ることを試みる。軸が同期していないか、時間同期サービスをサポートしていない場合、タイムスタンプデータは含まれていないか無効であり、補外による乗り切りは試みられない。その場合、更新ＩＤはまたコントローラにとっては新規の接続データを検出する唯一の手段となる。
●ノードステータス：関連する駆動通信ノードの状態を示すために用いられるビットを含む。
【表２５】
2008135005.tif 000027
遠隔モードビットは駆動ノードが駆動装置の総合制御をコントローラに引き渡したことを示すために使用される。このビットが空である場合、駆動装置はコントローラ対駆動装置の周期的またはサービスチャンネルに含まれるいかなるデータにも作用しない。
同期モードビットは、ドライブノードが同期しているかどうかを示す。同期動作はシステム時間と同期した駆動ノードのローカルタイマを有し、駆動ノードは接続データを処理するために接続タイムスタンプを使用していると定義される。設定されている同期モードビットはまた、駆動タイムスタンプが有効であることを示唆している。ビットは同期動作中は設定されたままとする。同期モードビットが空である場合、駆動は非同期モードにあると言う。非同期モードでは、ローカルタイマを同期すべき要求はないし、タイムスタンピングは必要でないか、有効でさえない。
駆動データ有効ビットは、駆動ノードからのインスタンスデータブロックを処理するためにコントローラに設定されねばならない。接続初期設定シーケンス中にインスタンスデータブロック内の接続データがまだ初期化されない期間があってもよい。コントローラは最初にこのビットをチェックすることによりこの条件を認識することができる。
駆動ノード障害ビットは、駆動装置が通信ノードと関連する１つ以上の障害状態を検出したことを示すために使用される。ノード障害属性によって特定の障害状態を決定することができる。このビットが空である場合、障害状態は存在しない。駆動ノード障害ビットは、ノード制御ワードにノード障害リセットビットを設定することによりクリアすることができる。ノード障害状態が存在する場合、関連する軸はすべて働かなくなる。
【０１３１】
1.3.1.1  固定接続ヘッダ
接続形式が固定式駆動装置対コントローラ接続である場合、上記ヘッダの直後にインスタンスデータブロックが続く。
【０１３２】
1.3.1.2  可変接続ヘッダ
接続形式が可変式駆動装置対コントローラ接続である場合、接続ヘッダは、多軸駆動装置アドレシングおよびタイムスタンピングと関連した追加フィールドを含んでいる。
【表２６】
2008135005.tif 000028
●インスタンスカウント：コントローラ対駆動装置の定義と同じ。
●ノード警報：関連する駆動通信ノードの警報状態を示すために使用されるビットを含む。
【表２７】
2008135005.tif 000029
同期更新警報ビットは、コントローラからの更新が過度に遅いことを示す。
プロセッサ警報は、駆動装置に関連したプロセッサが最終的に障害に至りうる過負荷状態下にあることを示す。
ハードウェア障害は、駆動ノードに関連した重要な支援ハードウェア（ＦＰＧＡ、ＡＳＩＣ等）が障害に至りうる状態下にあることを示す。
●ノード障害：関連する駆動装置通信ノードの障害状態を示すために使用されるビットを含む。
【表２８】
2008135005.tif 000030
同期更新障害ビットは、コントローラからの更新が過度に遅いことを示す。
プロセッサ障害は、駆動ノードに関連したプロセッサが関連するプロセッサ監視メカニズムを妨害する過度の過負荷状態のような障害状態下にあることを示す。
ハードウェア障害は、駆動ノードに関連した重要な支援ハードウェア（ＦＰＧＡ、ＡＳＩＣ等）が障害状態下にあることを示す。
●時間構成：コントローラ対駆動装置の定義と同じ。
●駆動装置更新期間：この要素は、コマンドデータを適用する駆動制御演算間の現在の期間を表わす。この値は、コマンドデータに適用される微細な補間ブロックの挙動を構成するためにコントローラが使用する。コントローラ更新期間が駆動装置更新期間よりはるかに長い場合、一般に微細な補間が適用される。コントローラ更新期間が駆動装置更新期間と同程度の場合、微細な補間を必要とせず、タイムスタンプ修正を行なうために補外のみが要求される。
●駆動タイムスタンプ：駆動装置の更新タイマイベントが発生した時、このタイムスタンプ値は６４ビットのシステム時間値の下位３２ビットをナノ秒で反映する。コントローラは、コントローラのローカルシステム時間値の上位３２ビットを用いて、この値をその元の６４ビットの表現に戻す。駆動タイムスタンプにより、コントローラは、コントローラ更新期間が駆動装置更新期間の整数倍でない時、または駆動装置更新がコントローラに対して位相シフトされている時に生ずる駆動装置およびコントローラの更新タイミング間の差に対する実応答データ値を修正するのに必要とする情報をすべて持っている。このタイミングモデルにおいては、駆動タイムスタンプは駆動装置更新期間の先頭に登録されており、またフィードバックを最後に捕捉した時であると仮定されている。駆動タイムスタンプがコントローラのローカルの更新タイムスタンプと一致しない場合、コントローラは、コントローラのタイムスタンプに対応させるために軌道に基づいた実応答データ値を補外する。図１６のタイミングダイヤグラムに、コントローラが駆動装置とコントローラ間の相対タイムスタンプに基づき駆動装置からの軸位置データをどのように調節するかを示す。
【０１３３】
1.3.2  インスタンスデータブロック
接続ヘッダの後に、上記インスタンスカウントによって決定された１つ以上のインスタンスデータブロックがある。インスタンスデータブロックは、コントローラ対駆動装置接続のブロックに極めて似ており、次の基本構造を有する：
【表２９】
2008135005.tif 000031
【０１３４】
1.3.2.1  インスタンスデータヘッダ
インスタンスデータヘッダは、３つのデータチャネルに含まれるデータを解析し適用するために必要とされる重要な軸構成情報を含む。このヘッダは単に多軸駆動アプリケーションを収容するために可変接続形式にのみ含まれている。ヘッダ内の情報は、駆動通信用インターフェースにより、個別データブロックを処理用に別々の固定記憶域にコピーするために使用することができる。
固定接続形式用に構成されれば、単軸インスタンス用の周期的データブロックのみがサポートされるので、インスタンス番号かブロックサイジングに関する情報は必要としない。従って、インスタンスデータヘッダは接続構造に含まれていない。
【表３０】
2008135005.tif 000032
●インスタンス番号：コントローラ対駆動装置の定義と同じ。
●インスタンスブロック長：コントローラ対駆動装置の定義と同じ。
●周期的ブロック長：コントローラ対駆動装置の定義と同じ。
●周期的実ブロック長：コントローラ対駆動装置の定義と同じ。
●周期的読取ブロック長：コントローラ対駆動装置の定義と同じ。
●イベントブロック長：コントローラ対駆動装置の定義と同じ。
●サービスブロック長：コントローラ対駆動装置の定義と同じ。
【０１３５】
1.3.2.2  周期的データブロック
駆動装置対コントローラ接続の周期的データブロックの最上部の周期的データヘッダは、接続形式にかかわらず常に含まれている。このヘッダは、駆動に関する周期的データブロックの内容およびブロック内データのコンテキストと関連する主要な要素を含んでいる。これら要素の大半は直前のコントローラ対駆動装置接続の周期的データブロックに対応する要素によって構築され、従ってそのダイレクトコピーである。このように、駆動装置対コントローラ接続用の周期的データブロックの内容は、究極的にコントローラによって決定される。
【表３１】
2008135005.tif 000033
●制御モード：コントローラ対駆動装置の定義と同じ。
●フィードバックコンフィグ：コントローラ対駆動装置の定義と同じ。
●駆動応答：８ビットの駆動応答は、ＣＩＰサービス要求を要求しない駆動動作を直接開始するために、コントローラ対駆動装置接続の対応する駆動制御要素とのハンドシェーキングのために使用される列挙値である。有効な肯定応答コードは、駆動制御要素の対応する要求コードと一致し、下に示されている：
【表３２】
2008135005.tif 000034
駆動制御／応答配列についての詳細は、駆動制御用のコントローラ対駆動装置の定義を参照のこと。
●応答コード：駆動応答に０でない肯定応答コードがある場合、要求された駆動制御動作の成功または失敗を示すために応答コード値も提供される。応答コード０は成功を示し、一方０でない値はエラーを示す。応答コード値は一般状態コード用のＣＩＰ共通基準に従う。
●コマンドデータ構成：コントローラ対駆動装置の定義と同じ。
●実データ構成：コントローラ対駆動装置の定義と同じ。
●状態データ構成：コントローラ対駆動装置の定義と同じ。
●補間器状態：バイトは、下に示す表に従った補間ブロックの現在の状態を示すフラグを含む。
【表３３】
2008135005.tif 000035
指令目標時間はこの軸インスタンス用の微細な補間器による指令位置に適用されている現在の目標時間を決定するのに使用される。この知識は、コントローラの動作プランナ更新遅延補償アルゴリズムの固有関数にとって重要である。
●周期的コマンド／実／状態データ：周期的コマンド／実／状態データは、次の駆動更新中に関連する駆動軸インスタンスに適用する必要のある高優先順位データを含む。このブロックは、周期的実／状態データヘッダ内の実データセットと状態データセットの要素によって明示的に決定されるコントローラが消費する実データ要素と状態データ要素から成る。
【０１３６】
1.3.2.3  周期的読取データブロック
周期的読取データブロックは、駆動装置内の関連属性の現在値に基づきコントローラ内の１つ以上の目標コントローラ軸オブジェクト属性を同期更新するのに使用することができる。このメカニズムは、多種多様な利用可能な駆動制御信号に基づき、光度な外側ループ制御を実行する機能ブロックプログラムと共に使用することができる。処理するのにいくつかの駆動更新周期がかかるサービスチャンネルの取得駆動属性（Get Drive Attribute）サービス要求と異なり、周期的読取データメカニズムは接続サイクルごとに目標のパラメータが更新されることを保証する。
周期的読取データブロックは可変接続形式でサポートされているだけである。
【表３４】
2008135005.tif 000036
このブロック用の関連ヘッダは、周期的書込データブロックの内容と関連する主要な要素を含んでいる。
●周期的読取ブロックＩＤ：この１６ビットのＩＤは、この更新用の周期的読取データに適用される、予め定義された周期的読取ブロック構造を決定する。周期的読取ブロック構造は設定周期的読取データリスト（Set Cyclic Read Data List）サービスを利用して定義される。このサービスに対する成功した応答は、この形式で周期的データを手渡すために次の接続更新の中で使用することができる新規の周期的読取ブロックＩＤを含む。
●周期的読取データ：周期的読取データは、関連するコントローラ軸インスタンスに適用するのに必要な高優先順位データを含む。このブロックは、測定され対応する動作軸オブジェクト属性に適用される信号と状態データの要素から成る。周期的読取データの内容は、周期的読取データヘッダに見出される周期的読取ブロックＩＤによって識別される構造によって明示的に決定される。
【０１３７】
1.3.3  イベントデータブロック
イベントデータブロックは、多数のイベント通知が所定の更新において駆動装置に送られることを可能にする。イベント通知はそれぞれ成功またはエラーを示す特定のイベント肯定応答を要求する。イベント通知データは、駆動装置が対応するイベント肯定応答をコントローラから受信するまで駆動装置対コントローラ接続データ構造の中に存続する。
駆動装置対コントローラ接続用のイベントデータブロックには次の形式がある。
【表３５】
2008135005.tif 000037
●イベントチェック状態：この３２ビットのワードは、駆動装置が様々な駆動入力、例えばマーカ、ホームおよび登録入力に基づきイベントを現在チェックしているかどうかを示すのに使用されるビットマップパラメータである。対応するイベントチェック制御ビットがコントローラ対駆動装置接続に設定されると、イベントチェックが開始される。イベントが発生すると、駆動装置は時間および正確な軸位置の双方を取り込み、この情報をイベントデータブロック内のコントローラに渡す。しかし、イベントデータを処理するコントローラにとっては、対応するイベントチェック状態ビットが設定されていなければならない。
●イベントＩＤ：元のイベント通知によってこのイベントに割り当てられたトランザクション番号。イベントにはそれぞれ駆動装置に記憶された現イベントＩＤのインクリメントにより、新しいイベントＩＤが割り当てられる。イベントＩＤを使用して、駆動装置は、イベントデータトランザクションを完了するためにイベント肯定応答と適切なイベント通知を適合させることができる。
●イベント状態：イベントに対するコントローラ応答を示す列挙値。値０はイベントが成功裡に処理されたことを示す。０でない値は、イベント処理にエラーが発生し、イベントを再送信すべきことを示す。
●イベントタイプ：この列挙値は、発生したイベントのタイプを記述する。有効なイベントタイプは以下のとおりである：
【表３６】
2008135005.tif 000038
●イベント位置：指定イベントが発生した時の軸位置の６４ビットの整数表現。
●イベントタイムスタンプ：この要素は指定されたイベントが発生した時、システム時間の低位３２ビットを運ぶ。単位はナノ秒で表現される。絶対６４ビットのイベントタイムスタンプを生成するために、イベントタイムスタンプをコントローラでシステム時間の上位３２ビットと結合することができる。
【０１３８】
1.3.4  サービスデータブロック
サービスデータブロックは、所定の更新において１つのインスタンス当たり１つのサービス応答がコントローラに送信されることを可能にする。サービス要求はそれぞれ、成功またはエラーを示す駆動装置からの特定サービス応答を要求する。応答サービスが要求データを含む場合もある。いずれの場合にも、駆動装置がコントローラ対駆動装置接続インスタンスデータブロック（サービスブロック長＝０）から関連するサービス要求が取り除かれたのを確認するか、新しいサービス要求がコントローラによって発行される（インクリメントされたトランザクションＩＤ）まで、サービス応答データは、駆動装置対コントローラ接続データ構造の中に存続する。
サービス応答はそれぞれ下に示すように組織されたデータブロックによって表わされる。
要求構造と同様に、サービス応答の構造は従来のＣＩＰ標準通信形式に従わないこともある。これは、主としてこの接続構造が基本的に明示的な通信接続ではなくてＣＩＰの暗黙のＩ／Ｏ接続であるからである。しかしながら、固定接続形式の場合、下に定義されたサービス特定要求データは明示的な通信接続を介して送信され、明示的なサービス要求形式のＣＩＰ規則に従う。
【表３７】
2008135005.tif 000039
●トランザクションＩＤ：元の要求のトランザクションＩＤから導かれこのサービス応答に割り当てられたトランザクション番号。各サービス要求には、コントローラに記憶された現在のトランザクションＩＤのインクリメントにより、新しいトランザクションＩＤが割り当てられる。コントローラは、応答でトランザクションＩＤを用いて、サービス応答と適切なサービス要求を適合させることができる。
●サービスコード：サービス要求元のサービスコードと適合するべき後続の特定サービス応答を決定する識別子。ＣＩＰ駆動装置軸オブジェクト用の有効なサービスコードのリストをコントローラ対駆動装置セクションに示す。
●応答コード：応答コード値は要求されたサービス要求の成功または失敗を示すために提供される。応答コード０は成功を示し、０でない値はエラーを示す。応答コード値は一般状態コード用のＣＩＰ共通基準に従う。
●拡張応答コード：拡張応答コードは、ベンダ固有またはサービス固有のエラーコードを定義する方法を提供する。現在これらのコード用の標準定義はない。
●サービス固有の応答データ：サービス固有の応答データの形式と構文は指定されたサービスコードに依存する。
【０１３９】
1.4  固定駆動装置接続形式
固定接続形式を指定することにより、ＣＩＰ動作駆動接続を、DeviceNetおよびControlNetのように低性能のＣＩＰネットワークに容易に適用可能なサイズに縮小することができる。DeviceNetまたはControlNetのネットワークのコンテキストでは、固定接続サイズおよび制限されたネットワーク帯域幅の必要条件をサポートするために、次の特性が接続構造から取り除かれている。
●タイムスタンプ
●ノード障害／警報
●１つのインスタンスのみ
●動的ブロックサイジング
●周期的読書きデータブロック
●イベントデータブロック
●サービスデータブロック
駆動軸オブジェクトに対するサービス要求は明示的なメッセージサービスとしてのみサポートされる。
【表３８】
2008135005.tif 000040
【表３９】
2008135005.tif 000041
【０１４０】
1.4.1  駆動装置対コントローラ接続タイミング
同期モードの場合は、ＣＩＰ動作駆動装置対コントローラ接続には、コントローラがコントローラタスク更新発生時に駆動軸の位置を決定できるようにする実データを備えた駆動タイムスタンプが含まれている。タイムスタンピングは、駆動装置がフィードバックをサンプリングし、他の動作制御ネットワークプロトコルと異なり、厳密にはコントローラ更新期間と関連する必要のない自身の駆動装置更新期間に基づいた実データ値を計算することを可能にする。図１７のダイヤグラムに、コントローラのタイムベースに駆動軸の実位置を調節するために、駆動装置対コントローラ接続によって配信された実データとタイムスタンプがどのように使用されるかを示す。
以下のステップは、コントローラ更新期間（ＣＵＰ）が駆動装置更新期間の整数倍でない一般的な場合の典型的な接続サイクル中にコントローラから駆動装置まで接続データがどのように転送されるかを詳細に説明するものである。
1.  実更新ウィンドウチェック：軸が同期している場合、駆動装置は、現在の駆動タスクタイムスタンプを最後のコマンドデータ更新中に決定される実更新ウィンドウと比較する。実更新ウィンドウには１つの駆動装置更新期間分の持続時間があり、次のコントローラ更新の計算された時間に終了する。タイムスタンプが時間ウィンドウ内にある場合、これは実データ更新周期である。タイムスタンプがウィンドウの前にある場合、駆動装置は次の駆動タスクがコントローラに実データを送信するのを待たなければならない。（これにより、フィードバック捕捉と次のコントローラタスクの開始間の時間が過度になる状態が防止される。）軸が同期されていず、コントローラ対駆動装置接続を介して指令更新をたった今受信した場合、これもまた実更新周期であり、駆動送信ステップに移る。さもなければ、何も行うことはなく、このタスクを終了する。
2.  駆動送信：これが実更新周期である場合、駆動装置は、現在の駆動更新タイムスタンプとインクリメントされた更新ＩＤを含むこの駆動タスクからの最新の実データと共に駆動装置対コントローラ接続パケットをコントローラに送信する。このパケット内のコントローラに送信された追加データはすべて、直前の駆動タスクから算出することができる。これは、駆動タスク実行の最も早い時点での伝動の発生を可能にする。
3.  実更新ＩＤチェック：次のコントローラタスクでは、コントローラは変更された更新ＩＤをチェックすることにより駆動装置からの新しいデータをチェックする。以下のステップは、更新ＩＤの変更の如何にかかわらず実施される。なお、駆動装置が同期していない時、更新ＩＤは新しい実データを検出する唯一の方法である。
4.  同期フラグチェック：駆動装置は、駆動軸が同期しているかどうかを判断するために、駆動ノード制御バイトの同期ビットをチェックする。同期していない場合、遅い更新チェックとタイムスタンプ修正を回避するために適用実データ（Apply Actual Data）ステップにスキップする。これら次のステップを回避することにより、駆動装置の始動中に、あるいは駆動装置が同期サービスを何ら持たない場合にさえ駆動装置が動作することを可能にする。
5.  最新更新チェック：コントローラは、現在の接続更新期間タイムスタンプと駆動装置対コントローラ接続パケット内のタイムスタンプとの差を計算する。差が欠落更新許容値＊更新期間より大きい場合、コントローラはコントローラ同期障害を投げる。
6.  タイムスタンプ修正：先に計算された時間差が０でない場合、その後、軸の以前の実軌跡に基づいて実データ値を補外し、コントローラのタイムスタンプと合わせる。実入力はコントローラ更新期間の始めに暗黙にタイムスタンプされていると動作プランナが仮定するので、この修正が必要となる。
7.  適用実データ：コントローラは入力として動作プランナに実データを適用し、動作プランナは新しいコマンドリファレンスデータを計算する。
【０１４１】
1.5  ＣＩＰ動作ピア接続
以下のセクションで駆動軸オブジェクトに適用可能な駆動装置対駆動装置ピア接続を含むＣＩＰ動作ピア接続形式を説明する。
【０１４２】
1.5.1  ピア接続特性
以下は、ＣＩＰ動作ピア接続と関連した特性のリストである：
1.  プロポーザルは、多数の軸が連動しているか共通のマスタ軸から外れている伝導軸系アプリケーションであり、また負荷の共有を目的としてマスタ駆動装置の指令トルクが多数のスレーブ駆動装置に配給されるトルクスレーブアプリケーションである、ピアツーピア接続のための主要な使用ケースの要求に効果的に取り組む。
2.  モニタのみの哲学に従う；消費側は生成された軸の状態のみをモニタでき、生成された軸の状態や動作に作用することはできない。
3.  一方向のマルチキャスト生産側対消費側接続を用いたスター型またはデイジーチェーン型ネットワークトポロジに適用可能。
4.  マスタが登録イベントをチェックし、位相補正のための下流のスレーブに対する登録イベント情報を生成する使用ケースを扱う消費側に、生成された軸に関連したイベント通知データを渡す能力。
5.  生成された軸を構成し、消費側に対する追加のアプリケーション特定属性を生成する能力。生成された属性の同一性は接続データ構造の一部として定義されるので、どの消費された軸属性に生成された属性データをマッピングするかについて曖昧さはない。配列トランスファーメカニズムもサポートされる。
6.  消費側が生成されたデータの内容を決定することを可能にするために、生産側のリアルタイムデータ形式がＣＩＰ動作ピア接続のデータ構造に組み込まれており、データ構造をいつでも変更することができる。
7.  消費側が単一の生産側からの異なるリアルタイムデータを消費したい場合もあるので、ＣＩＰ動作ピア接続はリアルタイムデータ要素の構成可能な組み合わせを提供するよう設計されている。個別の消費側は、どの実データ要素を消費するかの決定に責任を負う。
8.  リアルタイムの接続データは、ナノ秒の分解能と〜１秒のダイナミックレンジを有するＰＴＰ（精密タイムプロトコル）に典型的に由来するシステム時間に基づきタイムスタンプされている。
9.  接続は、ピア装置内の位相オフセットと同様に、異なるピア更新レートの可能性ならびに位置、速度およびトルクデータのためのサンプル遅延をサポートする。タイムスタンプおよび／または遅延は個々の軸インスタンスに関連づけられている。
10.  標準イーサネット（登録商標）トランスポートプロトコル（例えばＴＣＰとＵＤＰ）を用いる重要なＨＭＩ、Ｉ／Ｏ、メッセージングおよび他のイーサネット（登録商標）トラフィックの存在下で確実に動作する能力。
11.  既存のノードに対するＣＩＰ動作ピア接続の動作に悪影響を及ぼすことなく、実行中にイーサネット（登録商標）ノードを追加するか削除する能力。（ネットワークトポロジ依存）。
12.  動作を混乱させずにオンライン中にＣＩＰ動作消費側を追加するか除去する能力。（ネットワークトポロジ依存）。
13.  既存のピア装置およびＣＩＰ動作ピア接続データ構造の旧バージョンとの上位互換を容易にするために組み込みまれた接続形式改訂。
14.  接続形式は、３２ビットのワードは３２ビットで整列し、１６ビットのワードは１６ビットで整列するように組み立てられている。これにより容易にメモリアクセスが促進される。
【０１４３】
1.5.2  ＣＩＰ動作ピア接続形式
【表４０】
2008135005.tif 000042
【０１４４】
1.5.3  ピア接続形式の概観
ＣＩＰ動作ピア接続形式は、生成された軸インスタンスに関連したデータブロックが後続する一般的なヘッダから成る。データブロックの内容は周期的に更新され、生産側の指定されたコントローラ更新期間にマルチキャスト接続を介して消費側に送信される。この更新は分配されたシステム時間、例えばＰＴＰの使用を通じて動作制御システム内の他のピア装置と同期している。タイムスタンプが接続データに含まれているので、生産側更新期間は様々な消費側の更新期間といかなる固定関係も持つ必要はない。
続くディスカッションのコンテキストにおいて重要なのは、駆動軸オブジェクト仕様の場合には、ピア接続の生産側と消費側はコントローラか駆動装置のいずれかになりうる一方、駆動装置のピアツーピアの機能性のみが真に適用可能であることを知ることである。
その構成データ要素の各々の詳細な記述を容易にするために、ＣＩＰ動作ピア接続データブロックは以下のように組織されている：
【表４１】
2008135005.tif 000043
【０１４５】
1.5.4  接続ヘッダ
接続ヘッダは、インスタンスデータブロックを解析するのに必要な生産側からの重要な軸構成情報を含んでいる。
【表４２】
2008135005.tif 000044
●形式改訂：最初のリリース１と共に、この値は、インターフェースに影響を及ぼすＣＩＰ動作ピア接続形式の改訂ごとに１だけインクリメントされる。形式改訂は、新しい消費側に古い生産側が生成した接続形式をサポートすることを可能にする。また、古い消費側に、サポートできずに適切なエラーを生成することができない生産側からの新しい接続形式を認識させることができる。
●更新ＩＤ：この周期的なトランザクション番号は、生産側の更新ごとにインクリメントされる。更新ＩＤは、データブロックが新規のデータを含むかどうかを判断するために消費側の制御か駆動装置が用いる。更新ＩＤが変更されていない場合、消費側制御あるいは駆動装置は生産側軸の更新期間が消費側軸より長い時の規則的な発生については、生成された先の軸軌跡に基づき新しいデータの不足を介して補外することができる。生産側が同期していない場合、タイムスタンプデータは含まれていないか無効である。そのような場合、消費側にとっては、更新ＩＤが新規データの存在を検出する唯一の手段となる。同期またはタイムスタンピングのないＣＩＰ動作ピア接続の動作は勧められない。
●接続形式：この列挙されたバイトは、次の定義に従ってＣＩＰ動作接続の形式は何かを決定する：
【表４３】
2008135005.tif 000045
接続タイプ：この４ビットの列挙はＣＩＰ動作の接続タイプを定義する。この接続用有効値は、固定駆動装置のピアツーピアの接続で１、可変駆動装置のピアツーピア接続で５である。
０＝固定式コントローラ・ピアツーピア接続
１＝固定式駆動装置ピアツーピア接続
２＝固定式コントローラ対駆動装置接続
３＝固定式駆動装置対コントローラ接続
４＝可変式コントローラ・ピアツーピア接続
５＝可変式駆動装置ピアツーピア接続
６＝可変式コントローラ対駆動装置接続
７＝可変式駆動装置対コントローラ接続
８−１５＝予備
●ノードステータス：関連する駆動装置通信ノードの状態を示すのに用いるビットを含む。
【表４４】
2008135005.tif 000046
同期モードビットは、生産側駆動ノードが同期しているかどうかを示す。同期動作は、システム時間と同期した生産側駆動ノードのローカルタイマを有しており、有効な接続タイムスタンプが接続ヘッダに供給されているものとして定義される。ビットは同期動作の間、設定されたままとする。同期モードビットが空である場合、駆動装置は非同期モードにあると言う。非同期モードにおいては、ローカルタイマが同期されるべき要求はないし、タイムスタンピングも必要でないか有効でさえない。
駆動データ有効ビットは、コントローラが駆動ノードからのインスタンスデータブロックを処理するために設定されねばならない。接続初期設定シーケンス中に、インスタンスデータブロック内の接続データが有効でない期間があってもよい。消費側駆動ノードはまずこのビットをチェックすることによりこの状態を認識することができる。
駆動ノード障害ビットは、生産側駆動装置が通信ノードと関連する１つ以上の障害状態を検出したことを示すのに用いられる。特定の障害状態はノード障害属性によって決定することができる。このビットが空の場合、障害状態は存在しない。駆動ノード障害ビットは、ノード制御ワード内にノード障害リセットビットを設定することによりクリアされてもよい。ノード障害状態が存在するとき、関連する軸はすべて無効になる。
【０１４６】
1.5.4.1  固定接続ヘッダ
接続形式が固定式ピアツーピア接続である場合、上記ヘッダの直後にインスタンスデータブロックが続く。
【０１４７】
1.5.4.2  可変接続ヘッダ
接続形式が可変ピアツーピア接続である場合、接続ヘッダは、ノード診断およびタイムスタンピングと関連する追加のフィールドを含んでいる。
【表４５】
2008135005.tif 000047
●タイムスタンプコンフィギュレーション：このビットマップバイトは、生産側のタイミング情報の使用法および形式を決定するフラグを含んでいる。
【表４６】
2008135005.tif 000048
●生産側更新期間：この要素は、生成された軸データの更新期間をナノ秒で指定する。消費側はこの値を用いて消費側があまりにも多くの接続更新を逃したかどうかを判断する。接続が同期している場合、消費側は生産側タイムスタンプを自身のローカルタイムスタンプと簡単に照合することができる。２つのタイムスタンプの差が、
最大遅延＝ピア更新遅延上限＊プロデューサ更新期間
で与えられる極大値を超える場合、ピア更新障害ビットは、駆動軸オブジェクトのノード障害クラス属性に設定される。任意のピア更新遅延下限属性も利用可能である。最後の生産側タイムスタンプと現在のローカル駆動タイムスタンプの差が、
最大遅延＝ピア更新遅延下限＊生産側更新期間
で与えられる極大値を越える場合、ピア更新警報ビットが、駆動軸オブジェクトのノード警報クラス属性に設定される。接続が同期しない場合、消費側は遅延更新チェックを行なわない。
●生産側タイムスタンプ：生産側の更新タイマイベントが発生した時、この要素は、６４ビットのシステム時間値の下位３２ビットを運ぶ。この値は、消費側により、消費側のローカルシステム時間値の上位３２ビットを用いてその元の６４ビットに復元される。生産側タイムスタンプ用の単位はナノ秒である。この値は事実上、生成された軸の実データ（例えば位置フィードバック）がサンプリングされたか、コマンドデータが計算された時間である。生成されたデータを受信した時、消費側は、消費側自身のタイムスタンプと共にこの値を用いて、生産側の現在の実際の位置および指令位置を補外することができる。
【０１４８】
1.5.5  インスタンスデータブロック
接続ヘッダの後ろに、自身の形式を定義するインスタンスデータヘッダのついたインスタンスデータブロックが続く。インスタンスデータブロックは以下の基本構造を有する：
【表４７】
2008135005.tif 000049
【０１４９】
1.5.6  インスタンスデータヘッダ
下に示すインスタンスヘッダは、従うべき周期的データの完全な記述を含む。
【表４８】
2008135005.tif 000050
●軸コンフィギュレーション：バイトは、下に示す表に従って生成された軸ヘッダに含まれたコンフィギュレーションデータを示すフラグを含んでいる。
【表４９】
2008135005.tif 000051
●コマンドデータコンフィギュレーション：このビットマップ値は個々の可能なリアルタイムコマンドリファレンスごとに定義されたビットを有する。コマンドデータがビット数と同順に出現するので、指令位置はリアルタイムデータ構造において指令トルクの前に現われる。消費側装置は、生産側の過去のコマンドデータ構成を消費側の軸オブジェクトに含まれている自身のコマンドデータ構成属性と比較することにより、どのリアルタイムデータ要素を消費するかを決定することができる。
【表５０】
2008135005.tif 000052
●実データコンフィギュレーション：このビットマップ値は可能なリアルタイムの実際の値ごとに定義されたビットを有する。実データがビット数と同順に現われるので、実位置がリアルタイムデータ構造において実トルクの前に現われる。消費装置は、生産側の過去の実データ構成を消費側の軸オブジェクトに含まれている自身の実データ構成属性と比較することにより、どのリアルタイムデータ要素を消費するかを決定することができる。
【表５１】
2008135005.tif 000053
●ステータスコンフィギュレーション：このビットマップ値は、ＣＩＰピア接続データ構造の一部として渡すことができる個々の基礎的な軸状態属性ごとに定義されたビットを有する。状態データは駆動装置対駆動装置ピア接続の一部として転送されないので、この値は常にゼロである。
【表５２】
2008135005.tif 000054
●周期的属性カウント：周期的属性データセットに含まれる周期的属性ブロックの数。
●イベントカウント：イベントデータブロックに含まれるイベントブロックの数。イベントは駆動装置対駆動装置ピア接続には適用できない。
●遅延制御：バイトは、微細な補間アルゴリズムを制御し、かつ駆動制御構造に対するコマンドデータの目標時間を決定するのに必要な情報を含んでいる。
【表５３】
2008135005.tif 000055
指令目標時間−この２ビットの整数は、生産側の動作プランナが定義しているように、コマンドデータが目標とする生産側タイムスタンプに関連する特定の時間を定義する。絶対指令目標時間は、生産側駆動装置からの生産側タイムスタンプと、指令目標時間＊生産側更新期間の積と、の和である。この値は、マスタとして生成された軸を参照するギヤリングまたはカミングに関連した更新遅延補償アルゴリズムによって用いられる。
指令目標時間０は、コマンドデータが現在の更新サイクルの開始を目標としており、制御構造に直ちに適用される必要があることを暗示する。この場合、微細補間は必要としない。生産側更新期間が消費側更新期間より著しく短いとき、または軸の制御された動作が生産側更新期間の範囲中ほぼ一定であるとき、この状態が発生しうる。
指令目標時間１は、コマンドデータの目標が次の生産側更新タイマイベントであることを暗示する。この場合、指令補間器はまず軸の現在の軌跡に基づいた次のコマンドデータ値を予測する補外器として機能する。これは、生産側更新期間が消費側更新期間と同等のとき、または軸の制御された動作が生産側更新期間の範囲中、比較的一定であるときの典型的な設定である。
指令目標時間２は、コマンドデータの目標が生産側タイムスタンプからの２つの接続更新タイマイベントであることを暗示する。この場合、指令補間器は、目標時間にコマンドデータ値に達するためにモータの現在の原動力に基づいた滑らかな軌跡を算出することができる。これは真の微細補間であり、生産側更新期間が消費側更新期間より著しく大きいときに適用できる。
マスタ指令遅延−この２ビットの整数は、生産側の動作プランナが定義しているように、局部的制御構造に適用する前に生産側駆動装置においてコマンドデータが遅れている生産側更新期間がどれだけあるかを決定する。この値は、消費側が受信した時に生産側のコマンドデータ値に適用される必要のある補外の量を決定するのに用いられる。マスタ指令遅延は消費側のタイムスタンプとの比較の前に生産側のタイムスタンプに追加される。生産側更新期間が消費側更新期間と同等であるとき、マスタ指令遅延に対する値１は生成されたコマンドデータに適用される補外の量を最小限にする。
●巻き戻し：ロータリビットが軸コンフィギュレーションバイトで設定されている場合、生産側の構成巻き戻し値（３２ビットのUINT）がインスタンス形式ヘッダに追加される。この値は、適用可能な場合、消費側が補外された絶対的実位置または指令位置データを巻き戻すために用いる。この値は駆動装置対駆動装置ピア接続には適用できない。
【０１５０】
1.5.7  周期的データブロック
周期的データブロックは、ＣＩＰ動作ピア接続データ構造の主データペイロードである。それは６つの異なるデータセットに組織されている。
【表５４】
2008135005.tif 000056
【０１５１】
1.5.7.1  コマンドデータセット
このデータセットは、生産側の指令リファレンスデータと関連する要素を含んでいる。生産側と消費側のオブジェクト属性に対するこれらデータ要素のマッピングは、ピア接続方式、即ちコントローラのピアツーピア接続、または駆動装置のピアツーピア接続に依存する。下の表は、各ピア接続方式のマッピングを定義する。
【表５５】
2008135005.tif 000057
【表５６】
2008135005.tif 000058
なお、マップされた名前は、Ｃ対Ｃの場合には同一であるが、Ｄ対Ｄの場合にはそうでない。これはおもに、コントローラにおいて軸インスタンスは消費されたデータ専用だからであり、従って、それは生成された軸の「イメージ」であるためである。駆動装置においては、生成されたデータを別々の信号として一次駆動軸インスタンスに直接持ち込んでいる。個々のコマンドデータ要素の要約を以下に示す：
●指令位置：この要素には、生産側の絶対指令位置がカウントで含まれている。最後の更新以後の指令位置の変化（デルタ指令位置）を決定するために消費側がこの値を用いる。消費された軸の指令位置にギヤリングまたはカミングするときにこの情報を用いる。デルタ指令位置は、次式により与えられる。
デルタ指令位置＝指令位置−最後の指令位置
●指令速度：この要素には生産側の指令速度がカウント／秒単位で含まれている。
●指令加速度：この要素には生産側の指令加速度がカウント／秒２単位で含まれている。
●指令トルク：この要素には生産側の指令トルクが％定格トルク単位で含まれている。
【０１５２】
1.5.7.2  実データセット
このデータセットは、生産側の指令リファレンスデータと関連する要素を含む。これらデータ要素の生産側と消費側のオブジェクト属性に対するマッピングは、ピア接続方式、即ちコントローラのピアツーピア接続、駆動装置のピアツーピアの接続に依存する。下の表に、各ピア接続方式のマッピングを定義する。
【表５７】
2008135005.tif 000059
●実位置：この要素には生産側の絶対的な実位置がカウントで含まれている。消費側は、またこの値を用いて最後の更新以後の実位置の変化（デルタ実位置）を決定する。この情報は、消費軸の実位置へのギヤリングまたはカミングに用いられる。デルタ実位置は、次式により与えられる。
デルタ実位置＝実位置−最後の実位置
●実速度：この要素には生産側の実速度がカウント／秒単位で含まれている。
●実加速度：この要素には生産側の実加速度がカウント／秒２単位で含まれている。
●実トルク：この要素には生産側の実トルクが％定格トルク単位で含まれている。
【０１５３】
1.5.7.3  状態データセット
状態データセットは、インスタンスデータヘッダにおいて状態構成バイトによって決定される生成軸の状態データ値を含み、コントローラ軸オブジェクト（別名、動作軸オブジェクト）の中で定義される。現在サポートされている属性は軸状態、障害状態および動作状態である。状態データセットは駆動装置対駆動装置ピア接続には適用できない。
【０１５４】
1.5.7.4  属性データセット
属性データセットは、生産側における対応する属性の現在値によって目標ＣＩＰ動作オブジェクト属性を周期的に更新するために用いることができる。属性が与えられた消費側によってサポートされない場合、データブロックは単純に無視される。接続ヘッダに指定された属性カウントは、セットにおいて生成された属性の数を決定する。渡された属性はそれぞれ下に示す構造を有する：
【表５８】
2008135005.tif 000060
●属性ＩＤ−その値が拡張データブロックに含まれる特定の生産軸状態属性を識別する。
●属性次元−属性配列の次元を決定する。次元ゼロは、属性が一つだけのデータ要素であることを意味し、従って実際には全く配列ではない。多次元配列（次元＞１）は、属性データシーケンスの前に追加の属性スタートインデックスおよびアドレスデータ要素値を追加することによりサポートされる。
●属性要素サイズ−生成された属性データ要素のサイズをバイトで決定する。
●属性スタートインデックス−属性データセクションにおいて属性値の配列のための開始インデックスを識別する。属性データ型が配列（即ち、次元＞０）であるときのみ、このフィールドは存在する。
●属性データ要素−属性データセクションにおいてデータ要素値の数を決定する。このフィールドは属性データ型が配列（即ち、次元＞０）であるときのみ存在する。
●属性データ−属性ＩＤにより与えられた消費動作軸オブジェクト属性に適用される生成値を表わす。属性が配列である場合、新規の値は、スタートインデックスおよびデータ要素の数に従って適用される。多次元配列（次元＞１）については、データのシーケンスはインデックスを介して左から右に順次移動する。例えば、
【表５９】
2008135005.tif 000061
この配列通過機構は、標準指令か実データセットに含まれていない特定の生産側属性に対するリアルタイムアクセスを必要とするアプリケーションに特に有用である。
【０１５５】
1.5.8  駆動装置対駆動装置のピア接続タイミング
同期モードにおいて、ＣＩＰ動作駆動装置対駆動装置接続は生成されたデータを有するドライブタイムスタンプを含み、コントローラタスク更新の発生時点にコントローラが駆動軸の指令または実データ値を決定することを可能にする。タイムスタンピングは、駆動装置がフィードバックをサンプリングし、他の動作制御ネットワークプロトコルと異なり、生産側更新期間と厳密に関連する必要のない自身の駆動装置更新期間に基づいて実データ値を算出することを可能にする。図１８のダイヤグラムに、コントローラの時間基準に駆動軸の実位置を調整するために、駆動装置対駆動装置ピア接続によって配信された実データとタイムスタンプがどのように用いられるかを図示する。
この例においては、マスタ軸位置は生産側駆動装置によって取り込まれ、例えば伝導軸系アプリケーションにおけるマルチキャストＣＩＰ動作ピア駆動装置対駆動装置接続を介して１つ以上の消費側駆動装置に送信される。マスタ実位置が別の駆動装置によって消費されると、消費側は補外を行って接続以降に被った遅延を補償する。これは、消費されている実データ要素に関連した生産側のタイムスタンプ、Tpro、および消費側コントローラがラッチした消費側のタイムスタンプ、Tconを用いて行われる。一旦ピア接続遅延に対する補正がなされると、消費側駆動装置に関連した遠隔のスレーブ軸は電子ギヤリングを介してマスタ軸に対する位相を正確に合わせることができる。消費し生産する駆動装置が異なる更新レートで動いているときでも、この方法は機能する。事実、方法の注意深い検討により、双方が分散システム時間からはずれて動作する限り消費側駆動装置の更新期間は生産側駆動装置より大または小でありうることが明らかになる。
図１９のダイヤグラムにおいて、生産側駆動装置は、多数の消費側駆動装置に、実位置ではなくて指令位置を配信している。マスタ指令位置が別の駆動装置によって消費されると、消費側は補外を行い接続以後に被った遅延を補償する。この場合も、これは、消費されている実データ要素に関連した生産側のタイムスタンプ、Tpro、および消費コントローラがラッチした消費側のタイムスタンプ、Tconを用いて行われる。一旦ピア接続遅延に対する補正がなされると、消費側駆動装置に関連した遠隔のスレーブ軸は電子ギヤリングを介してマスタ軸に対する位相を正確に合わせることができる。
あるいは、生産側駆動装置はマスタ指令遅延を表わす１つの生産側更新期間、Tmcd分だけローカルなマスタ指令位置リファレンスの適用を遅らせるように構成することができる。これにより、ピア接続以降に被った遅延を補償するために必要な補外の量が最小限になる。図２０の例においては、マスタ指令遅延は２５０マイクロ秒である。消費側駆動装置の更新期間も２５０マイクロ秒であるので、正味の補外タイムは０である。これにより、できる限り円滑なギヤリング性能がもたらされる。
【図面の簡単な説明】
【０１５６】
【図１】図１は、産業オートメーション環境中の動作制御に関連するタイミングを調整するシステムの一例を示す図である。
【図２】図２は、産業オートメーション環境内の動作制御データの転送および／または更新を調整するために周期タイミング構成要素によって使用されるタイミングモデルの例を示す図である。
【図３】図３は、産業オートメーション環境内の動作制御データの転送および／または更新を調整するために周期タイミング構成要素によって使用されるタイミングモデルの例を示す図である。
【図４】図４は、産業オートメーション環境内の動作制御データの転送および／または更新を調整するために周期タイミング構成要素によって使用されるタイミングモデルの例を示す図である。
【図５】図５は、産業オートメーション環境中の動作制御に関連する入力送信をシリアル化するシステムの一例を示す図である。
【図６】図６は、産業オートメーション環境の動作の制御を容易にするタイムスタンピング体系を利用するシステムの一例を示す図である。
【図７】図７は、動作制御ネットワーク中のネットワーク資源の利用の平衡を保つことを可能にするシステムの一例を示す図である。
【図８】図８は、動作制御ネットワーク中で動的に構造化されたデータを転送することを可能にするシステムの一例を示す図である。
【図９】図９は、動作制御ネットワークへのノードの付加および／または削除を容易にするシステムの一例を示す図である。
【図１０】図１０は、産業オートメーション環境中のオープンネットワーク上の動作の制御を可能にするシステムの一例を示す図である。
【図１１】図１１は、タイムスタンピングプロトコルを利用する動作制御ネットワーク上のコントローラおよび駆動装置間の交信を容易にするシステムの一例を示す図である。
【図１２】図１２は、タイムスタンピングプロトコルの使用によってネットワーク上でコントローラと駆動装置の間の動作制御データおよび／または非動作データの交信を可能にするシステムの一例を示す図である。
【図１３】図１３は、ＣＩＰ動作駆動接続上でデータの交信を容易にするシステムの一例を示す図である。
【図１４】図１４は、産業オートメーション環境中のネットワーク上でタイムスタンピングプロトコルをもって動作のコントロールを容易にする手法の代表的なフローダイヤグラムを示す図である。
【図１５】図１５は動作制御ネットワークのための動作制御更新に関連する平衡型の単一サイクルタイミングを可能にする手法の代表的なフローダイヤグラムを示す図である。
【図１６】図１６は、動作制御ネットワーク上で動的な動作に関連するデータの送信を可能にする手法の代表的なフローダイヤグラムを示す図である。
【図１７】図１７は、タイムスタンピング動作制御に関連する種々の態様の典型的なタイミングダイヤグラムである。
【図１８】図１８は、タイムスタンピング動作制御に関連する種々の態様の典型的なタイミングダイヤグラムである。
【図１９】図１９は、タイムスタンピング動作制御に関連する種々の態様の典型的なタイミングダイヤグラムである。
【図２０】図２０は、タイムスタンピング動作制御に関連する種々の態様の典型的なタイミングダイヤグラムである。
【図２１】図２１は、タイムスタンピング動作制御に関連する種々の態様の典型的なタイミングダイヤグラムである。
【図２２】図２２は、タイムスタンピング動作制御に関連する種々の態様の典型的なタイミングダイヤグラムである。
【図２３】図２３は、タイムスタンピング動作制御に関連する種々の態様の典型的なタイミングダイヤグラムである。
【図２４】図２４は、タイムスタンピング動作制御に関連する種々の態様の典型的なタイミングダイヤグラムである。
【図２５】図２５は、タイムスタンピング動作制御に関連する種々の態様の典型的なタイミングダイヤグラムである。
【図２６】図２６はここに説明された様々な特色を実行することができるオペレーティングシステムの一例を示す図である。
【図２７】図２７はここに説明された様々な特色が相互作用することができる典型的なコンピュータ環境を示す図である。
【符号の説明】
【０１５７】
１００    システム
１０２    動作制御構成要素
１０４    周期タイミング構成要素
【図１】
2008135005.tif 000062
【図２】
2008135005.tif 000063
【図３】
2008135005.tif 000064
【図４】
2008135005.tif 000065
【図５】
2008135005.tif 000066
【図６】
2008135005.tif 000067
【図７】
2008135005.tif 000068
【図８】
2008135005.tif 000069
【図９】
2008135005.tif 000070
【図１０】
2008135005.tif 000071
【図１１】
2008135005.tif 000072
【図１２】
2008135005.tif 000073
【図１３】
2008135005.tif 000074
【図１４】
2008135005.tif 000075
【図１５】
2008135005.tif 000076
【図１６】
2008135005.tif 000077
【図１７】
2008135005.tif 000078
【図１８】
2008135005.tif 000079
【図１９】
2008135005.tif 000080
【図２０】
2008135005.tif 000081
【図２１】
2008135005.tif 000082
【図２２】
2008135005.tif 000083
【図２３】
2008135005.tif 000084
【図２４】
2008135005.tif 000085
【図２５】
2008135005.tif 000086
【図２６】
2008135005.tif 000087
【図２７】
2008135005.tif 000088
【外国語明細書】
2008135005.tif 000089
2008135005.tif 000090
2008135005.tif 000091
2008135005.tif 000092
2008135005.tif 000093
2008135005.tif 000094
2008135005.tif 000095
2008135005.tif 000096
2008135005.tif 000097
2008135005.tif 000098
2008135005.tif 000099
2008135005.tif 000100
2008135005.tif 000101
2008135005.tif 000102
2008135005.tif 000103
2008135005.tif 000104
2008135005.tif 000105
2008135005.tif 000106
2008135005.tif 000107
2008135005.tif 000108
2008135005.tif 000109
2008135005.tif 000110
2008135005.tif 000111
2008135005.tif 000112
2008135005.tif 000113
2008135005.tif 000114
2008135005.tif 000115
2008135005.tif 000116
2008135005.tif 000117
2008135005.tif 000118
2008135005.tif 000119
2008135005.tif 000120
2008135005.tif 000121
2008135005.tif 000122
2008135005.tif 000123
2008135005.tif 000124
2008135005.tif 000125
2008135005.tif 000126
2008135005.tif 000127
2008135005.tif 000128
2008135005.tif 000129
2008135005.tif 000130
2008135005.tif 000131
2008135005.tif 000132
2008135005.tif 000133
2008135005.tif 000134
2008135005.tif 000135
2008135005.tif 000136
2008135005.tif 000137
2008135005.tif 000138
2008135005.tif 000139
2008135005.tif 000140
2008135005.tif 000141
2008135005.tif 000142
2008135005.tif 000143
2008135005.tif 000144
2008135005.tif 000145
2008135005.tif 000146
2008135005.tif 000147
2008135005.tif 000148
2008135005.tif 000149
2008135005.tif 000150
2008135005.tif 000151
2008135005.tif 000152
2008135005.tif 000153
2008135005.tif 000154
2008135005.tif 000155
2008135005.tif 000156
2008135005.tif 000157
2008135005.tif 000158
2008135005.tif 000159
2008135005.tif 000160
2008135005.tif 000161
2008135005.tif 000162
2008135005.tif 000163
2008135005.tif 000164
2008135005.tif 000165
2008135005.tif 000166
2008135005.tif 000167
2008135005.tif 000168
2008135005.tif 000169
2008135005.tif 000170
2008135005.tif 000171
2008135005.tif 000172
2008135005.tif 000173
2008135005.tif 000174
2008135005.tif 000175
2008135005.tif 000176
2008135005.tif 000177
2008135005.tif 000178
2008135005.tif 000179
2008135005.tif 000180
2008135005.tif 000181
2008135005.tif 000182
2008135005.tif 000183
2008135005.tif 000184
2008135005.tif 000185
2008135005.tif 000186
2008135005.tif 000187
2008135005.tif 000188
2008135005.tif 000189
2008135005.tif 000190
2008135005.tif 000191
2008135005.tif 000192
2008135005.tif 000193
2008135005.tif 000194
2008135005.tif 000195
2008135005.tif 000196
2008135005.tif 000197
2008135005.tif 000198
2008135005.tif 000199
2008135005.tif 000200
2008135005.tif 000201
2008135005.tif 000202
2008135005.tif 000203
2008135005.tif 000204
2008135005.tif 000205
2008135005.tif 000206
2008135005.tif 000207
2008135005.tif 000208
2008135005.tif 000209
2008135005.tif 000210
2008135005.tif 000211
2008135005.tif 000212
2008135005.tif 000213
2008135005.tif 000214