(58)【調査した分野】(Int.Cl.,DB名)
【技術分野】
【0001】
関連出願のクロスリファレンス
本願は、2006年5月19日付け出願の、目下係争中のアメリカ合衆国特許出願第60/801,958号(名称「Signal Processing Network」の優先権を主張するものである。この出願は本発明に参照として完全に組み込まれている。
【0002】
技術分野
本発明は信号処理に関し、より詳細にはコントロールシステムにおける展開(deployment)のための信号処理ネットワーク(SPN)のための装置、方法およびシステムに関する。
【0003】
背景技術情報
SPNに類似したコンセプトが、多くの形態で存在していることが知られている。IPMと呼ばれるアプリケーションを監視するプロセスが以前に、Siemens社とHeller AG社との共同作業として開発されている。IP
Mは目下、Sinumerik840D上で動作する製品である。IPMはSiemens社が所有し、Heller社によって、その機械のオプショナルフィーチャとして販売されている。IPMは「信号補正連鎖:Signal Correction Chain」として知られているソフトウェアコンポーネントを有している。この信号補正連鎖は、プロセス監視に関する論議において本願に記載されるように、信号補正の役割を担う。SPNのように、信号補正連鎖は計算ブロックから成る。この計算ブロックは特定のタイプの方程式を実行する役割を担い、計算ブロックからのアウトプットは、別の計算ブロックの入力側へと伝送される。SPNとは異なり、IP
Mにおける信号補正は著しく制限されたトポロジーを有しており、各ブロックからの唯一の信号インプットと唯一の信号アウトプットしか許可しない。さらにこの信号補正は、これらのブロックをあらわすために使用されているデータフォーマットの結果として、ブロックがパラメータ化される方法において制限されている。さらに、信号補正のコンセプトは、サーボ機構またはシミュレーションの目的では使用されていない。
【0004】
市販されている製品であるSIMULINK
(R)は、The Mathwork社によって販売されている。SIMULINK
(R)は大きく、かつパワフルなソフトウェアパッケージであり、これは基本的には、異なる方程式求解機であって、シミュレーションされる動的システムをあらわすためにブロックダイアグラムを使用する。SIMULINK
(R)ブロックは、SPUと類似しており、ここではこれらのブロックは1つまたは複数のアウトプットを有することができ、パラメータ化され、幾つかの特別の計算機能を担う。ブロックダイアグラム全体または「モデル」はデータフォーマットとしてあらわされる。通常のSIMULINK
(R)は組み込まれていない環境で作動する。これは例えばPCプラットフォームまたはUnixワークステーションである。しかし、The Mathwork社は、SIMULINK
(R)の拡張を提供している。これはすなわち、REAL TIME WORKSHOP
(R)として知られている製品である。REAL TIME WORK SHOP
(R)は、SIMULINK
(R)モデルをコンパイルすることができ、特定の目標が定められたリアルタイムプラットフォーム上で動作するコードを実行することができる。SIMULINK
(R)と組み合わされたREAL TIME WORK SHOP
(R)とSPNとの間の主な相違点は、REAL TIME WORK SHOP
(R)は走行時間コードを生成し、コンパイルし、リンクさせ、SPNはデータを使用して、既に存在する、コンパイルされ、リンクされているコードを構築することである。他の相違点は、SPNがXMLを使用し、その定義をあらわし、監視、故障検出、サーボコントロールおよびシミュレーションの目的のためにモーションコントローラに対して
専用のインターフェースを提供することである。SPNの他の独自のアスペクトは、本願明細書に、詳細な説明において記載されている。
【0005】
択一的な選択肢
信号処理ネットワークを柔軟に指定するための機構を提供する幾つかの択一的な方法が考察された。1つの選択肢は、SPNのより高いレベルの記述から、実行可能なコードを自動的に生成することである。高いレベルの記述は、モデリング環境を用いて実施される。これは例えば、SIMULINK
(R)、CASEツールまたはXMLである。自動的に生成されたコードの1つの欠点は、このようなソフトウェアのユーザが、コードが自動的に生成されたことを知ると、快く思わない可能性がある、ということである。自動的に生成されたコードに対する他の考慮すべき問題は、ソフトウェアテストの領域内にある。すなわち、自動的に生成されたコードで環境を包括的な方法でどのようにテストするかである。
【0006】
別の選択肢は開放されたアーキテクチャーインターフェースである。これによって、ソフトウェア開発者は、ロード可能な実行可能なコードとして、固定されたモデルを生成することができる。実行アルゴリズムは固定されているが、データによって、例えばXMLとしてパラメータ化可能である。一般的な目的のOAインターフェースの利点は、CまたはC++等のプログラミング言語によって高度に作成されたアルゴリズムを開発することが可能になる、ということである。このアルゴリズムはネットワーク内に、限定されているSPUタイプのセットのインスタンスを組み合わせることによっては不可能である。このようなインターフェースの1つの欠点は、これが使用ケース(使用領域)を制限してしまう、ということである。プロセス監視のための使用ケースを例として取り上げると、信号補正および故障検出のための新たなアイディアは、新たなソースコードの開発を必要とする。これは、セットアップユーティリティを提供する製品とリアルタイム信号補正を提供する製品との間で、ソフトウェアリリースの調整を必要とする。サーボコントロールの場合には、セットアップエンジニアはしばしば、その機械の領域におけるリアルタイムソフトウェアを開発、構築および展開するのに必要とされるスキルまたはツールを有していないことがある。
【0007】
発明の概要
本発明は、モーションコントロールシステム上での展開のための信号処理ネットワークを生成するための新しい装置、システムおよび方法である。例として挙げるシステムは1つまたは複数の信号処理ユニットを有する。これは、既存のコンパイルされた、リンクされたコードを用いてデータフォーマットであらわされる。各信号処理ユニットは多数の入力側と多数の出力側に適している。このシステムは、1つまたは複数の信号処理ユニット間でインプットおよびアウトプットをルーティングするために、1つまたは複数のシグナルフローコネクションを有することもできる。
【0008】
本発明は以下の実施例を含む。1つの実施例では、インプットはモーションコントロールシステムの監視に関している。別の実施例では、インプットは故障検出システムに関する。別の実施例では、インプットはモーションコントロールシステムの操作に関している。さらに別の実施例では、インプットはモーションコントロールシステムのシミュレーションに関している。データフォーマットは、XMLまたは類似の言語である。このデータフォーマットは、信号処理トポロジーを指定するのに使用される。1つの実施例では、データフォーマットは、信号処理ネットワークによって使用されている方程式の処理のタイプおよび/または方程式のパラメータ化を指定する。
【0009】
本発明の上述した対象またはフィーチャのいずれか1つまたは複数を満たさなければならないシステムまたは方法に本発明が限定されるものではないことに留意するのは重要なことである。本発明が、ここで述べられた実施例に限定されるものではないことに留意するのも重要である。本発明の範囲内で当業者による修正および置換が可能であり、これは以降の特許請求の範囲以外では限定されない。
【0010】
図面の簡単な説明
以降の詳細な説明を、添付図面を参照しながら読むことによって、本発明の上述の特徴および他の特徴および利点はより良好に理解されるであろう。
【0011】
図1は、本発明の実施例100に従ったSPNにおける使用のために定義されたクラス間の関係のクラス図である。
【0012】
図2は、本発明の第1の実施例に従った、信号処理ネットワークのための方法のフローチャートである。
【0013】
詳細な説明
本発明の実施形態は、モーションコントロールシステム上での展開のための信号処理ネットワーク(SPN)を生成するための新しい装置、システムおよび方法を提供する。この信号処理ネットワークは、信号処理ユニット(SPU’s)と、あるSPUの計算された結果を別のSPUへルーティングするためのシグナルフローコネクション(CNCT)から成る。このネットワークは、リアルタイムイベントにおける、指定された計算
を循環
的に評価する。データフォーマットは、ネットワークトポロジー、処理方程式のタイプおよび方程式のパラメータ化を、新たな実行可能なコードを作成することを必要とせずに完全に指定する。計算ネットワークはデータフォーマット定義から、必要であるときにモーションコントロールシステムによって生成される。
【0014】
信号処理ネットワーク(SPN)によって、
汎用目的の計算ネットワークのモーションコントロールシステム上への領域設置が可能になる。そのトポロジー、方程式およびパラメータ化はフォーマット(例えばXMLファイル)によって完全に指定される。これは、要求されている信号処理方程式が既知でない場合に有利であり、新たな実行可能なコードの作成は、現場での展開に対する必要性のため、オプションではない。
【0015】
プロセス監視
モーションコントロールシステムは内部の変数を含んでいる。これはドライブアクチュエータの位置、速度および力をあらわす。ドライブアクチュエータの例は電気モータおよび液圧式シリンダーを含む。モーションコントロールシステムは幾つかのタイプのプロセスと関連した機構の位置または速度を調整し、そのような場合に、信号(内部変数)は、プロセスによって生成された力に関する情報を含む。幾つかのプロセスの例は機械加工、研削、形成および射出形成である。この信号は、機械に関するプロセスおよび他のコンポーネントによって生じる幾つかのコンポーネントを含んでいる。機械に関する力は摩擦、慣性、重力、ひずみ/コンプライアンスの幾つかのあらわれおよび機械的な共振によるものである。内部コントロール変数に基づいてプロセスフォースの高い忠実度を得るために、機械による作用が検出され、プロセスによる作用と分けられなければならない。本発明において説明される信号処理ネットワークは、このために使用される。SPNは、プロセスに関する力と機械に関する力との間の妥協を区別することができる状況を検出するためにも使用される。モーションコントロールアクチュエータおよび駆動機械システムのダイナミック特性は異なる機械設計によって大きく異なるので、再構築可能な信号処理ネットワークのための一般的な機構が有利である。このようなネットワークからのアウトプットは、プロセスフォースのための見積もりである。この見積もりの妥当性の信用性における評価を示す補助的なアウトプットも可能である。SPNのこのアプリケーションは一般的に、「信号補正(signal correction)」と称されている。なぜならこれは、内部変数を補正し、プロセスフォースをあらわすその能力を改善するからである。信号補正からのアウトプットは、幾つかのプロセス監視タスクによって使用される信号である。プロセス監視タスクの幾つかの例は:
・プロセスが所定の操作領域から逸脱したことによるアラーム
・所定の領域内にプロセスを維持するための、コマンド変数を変えることによるプロセスコントロール、および
・プロセスエンジニアによる、より良い理解のためのプロセス測定
【0016】
故障検出
可動部分を有する機械は様々に故障する恐れがある。幾つかの例はベアリング故障、ドライブトレーンコンポーネントのせん断故障、ベルト破損、結合スリップおよび機械の幾つかのパーツが環境または機械自体のパーツと衝突することである。これらの故障の全てはほぼ瞬間的に起こるイベントである。機械がモーションコントローラによってコントロールされる場合、監視特徴を伴うコントロール機能を促進することによって、瞬間的な故障を検出する機会が生じる。監視は、内部駆動変数または外部センサ(例えば加速度計)から得られた処理信号によって行われる。突発的な大変動による故障を瞬時に検出するのには、使用可能な信号のリアルタイム監視および適切な方程式、フィルター、変換、スレッショルドチェック等による信号の処理が必要であり、これによって、生じ得る故障モードに相応する署名が識別される。このような場合には、故障識別のための署名は、故障モードおよび機械の構造および機械のタイプに強く依存している。従って高いレベルの柔軟性がSPNによって提供され、これはこのようなアプリケーションにとって非常に有利である。
【0017】
逆に言えば、データの長期間の傾向に基づいて故障の漸次的な開始を予測することを試みるシステムは、リアルタイム環境における著名検出のために必要とされる処理の実施を必要としない。このようなケースでは、後で行われる後処理のためにデータベースへ生信号が集められる。故障に即時性がない場合には、長期間(非リアルタイム)にわたって得られるデータレコードの収集に用いられる信号処理のための種々のアルゴリズムをテストする機会が得られる。これはオフライン環境において展開されるので、このような場合にはSPNは依然として有利である。SPNはオフラインで使用され、生の測定値が、機械コンポーネントの漸次的な退化を示す変数とより密接に関係するデータへ変換される。
【0018】
オフライン展開およびオンライン展開は、故障検出ネットワークをインストールすることによって組み合わされる。ここでこの故障検出ネットワークは、高い感性を有しており、しばしば誤ったアラームを生成することが見込まれている。このような使用ケースでは、アラーム状態の結果は、まさにデータ収集バッファのストレージをトリガさせる。このバッファは、機械の通常作動中に定期的にアップデートされる。データ収集バッファは生信号の適切なセットを含む。データレコードにはその後、手動で、実際の故障かまたは誤ったアラームかのどちらかをあらわしているとして、フラグがセットされる。次に、全てのレコードがネットワークを設計することを目的にして、候補である信号処理ネットワークを通じて運ばれる。この信号処理ネットワークは、検出感度と誤ったアラームに対する免疫との間の折り合いを最適化する。
【0019】
サーボコントロール
サーボコントロールは、機械の幾つかの可動部分の位置、速度および加速度を調整するために使用される方法に関する。サーボコントロールの主な機能は、外乱力を拒否し、コマンド軌道を追跡することである。外乱は、センサからの位置、速度および加速度に対する1つまたは複数の状態変数のフィードバック手段によって拒否される。センサ信号は、これらの測定に応じた、アクチュエータ(例えば電動部)へのコマンドの開発において使用される。軌跡追跡はフィードバックコントロールによっても行われる。しかし、フィードフォワードコントロールによるフィードバックコントロールの促進は、追跡能力を改善するための通常の手法である。フィードフォワードコントロールは、設定値軌跡にのみ基づいてアクチュエータコマンドを開発する。
【0020】
市販されているコントローラは、速度コントロールおよび位置コントロールのための、制限された数の使用可能なコントローラトポロジーを有する。通常のトポロジーはカスケード接続されたコントロールであり、ここでは速度コントロールループは、位置コントロールループ内に入れ子状に納められている。このトポロジー内で、固定されたインプットおよびアウトプットを伴う種々の計算ブロックは、利得、フィルター、基準モデルおよびフィードフォワードコントローラのために設けられている。多くの機械に対して、制限された数の固定されたトポロジーおよびフィルタータイプによって提供される柔軟性は充分である。なぜなら機械は動的特性の特定の領域に適合しており、事前に構成されたトポロジーは効果的なコントロールを行う能力があるからである。このような場合には、セットアップエンジニアまたは技術者が、使用可能な展開能力を選択することによって、機械を「調整し」、最適化された数値のセットによってこれらのフィルターを構築する責任を有している。
【0021】
SPNは、コントロール理論において有能なセットアップエンジニアがカスタマイズされたフィードバックおよび/またはフィードフォワードコントローラを設計することを可能にする。コントローラは独自のトポロジーを有しており、これはセットアップエンジニアの発明である。このトポロジーは、その動的特性が、標準のコントロールソフトウェアによって提供された事前に構築されたトポロジーの有限セットのうちの1つによって最適に補償されていない機械のために特別に設計される。構築可能な信号処理ネットワークによって、このエンジニアは、あらゆるソフトウェアの開発を必要とすることなく、コントローラを指定することができる。このようにして、最適化されたコントローラが、その設計が、測定に基づいたスポット上に開発された機械ダイナミック特性モデルに基づいている機械で開発される。本発明は、信号処理ネットワークのための定義データを生成するためにグラフィックソフトウェアツールを使用することを可能にする。このようなソフトウェアツールは、SPUをあらわすブロックを選択および配置するためにマウスを使用すること、およびブロック間の信号の流れをあらわす線をルーティングすることを含む。このSPUブロックは、パラメータ変数の入力のために入力領域を提供する。SPNは、サーボコントロールアプリケーションに対して特別のSPUタイプを提供する。これらのSPUタイプによって、信号処理ネットワークは、コントロールシステムのフィードバックおよびフィードフォワード経路において位置、加速度およびトルク設定値をオフセットするおよび/または上書きすることができる。
【0022】
シミュレーション
シミュレーションは、非リアルタイム環境におけるモーションコントロールまたはCNCシステムに対する全ソフトウェアセットの実行に関連して、モーションコントロールプログラムに応答した、システムの事前テストの目的で使用される。例えば、CNCコントロールの場合には、シミュレーションによって、NCプログラムが製作品で正しいゲオメトリーを形成することが検証される。幾つかのケースでは、シミュレーションの忠実度は、コントローラおよび駆動機械システムのダイナミック特性の影響を含むことによって改善される。これは、SPNが使用される場合においてである。1つの実施例では、SPNはそのインプットとして速度設定値を用いる。この速度設定値は位置コントローラから速度コントローラへルーティングされる。このネットワークの役割は、速度コントローラ、モータおよび機械のダイナミック特性をシミュレートすることである。この実施例では、SPNのアウトプットは、位置フィードバックセンサからのアウトプットの見積もりである。位置フィードバックの見積もられた値はその後、標準のコントロールシステムソフトウェアの内蔵された位置コントローラへルーティングされる。これによって、コントロール上に構築された通常の位置コントロールアルゴリズムは、このシミュレートされたフィードバックに手を加えることができる。信号処理ネットワークからの付加的なアウトプットは、機械加工された表面のゲオメトリーのモデリングにおいて使用された機械の動作点の位置に対する見積もりである。先行の実施例では信号処理ネットワークは、速度コントロール、電流コントロールおよび機械システムのダイナミック特性をシミュレートする。またこれによって本来の位置コントローラソフトウェアは、通常の機械上でのように作動することができる。他のシミュレーションシナリオも理解される。例えば、SPNはインプットとして位置コマンド軌跡を用い、位置コントローラのシミュレーションを含む。別の明示は、内蔵型速度コントロールからの目下の設定値を伴うSPNを提供することであり、SPNの役割は、電流コントローラ、モータ、および駆動機械システムのダイナミック特性をシミュレートすることである。ここではSPNアウトプットはモータ速度および直接的なエンコーダ位置である。
【0023】
この明細書に記載されている多くのコンセプトは、Sinumerik840D用のコンパイルサイクルの枠組みにおいて、C++ソフトウェアによって実行される。SPNインプリメンテーションは、プロセス監視および故障検出アプリケーションのための基礎的な機能を提供する環境の一部である。
【0024】
オブジェクト指向設計
上述のように、信号処理ネットワーク(SPN)は、コネクションによってあらわされる、SPU間の信号ルーティングを伴う複数の信号処理ユニット(SPU’s)から成る。これらのコンセプトの各々は、オブジェクト指向設計の原理を用いてあらわされる。これらのコンセプトをグラフィックにあらわすために、統一モデリング言語(Unified Modeling Language :UML)が使用される。UMLの記述は一般的な知識である。UMLクラス図を熟知していることが、この開示における図面を正確に理解するのに必要である。
【0025】
図1を参照されたい。UMLクラス図が、SPNにおける使用のために定義されたクラス間の関係をあらわしている。このダイヤグラムは非常に多くの量の情報を含んでおり、コンセプトを組織化する1つの有利な方法を記述している。このダイヤグラムにおける各エレメントに対する記述および説明をここで行う。
【0026】
SpuNetwork
クラス図のハイレベル概要は、クラスSpuNetworkの検査
から始まる。SPUのネットワークの中心的なコンセプトは、クラスSpuNetworkによってあらわされる。このダイヤグラムは、SpuNetworkのインスタンスがどのように、SpuListにおけるクラスSpuBaseの幾つかのオブジェクトおよび、cnctListと称されるリスト内のクラスConnectionの幾つかのオブジェクトを含むかを示している。SpuBaseは純粋なバーチャルクラスであり、正確に、図の底部近辺に示されている、導出されたSPUxxxxクラスのいずれかによってあらわされる。SpuNetworkは、SPUオブジェクトに対するリファレンスのリストexecListも含む。これは実行リストをあらわす。計算が実行される順番は、このexecList内でSPUが参照される順番である。SpuNetworkはnetworkInputおよびnetoworkOutputに対するリファレンスのアレイも含む。これらのリファレンスは特定の導出されたSPUタイプに向かう。これは必要なインプットおよび提供されているアウトプットをあらわす。networkInputのリストは、SignalDispenserと称される基本的なソフトウェアのコンポーネントからサービスを要求するために使用される。SpuNetworkは、ネットワーク内のSpuInputのインスタンスに基づいてSignalDispenserからの全ての必要な信号/軸の組み合わせを登録する。SignalDispenserは、周期的な軸コントロールプロセスの間、その登録された1つ/複数の信号に対する値を検索および保護する。netoworkOutputリストはSpuNetworkによって、潜在的なクライアントへネットワーク能力を報告するのに使用される。これは重要である。なぜなら、複数のネットワークはそれぞれ異なった役割を担っており、同時にコントロールに基づいて
インスタンス化されるからである。プロセス監視の場合には、監視アルゴリズムは特定の軸/信号の組み合わせを、監視の基礎として要求する。
【0027】
SpuNetworkはコントロールに基づいて
時間的に重要でないバックグラウンドプロセスの間に構築される。ネットワークは、データフォーマットを構文解析することによって構築される。このフォーマットは、ACXとして知られているXMLのバイナリー表示である。従って、これはACXFileからクラスを受け継ぐ。このクラスはイベントベース構文解析系(event−based parser)と称される。データ構文解析の詳細は後述する。SPUのインスタンスおよびコネクションは、データ構文解析の間に開発され、フラットリスト内に格納される。SPU
NetworkのbindNetwork()方法は、定義データの全てのコンテンツが、エラー状態にぶつかることなく構文解析された後で、バックグラウンドプロセスから呼び出される。bindNetwork()の1つの目的は、適切なSPUオブジェクトにコネクションオブジェクトを取り付けること、およびコネクションオブジェクトを案内し、浮動少数点数に対する基準を定めることである。ここでこの浮動少数点数は、行先SPUへのインプットとして用いられるソースSPUからの出力値として作動する。SPUオブジェクトは自身のアウトプットのために値メンバデータを含み、そのインプットとして用いられている他のSPUからのアウトプットに向けるために、リファレンスメンバデータを含んでいる。bindNetwork()の間に生じるエラー状態はバインドエラーを生じさせ、適切な診断情報が診断データストレージへ報告される。bindNetwork()の間に生じる可能性のあるエラー状態の例は、疎接続、要求されているコネクションの無いSPUインプットまたはアウトプット、1つのSPUインプットコネクションに対する無効なマルチプルアタッチメント等である。バインドプロセスの間に、SPUBaseから導出されたクラスの各インスタンスはそのbind()方法を呼び出す。
bind()方法は各SPUオブジェクトに、インプットおよびアウトプットコネクションが
、予期されているコネクションの数に相応して存在することを検証する機会を与える。各SPUBaseの導出されたオブジェクトは、方法であるgetpInput()およびgetOutput()を提供するためにも必要とされる。これらの方法はレファレンスを、別のSPUインプットによって保持されている、あるSPUアウトプットに配置(populate)するのに使用される。コネクションが案内されると、これらはもはやネットワークによって必要とされない。
時間的に重要でない周期的なプロセスに対するデータフローは、SPUのインプットリファレンスをデレファレンスすることによって構築される。これはコネクションを案内することよりも、計算においてより効率的である。
【0028】
機能buildExecList()は、bindNetwork()に対する呼び出しが成功した後にバックグラウンドプロセスから呼び出される、SPUNetworkの別の方法である。buildExecList()方法はネットワークspuList内のインスタンスを、実行の優先順位で配列する。これは、各SPUに取り付けられている優先特性の評価および優先順位でのSPUの格納によって行われ得る。同じ優先レベルを共有するSPUが、SPUリスト内にあらわれた順番で実行リストに加えられる。択一的に、優先順位は、ネットワークアウトプットで始まり、SPUアウトプットからSPUインプットへコネクションを逆に案内することによって、ブロック間の依存性を帰納的に定めることによって自動的に作成される。
【0029】
周期的な時間
的に重要なプロセスの間に、SPUNetworkのexecute()方法に対する呼び出しを介してネットワークが実行される。この方法は単にexecList内を循環し、各SPUインスタンスのexecute()方法を呼び出す。各SPUの
execute()方法はその後、そのインプットをデレファレンスし、インプットの組み合わせに基づいて適切な方程式/ロジックを実行し、SPUのアウトプットに結果を組み込む。従ってこれは、インプット値に対するこのデータアイテムに依存する他のSPUによって使用される。
【0030】
ベースソフトウェアに対するインターフェース
SpuNetworkとモーションコントロールシステムの残りの部分との間のインターフェースはSignalDispenser、SpContainerBaseおよびACXFileから成る。SpContainerBaseは純粋なバーチャルクラスであり、その役割は、信号処理オブジェクトに対する収容部として作動することである。SpContainerBaseインターフェースは、監視/コントロールおよびシミュレーションアプリケーションに対する信号処理要求の実施に対する能力のセットをあらわす。SpContainerオブジェクトは、インターフェース方法を実行する。ここでこのインターフェース方法は主に:reScanAcxFiles()、checkForSP()およびexecute()を含む。
【0031】
SpContainerの方法reScanAcxFiles()はバッグラウンドプロセスから呼び出され、信号処理に関連付けられた全ての定義データの構文解析を命じる。この方法の結果は、SigProcessorBaseから派生した幾つかの信号処理オブジェクトの具体化(例示:instantiation)である。柔軟であるので、SigProcessorBaseから派生した主要なクラスはSpuNetworkである。それにもかかわらず、そのトポロジーおよび方程式が専有の目的のために固定されている他のクラスを導き出すことも可能である。ここではパラメータ化のみが定義データにおいて指定される。柔軟性のために自動的に生成されたコードまたは幾つかの他のメカニズムを使用する付加的なクラスをSigProcessorBaseから導き出すことも可能である。SigProcessorBaseオブジェクトの生成への各試みの結果として、診断データアウトプットが得られる。これは試みの成功を記述し、構文解析の間に起こり得るあらゆる問題の診断に対する情報を提供する。SigProcessorBaseから導出されたオブジェクトのインスタンスは、SPContainerのメンバデータとして存在する。SPContainerによって実行される方法checkForSP()は、SigProcessorBaseから導出されたオブジェクトの全てのインスタンスのリストを、信号タイプ/タイプおよび機械軸の提出された要求に一致するもののために検索する。一致するものが見つかった場合、SigProcessorBaseのクライアントリストが増やされ、独自のキーが返還される。SigProcessorBaseのインスタンスが作成されると、これらはベースソフトウェアから中央サービスへのポインタを介した、提供されたアクセスとなる:SignalDispenser。SignalDispenserは2つの目的を提供する:1.ベースシステムからの要求された信号を伴う信号処理部を提供する。2.信号処理の結果に対する収納場所を提供する。収納場所としての役割において、信号ディスペンサーはネットワークアウトプットを信号トレースに割り当てるためのインターフェース、シミュレーション目的のために目下の値を上書きする方法、およびサーボコントロール目的のためにコントロールアウトプットを上書きするまたは促進する方法を提供する。SPContainerのexecute()方法は周期的に、時間臨界的な優先順位の高い周期的なプロセスの間に、ベースシステムによって呼び出される。このコンテナはその後、その全SigProcessorBaseオブジェクトのexecute()方法を呼び出す。ベースシステムに対する最終的なインターフェースは、AcxFileからのSPContainerを受け継ぐことによって提供される。AcxFileクラスは、コントロールのファイルシステムからの選択されたデータレコードを開け、このデータの構文解析を始めるためのインターフェースを提供する。構文解析の間に、stratTag()、endTag()、handleData()等のイベントは構文解析系によって引き起こされ、これらの各方法の実行は導出されたクラスにおいて、この情報によって何が行われるべきかを定める。データの構文解析の間に使用される幾つかのストラテジーおよびACXデータの組織化については以降で述べる。
【0032】
SPUBase I コネクション
SPUネットワークにおける中心的なオブジェクトはSPUBaseである。これは、純粋なバーチャル方法に加えて幾つかの非バーチャル方法を供給する純粋なバーチャルクラスである。このクラスのこれらのコンテンツの多くは、SPUNetworkのトピックスにおいて既に論議されている。SPUの各インスタンスは、ネットワークコンストラクションの間、SPUを識別する目的で独自のIDを含む
ことが必要とされる。IDの独自性はデータの構文解析の間、強制される。SPUの各インスタンスは、SPUの幾つかのアウトプットに対してゼロを保持するための実際に値が付けられた数(アウトプット)のアレイを含んでいる。アレイのサイズは、SPUタイプに依存して変化する。SPUは、実際に値が付けられた数(インプット)のポインタのアレイも含んでいる。これは、最終的には、目下のSPUへのインプットを提供する他のSPUからのアウトプットに向かう。インプットアレイのサイズも、SPUタイプに依存して変化する。SPUは、パラメータオブジェクトのゼロまたはより多くのインスタンスも含んでいる。パラメータオブジェクトの数およびコンテンツはSPUの具体的なタイプに依存する。パラメータオブジェクトはデータ構文解析の間に構築される。なぜなら、複数のパラメータの存在は定義(ACX)データ内で衝突するからである。ACXデータで示されるパラメータのリストが空になると、具体的なSPUのinterpretParams()方法が呼び出され、見つけられたパラメータが可変タイプ、パラメータの数、パラメータの用法、および値の範囲の項において予期されているものと適合するかがチェックされる。パラメータが予期されているものである場合、各具体的なSPUに対するinterpretParams()がパラメータオブジェクトから、自身のメンバデータ内に、その方法bind()およびexecute()の実行の間の使用のために、値をコピーする。パラメータメンバデータ:「使用(usage)」は導出されたSPUクラスにおけるその使用に関する各パラメータを列挙する。パラメータは可変タイプの値を含む:これは例えばdouble,int,char等である。UMLクラス図は、SpuBaseとSpunetworkの間の受け継ぎ関係を示す。ここでSpuNetworkはSpuBaseの1つの種類である。SpuBaseインスタンスに対するこのような関係によって、全体的な入れ子状のSpuNetowrkが組み込まれ、そのインプットアウトプット特性を、単独の具体的なSPUを扱うのと同じ方法で扱うことができる。SPUが含まれているネットワークのコンテキストにおいてこれは他の具体的なSPUとして動作する。ネットワークであるSpuBaseインスタンスのIDがそのネットワークのコンテキスト内で独自である場合には、サブネットワーク内に含まれているSPUオブジェクトのIDは異なるコンテキストレベルでのSPUオブジェクトに関して独自である必要がない。このようなメカニズムによって、限界の無い入れ子レベルが可能になる。このような配置の1つの利点は、特定のインプットアウトプット関係をあらわすサブネットワークが、より多くの基本的なSPUから事前に構築されることである。ここでこれらのSPUは、必要である場合にネットワーク内に含まれる。
【0033】
SpuBaseもコネクションオブジェクトのリストを含む:これはinputsListおよびoutsputsListである。各コネクションオブジェクトはそのソースおよび行先に関する情報を有しており、データフローチャネルをあらわす。各コネクションは、SPUに対する独自の整数IDを用いてそのソースSPUを識別し、ソースアウトプットポートアウトポートを識別する。ここでこのソースアウトプットポートアウトポートは、参照されるSPUからの使用可能なアウトプットを識別する。多数のアウトプットを有するSPUの場合には、アウトプット数は特定の種類の情報にあてはまる。SPUの具体的なタイプのコンテキストにおいて、より直接的にアウトプットポートの役割を識別する調査部(enumerator)またはストリングとのコネクションが提供されることによって、このアウトプット数は間接的に言及される。各コネクションオブジェクトは行先SPUの独自のIDおよびインプットポートの数も含む:コネクションが取り付けられるべき行先SPU上へのインポートである。アウトポートとともに、各ナンバリングされたインポートは特定の種類の信号を含む。ここでこの信号は具体的なSPUによって独自に解釈される。インポートはストリングまたは列挙を用いて言及される。これはより明確に、コネクションが取り付けられるインプットの使用を識別する。SPUの構文解析およびコネクションは独立して行われる。ここでは定義データにおけるSPUおよび/またはコネクションの相対的な発生は、ネットワークトポロジーまたはコネクションマッピングを定める構文解析系の能力には打撃を与えない。ネットワークにおける全てのオブジェクトの後:SPUおよびコネクションが具体化され、SpuNetworkのbindNetwork()方法の実行中にネットワークが構築される。第1のステップは、SPUのインプットおよびアウトプットに割り当てられたコネクションを見つけることである。この第1のステップの間に、SPUのメンバoutputListおよびinputListが埋められる。同時にコネクションのmyOutputおよびSPUへのmyinputポインタが確立される。この段階で、コネクションのデータがSPU/ポート組み合わせへ分解されない場合には、エラー状態が生じ、SPUネットワークの構築が失敗する。例えば、2つの別個のコネクションが同じ行先SPUおよび「inport」を有している場合には、エラー状態が検出され、診断アウトプットデータ内に示される。逆に言えば、2つの別個のコネクションは、同じソースSPUおよびアウトプットに適切に取り付けられ、これは単純に、ネットワーク内の分岐またはブランチを意味する。SPUとそのコネクションの間の関係が確立された後、bindNetwork()内の第2のステップは各SPUのbind()方法を呼び出し、これによって、これは要求されたコネクションが存在するのかがチェックされ、他の情報を伴うコネクションが例えばパラメータから導出されることが検証される。この時点で、1つまたは複数の他のSPUからのアウトプットへの1つのSPUのインプットのリファレンスが、ソースSPUのgetpOutput()方法が呼び出されることによって解決される。これは、行先SPUによって保持されている種々のコネクションを案内することによって行われる。このプロセスの終了時には、コネクションはその目的を提供し、ダイナミックメモリを維持するためにネットワークから削除される。
【0034】
付加的に、各クラス:SPContainer、SPUNetwork、Parameter、SpuBaseおよびConnectionは全て、クラスAcxFileから導出される。これは定義データ(ACX)の構文解析に適合する。後述されるように、ACXデータは階層的に組織化され(XMLの典型)、定義フォーマット内のデータのロケーションのコンテキストは、その構文解析方法(例えばstartTag()、endTag()等)がイベントベース構文解析系によって呼び出されたオブジェクトに直接的に関する。
【0035】
データフォーマットおよび構文解析
信号処理ネットワークの定義は、そのフォーマットがACXとして知られているデータ定義で保存される。しかしACXは、Siemens社によって提供されている所有権を主張できるバイナリフォーマットに限定されない。構造はXMLに密接に関連している。XMLのように、ACXはコンテンツを区切るためにタグを用いる。コンテンツはシンプルまたは複合的である。シンプルなコンテンツの場合には、データタイプは属性として指定される。Siemens社は、XMLからACXおよびACXからXMLへの変換のために変換ツールを提供している。明確にするために、データのXML表示は、データフォーマットおよび信号処理ネットワーク定義に対する構文解析に関する本論議の焦点である。
【0036】
図1を参照すると、幾つかのクラスは純粋なバーチャルインターフェースからAcxFileを受け継ぐ。これらのクラスは封じ込めヒエラルキーを形成し、最も外側のクラスから始まる以下のリストによって示される。含まれているオブジェクトの複数のインスタンスは、そのロケーションが、以下のスキーマに相応して可能であると指定されている間は可能である(同じレベルにあるクラスはあらゆる順番であらわれる)。
【0037】
【表1】
【0038】
ACXデータの構文解析は、ベースソフトウェアがデータロケーションの標識(例えば名前が付けられたファイルにおいて)およびリファレンスを、AcxFileのインターフェースを実行するトップレベルオブジェクトへ通過することによって始まる。データが構文解析されると、start Tag()、endTag()、handleData()、handleStringData()に対するイベントコールバックが、トップレベルオブジェクトに基づいて呼び出される。方法startTag()は、新たなタグと出会う度に呼び出され、タグネームの列挙が提供される。方法endTag()は、新たなエンドタグと出会う度に呼び出され、これはタグネームに対する調査部を通過することもできる。方法handleData()は、構文解析系がシンプルなコンテンツデータと出会う度に呼び出される。HandleData()はデータタイプに対する引き数および値を含んでいる合併引き数とともに呼び出される。データタイプがストリングである場合には、handleStringData()が呼び出される。
【0039】
信号処理ネットワークの場合には、トップレベルオブジェクトはSPContainerであってよい。この場合にはSPContainerは、これらのイベントの各々に応じて、何を行うのかを決める。構文解析の間、封じ込めヒエラルキー内のクラスの各タイプは、封じ込めヒエラルキーの瞬間的なコンテキストをあらわすスタックオブジェクトを維持することによって、構文解析コンテキストのトラックを保持する。オブジェクトスタックはおおよそ、XMLコンプレックスコンテンツにおいてコンテキストをあらわすタグのスタックに相応する。構文解析の間、startTag()、endTag()およびhandleData()のための方法がコンテキストスタックの頂上部でのオブジェクトのために呼び出される。startTag()方法の実施中、コンテキストスタックは潜在的に、スタックの頂上部にプッシュされる新たなオブジェクトを有している。endTag()方法の実施中、コンテキストスタックは潜在的にスタックから外されるトップオブジェクトを有している。スキーマチェックは構文解析の間も実施され、XMLフォーマットの要求に応じて、スタートタグが予期されているように配置されていることが確実にされる。エラー状態が起こると、errorInfoオブジェクトが、診断アウトプットとして後に報告される情報によってアップデートされる。信号エラーが生じると、SPContainerのコンテンツを構文解析する成功した試みが無視され、SPContainer内で起こったこの第1のエラー状態がerrorinfo内に記入される。XMLコンテンツが新たなオブジェクトを具体化する必要を示すと、ダイナミックメモリ管理が用いられて、オブジェクトの要求されたインスタンスが構築される。オブジェクトが導出されたタイプのSpuBaseである場合、SpuFactoiyオブジェクトが呼び出されて、SPUのインスタンスが構築される。そのタイプはXMLのコンテンツに相応に指定されている。SpuFactoryはポインタをタイプSpuBaseのオブジェクトへ返還する。ここでこのポインタはSpuNetworkのコンテキストスタックの頂上部にプッシュされ、ファイル構文解析のためのSpuNetworkの方法の成功した呼出しが、SpuBaseの相応する方法へ再び向けられる。
【0040】
SPU導出タイプの部分的なリスト
図1を参照すると、低い部分はSPUBaseから導出された幾つかのクラスを示している。これは具体的なSPUの部分的なリストをあらわす。オブジェクト指向の設計によって、幾つかの使用可能なSPUが最小限の努力で拡張される。新たなSPU導出クラスを作成するプロセスは、パターンクラスのコンテンツ内を、新たなSPUタイプの目的に特有の要求で満たすことを必要とする。部分B内に概略が示された幾つかのアプリケーションのために開発された幾つかのSPUタイプの部分的なリストがここに存在する。各SPUの実装の詳細は要求に応じて提供される。
【0041】
SpuInput
S
puInput SPUはベースコントロールからの入力信号を示す。このブロックは信号タイプに対する具体化列挙および機械軸のインデックスによってパラメータ化される。この機械軸から信号が検索される。SPUは複数のゼロインプットと1つのアウトプットを有している。列挙される幾つかの信号タイプは例えば以下のものであるが、これに限定されない:
・位置設定値およびその誘導物
・モータでの位置実際値
・直接的な測定システムでの位置実際値
・速度ループへの速度設定値
・速度フィードフォワード
・トルクフィードフォワード
・電流コントロールへのトルク設定値
・電流実際値を形成するトルク
・モータ速度の実際値
・駆動パワー
・A/D変換器からの値
【0042】
SpuMonOut
SpuMonOut SPUはSPUNetworkからのアウトプットノードをあらわす。このアウトプットノードの目的は、アプリケーションを監視することによって使用される信号を提供することである。1つの実施形態では、監視アプリケーションはより低い率の周期的なプロセスで作動し、このネットワークのアウトプットのコンテンツは監視タスクへ運ばれる。これはアウトプット信号を内部プロセスコミュニケーションバッファ内に配置することによって行われる。このバッファで、このより低い率のプロセスは、結果を検索し、使用することができる。SpuMonOutは1つのインプットを有しており、これは信号値とゼロアウトプットをあらわす。これは軸の数および信号タイプによってパラメータ化される。使用可能な信号タイプは、SPUInputのもとでリストアップされたそれと比較可能である。この場合には、信号コンテンツが、SPUNetworkによって実行される軸ダイナミック特性に対するモデルによって影響されることが予期される。
【0043】
SpuCtrlOut
SpuCtrlOut SPUは、SPUNetworkが実行されるときに、軸/サーボコントロールに影響を与えるために使用される。SpuCtrlOutは1つのインプットを有しており、このインプットはシステム位置および/または速度コントローラにおけるコントロール信号へ、SignalDispenserからのサービスによってルーティングされる。SpuCtrlOutは軸およびコントロール信号の列挙によってパラメータ化される。コントロール信号の幾つかの例を以下にリストアップする。
・位置コマンドオフセット
・位置コマンド
・速度フィードフォワード
・速度フィードフォワードオフセット
・速度コマンド
・速度コマンドオフセット
・トルクフィードフォワード
・トルクフィードフォワードオフセット
・速度コントローラ比例利得
・速度コントローラ積分時定数
【0044】
SpuSimOut
SpuSimOut SPUは、コントローラのソフトウェアセットがモータ、および/または機械システム、または直接的なフィードバック装置無しで作動する環境におけるフィードバックをシミュレーションする目的で使用される。SpuSimOutは、SpuCtrlOutに非常に類似しており、システムに影響を及ぼすために、SignalDispenserからのサービスを要求する。SpuSimOutは1つのインプットを有しており、アウトプットを有しておらず、軸の数およびフィードバックタイプの列挙によってパラメータ化される。フィードバックタイプの幾つかの例を以下にリストアップする。
・モータエンコーダでの位置実際値
・モータでの速度実際値
・直接的な測定システムでの位置実際値
・駆動内部トルクの設定値
・電流を生成する駆動内部トルク
【0045】
SpuSiggen
SpuSiggen SPUはテストの目的で信号を生成することを可能にする。これは、動的な応答を測定する目的で、電気機械システムを刺激するためにも使用される。SpuSiggenは0または1の入力を取り、波形、振幅の値および周波数の値に対する調査部(enumerator)によってパラメータ化される。SPUに加えられる入力が無い場合、この波形に対する周波数が、目下のパラメータに基づいて開発される。入力がある場合、周波数はこの入力から導出され、ネットワークにおける他の場所から発生する信号によって特定されるように、種々の周波数信号が可能になる。波形に対する幾つかの調査部値は、SINE、SAWTOOTH、TRIANGLE、SQUARE、UNIFORM_RANDOM、NORMAL_RANDOM等である。
【0046】
SpuMath0
SpuMath0 SPUはその信号インプットに基づいて信号の数学的な演算を行う。ここでは数学的な演算はいかなるパラメータ化も必要としない(Math0は0個の数のパラメータに言及している)。SpuMath0ブロックは1つの具体化列挙パラメータを用い、実行する数学的演算のタイプを識別する。ゼロパラメータを用いた数学的演算の幾つかの例を以下にリストアップする。
・平方根
・サイン、コサイン、タンジェント、アークサイン
・loge、log10、exp
・1/x
・導関数、積分
・絶対値
【0047】
SpuMath1
SpuMath1 SPUはその信号インプットに基づいて信号の数学的な演算を行う。ここでは数学的な演算は1つの数値パラメータを必要とする。SpuMath1ブロックは具体化列挙パラメータを用い、演算タイプを識別し、数値パラメータを用い、演算をパラメータ化する。演算タイプの幾つかの例を以下にリストアップする。
・倍数的に増加する利得
・付加的なオフセット
・パワー:
・非線形デッドゾーン関数
・非線形飽和関数
【0048】
SpuSum
SpuSum SPUは、全ての入力信号の値を加え、合計をアウトプットとして報告する。入力信号の数は制限されていない。オプショナルパラメータは、インポートを指定するために使用される。ここでは信号値は、加算よりも減算されるべきである。このブロックの実行は、リアルタイム計算要求を最小化させる。これは、バックグラウンド非時間臨界的プロセスとしてのブロックネットワークバインドプロセスの間、減算インプットから全ての加算インプットを集め、分離させることによって行われる。このようにして、加算および減算のみが、乗算またはif-then-elseロジック無しに周期的に実行される。
【0049】
SpuProduct
SpuProduct SPUはインプットの可変数を有しており、単に、全てのインプットを乗算し、アウトプットの値を定める。
【0050】
SpuSwitch
SpuSwitch SPUは多数のインプット信号から、アウトプット信号として、SPUを通過するべき1つの信号を選択するメカニズムを提供する。SpuSwitchへの第1のインプット上の信号はセレクターとして扱われる;その値は、どの残存インプット信号がSPUのアウトプットへ通過するかを指示する。SpuSwitchへのインプットの数は可変である:だいたい2ないし制限されていな数のインプットが必要とされる。セレクターとして作動する第1のインプットは、インプット0として指定される。インプット0の値は整数へ切り捨てられる。これは、どの残存インプットが通過するかを示す。切り捨てられるインプット0の値が1より小さい場合、これはインプット1を通過し、この値がインプットの全体数よりも大きい場合、このスイッチは最も大きい数が付されたインプットを通過する。
【0051】
SpuTdelay
SpuTdelayは、幾つかの先行する時間からの入力信号を出力する。ここでは遅延の長さはパラメータとして指定される。SpuTdelayは、周期的なインターバルの時間または数に関してパラメータ化される。このブロックは1つのインプット、1つのアウトプットおよび2つのパラメータを有している。第1のパラメータは第2のパラメータの単位を示す:これは秒または最小単位目盛(ticks)であり、この第2のパラメータは遅延の持続時間を指定する。この遅延は、メモリを割り当てることによって行われる。このメモリは、最新のインプットから最古のインプットまでのデータヒストリーを保持するのに充分な大きさのバッファのためのメモリである。ここでは最古のインプットは、遅延のために、サイクルの整数を加えたものである。インターバルの小数部を呼び出す遅延は容易であり、かつ良く知られている方法によって実行され、この方法は最古の測定および2番目に古い測定に基づいて、重み付けされた二点の平均化(a two point weighted average)を行う:
y(k)=x(k−nd−1)*a+x(k−nd)(1−a)
ここでy(k)は最新のアウトプットであり、x(k)は最新のインプットであり、x(k−m)は遅延されたインプットであり、ndは、周期単位における遅延時間の整数部分であり、aは0と1の間の数であり、周期単位で表された遅延の少数部をあらわす。
【0052】
SpuTrace
SpuTrace SPUは、ベースソフトウェアの信号追跡能力との相互作用のためのメカニズムを提供する。典型的にSpuTraceブロックはネットワーク内のコネクションの分岐によって挿入される。これによって、内部ネットワーク信号の測定(状態変数)が、外部表示および分析のために収容される。SpuTraceは軸の数および追跡IDによってパラメータ化される。1つのネットワーク内の複数のSpuTraceおよび複数のネットワークにわたる複数のSpuTraceは全て可能である。
【0053】
SpuDfilt
SpuDfilt SPUは、一般的な目的の離散時間線形フィルタ能力を提供する。フィルターの異なった方程式は以下にあらわされており、ここではフィルターステップ時間は、フィルターが作動する周期的なリアルタイムプロセスの周期時間である。
【0054】
y(k)=b0*u(k)+b1*u(k−1)+・・・+bm*x(k−m)+−a1*y(k−1)+・・・+−an*y(k−n)
【0055】
定義データ内の「分子」(b)および「分母」(a)パラメータのインスタンスとして係数をリストアップすることによって移動平均係数に対する値(b)および自己回帰係数(a)が指定される。分子パラメータの発生数はmを指定し、分母パラメータ発生数はnを指定する。各係数のロケーションは、パラメータリスト内のそのロケーションから推定される。離散フィルターの実装によって、フィルター初回作動時の過渡現象が回避される。これは、全ての内部状態が安定するまでに部分的にフィルタリングされたインプットがアウトプットへ通過することによって行われる。内部状態は、次のことを想定して割り当てられた値である。すなわち、初期のインプット値(u)が安定状態を推定するために、フィルター状態に対して、充分に長く続いたことを想定して割り当てられた値である。これらのアルゴリズムの詳細は後日、提供される。
【0056】
SpuDfilt SPUは一般的な目的のフィルタークラスを使用し、メモリ管理およびフィルターの作動時間方法の初期化を実施する。このクラスは、プロセス監視アプリケーションケースにおいて、監視タスクがフィルタリング能力を求める他の場所で使用される。
【0057】
連続時間フィルター
フィルターを連続時間伝達関数としてあらわす付加的なSPUクラスが使用可能である。これらはネットワークポータビリティが、コントロールセッティングにおける変化と一貫している、ネットワーク特性の能力に依存する状況において有効である。フィルターが作動するプロセスの周期時間が変化する場合には、特別に、フィルターの連続時間表示によって、一貫した特性が可能である。連続時間表示は、離散フィルターが以下のタイプのシーケンスの組み合わせによって表されることを必要とする:一次フィルター、二次フィルターおよび純粋な時間遅延。連続時間フィルターの組み合わせは、バックグラウンドプロセスにおいて離散時間等価物のインスタンス(すなわち、SpuDfiltによって使用されるフィルタークラス)に変換される。なぜならネットワークはデータ構文解析の間に構築されるからである。離散時間等価物は良く知られているマッピングプロシージャによって生成される。これは「Tustin’s Trapezoidal Integration」、「Matched Zero−Pole」および「Step Invariance」等である。PT2(二次ローパス)、ノッチ(帯域阻止)、DT2(二次ハイパス)等の特定のタイプのフィルターを構築するための高いレベルのSPUは、連続時間フィルターブロックとして用いられるSPUを提供することによっても得られる。ここでこれは、パラメータ化を通じて、所望のタイプをあらわすように構築される。
【0058】
SpuVarIn
SpuVarIn SPUは、ベースシステムからの大域可変変数にネットワーク信号を割り当てるためのメカニズムを提供する。SpuVarInはインプットを有しておらず、1つのアウトプットと、データソースを識別するためのパラメータを有している。1つの実施例では、SpuVarInは3つのパラメータによってパラメータ化される:すなわち、大域可変変数のタイプ、行、列である。その値は、SPUの信号アウトプットとして通過すべきである。このような場合には、システムは整数または浮動小数点数等の種々のタイプの変数のアレイを提供し、SpuVarInのアウトプットは特定のアレイ内へのエントリの値である。このようなメカニズムは、作動時の信号処理ネットワークのリアルタイム調整を収容する。例えば、スイッチの選択インプットとしてのSpuVarInのアウトプットのルーティングによって変数は、信号処理ネットワークのサブセクションをイネーブルまたはディスエーブルすることができる。SpurProductブロックへのSpuVarInのアウトプットのルーティングは効果的に設定可能な利得を生じさせ、SpurSumブロックへのルーティングは設定可能なオフセットを生じさせる。1つの実施例では、SpuVarInによって参照される大域可変変数は、コントローラのモーションプログラム、PLCまたはHMIコンポーネントによって修正される。
【0059】
Spu Dynfrict
SpuDynfrictは、位置、速度および加速度インプットとしての非線形摩擦力の複合性質をモデリングするSPUを提供する。使用されている摩擦モデルの詳細な説明は、別個の発明の開示の内容である。
【0060】
SpuCompare
SpuCompareは、その2つのインプットに基づいてロジカルな比較を実行する。これは第1のインプットの値を、第2のインプットの値と比較し、この比較が「正しい」と評価した場合にはa1を出力し、この比較が「誤っている」と評価した場合にはa0を出力する。1つのパラメータは比較演算のタイプを列挙する:すなわち、>,<,>=,<=,=,!=。
【0061】
SpuLogic
SpuLogicは、自身の複数の入力に基づいてブール演算を行う。演算のタイプは1つのパラメータによって指定される。ここでこのパラメータは、AND,OR,NAND,NOR,EORを列挙する。SpuLogic SPUのアウトプットは、全てのインプットに基づいた論理的な演算の結果である。このようなブロックは、幾つかのSpuCompare評価からの結果に基づいて決定を下す際に有効である。SpuLogicエレメントのアウトプットの幾つかの予期される有効なルーティングは、SpuSwitchのセレクターインプットまたはSpuSuppressエレメントの状態インプットである。
【0062】
SpuSuppress
信号抑制は、次のことを示すメカニズムを意味する。すなわち、プロセス監視のためのネットワークアウトプットが抑制され、抑制状態の持続する間は、監視アルゴリズムがアラームを発しないように命令することを示すメカニズムを意味する。SpuSuppressエレメントは、抑制が望まれている状態が持続する間は、信号を乗算するストラテジーを使用する。信号抑制は、抑制状態が始められたときの値に、信号レベルを保持することによって実行される。抑制状態が終了すると、保持されていた信号は漸次、保持されていた値から、その瞬間の値に移動する。漸次の移動は、ローパスフィルターを用いて実行される。ここでこのローパスフィルターの時定数は、移動期間にわたって漸次減少する。このコンセプトは、幾年かの間に、スピンドルトルクを抑制する、およびスピンドル運転開始の間のパワー測定の特定の目的で、プロセス監視製品において開発され、使用されてきた。現在の実装においては、このコンセプトはSpuSuppressエレメントによって一般化されている。SpuSuppressエレメントは2つのインプットを用いる:すなわち、0が通常の状態を示し、1が抑制状態を示す、抑制のための信号および論理的なインプットである。SpuSuppressの実行方法内では、有限状態機械は、SPUによって出力された値を管理する。必要であれば、この設計の詳細が入手可能である。
【0063】
SPNの自動生成
そのモデル構造が事前に知られている、および/または固定されている機械特性/ダイナミック特性を記述する場合には、信号処理ネットワーク内でのSPUの収集のクラスおよびトポロジーはこれらのモデルを基に作成される。プロセス監視の場合には、SPNはこのモデルの走行時間シミュレーションをあらわす。サーボコントロールの場合には、このモデルは、自動調整プロシージャにおける開始点として用いられる。このプロシージャのジョブはSPUをパラメータ化する。
【0064】
自動セットアップはプロセスである。ここではモデルのパラメータ化は、機械が刺激状態に反応すると、コントローラ状態変数の測定を分析することによって自動的に定められる。幾つかの場合では、刺激状態は事前に人為的に、システム内で意図的に作成される。別のケースでは、刺激状態は、機械によって実行される通常のプロセスの間に自然に発生する。いずれにせよ、刺激が「充分である」場合には、使用可能な信号の適切なセットからの測定値が、モデルの最適なパラメータ化を定めるために、システム識別の方法を用いて分析される。このステップが終了すると、モデル情報は直接的に、SPNを定める相応するACXデータフォーマットに変換される。ここでこのSPNは、モデルのシミュレーションをあらわす(プロセス監視および特定の故障検出アプリケーションに対して)。サーボコントロールアプリケーションにおいては、軸をコントロールするためのSPNトポロジーにおいてSPUのパラメータ化を導出するためにモデルが使用される。いずれにせよ、ネットワークを定めるためのACXデータは自動的に生成され、コントローラ上に自動的に組み込まれる。特定のケースではSPNのトポロジーは事前には固定されず、システム識別プロセスの間に生成されたモデルの指定に基づいて選択される。ACXファイルによってあらわされるトポロジーを視覚化するための設備も開発された。自動セットアッププロセスの詳細は、別個の開示部分として論議されるであろう。
【0065】
図2を参照されたい。本発明の第1の実施例200に従った例示的な方法は、既存の、コンパイルされ、リンクされたコードを用いてデータフォーマットを提供する。各信号処理ネットワークは、上述したように、1つまたは複数の信号処理ユニットを提供する(ブロック202)。データフォーマットはXMLまたは他の適切な言語である。信号処理ユニットは、モーションコントロールシステム
に専用インターフェースを提供する(ブロック204)。各信号処理ユニットに、複数のインプットおよび複数のアウトプットが提供される(ブロック206)。これらのインプットおよびアウトプットは、1つまたは複数の信号処理ユニットの間でルーティングされる(ブロック208)。このインプットおよびアウトプットは、モーションコントロールシステムの監視、モーションコントロールシステムの操作、故障検出システムの操作および/またはモーションコントロールシステムのシミュレーションに関する。
【0066】
このシステムおよび方法は、配線によるモジュールまたはプログラミング可能なハードウェアを用いて実現される。このシステムおよび方法は、上述した実施例を実現するために種々のコンポーネントを使用するソフトウェア内に実装される。実施例内の開示されたアスペクトは、独立して、または他の実施例と組み合わせて使用される。さらに、上述のものは本発明の原理の例として示されただけであり、種々の修正が、本発明の範囲および思考を逸脱することなく当業者によって行われる。当業者は、本発明が、上述した実施例以外のものによって実行可能であることを理解するだろう。本願の実施例は、限定より、例解する目的のためのものであり、本発明は添付された特許請求の範囲によってのみ制限される。