なお、以下の説明において実施例として挙げられる機器およびシステムは、その他にも存在する構成素子の中でも特にハードウェアで実行されるソフトウェア且つ又はファームウェアを含んだ状態で記載されているが、このようなシステムは単に本開示の実施例として示されているに過ぎず、本開示を限定するものであると見なされるべきでない。例えば、これらのハードウェア、ソフトウェアおよびファームウェア構成素子 のいずれか又は全ては、ハードウェアにおいてのみ、またはソフトウェアにおいてのみ、或いはハードウェアとソフトウェアのいかなる組み合わせにおいて具体化できるものと考慮される。よって、実施例として挙げられる機器およびシステムが以下において説明されているが、通常の技術を有する当業者であれば、ここに提供される実施例がこれらの機器およびシステムを実施する唯一の手段ではないことが容易に理解できるはずである。
プロセス制御システム中のプロセスコントローラおよびフィールドの装置により機能ブロックを実行するスケジュールを生成するのに使用される公知の技法には、一般に、実行速度の最も遅い機能ブロックの速度で実行を行うために同一の通信バス(例えば、機能ブロックを実行するために割り当てられたフィールド装置およびコントローラを通信可能に連結する通信バス)に関連した全ての機能ブロックのスケジュールを立てることが関与してくる。従って、比較的速度の速い実行機能ブロックのブロック実行期間を実行速度の最も遅い機能ブロックのブロック実行期間と一致させるために延長すること(例えば、機能ブロック実行速度を遅らせること)が、公知の技法には必要とされ、よって、プロセス制御システムを実施する際に、実行期間が短めの(即ち、実行速度が速めの)いくつかの機能ブロックを有利に利用することができない。
機能ブロック実行用スケジュールを実施するのに使用される公知の技法のいくつかとは異なり、ここに実施例として記載される方法および機器は、同一の通信バスと関連する(例えば、同一の通信バスを介して通信する)その他の機能ブロックの機能ブロック実行期間と一致させるために機能ブロック実行期間を著しく延長することなく、各々の機能ブロックの実行期間に基づいて機能ブロック実行用スケジュールを生成するのに使用されうる。他よりも速い機能ブロックのいくつかを実行することにより、同一の通信バスに関連した、遅めの機能ブロックも有利に利用しうる。例えば、圧力計測機能ブロックおよびバルブ制御機能ブロックが同一の通信バスに関連する場合、より短い期間でバルブ制御機能ブロックを実行してもあまり多くの利点がもたらされないかもしれない一方、圧力計測機能ブロックをより短い期間で(即ち、より速い速度で)実行することが有利となりうる。しかるべく、圧力計測機能ブロックの機能ブロック実行期間は、バルブ制御機能ブロックの機能ブロック実行期間より短い期間でありうる。機能ブロック実行のスケジュールを立てるために公知の技法を使用する場合は、該遅めのバルブ制御機能ブロックと同じ実行期間で圧力計測機能ブロックを実行しなければならない。結果として、プロセスにおける圧力変動の周波が高めの場合、圧力計測機能ブロックによって該変動を正確に捕らえられない場合がありえる。対照的に、機能ブロック実行用スケジュールを各々のブロック実行速度を使用して生成するためにここに実施例として記載される方法および機器を使用することによって、圧力計測機能ブロックをバルブ制御機能ブロックよりも短い期間で(即ち、より速い実行速度で)実行することが可能になる。従って、該圧力計測機能ブロックは、圧力計測をより高い周波で(例えば、比較的高解像度で)取得できるため、例えば、公知の機能ブロック・スケジュール作成技法を使用してでは捕らえる又は処理することが不可能であったような、高周波の圧力変動(例えば、一時的な急降下、急上昇、またはその他の比較的高周波を伴う圧力の変化)を捕らえられるようになる。
ここに記載されるように、スケジュールを生成するために各々の機能ブロックのブロック実行速度を使用することにより、同一の通信バスに通信可能に連結されたフィールド装置またはコントローラにより実行される複数のプロセス・ループのスケジュールを立てると共に、プロセス・ループ(複)を各々のループ実行期間に確実に実行できるようにすることが可能になる。すなわち、より短いループ実行期間(即ち、より速いループ実行速度)に関連したプロセス・ループは、ループ実行期間がより長い(即ち、ループ実行速度がより遅い)プロセス・ループより比較的速く実行できる。このように、機能ブロック実行用スケジュールを生成するのに使用される公知の方法のいくつかとは異なり、同一の通信バスに関連した全ループのループ実行期間を最長ループ実行期間と等しくする必要がない。
ここで図1を参照するに、ここに実施例として記載される方法および機器を実施するのに使用しうる実施例として挙げられるプロセス制御システム100は、ワークステーション102(例えば、アプリケーションステーション、オペレータステーションなど)およびコントローラ106を含む。これらは両者とも、一般にアプリケーション制御ネットワーク(ACN)と呼ばれるローカル・エリア・ネットワーク(LAN)108またはバスを介して通信可能に連結されうる。LAN 108は所望のあらゆる通信媒体およびプロトコルを使用して実施されうる。例えば、LAN 108は、ハードワイヤードまたはワイヤレスEthernet(登録商標)通信方式に基づいていてもよい。これについては周知の方式であるため、ここにおいてさらに詳しく説明しない。但し、通常の技術を有する当業者にとっては、その他の適切な通信媒体およびプロトコルを使用しうることが容易に理解できるはずである。さらに、LANが一つ備えられた状態で図示されているが、ワークステーション102内において一つ以上のLANおよび適切な通信ハードウェアを使用して、ワークステーション102と該当する同類のワークステーション(図示せず)との間に冗長通信路を提供してもよい。
ワークステーション102は、一つ又は複数の情報技術(IT)アプリケーション、ユーザ対話型アプリケーション、且つ又は通信アプリケーションに関連した操作を行うように構成しうる。例えば、ワークステーション102は、所望のあらゆる通信媒体(例えば、ワイヤレス、ハードワイヤードなど)およびプロトコル(例えば、HTTP、SOAPなど)を用いて、その他の装置またはシステムとワークステーション102がコントローラ106と通信することを可能にする通信アプリケーションおよびプロセス制御関連アプリケーションに関連した操作を行うように構成しうる。ワークステーション102は、あらゆる適切なコンピュータシステムまたは処理システム(例えば、図23のプロセッサーシステム2310)を使用して実施されうる。例えば、シングルプロセッサのパソコン、シングルまたはマルチプロセッサのワークステーションなどを使用して、ワークステーション102を実施することが可能である。
コントローラ106は、ワークステーション102または何らかのワークステーションを使用するシステム・エンジニアまたはその他のシステムオペレータにより生成され且つコントローラ106にダウンロードされそこにおいてインスタンスが作成されている一つ又は複数のプロセス制御ルーチンを実行しうる。コントローラ106には、例えば、Emerson Process Management(登録商標)およびFisher-Rosemount Systems, Inc.社により販売されるDeltaV(登録商標)コントローラを使用しうる。但し、その代りとしてその他のコントローラを使用してもよい。さらに、図1においてはコントローラが一つだけ備えられている状態で図示されているが、所望のあらゆるタイプの、または所望のあらゆるタイプの組み合わせからなる別のコントローラをさらに追加してLAN108に連結できる。
コントローラ106は、デジタルデータバス114および入出力(I/O)装置116を介して複数のフィールド装置112a〜cに連結されうる。プロセス制御ルーチンを実行中、コントローラ106はフィールド装置と112a〜cと情報(例えば、指令、構成情報、測定情報、状態情報、等)を交換しうる。例えば、コントローラ106には、(コントローラ106による実行されると)フィールド装置112a〜cに指定された動作を行なわせる(例えば、計測やバルブの開へなどを行なわせる)且つ又はデジタルデータバス114を介して情報(例えば、計測データ)を通信させる指令がコントローラ106からフィールド装置112a〜cに対して送られるようにするプロセス制御ルーチンを備えうる。
プロセス制御システム100内のフィールド装置112a〜cを識別するために、フィールド装置112a〜cのそれぞれには、独特の物理的装置タグ(PDT)が備えられている(例えば、格納されている)。例えば、第1のフィールド装置112aの物理的装置タグはPDT1である。第2のフィールド装置112bの物理的装置タグはPDT2である。また、第3のフィールド装置112cの物理的装置タグはPDT3である。ここに示される実施例において、フィールド装置112a〜cは、第1の圧力トランスミッタ112a、第2の圧力トランスミッタ112bおよびデジタル・バルブ・コントローラ(DVC)112cを含む。但し、その他のタイプのフィールド装置(例えば、バルブ、アクチュエータ、センサー、等)を、ここに実施例として記載される方法および機器に関連して使用してもよい。
ここに示される実施例において、フィールド装置112a〜cは、周知のFieldbusプロトコルを使用し、デジタルデータバス114を介して通信するように構成されたFieldbus適合装置である。Fieldbus標準によると、デジタルデータバス114は、計測および制御装置(例えば、フィールド装置112a〜c)に通信可能に連結されるように構成されたデジタル、双方向、マルチドロップ通信バスである。フィールド装置112a〜cは、マルチドロップ構成内のデジタルデータバス114に通信可能に連結された状態で図示されている。デジタルデータバス114またはそれに類似したデータバスはその代わりに、一つのフィールド装置がI/O装置116と通信するデジタルデータバス専用に設けられている二地点間構成を使用してフィールド装置をI/O装置116に通信可能に連結するのにも使用されうる。代替の実施例として挙げられる実施形態における方法および機器は、Fieldbus適合装置を含みえるまたは含みえないその他のタイプのフィールド装置(例えば、周知のProfibusおよびHART通信プロトコルを使用して、データバス114を介して通信するProfibusまたはHARTプロトコル適合装置)に関連しても使用されうる。また、デジタルデータバス114は、ここにおいて「セグメント」とも指称される。「セグメント」とは、それの特性インピーダンスにて終端処理される物理バスを示すFieldbus用語である。図1に示される実施例において、デジタルデータバス114は一つのセグメントを形成する。ここに実施例として記載される方法および機器は、一つのセグメント(例えば、デジタルデータバス114)、またはより長い論理バスを形成するために中継器を使用して連結された二つ以上のセグメント(例えば、デジタルデータバス114および、一つ又は複数のその他のデジタルデータバス)に関連して実施されうる。
ここに示される実施例において、I/O装置116は、Fieldbusプロトコルまたはその他のタイプの通信プロトコル(例えば、Profibusプロトコル、HARTプロトコル、等)を使用しうるその他のフィールド装置に、コントローラ106およびフィールド装置112a〜cを接続することを可能にする入出力サブシステムインターフェースを使用して実施される。例えば、I/O装置116は、Fieldbusプロトコルとその他の通信プロトコルの間で翻訳を行う一つ又は複数のゲートウェイを含みうる。フィールド装置のさらに別のグループがコントローラ106と通信できるようにするために、さらに(I/O装置116に類似するか同一の)I/O装置を追加してコントローラ106に連結してもよい。
実施例として挙げられるプロセス制御システム100は、ここに実施例として挙げられ以下詳細にわたり説明されている方法および機器を有利に採用しうるタイプのシステムを説明するために提示されている。但し、ここに実施例として記載される方法および機器は、望ましい場合は、図1に示される実施例として挙げられるプロセス制御システム100より複雑な又はより簡易的なその他のシステム、且つ又はプロセス制御活動、企業管理動作、通信活動などに関連して使用されるシステムにおいてでも有効に採用しうる。
図1に示される実施例においては、モジュール120が、コントローラ106且つ又はフィールド装置112a〜cにより実行されるプロセス制御ルーチンを定義するためにワークステーション102に構成される。モジュール120は、プロセス制御ルーチンを実施するフィールド装置112a〜cにより実行される機能を定義する複数の機能ブロック122a〜eを含む。該機能は、装置112a〜cに測定値(例えば、電圧値、温度値、流動値、電圧値、現在値、等)を取得させたり、アルゴリズムまたは計算(例えば、積分、微分、たし算、ひき算、等)を行なわせたり、計装(例えば、バルブ開閉、炉調節、ボイラ調節、等)を制御させたり、或いはその他の機能を行なわせる。ここに示される実施例において、フィールド装置112a〜cは、機能ブロック122a〜eの各々該当するものにより定義される機能を機械実行可能命令の形で格納し実行する。しかしながら、その他の実施例として挙げられる実施形態においては、一つ又は複数の機能ブロック122a〜eの代わりとして(またはそれに加えて)、フィールド装置112a〜cのうちの一つによってではくコントローラ106により実行される機能を示す機能ブロックをモジュール120に備えうる。
ワークステーション102はまた、フィールド装置112a〜c且つ又はコントローラ106により実行されるその他の機能ブロック(図示せず)の一つ又は複数を有する別のモジュール124を構成するのに使用されうる。二つのモジュール(モジュール120および124)が備えられた状態で図示されているが、コントローラ106且つ又はフィールド装置112a〜cにより実行される別の機能ブロックをさらに追加して備えるワークステーション102に、より多くのモジュール備えるようにも構成しうる。その他のモジュール(複数可)は、その他のプロセス制御ルーチンを実施するため、且つ又は、モジュール120および124に関連してプロセス制御ルーチンを実施するために使用してもよい。
図示する実施例において機能ブロック122a〜eは、第1のアナログ入力(AI1)機能ブロック122a、第1の比例・積分・微分(PID1)機能ブロック122b、第2のアナログ入力(AI2)機能ブロック122c、PID2機能ブロック122dおよびアナログ出力(AO1)機能ブロック122eを含む。AI1機能ブロック122aおよびPID1機能ブロック122bは、フィールド装置112aにより実行される機能を定義する。AI2機能ブロック122cは、フィールド装置112bにより実行される機能を定義する。PID2機能ブロック122dおよびAO1機能ブロック122eは、フィールド装置112cにより実行される機能を定義する。代替の実施例として挙げられる実施形態においては、機能ブロック122a〜eの代わりに、またはそれに加えて、その他のタイプの機能ブロックを使用しうる。
図2は、機能ブロック122a〜eのグラフィカルユーザインタフェース(GUI)表示を表す。機能ブロック122a〜eは、例えばワークステーション102により実行されるGUIベースの設計ソフトウェア・アプリケーションを使用して、ユーザ(例えば、エンジニア、オペレータ、等)により相互接続しうる。図2に示されるように、機能ブロック122a〜eのそれぞれは、一つ又は複数の入力且つ又は、一つ又は複数の出力を含む。機能ブロック122a〜eの入力且つ又は出力の接続は、モジュール120(図1)のプロセス制御ルーチンを定義する。機能ブロック122a〜e間の接続は、ここにおいて機能ブロック接続線と指称される。ここに示される実施例において、AI1機能ブロック122aの出力はPID1機能ブロック122bの入力に接続され、PID1機能ブロック122bおよびAI2機能ブロック122cの出力はPID2機能ブロック122dの入力に接続され、そして、PID2機能ブロック122dの出力はAO1機能ブロック122eの入力に接続される。
図3を簡単に参照すると、実施例として挙げられる機能ブロック結合構成202(即ち、結合構成202)は、AI2機能ブロック122cからPID2機能ブロック122dへの情報の通信を可能にするためにAI2機能ブロック122cの出力204をPID2機能ブロック122dの入力206に結び付けることができる代表的な方法を示す目的で提示されている。結合工程により、機能ブロック(例えば、図1および図2の機能ブロック122a〜e)間の接続に基づいた結合構成202を生成する。結合工程により、例えば、機能ブロックが機能ブロック相互接続に準じて情報を交換することを可能にするために新しい機能ブロック接続(例えば、出力204および入力206間の接続)が構成される度に、ワークステーション102によって実行できる。
結合工程により、装置内の通信機構および装置間のリンクにより装置間の通信ができることを可能にするために装置内のリンクを作成するように構成される。装置内のリンクは、同じ装置に関連した二つの機能ブロック間の接続を定義する。例えば、機能ブロック122aおよび122bにより定義される機能が同じ装置(図1のフィールド装置112a)により実行されるので、装置内のリンクは、AI1機能ブロック122a(図1および図2)およびPID1機能ブロック122b(図1および図2)間の接続を定義する。装置間のリンクは、二つのフィールド装置を通信可能に連結する通信バス(例えば、図1のデジタルデータバス114)を介してフィールド装置を通信させるために、一つのフィールド装置内の機能ブロックと別のフィールド装置内の機能ブロック間の接続を定義する。例えば、AI2機能ブロック122cに関連した機能がフィールド装置112b(図1)により実行され、PID2機能ブロック122dに関連した機能がフィールド装置112c(図1)により実行されるので、装置間リンクは、AI2機能ブロック122c(図1〜3)およびPID2機能ブロック122d間の接続を定義する。
図3に示される実施例において、c、AI2機能ブロック122cをPID2機能ブロック122dに結び付けるための装置間リンク構成を作成する。初期段階において、結合工程により、出力204を入力206にリンクするための情報を含む装置〜装置リンク・オブジェクト208(例えば、装置間リンク・オブジェクト)を作成する。同じ装置に関連した機能ブロックを結び付けるのに使用される代替の実施例として挙げられる実施形態において、結合工程により装置内のリンク・オブジェクト(図示せず)が作成されることになる。図3の実施例として挙げられる結合構成202において、その後、結合工程により、公開者リンク210を作成し、出力204と公開者リンク210を関連付けて、公開者リンク210を装置〜装置リンク・オブジェクト208に結び付ける。また、結合工程により、受信登録者リンク212を作成し、入力206と受信登録者リンク212を関連付けて、受信登録者リンク212を装置〜装置リンク・オブジェクト208に結び付ける。
結合工程によってさらに、公開者用バーチャル通信資源 (VCR:Virtual Communication Resource) 214および受信登録者用VCR216が作成される。VCRは、機能ブロック間の接続のアイデンティティ(識別可能特性)を維持(または持続)して、該VCRのアイデンティティを利用して機能ブロック間のいかなる通信を行えるようにする。ここに示される実施例において、公開者用VCR 214は、AI2機能ブロック122cの独自の識別特性218を公開者リンク210に関連付け、受信登録者用VCR 216は、PID2機能ブロック122dの独自の識別特性220を受信登録者リンク212に関連付ける。一般に、公開者/受信登録者用VCR(例えば、公開者用VCRおよび受信登録者用VCR214および216)は、一対多数同時通信(例えば、一つの機能ブロックが多くの機能ブロックに対して同時に情報を通信すること)を含む機能ブロック間のバッファ処理済通信を可能にする。ここに示される実施例において、AI2機能ブロック122cは、新しいデータを生成した後に出力204を介してPID2機能ブロック122dにデータを通信する(または発行する)。PID2機能ブロック122dは出力204にとっての受信登録者であり、したがって、出力204を介して公開されたデータを受け取る。
図2を再び参照するに、機能ブロック122a〜eは、ループを形成するために連結または接続される。特に、AO1機能ブロック122eの出力は、PID2-AO1ループ232を形成するために、PID2機能ブロック122dの入力に連結または接続される。また、PID2機能ブロック122dの出力は、PID1-PID2ループ234を形成するために、PID1機能ブロック122bの入力に接続される。ここに示される実施例において、PID1-PID2ループ234は、PID2-AO1ループ232ほど頻繁に実行されない(例えば、PID1-PID2ループ234は、PID2-AO1ループ232より長いループ実行期間またはより遅いループ実行速度を有する) 。
ループ232のループ実行期間は、機能ブロック122c〜eのブロック走査周波数(BSRの)に基づき、ループ234のループ実行期間は、機能ブロック122a〜bのブロック走査周波数に基づく。ブロック走査周波数は、機能ブロックが別の機能ブロックへの情報をどれくらいの頻繁で通信するのかを公開または定義する。例えば、フィールド装置112aがAI1機能ブロック122aを実行し、デジタルデータバス114についての情報を2000ミリ秒ごとに公開する場合、AI1機能ブロック122aのブロック走査周波数は2000ミリ秒となる。各々の機能ブロックを実行するフィールド装置(またはコントローラ)に必要な時間は、ここにおいて「ブロック実行時間」と指称される。例えば、フィールド装置112aがAI1機能ブロック122aを実行するために20ミリ秒(ms)を必要とする場合、AI1機能ブロック122aのブロック実行時間は20ミリ秒となる。機能ブロック122a〜eに対して各々関連付けられているブロック実行時期tE1、tE2、tE3、tE4、およびtE5が、実施例として図4および図5に示されている。ブロック走査周波数は一般に機能ブロック間で異なる。ここに示される実施例において、機能ブロック122aおよび122bに関連したブロック走査周波数は、機能ブロック122c〜eに関連したブロック走査周波数を下回る。結果として、PID1-PID2ループ234はPID2-AO1ループ232ほど頻繁に実行しない(例えば、ループ速度がより遅い、ループ周期性がより長い、等)。
図4を参照するに、実施例として挙げられる実行順序図400は、図2のループ232の連続する二つのループ実行中における機能ブロック122c〜eの実行間のタイミング関係を表す。AI2機能ブロック122cの実行は参照番号402により示されており、PID2機能ブロック122dの実行は参照番号404により示されており、AO1機能ブロック122eの実行は参照番号406により示されている。ここにおいては、マクロ周期がループの単一の実行(例えば、ループ232の単一の実行)を示すのに使用されている。ループを実行するのに必要な時間は一般に、最も頻繁が少ないブロック走査周波数を有するループにおける機能ブロックに基づく。公知のシステムにおいて、マクロ周期に関連した各機能ブロックは、そのマクロ周期の間に一回だけ実行されるようになっていなければならない。例えば、図4において、各機能ブロック122c〜eは、500ミリ秒の期間を有するマクロ周期408の間に一回だけ実行されるものとして示されている。公知のシステムにおいて、同じセグメント(例えば、デジタルデータバス114のフィールド装置112a〜c)のフィールド装置は、同じマクロ周期に基づいた各々の機能ブロックを実行しなければならない。すなわち、公知のシステムの公知の設計基準ガイドラインは、単一のセグメント(例えば、デジタルデータバス114)で異なるマクロ周期を実行しないように指定している。走査周波数が低い(例えば、2秒の走査周波数)を有するループ232に別の機能ブロックが導入されると、全機能ブロック(例えば、2秒の走査周波数を有する機能ブロック122c〜eおよび追加された機能ブロック)の実行を完了させるためには、マクロ周期408の間に一回、マクロ周期408の期間を延長しなければならない。
図5は、図2の連続する二つの200ミリ秒ループ234の実行時における図1および図2の機能ブロック122a〜bを実行する間のタイミング関係を示す別の実施例として挙げられる実行順序図500を示す。AI1機能ブロック122aの実行は参照番号502により示され、機能ブロック122bの実行は参照番号504により示される。機能ブロック122a〜bのブロック走査周波数は機能ブロック122c〜eよりも低周波であるので、ループ234は、ループ232と比較して少ない頻度で実行される。ここに示される実施例において、ループ234に関連したマクロ周期502の所要時間は、頻度の少ないループ234の実行を完了させるために2000ミリ秒になっている。
図6は、同じセグメント(例えば、デジタルデータバス114)にある異なるブロック走査周波数を有する機能ブロック(例えば、図1〜2、4および5の機能ブロック122a〜e)を実行する公知の方法に準じて実施される実施例として挙げられる実行順序図600を示す。具体的に、公知の方法によると、同じセグメント(例えば、デジタルデータバス114)の機能ブロック122a〜eの実行期間が2000ミリ秒であるマクロ周期602は、機能ブロック122a〜eのうち最も遅いブロック走査周波数に基づいて選択されている。このように、各機能ブロック122a〜eは、マクロ周期602ごとに一回実行される。実施例として挙げられる実行順序600を実施するために、機能ブロック122c〜eのブロック走査周波数が下げられ、ループ232のループ実行期間をループ234のループ実行期間と同等のものにする。
機能ブロック122c〜eのブロック走査周波数を下げることにより、機能ブロック122c〜eおよび機能ブロック122a〜bを同じセグメントで実行することが可能になるが、その反面、機能ブロック122c〜eのブロック走査周波数を下げることにより、機能ブロック122a〜bのブロック走査周波数よりも速い速度で機能ブロック122c〜eを実行できなくなる。いくつかの実施形態において、機能ブロック122a〜bのブロック実行期間より速く機能ブロック122c〜eを実行することが有利な場合がある。例えば、AI2機能ブロック122cがフィールド装置112b(図1)に圧力計測を取得させるようになっている場合、図4に示されるように500ミリ秒の間隔でAI2機能ブロック122cを実行することによって、フィールド装置112bがデジタルデータバス114を通じて比較的高解像度で(例えば、高細分性を伴って)複数の圧力計測を取得または公開することが可能になる。図4に示されるように圧力計測をより高い周波で(例えば、比較的高解像度で)取得することにより、フィールド装置112bが、例えば、500ミリ秒の範囲で生じる圧力の一時的な急降下、急上昇またはその他の比較的高周波を伴う挙動を捕らえることができるようにすることが可能になる。対照的に、公知の方法により実施例として挙げられる実行順序600を生成するためにAI2機能ブロック122cのブロック走査周波数を遅らせると、2000ミリ秒以下の範囲で生じる一時的な急降下、急上昇またはその他の比較的高周波を伴う挙動をフィールド装置112bが捕らえられなくなる。
全ループのループ実行期間を同じにすることにより単一のセグメントで複数のループを実行するために実施例として挙げられる実行順序600を生成するのに使用される公知の方法とは異なり、ここに示される実施例として挙げられる方法および機器は、同じセグメントにあり異なるループ実行期間を有する複数のループのスケジュールを立てることを可能にする。図7を参照するに、ここに実施例として記載される方法および機器に準じて実施される実施例として挙げられる実行順序図700によると、図2〜4のループ232および234を、各々のループ実行期間に応じて実行できるようになる。このように、ブロック走査周波数のより速い機能ブロックを、同じセグメントにあるブロック走査周波数のより遅い機能ブロックより速い速度で実行できる。
デジタルデータバス114を通じて各々の速度でループ232および234を実行できるようにするために、ここに実施例として記載される方法および機器は、図7において機能ブロック122a〜eの複数の機能ブロック実行402、404、406、502および504として示されるスケジュール702(即ち、機能ブロック実行スケジュール)を生成する。ここに示される実施例において、スケジュール700は、時間t0で開始するようになっているスケジュール開始時間704を含む。機能ブロック実行402、404、406、502および504のそれぞれは、スケジュール開始時間704に相対して、各々の開始時間オフセット(例えば、オフセット)から開始する。図7において、実施例として挙げられる開始時間オフセット706は、AI2機能ブロック122cの機能ブロック実行402のうちの一つがスケジュール開始時間704に相対して開始する状態で示されている。
スケジュール700は、機能ブロック122a〜eのブロック走査周波数およびモジュール120のモジュール実行期間(TME)に基づいて決定される。モジュール実行期間(TME)は、モジュール120中の機能ブロック(例えば、機能ブロック122a〜eの一つ)に関連した最も遅い(又は最も低周波の)ブロック走査周波数の逆値に等しい。例えば、AI1機能ブロック122aおよびPID1機能ブロック122bが、モジュール120の機能ブロック122c〜eのブロック走査周波数1走査/500ミリ秒より遅いブロック走査周波数1走査/2000ミリ秒を有するので、モジュール120のモジュール走査期間(TME)は2000ミリ秒となる。
ここに示される実施例として挙げられる方法および機器は、各機能ブロック(例えば、機能ブロック122a〜eのそれぞれ)の開始時間オフセットを一つ又は複数生成するように構成される。機能ブロックの開始時間オフセットの数値は、その機能ブロックのブロック未加工実行期間(TBRE)とその機能ブロックを実行するように構成されたフィールド装置に関連した最も遅いブロックの生の実行期間(TSBE)とに基づいて決定される。ブロック未加工実行期間(TBRE)は、スケジュール(例えば、図7のスケジュール702)を無視して機能ブロックを実行する間隔の時間の長さを定義し、且つ、以下の方程式1に応じて決定できるものである。
TBRE=TME*FBSR (式1)
上記の方程式1に示されるように、特定の機能ブロックに関するブロック未加工実行期間(TBRE)は、機能ブロックを含むモジュールのモジュール実行期間(TME)に、機能ブロックのブロック走査周波数因子(FBSR)を掛けることによって決定される。ブロック走査周波数因子(FBSR)は、機能ブロックの連続する二つの実行の開始時間の間のモジュール実行期間(TME)の数(quantity)に等しく、以下の方程式2を使用して決定されうる。
FBSR=TME/BSR (式2)
上記の方程式2および図7を参照するに、モジュール120(図1)のモジュール実行期間(TME)が2000ミリ秒で、機能ブロック122aが2000ミリ秒(BSR=2000ミリ秒)ごとに実行されるように構成されている場合、AI1機能ブロック122aの連続する二つの実行の開始点の間に、一つのモジュール実行期間(TME)が経過するので、AI1機能ブロック122aのブロック走査周波数因子(FBSR)は1となる。図7において、AI2機能ブロック122cは、500ミリ秒ごとに(BSR=500ミリ秒で)実行するものとして示されている。従って、AI2機能ブロック122cの連続する二つの実行の開始点の間に、モジュール実行期間(TME)の四分の一だけが経過するので、AI2機能ブロック122cのブロック走査周波数因子(FBSR)は、四分の一(0.25)となる。
上記の方程式1を再び参照するに、モジュール120のモジュール実行期間(TME)が2000ミリ秒であり、AI1機能ブロック122aのブロック走査周波数因子(FBSR)が1の場合、AI1機能ブロック122aのブロック未加工実行期間(TBRE)は2000ミリ秒となり、AI1機能ブロック122aが2000ミリ秒ごとに実行されることを示す。しかしながら、AI2機能ブロック122cのブロック走査周波数因子(FBSR)が、四分の一(例えば、500ミリ秒(TBRE)=2000ミリ秒(TME)x1/4(FBSR))であるので、AI2機能ブロック122cのブロック未加工実行期間(TBRE)は500ミリ秒となる。
上記の方程式1に基づいてブロック未加工実行期間(TBRE)が決定された後、ブロック未加工実行期間(TBRE)が、図8の端数処理一覧表800に基づいて切り上げられる。スケジュール702(図7)を数回繰り返すうちに機能ブロックの実行(例えば、図7の機能ブロック実行402、404、406、502および504)が狂わないようにする手段として、ブロック未加工実行期間(TBRE)は切り上げられ、丸め済ブロック未加工実行期間(RTBRE)の境界に基づいて各機能ブロックに必要な開始時間オフセット数(QS)が決定される。端数処理一覧表800に示されるように、機能ブロックのブロック未加工実行期間(TBRE)が0〜500ミリ秒である場合、ブロック未加工実行期間(TBRE)は該丸め済ブロック未加工実行期間(RTBRE)まで切り上げられる。同様に、機能ブロックのブロック未加工実行期間(TBRE)が、500ミリ秒から1000ミリ秒の間、または1000ミリ秒から2000ミリ秒の間、或いは2000ミリ秒以上にある場合、ブロック未加工実行期間(TBRE)は、該丸め済ブロック未加工実行期間(RTBRE)値1000ミリ秒、2000ミリ秒または4000ミリ秒に各々切り上げられる。
図7に戻って参照するに、スケジュール702はサブスケジュール710および712を使用して実施される。ここに示される実施例において、サブスケジュール710の期間は500ミリ秒であり、図2および図4のループ232のループ実行に関連する。サブスケジュール712の期間は2000ミリ秒であり、図2および図5のループ234のループ実行をに関連する。スケジュール702の生成中、サブスケジュール710は、まず最初に生成され、その後、図7に示されるように該2000ミリ秒スケジュール702を埋めるために3回複製される。サブスケジュール710が生成された後、期間が次に最も短いサブスケジュール(例えば、サブスケジュール712)が生成される。サブスケジュール710および712が生成された後に、サブスケジュール710および712はスケジュール702を生成するためにマージされる。
図7に示されるように、サブスケジュール710の間に、実行402、404および406がそれぞれ一回行われる。従って、機能ブロック122c〜eのそれぞれがサブスケジュール710用に必要な開始時間オフセットは一つだけである。また、サブスケジュール712の間に、機能ブロック122a〜bがそれぞれ一回だけ実行される。従って、機能ブロック122c〜eのそれぞれがサブスケジュール712用に必要な開始時間オフセットは一つだけである。
機能ブロック(例えば、図1および図2の機能ブロック122a〜eの一つ)により必要とされるサブスケジュール(例えば、サブスケジュール710またはサブスケジュール712)用の開始時間オフセット数(QS)(例えば、開始時間オフセット706)は、機能ブロックの丸め済ブロック未加工実行期間(RTBRE)と機能ブロックを実行するフィールド装置(例えば、図1のフィールド装置112a〜cの一つ)と関連した最も遅い丸め済ブロック未加工実行期間(RTSRE)に基づいて決定される。機能ブロック用の開始時間オフセット数(QS)は以下の方程式3を使用して決定できる。
QS=RTSRE/RTBRE (式3)
上記方程式3に示されるように、機能ブロック用の開始時間オフセット数(QS)は、機能ブロックを実行するフィールド装置に関連した最も遅い丸め済ブロック未加工実行期間(RTSRE)を、機能ブロックの丸め済ブロック未加工実行期間(RTBRE)で割ることより決定される。
PID2機能ブロック122d用の開始時間オフセット数(QS)を決定するために方程式3を使用する際に、まず最初に関与してくる作業として、PID2機能ブロック122dを実行するフィールド装置112cに関連した最も遅い丸め済ブロック未加工実行期間(RTSRE)を決定することが含まれる。ここに示される実施例において、PID2およびAO1機能ブロック122d〜eは、フィールド装置112cにより実行される唯一の機能ブロックである。従って、フィールド装置112cに関連した最も遅い丸め済ブロック未加工実行期間(RTSRE)が、より遅い丸め済ブロック未加工実行期間(RTBRE)を有する機能ブロック122d〜eのうちの一つの丸め済ブロック未加工実行期間(RTBRE)と等しくなる。機能ブロック122d〜eの丸め済ブロック未加工実行期間(RTBRE)は両方とも500ミリ秒であるので、最も遅い丸め済ブロック未加工実行期間(RTSRE)が500ミリ秒に設定される。
フィールド装置112cに関連した最も遅い丸め済ブロック未加工実行期間(RTSRE)を決定した後に、方程式3に使用して、500ミリ秒(フィールド装置112cに関連した最も遅い丸め済ブロック未加工実行期間(RTSRE))を500ミリ秒(PID2機能ブロック122dの丸め済ブロック未加工実行期間(RTBRE))で割ることによって、PID2機能ブロック122dに必要とされる開始時間オフセット数(QS)を決定することができる。この割り算により、サブスケジュール710で実行すべきPID2機能ブロック122dにより必要とされる開始時間オフセット数(QS)は1であることが示される。
図9の実施例として挙げられる開始時間オフセット数一覧表900は、図7のサブスケジュール712中で実行を行うために機能ブロック122a〜bにより必要とされる開始時間オフセット数(QS)と、図7のサブスケジュール710中で実行を行うために機能ブロック122c〜eにより必要とされる開始時間オフセット数(QS)とを示す。また、開始時間オフセット数一覧表900は、ブロック走査周波数因子(FBSR)、ブロック未加工実行期間(TBRE)、および丸め済ブロック未加工実行期間(RTBRE)も示す。
図10は、モジュール1020の機能ブロック1022a〜eに基づいてプロセス制御システムを実施するために、デジタルデータバス1014に複数のフィールド装置1012a〜cが通信可能に連結されている別の実施例として挙げられる機能ブロック構成1000を表す。図9の開始時間オフセット数一覧表900に示されるように、開始時間オフセットを一つだけ必要とする図1および図2の機能ブロック122a〜eとは異なり、図10に示される機能ブロック1022a〜eのうちのいくつかは、下記されるように複数の開始時間オフセットを必要とする。複数のフィールド装置1012a〜cは、図1のフィールド装置112a〜cに類似するか、またはそれと同一のものであり、デジタルデータバス1014は、図1のデジタルデータバス114に類似するか、またはそれと同一のものである。図10に示されるように、フィールド装置1012aは、AI11機能ブロック1022a、AI12機能ブロック1022cおよびAO11機能ブロック1022eにより定義される機能を実行し、フィールド装置1012bはPID12機能ブロック1022bにより定義される機能を実行し、そしてフィールド装置1012cはPID13機能ブロック1022dにより定義される機能を実行する。
AI11機能ブロック1022aは図1および2のAI1機能ブロック122aに類似するかまたは同一のものであり、PID12機能ブロック1022bは図1および2のPID1機能ブロック122bに類似するかまたは同一のものであり、AI12機能ブロック1022cは図1および2のAI2機能ブロック122cに類似するかまたは同一のものであり、PID13機能ブロック1022dは図1および2のPID2機能ブロック122dに類似するかまたは同一であり、そしてAO11機能ブロック1022eは図1および2のAO1機能ブロック122eに類似するかまたは同一のものである。例えば、AI11機能ブロック1022aおよびPID12機能ブロック1022bのブロック走査周波数は、2000ミリ秒である。また、機能ブロック1022c〜eのブロック走査周波数は500ミリ秒である。図示されてはいないが、機能ブロック1022a〜eの間の接続は、図2に示される機能ブロック122a〜eの間の接続と同一のものである。
別の実施例として図11に示される開始時間オフセット数一覧表1100は、各々のブロック走査周波数因子(FBSR)、ブロック未加工実行期間(TBRE)、および丸め済ブロック未加工実行期間(RTBRE)に基づいて決定された、各機能ブロック1022a〜e(図10)の開始時間オフセット数(QS)を示す。各機能ブロック1022a〜eのブロック未加工実行期間(TBRE)は、モジュール1020のモジュール実行期間(TME)およびブロック走査周波数因子(FBSR)に基づいて決定される上記方程式1に基づいて決定される。その後、ブロック未加工実行期間(TBRE)のそれぞれが丸められ、各機能ブロック1022a〜eの丸め済ブロック未加工実行期間(RTBRE)が決定される。
その後、各機能ブロック1022a〜eの開始時間オフセット数(QS)が上記方程式3に基づいて決定される。図11に示されるように、参照番号1102は、AI12機能ブロック1022c(PDT11/FFAI12)にとっての4に等しい開始時間オフセット数(QS)を示す。AI12機能ブロック1022c用に開始時間オフセット数(QS)を決定するために、フィールド装置1012aに関連した最も遅い丸め済ブロック未加工実行期間(RTSRE)がまず決定される。図10に示される実施例において、フィールド装置1012aはAI11機能ブロック1022a、AI12機能ブロック1022cおよびAO11機能ブロック1022eを実行するように構成される。従って、最も遅い丸め済ブロック未加工実行期間(RTSRE)が、AI11機能ブロック1022aの丸め済ブロック未加工実行期間(RTBRE)、AI12機能ブロック1022cの丸め済ブロック未加工実行期間(RTBRE)、およびAO11機能ブロック1022eの丸め済ブロック未加工実行期間(RTBRE)のうちで最も遅い。図11に示されるように、AI11機能ブロック1022a(PDT11/FFAI11)の丸め済ブロック未加工実行期間(RTBRE)は2000ミリ秒であり、AI12機能ブロック1022c(PDT11/FFAI12)の丸め済ブロック未加工実行期間(RTBRE)は500ミリ秒であり、そして、AO11機能ブロック1022e(PDT11/FFAO11)の丸め済ブロック未加工実行期間(RTBRE)は500ミリ秒である。従って、フィールド装置1012aに関連した最も遅い丸め済ブロック未加工実行期間(RTSRE)は2000ミリ秒である。上記の方程式3に準じて、AI12機能ブロック1022cにより必要とされる開始時間オフセット数(QS)を決定するために、2000ミリ秒(AI12機能ブロック1022cの丸め済ブロック未加工実行期間(RTBRE))を500ミリ秒(フィールド装置1012aに関連した最も遅い丸め済ブロック未加工実行期間(RTSRE))で割って計算することにより照合番号1102により示されるような4の値を得る。
表1100はまた、照合番号1104に示されるようにAI11機能ブロック1022a(PDT11/FFAI11)により必要とされる開始時間オフセット数(QS)は1であることを示す。図示する実施例においては、AI11機能ブロック1022aの丸め済ブロック未加工実行期間(RTBRE)(2000ミリ秒)は、フィールド装置1012aに関連した最も遅い丸め済ブロック未加工実行期間(RTSRE)(2000ミリ秒)と等しい一方、AI12機能ブロック1022cの丸め済ブロック未加工実行期間(RTBRE)(500ミリ秒)は、フィールド装置1012aに関連した最も遅い丸め済ブロック未加工実行期間(RTSRE)(2000ミリ秒)4倍短い時間であることから、AI11機能ブロック1022aは一つの開始時間オフセットを有し、AI12機能ブロック1022cは四つの開始時間オフセットを有する。従って、4は、AI11機能ブロック1022aを一回実行するごとに、フィールド装置1012bは、AI12機能ブロック1022cを4回実行する必要がある。
図12は、スケジュール1202(即ち、機能ブロック実行スケジュール)および各々の機能ブロック1022a〜e(図10)の実行1204、1206、1208、1210および1212を示す別の実施例として挙げられる実行順序図1200である。スケジュール1202は、PID2機能ブロック1022dに関連した500ミリ秒のサブスケジュール1214、および、機能ブロック1022a〜cおよび1022eに関連した2000ミリ秒のサブスケジュール1216を使用して生成される。図に示されるように、スケジュール1202中に、スケジュール1202および2000ミリ秒のサブスケジュール1216が一回生じる間に、500ミリ秒のサブスケジュール1214が4回繰り返される。
図11の表1100によると、2000ミリ秒のサブスケジュール1216においては、AI11機能ブロック1022aが一つの開始時間オフセット(開始時間オフセットt0)を有し、AI12機能ブロック1022cが四つの開始時間オフセット(開始時間オフセットt1、t5、t9およびt11)を有し、AO11機能ブロック1022eが四つの開始時間オフセット(開始時間オフセットt3、t7、t11およびt15)を有し、そして、PID12機能ブロック1022bが一つの開始時間オフセット(開始時間オフセットt1)を有する。また、図11の表1100によると、500ミリ秒のサブスケジュール1214では、PID13機能ブロック1022dが一つの開始時間オフセット(開始時間オフセットt2)を有する。
機能ブロックの開始時間オフセットは、以下の方程式4より決定できる。
tS=NSeq*TBRE+tDA (式4)
上記の方程式4に示されるように、機能ブロックの開始時間オフセット(tS)は、計算の対象となっている現在の開始時間オフセットのシーケンス番号(Nseq)に機能ブロックのブロック未加工実行期間(TBRE)を掛け、それによって得られた結果を機能ブロックのデータ利用可能時間(tDA)にたすことにより決定される。シーケンス番号(Nseq)とは、サブスケジュール(例えば、図7のサブスケジュール710または712のいずれか一つ)の間に機能ブロックの特定の実行インスタンスのことである。例えば、図12において、AI12機能モジュール1022cは、2000ミリ秒のサブスケジュール1216の間に四つの実行インスタンス(即ち、開始時間オフセット数(QS=4;シーケンス番号(Nseq=0〜3)を有する。機能ブロックのデータ利用可能時間(tDA)とは、機能ブロックを実行するのに必要なデータが別の機能ブロックにより利用可能となった時の機能ブロックのブロック未加工実行期間(TBRE)中の時間のことである。例えば、第1の機能ブロックのデータ利用可能時間(tDA)は、第2の機能ブロックからのデータが(例えば、データがデジタルデータバス1014で公開される場合に)第1の機能ブロックを実行するフィールド装置に対して利用可能状態となる時に応じて決定される。第1の機能ブロックが第2の機能ブロックまたは第1の機能ブロックを実行するフィールド装置のその他の機能ブロックからのデータを必要としない場合、第1の機能ブロックのデータ利用可能時間(tDA)はゼロに設定される。さらに別の実施例として、機能ブロックのブロック未加工実行期間(TBRE)が500ミリ秒で、それに対してデータが別の機能ブロックにより500ミリ秒のブロックの未加工実行期間(TBRE)の開始から125ミリ秒で利用可能とされる場合、機能ブロックのデータ利用可能時間(tDA)は125ミリ秒となる。
方程式4およびAI12機能ブロック1022cの実行1206を参照するに、オフセット開始時間(tS)t1、t5、t9およびt11は以下のように決定できる。AI12機能ブロック1022cのブロック未加工実行期間(TBRE)が500ミリ秒である場合、2000ミリ秒のサブスケジュール1216のサブスケジュール実行期間をAI12機能ブロック1022cの500ミリ秒のブロックの未加工実行期間(TBRE)で割った数は4となるので、図12に示されるように、2000ミリ秒サブスケジュール1216の間の開始時間オフセット数(QS)は4(即ち、シーケンス番号(Nseq=0〜3)となる。また、AI12機能ブロック1022cのデータ利用可能時間(tDA)は、125ミリ秒である。従って、上記方程式4を使用して計算すると、第1のシーケンス番号(NSEQ)に対応する開始時間オフセット(tS)t1は125ミリ秒となり、第2のシーケンス番号(NSEQ)に対応する開始時間オフセット(tS)t5は625ミリ秒となり、第3のシーケンス番号(NSEQ)に対応する開始時間オフセット(tS)t9は1125ミリ秒となり、第1のシーケンス番号(NSEQ)に対応する開始時間オフセット(tS)t11は1625ミリ秒となる。
図13は、図1のフィールド装置112a〜c、図1の機能ブロック122a〜e、および機能ブロック122a〜eに対応する開始時間オフセットを表すオブジェクト間での関係を示す、実施例として挙げられるオブジェクト指向型ソフトウェア実行環境1300である。図1のフィールド装置112aに対応するPDT1装置オブジェクト1302aはFFAI1機能オブジェクト1304aおよびFFPID1機能オブジェクト1304bに結び付けられる。FFAI1機能オブジェクト1304aは、図1のAI1機能ブロック122aに対応し、FFPID1機能オブジェクト1304bは図1のPID1機能ブロック122bに対応する。図1のフィールド装置112bに対応するPDT2装置オブジェクト1302bは、AI2機能ブロック122b(図1)に対応するFFAI2機能ブロック1304cおよびPID2機能ブロック122c(図1)に対応するFFPID2機能オブジェクト1304dに結び付けられる。図1のフィールド装置112cに対応するPDT3装置オブジェクト1302cは、AO1機能ブロック122e(図1)に対応するFFAO1機能ブロック1304eに結び付けられる。
図9の開始時間オフセット数一覧表900によると、機能オブジェクト1304a〜eのそれぞれは、図13に示される複数の開始時間オフセット1306a〜eのうちの各々該当する一つを有する。データ構造を使用して、開始時間オフセットのそれぞれをメモリ(例えば、図1のワークステーション102のメモリ)に格納できる。図13に示される実施例において、開始時間オフセット1306に対応する実施例として挙げられる開始時間オフセットデータ構造1310は、FBS形式[シーケンス番号,インデックス値,開始時間オフセット]で開始時間オフセット1306を格納する。該実施例において、シーケンス番号はサブスケジュール(例えば、図7のサブスケジュール710または712のうちの一つ)の間の機能ブロックの特定の実行インスタンスを示し、インデックス値は各々の機能ブロックに開始時間オフセットを関連付けるのに使用されうるものであり、また、開始時間オフセットは、各々の機能ブロックの開始時間オフセット(例えば、開始時間オフセット1306b)を示す。
図14は、図10のフィールド装置1012a〜c、図10の機能ブロック1022a〜e、および機能ブロック1022a〜eに対応する開始時間オフセットを表現するオブジェクト間の関係を示す別の実施例として挙げられるオブジェクト指向型ソフトウェア実行環境1400である。図10のフィールド装置1012aに対応するPDT11装置オブジェクト1402aは、AI11機能ブロック1022a(図10)に対応するFFAI11機能ブロック1404a、AI12機能ブロック1022c(図10)に対応するFFAI12機能オブジェクト1404b、および、図10のAO11機能ブロック1022eに対応するFFA011機能オブジェクト1404cに結び付けられる。図10のフィールド装置1012bに対応するPDT12装置オブジェクト1402bは、PID12機能ブロック1022b(図10)に対応するFFPID12機能ブロック1404dに結び付けられる。図10のフィールド装置1012cに対応するPDT13装置オブジェクト1402cは、PID13機能ブロック1022d(図10)に対応するFFPID13機能ブロック1404eに結び付けられる。
図11の開始時間オフセット数一覧表1100によると、図14に示される複数の開始時間オフセット1406a〜kの中から各々該当するものを一つ又は複数有する。FFA011機能オブジェクト1404cに対応する実施例として挙げられる開始時間オフセットデータ構造1410は、開始時間オフセット1406f〜iを含む開始リスト1412を格納する。オフセットデータ構造1410および図12に実施例として挙げられる実行順序図1200を参照するに、開始時間オフセット1406fはシーケンス番号1およびt3の開始時間オフセットに関連付けられ、開始時間オフセット1406gはシーケンス番号2およびt7の開始時間オフセットに関連付けられ、開始時間オフセット1406hはシーケンス番号3およびt11の開始時間オフセットに関連付けられ、そして、開始時間オフセット1406iはシーケンス番号4およびt15の開始時間オフセットに関連付けられている。
図15は、AO11機能ブロック1022e(図10)に関連した開始リスト1412(図14)がワークステーション102(図1)からフィールド装置1012a(図10)にコピーされる様態の実施例として挙げられるものを図示している。ワークステーション102は、フィールド装置1012a〜cが、図12のスケジュール1202の間に予定されている時間でそれぞれに該当する且つ機能ブロック1022a〜e(図10)に対応する機能を実行することを可能にするために、開始時間オフセット(例えば、開始時間オフセット1406f〜i)を有するフィールド装置1012a〜cに開始リスト(例えば、開始リスト1412)をダウンロードする。図15に示されるように、ワークステーション102は、AO11機能ブロック1022eを含む図10のモジュール1020を格納する。図示されてはいないが、ワークステーション102は、図10に示されるその他の機能ブロック1022a〜dも格納する。ここに示される実施例において、ワークステーション102は、図8の開始時間オフセット1406f〜iを有する開始リスト1412を格納する。図示されてはいないが、ワークステーション102はまた、機能ブロック1022a〜dに対応する開始リストも格納する。
フィールド装置1012aをデジタルデータバス1014に通信可能に連結するように構成されたポート1504を有する図10のフィールド装置1012aもまた、図15に示されている。ポート1504には、デジタルデータバス1014に関連したスケジュール1202(図12)が備えられている。特に、スケジュール1202は、スケジュールの所要時間(例えば、2000ミリ秒)、およびデジタルデータバス1014に通信可能に連結したその他のフィールド装置全て(例えば、フィールド装置1012a〜c)が各々の機能(例えば、図10の機能ブロック1022a〜dに対応する機能)を実行するように構成される時間を、ポート1504に対して示す。
ここに示される実施例において、フィールド装置1012aは、AO11機能ブロック1022eに対応し且つAOフィールド機能(FF)ブロック1506として指定されているアナログ出力機能を格納する。もちろん、フィールド装置1012aは、例えば図10に示されるAI11機能ブロック1022aに対応するAIフィールド機能ブロックを含むその他多くの機能をさらに格納できる。AO11機能ブロック1022e、AOフィールド機能ブロック1506および開始リスト1412は、AO11機能ブロック1022eおよびAOフィールド機能ブロック1506を開始リスト1412中の開始時間オフセット1406f〜iに関連付ける(例えば、入力する)インデックス値1508を格納する。図1のワークステーション102またはコントローラ106におけるスケジュール生成過程が、開始時間オフセット1406f〜iを決定し、開始リスト1412中の開始時間オフセット1406f〜iを格納する。ワークステーション102またはコントローラ106は、デジタルデータバス1014を介して、開始時間オフセット1406f〜iを有する開始リスト1412をフィールド装置1012aに通信する。その後、フィールド装置1012aは、図15に示されるように開始リスト1412を格納する。その後、フィールド装置1012aは、開始時間オフセット1406f〜iを使用して、スケジュール1202に応じた適切な時間でAOフィールド機能ブロック1506を実行する時点を決定する。図示されてはいないが、フィールド装置1012aはまた、AI11およびAI12機能ブロック1022a,1022c(図10)に対応する開始リストを格納する。
図16は、ここに実施例として記載される方法および機器を使用して、スケジュール(例えば、図7および図12のスケジュール702と1202)を生成するために構成された複数のクラス1602a〜iを有する実施例として挙げられるオブジェクト指向プログラミング環境1600を表す。Dbsインターフェース装置クラス1602aは、フィールド装置(例えば、図1のフィールド装置112a〜cまたは図10のフィールド装置1012a〜c)またはフィールド装置オブジェクト(例えば、図13のフィールド装置オブジェクト1302a〜cまたは図14のフィールド装置オブジェクト1402a〜c)と情報を交換するために備えられている。例えば、Dbsインターフェース装置クラス1602aには、フィールド装置またはフィールド装置オブジェクトと通信するように構成された複数の機能または方法が備えられうる。Dbsインターフェース装置クラス1602aの実施例として挙げられる機能は、フィールド装置112a〜cまたは1012a〜cのそれぞれに関連したブロック走査周波数またはブロック未加工実行期間(TBRE)を読み出すことである。
Dbsインターフェース・モジュール・クラス1602bは、スケジュール(例えば、図7のスケジュール702または図12のスケジュール1202)を生成する対象となっている一つ又は複数のフィールド装置(例えば、図1のフィールド装置112a〜cまたは図10のフィールド装置1012a〜c)を含むモジュールまたはモジュールオブジェクト(例えば、図1のモジュール120または図10のモジュール1020)と情報を交換するために備えられている。Dbsインターフェース・モジュール・クラス1602bの実施例として挙げられる機能または方法は、GUI制御システム設計インターフェース(例えば、図2に示される機能ブロック122a〜eの相互接続)を使用して指定された機能ブロックの相互接続により定義されたモジュール(例えば、図1のモジュール120)から機能ブロック(例えば、図1および図2の機能ブロック122a〜e)の実行順番を読み出すように構成されうる。
Dbsスケジュール基準テンプレート・クラス1602cは、スケジュールの基準テンプレート(例えば、図7のスケジュール702を生成する基準テンプレートまたは図12のスケジュール1202を生成する基準テンプレート)を読み出す且つ又は生成するために備えられる。スケジュールの基準テンプレートは、スケジュールを生成するのに必要な基本的な(または根本的な)枠組みを提供する。例えば、スケジュールの基準テンプレートは、スケジュール作成機能ブロックに関連した規則を含んみうる、且つ又は、該基準テンプレートは、デフォルトパラメータ(例えば、スケジュール期間、スケジュール期間ごとの実行、等)を指定しうる。実施例として挙げられる実施形態のいくつかにおいては、スケジュールの基準テンプレートを、例えばワークステーション102中のスケジュール基準テンプレート用データベース(図示せず)から読み出すようにしてもよい。
Dbsスケジュール・クラス1602dは、ここに記載されるようなスケジュール(例えば、図7のスケジュール702、図12のスケジュール1202、またはその他のいかなるスケジュール)を生成するために備えられている。Dbsサブスケジュール・クラス1602eは、ここに記載されるようなサブスケジュール(例えば、図7のサブスケジュール710および712、図12のサブスケジュール1214,1216、或いはその他のいかなるサブスケジュール)を生成するために備えられている。Dbsサブスケジュール基準テンプレート・クラス1602fは、サブスケジュールの基準テンプレート(例えば、図7のサブスケジュール710および712を生成する基準テンプレート、または図12のサブスケジュール1214および1216を生成する基準テンプレート)を読み出す且つ又は生成するために備えられている。サブスケジュールの基準テンプレートは、サブスケジュールを生成するのに必要な基本的な(または根本的)枠組みを提供する。実施例として挙げられる実施形態のいくつかにおいては、サブスケジュールの基準テンプレートを、例えばワークステーション102中のサブスケジュール基準テンプレートデータベース(図示せず)から読み出すようにしてもよい。
Dbs強制データシーケンス・クラス1602gは、スケジュールに関連した強制データシーケンスを構成するために備えられうる。強制データシーケンスは、フィールド装置(例えば、図1のフィールド装置112a〜cの一つ又は図10のフィールド装置1012a〜cの一つ)がいつその他のフィールド装置にそれのデータ(例えば、測定情報、状態情報、等)を通信または公開するかを指定する。ここに示される実施例において、Dbs強制データシーケンス・クラス1602gは、強制データ指令がそれのスケジュール(例えば、図7および図12のスケジュール710および1202)に示される機能ブロックの実行に続いてコントローラ(例えば、コントローラ106)によりフィールド装置に発行されることを保証する。
Dbtスケジュール基準テンプレート・クラス1602hおよびDbtスケジュール・クラス1602iは、スケジュール生成工程中に、およびフィールド装置へケジュールを公開する前に、スケジュール(例えば、スケジュール702または1202のいずれか、またはその他のスケジュール)を生成する一時的作業領域を提供する。
図17は、ここにおいて実施例として示された方法に従ってスケジュールを生成するのに使用されうる実施例として挙げられる機器1700の詳細ブロック図である。実施例として挙げられる機器1700は、ワークステーション102(図1)、コントローラ106(図1)、またはハードウェア、ファームウェア且つ又はソフトウェアの所望のあらゆる組み合わせを使用して実施されうる。例えば、一つ又は複数の集積回路、ディスクリート(単機能)半導体構成素子または受動電子部品を使用しえる。また、その代わりとして、又はそれに加えて、実施例として挙げられる機器1700のブロックのいくつかまたは全て、またはそれの構成部分は、例えばプロセッサーシステム(例えば、図23の実施例として挙げられるプロセッサーシステム2310)によって実行時に図18〜21のフローチャートに示される動作を行う機械アクセス可能媒体に格納されている指示、コード、且つ又はその他のソフトウェア且つ又はファームウェアなどを使用して実施されうる。ソフトウェアの実施例として挙げられる実施形態において、以下の実施例として記載される機器のブロックは、図16を参照して上述されているオブジェクト指向プログラミング・クラス1602a〜gを実施するのに使用されうる。
実施例として挙げられる機器1700には、フィールド装置(例えば、図1のフィールド装置112a〜cまたは図10のフィールド装置1012a〜c)と情報を交換するように構成されたフィールド機器インターフェース1702が備えられている。例えば、フィールド機器インターフェース1702は、フィールド装置112a〜cまたは1012a〜cのそれぞれに関連したブロック走査周波数またはブロック未加工実行期間(TBRE)を読み出しうる。
実施例として挙げられる機器1700には、スケジュール(例えば、図7のスケジュール702または図12のスケジュール1202)を生成する対象となっている一つ又は複数のフィールド装置(例えば、図1のフィールド装置112a〜cまたは図10のフィールド装置1012a〜c)を含むモジュールと情報を交換するように構成されたモジュールインタフェース1704がさらに備えられている。例えば、モジュールインタフェース1704は、GUI制御システム設計インターフェース(例えば、図2に示される機能ブロック122a〜eの相互接続)を使用して、指定された機能ブロックの相互接続により定義されたモジュール(例えば、図1のモジュール120)から機能ブロック(例えば、図1のおよび2の機能ブロック122a〜e)の実行順番を読み出すように構成されうる。
実施例として挙げられる機器1700には、スケジュールの基準テンプレート(例えば、図7のスケジュール702を生成する基準テンプレートまたは図12のスケジュール1202を生成する基準テンプレート)を読み出す且つ又は生成するように構成された、スケジュール基準テンプレートインターフェース1706がさらに備えられている。実施例として挙げられる実施形態において、スケジュール基準テンプレートインターフェース1706は、例えば、モジュール(例えば、図1のモジュール120または図10のモジュール1020)中の機能ブロック(例えば、図1の機能ブロック122a〜eおよび図10の1022a〜e)の数量およびタイプに応じてワークステーション102中のスケジュール基準テンプレート用データベースからスケジュールの基準テンプレートを読み出す。
実施例として挙げられる機器1700にはまた、ここに記載されるようなスケジュール(例えば、図7のスケジュール702、図12のスケジュール1202、またはその他のスケジュール)を生成するように構成されたスケジュール生成ルーチン1708が備えられている。加えて、実施例として挙げられる機器1700には、ここにおいて記載されるようなサブスケジュール(例えば、図7のサブスケジュール710および712、図12のサブスケジュール1214および1216、或いはその他のサブスケジュール)を生成するように構成されたサブスケジュール生成ルーチン1710が備えられている。サブスケジュールの基準テンプレートを生成する又は読み出すために、実施例として挙げられる機器1700にはサブスケジュール基準テンプレートインターフェース1712が備えられている。
実施例として挙げられる機器1700には、スケジュールに関連した強制データシーケンスを生成するように構成された強制データシーケンス生成ルーチン1714がさらに備えられている。例えば、スケジュール生成ルーチン1708がスケジュール(例えば、スケジュール702(図7)または1202(図12)の一つ)を生成し終えた時に、強制データシーケンス生成ルーチン1714は、それのスケジュールに示される機能ブロックの実行に続いてコントローラ(例えば、コントローラ106)が強制データ指令フをィールド装置に発行することを保証するために、スケジュールの強制データシーケンスを生成できる。このように、フィールド装置により生成されたデータ(例えば、測定情報、状態情報、算出結果、等)は、その他の動作を行うためにデータを必要とするその他のフィールド装置に通信又は公開される。
実施例として挙げられる機器1700には、機能ブロック(例えば、図1および図2の機能ブロック122a〜e、そして図10および図12の機能ブロック1022a〜e)を追加・削除・相互結合することにより工程制御の経路指定を設計するのに使用されるGUI設計ソフトウェア・アプリケーション(例えば、図2に示されるような機能ブロック122a〜eを相互に接続するのに使用されるGUI設計ソフトウェア・アプリケーション)から情報や指令などを受信するように構成される構成インターフェース1716がさらに加えて備えられている。例えば、ユーザが二つの機能ブロック間の相互接続を変更すれば、GUI設計ソフトウェア・アプリケーションは構成インターフェース1716に対して、変更の通知および変更の内容を示す情報(例えば、機能ブロックAの出力が機能ブロックBの入力に接続されたことを示す情報)を送信する。また、構成インターフェース1716は、プロセス制御システム構成情報(例えば、デジタルデータバス結合規則、デジタルデータバス、などの限界)を読み出すために、ワークステーション102、または図1のLAN 108に連結されるその他のプロセッサーシステム中の情報構造またはデータベースにアクセスするように構成される。
上記方程式1に従ってブロック未加工実行期間(TBRE)を決定するために、実施例として挙げられる機器1700には、未加工(生の)実行期間決定素子1718がさらに備えられている。実施例として挙げられる機器1700には、図8の端数処理一覧表800に示される丸め値に従ってブロック未加工実行期間(TBRE)を丸めるための端数処理素子1720も備えられている。また、実施例として挙げられる機器1700には、機能ブロックの開始時間オフセット数(QS)および開始時間オフセット値(tS)を生成するように構成された開始時間オフセット決定素子1722が備えられている。例えば、開始時間オフセット決定素子1722は方程式3および4に関連して上記される計算を行うように構成できる。また、機能ブロック(例えば、図1および図2の機能ブロック122a〜eおよび図10の機能ブロック1022a〜e)のブロック走査周波数因子(FBSR)を決定するために、実施例として挙げられる機器1700には、ブロック走査周波数因子決定素子1724が備えられている。例えば、ブロック走査周波数因子決定素子1724は、上記方程式2に応じてブロック走査周波数因子(FBSR)を決定できる。数値を比較するために、実施例として挙げられる機器1700には比較機構1726が備えられている。例えば、比較機構1726は、どれが最も遅いかを決定するために当該の装置に割り当てられた機能ブロックのブロック未加工実行期間(TBRE)を比較することにより、フィールド装置に関連した最も遅いブロック未加工実行期間(TSBE)を決定するのに使用されうる。
図18〜図21は、図17の実施例として挙げられる機器1700を実施するのに使用されうる実施例として挙げられる方法のフローチャートである。実施例として挙げられる実施形態のいくつかにおいては、プロセッサ(例えば、図23の実施例として挙げられるプロセッサーシステム2310中に図示されるプロセッサ2312)による実行用のプログラムを含む機械可読指示を使用して、図18〜図21の実施例として挙げられる方法を実施しうる。該プログラムは、CD-ROM、フロッピー(登録商標)ディスク、ハードドライブ、デジタル多用途ディスク(DVD)などの有形媒体、またはプロセッサ2312を関連したメモリに格納されたソフトウェアで具体化されうる、且つ又は、周知の方法でファームウェア且つ又は専用ハードウェアで具体化されうるものである。さらに、通常の技術を有する当業者にとっては、実施例として挙げられるプログラムは図18〜21に示されるフローチャートに関連して記載されるが、図17の実施例として挙げられる機器1700を実施するためのその他の多くの方法を代わりに使用しえることは一目瞭然のはずである。例えば、ブロックの実行順序は変更しえるものであり、且つ又は、ここに記載されるブロックのうちのいくつかを変更、除外、または組み合わせることが可能である。
以下、図18〜21のフローダイヤグラムを、論議の目的上図12のスケジュール1202に関連して説明する。但し、図18〜21のフローダイヤグラムに関連して実施例として記載される方法は、例えば、図7のスケジュール702を含むその他のスケジュールを生成するのにも使用されうる。
図18を参照するに、スケジュール(例えば、図7および図12のスケジュール702および1202、またはプロセス制御システム内の機能ブロックの実行のスケジュールを立てるその他のいかなるスケジュール)を生成するための実施例として挙げられる方法において、構成インターフェース1716は、新しいモジュール(例えば、図10のモジュール1020)が作成されたかどうか、または、既存のモジュールの構成が変更されたかどうかを判断する(ブロック1802)。新しいモジュールが追加されず、既存のモジュールにも変更がなされなかった、と構成インターフェース1716が判断すると、新しいモジュールが追加されたか又は既存のモジュールが変更された、と構成インターフェース1716が判断するまで、制御はブロック1802に留まる。
新しいモジュールが追加され、且つ既存のモジュールの構成が変更された、と構成インターフェース1716が判断すると(ブロック1802)、構成インターフェース1716は公知の方法に応じてスケジュールを生成するべきかどうかを判断する(ブロック1804)。例えば、構成インターフェース1716は、ワークステーション102(図1)に格納されたデータ構造からスケジュール・タイプ記述子を読み出しうる。公知の方法に従って生成された実施例として挙げられるスケジュールは、図6に関連して上記されている。スケジュールを生成するのに公知の方法を使用すべきである、と構成インターフェース1716が判断すると、その後、図18の実施例として挙げられる方法が終了する。
スケジュールを生成するのに公知の方法を使用すべきではない、と構成インターフェース1716が判断すると、構成インターフェース1716は、モジュール構成によっていかなる結合規則が違反されないことを確認する(ブロック1806)。結合規則により、特定のモジュール構成が有効かどうかが示される。例えば、図10のモジュール1020中の機能ブロック1022a〜eのうちの一つが、フィールド装置1012a〜cまたはその他のフィールド装置のうちの一つに割り当てられていない場合、または機能ブロック1022a〜eのうちの一つが適切に接続されていない場合、そのモジュール1020はスケジュールの生成に有効ではない。ここに示される実施例において、構成インターフェース1716は、モジュール構成を結合規則に対して照合するプロセス制御システム設計ソフトウェア・アプリケーション中の照合機能から検証を受け取る。モジュール構成が有効でない、と構成インターフェース1716が判断すると(ブロック1808)、図18の実施例として挙げられる方法が終了する。
モジュール構成が有効である、と構成インターフェース1716が判断すると(ブロック1808)、図10の機能ブロック1022a〜e間の機能ブロック接続は、デジタルデータバス1014(図10)に、およびお互いに結び付けられる(ブロック1810)。例えば、図3を参照して上記されるように機能ブロック接続を結び付けることができる。実施例として挙げられる機器1700はその後、各機能ブロック1022a〜e(図10)用の開始時間オフセット数(QS)を決定する(ブロック1812)。ブロック1812の動作は、図19を参照して実施例として下記される方法を使用して実施されうる。
実施例として挙げられる機器1700が開始時間オフセット数(QS)を決定した後、構成インターフェース1716はデジタルデータバス1014の限界を読み出す(ブロック1814)。例えば、構成インターフェース1716は、デジタルデータバス1014で作動できる可能最長スケジュールを定義するタイム値を読み出すことができる。構成インターフェース1716は、例えばワークステーション102またはコントローラ106中のデジタルデータバス特性データベースから該限界値を読み出すことができる。その後、スケジュール基準テンプレートインターフェース1706(図17)は、例えばワークステーション102中のスケジュール・テンプレート・データベースからスケジュール基準テンプレート(ブロック1816)を読み出す。その後、実施例として挙げられる機器1700は、図20の実施例として挙げられる方法に関連して以下詳細に説明されるようなスケジュール1202(図12)を生成する(ブロック1818)。実施例として挙げられる機器1700がスケジュール1202を生成した後、制御は呼出機能または呼出工程に戻り、図18の実施例として挙げられる方法が終了される。
図19を参照するに、図中のフローダイヤグラムは、各機能ブロック1022a〜e(図10)の開始時間オフセット数(QS)を決定する際に図18のブロック1812を実施するのに使用されうる実施例として挙げられる方法を描いた図である。モジュールインタフェース1704は初期段階において、図10のモジュール1020のモジュール実行期間(TME)を読み出す(ブロック1902)。その後、モジュールインタフェース1704は、モジュール1020に関連したフィールド装置(例えば、フィールド装置1012a〜cの一つ)を選択する(ブロック1904)。例えば、モジュールインタフェース1704は、どのフィールド装置(例えば、フィールド装置1012a〜c)に機能ブロック1022a〜eが割り当てられているかを判断し、例えばそれらのフィールド装置のうちの一つを選択することによってフィールド装置オブジェクト(例えば、図14のフィールド装置オブジェクト1402a〜cの一つ)を選択できる。議論の目的上、ブロック1904では、モジュールインタフェース1704が図10のフィールド装置1012aを選択するとする。オブジェクト指向プログラミング環境において、モジュールインタフェース1704は、図14のフィールド装置オブジェクト1402aを選択することにより、フィールド装置1012aを選択する。
その後、モジュールインタフェース1704は、選択されたフィールド装置1012aに割り当てられた機能ブロック(例えば、機能ブロック1022a、1022cまたは1022eの一つ)を選択する(ブロック1906)。議論の目的上、モジュールインタフェース1704は、ブロック1906で図10のAI12機能ブロック1022cを選択するとする。オブジェクト指向プログラミング環境において、モジュールインタフェース1704は、図14のFFAI12機能ブロック・オブジェクト1404bを選択することにより、AI12機能ブロック1022cを選択する。その後、ブロック走査周波数因子決定素子1724(図17)は、選択されたAI12機能ブロック1022cのブロック走査周波数因子(FBSR)を決定する(ブロック1908)。例えば、ブロック走査周波数因子決定素子1724は、モジュールインタフェース1704からモジュール1020のモジュール実行期間(TME)およびAI12機能ブロック1022cのブロック走査周波数(BSR)を取得し、上記方程式2を使用して、AI12機能ブロック1022cのブロック走査周波数因子(FBSR)を決定できる。
その後、未加工実行期間決定素子1718(図17)は、AI12機能ブロック1022cのブロック未加工実行期間(TBRE)を決定する(ブロック1910)。例えば、未加工実行期間決定素子1718は、モジュール1020のモジュール実行期間(TME)およびAI12機能ブロック1022cのブロック走査周波数因子(FBSR)に応じて、AI12機能ブロック1022cのブロック未加工実行期間(TBRE)を決定するために上記方程式1を使用できる。端数処理素子1720(図17)はその後、図8の端数処理一覧表800に応じて、丸め済ブロック未加工実行期間(RTBRE)までAI12機能ブロック1022cのブロック未加工実行期間(TBRE)の端数処理を行う(ブロック1912)。
その後、モジュールインタフェース1704は、モジュール1020が該選択されたフィールド装置1012aに割り当てられた別の機能ブロックを含むかどうかを判断する(ブロック1914)。モジュール1020が該選択されたフィールド装置1012aに割り当てられた別の機能ブロックを含む、とモジュールインタフェース1704が判断すると(ブロック1914)、制御はブロック1906に戻され、モジュールインタフェース1704は、フィールド装置1012aに割り当てられた次の機能ブロック(例えば、機能ブロック1022aおよび1022eの一つ)を選択する。また、その逆に、モジュール1020が該選択されたフィールド装置1012aに割り当てられた別の機能ブロックを含まない(例えば、フィールド装置1012aに割り当てられたモジュール1020内の全ての機能ブロック1022a、1022cおよび1022eに対して、丸め済ブロック未加工実行期間(RTBRE)が決定されている)、とモジュールインタフェース1704が判断すると、その後、比較機構1726は、選択されたフィールド装置(ブロック1916)に関連した最も遅いブロック未加工実行期間(TSBE)を決定する。例えば、比較機構1726は、フィールド装置1012aに割り当てられた機能ブロック1022a、1022cおよび1022eのブロック1906、1908、1910および1912に関連して前記工程で決定された丸め済ブロック未加工実行期間(RTBRE)を比較できる。その後、比較機構1726は、比較の結果に応じて丸め済ブロック未加工実行期間(RTBRE)のうち最も遅い一つと同等の最も遅いブロック未加工実行期間(TSBE)を設定できる。
その後、モジュールインタフェース1704は、開始時間オフセット数(QS)を決定する対象となる機能ブロックを選択する(ブロック1918)。例えば、モジュールインタフェース1704は、モジュール1020に含まれ且つ該選択されたフィールド装置1012aに割り当てられた機能ブロック1022a、1022cおよび1022eのうちの一つを選択する。議論の目的上、モジュール1020はブロック1918でAI12機能ブロック1022cを選択するとする。その後、開始時間オフセット決定素子1722(図17)は、AI12機能ブロック1022c用に開始時間オフセット数(QS)を決定する(ブロック1920)。例えば、開始時間オフセット決定素子1722は、ブロック1916で決定されたAI12機能ブロック1022cの丸め済ブロック未加工実行期間(RTBRE)および最も遅いブロック未加工実行期間(TSBE)に応じて開始時間オフセット数(QS)を決定するために上記方程式3を使用できる。
その後、モジュールインタフェース1704は、モジュール1020が該選択されたフィールド装置1012aに割り当てられた別の機能ブロックを含むかどうかを判断する(ブロック1922)。モジュール1020が該選択されたフィールド装置1012aに割り当てられた別の機能ブロックを含む、とモジュールインタフェース1704が判断すると(ブロック1922)、制御はブロック1918に戻され、モジュールインタフェース1704は、フィールド装置1012aに割り当てられた次の機能ブロック(例えば、機能ブロック1022aおよび1022eの一つ)を選択する。また、その逆に、モジュール1020が該選択されたフィールド装置1012aに割り当てられた別の機能ブロックを含まない(例えば、開始時間オフセット数(QS)が、フィールド装置1012aに割り当てられたモジュール1020内の機能ブロック1022a、1022cおよび1022eの全てに対して決定された)、とモジュールインタフェース1704が判断すると、モジュールインタフェース1704は、別のフィールド装置(例えば、図10のフィールド装置1012bおよび1012cの一つ)がモジュール1020と関連するかどうかを判断する(ブロック1924)。例えば、モジュールインタフェース1704は、モジュール1020が、その他のフィールド装置(例えば、フィールド装置1012bおよび1012c)に割り当てられているが開始時間オフセット数(QS)がまだ決定されていない何らかの機能ブロック(例えば、機能ブロック1022bおよび1022d)を含む場合、別のフィールド装置がモジュール1020と関連する、と判断できる。
別のフィールド装置(例えば、図10のフィールド装置1012bおよび1012cの一つ)がモジュール1020と関連する、とモジュールインタフェース1704が判断すると(ブロック1924)、モジュールインタフェース1704が次のフィールド装置(例えば、図10のフィールド装置1012bおよび1012cの一つ)を選択する時点で、制御がパスされてブロック1904に戻る。また、その逆に、別のフィールド装置(例えば、図10のフィールド装置1012bおよび1012cの一つ)がモジュール1020と関連しない、とモジュールインタフェース1704が判断すると(ブロック1924)、モジュールインタフェース1704は別のモジュール(例えば、モジュール1020以外のモジュール)がデジタルデータバス1014を関連するかどうかを判断する(ブロック1926)。例えば、デジタルデータバス1014に関連した別のモジュールは、フィールド装置1012a〜cのいずれかに割り当てられた機能ブロックを含みえ、また、実施例として挙げられる機器1700はその後それらの機能ブロック用に開始時間オフセット数(QS)を決定する。別のモジュールがデジタルデータバス1014に関連する、とモジュールインタフェース1704が判断すると、モジュールインタフェース1704が次のモジュールのモジュール実行期間(TME)を読み出した時点で、制御がブロック1902に戻る。また、その逆に、別のモジュールがデジタルデータバス1014に関連しない、とモジュールインタフェース1704が判断すると、制御が呼出機能または呼出工程(例えば、図18の実施例として挙げられる方法)に戻り、図19の実施例として挙げられる方法が終了する。
図20Aおよび図20Bを参照するに、図中のフローダイヤグラムは、サブスケジュール(例えば、図12のサブスケジュール1214および1216)、およびサブスケジュールに基づいたスケジュール(例えば、図12のスケジュール1202)を生成するために図18のブロック1818を実施するのに使用されうる実施例として挙げられる方法を描く図である。サブスケジュール生成ルーチン1710は初期段階において、デジタルデータバス1014に関連した丸め済ブロック未加工実行期間(RTBRE)の全てを読み出す(ブロック2002)。例えば、サブスケジュール生成ルーチン1710は、デジタルデータバス1014に関連した機能ブロック(例えば、図10の機能ブロック1022a〜e)の全てに対してブロック1912で決定された丸め済ブロック未加工実行期間(RTBRE)の全てを読み出す。その後、サブスケジュール基準テンプレートインターフェース1712(図17)は、丸め済ブロック未加工実行期間(RTBRE)ごとにサブスケジュール基準テンプレートを読み出す(ブロック2004)。例えば、サブスケジュール基準テンプレートインターフェース1712は、ワークステーション102(図一つ)中のサブスケジュール基準テンプレートデータベースまたはデータ構造からサブスケジュール基準テンプレートを読み出しうる。ここに示される実施例において、サブスケジュール基準テンプレートのそれぞれは、ブロック2002で読み出された丸め済ブロック未加工実行期間(RTBRE)の各々該当する一つと等しいサブスケジュール実行期間を有するように構成される。例えば、図12に示されるように、サブスケジュール1214のサブスケジュール実行期間は500ミリ秒であり、サブスケジュール1216のサブスケジュール実行期間は2000ミリ秒である。
サブスケジュール生成ルーチン1710は、最短のサブスケジュール実行期間(ブロック2006)を有するサブスケジュール・テンプレートを選択する。例えば、サブスケジュール生成ルーチン1710は、サブスケジュール期間のうちのどれが最短であるかを判断するために比較機構1726(図17)を使用してサブスケジュール実行期間の全てをお互いと比較しうる。その後、サブスケジュール生成ルーチン1710は、同期データ転送を行うように構成されたフィールド装置を選択する(ブロック2008)。フィールド装置(例えば、図10のフィールド装置1012a〜cの一つ)は、同期式にデータを転送する機能ブロック(例えば、図10の機能ブロック1022a〜eの一つ)を実行するように該フィールド装置が割り当てられている場合に、同期データ転送を行うように構成される。当該の機能ブロックにより作り出されたデータが特定の時点に別の機能ブロックにより必要とされる場合、機能ブロックは同期式にデータを転送する。例えば、PID13機能ブロック1022d(図10および図12)が図12に示される時間t2までにAI12機能ブロック1022c(図10および図12)からのデータを要求すると、その後フィールド装置1012aは、PID13機能ブロック1022dが時間t2までにデータを確実に取得できるようにするためにAI12機能ブロック1022cに関連した同期データ転送を行なわなければならない。議論の目的上、サブスケジュール生成ルーチン1710はフィールド装置1012a(図10および図12)を選択するとする。
その後、サブスケジュール生成ルーチン1710は、該選択されたフィールド装置1012a(ブロック2010)に関連した最も遅いブロック未加工実行期間(TSBE)を読み出す。例えば、サブスケジュール生成ルーチン1710は、フィールド装置1012a用に図19のブロック1916で決定された最も遅いブロック未加工実行期間(TSBE)を読み出しうる。その後、サブスケジュール生成ルーチン1710は、例えば比較機構1726(図17)を使用して、最も遅いブロック未加工実行期間(TSBE)が該選択されたサブスケジュール・テンプレート(ブロック2012)のサブスケジュール実行期間と等しいかどうかを判断する。ブロック2006で選択されたサブスケジュール・テンプレートを使用して生成されるサブスケジュールは、該選択されたサブスケジュール・テンプレートのサブスケジュール実行期間と等しい最も遅いブロック未加工実行期間(TSBE)に関連したフィールド装置により実行されるために割り当てられた機能ブロックだけの開始時間オフセット(tS)を含みうる。従って、ブロック2008で選択されたフィールド装置1012aの最も遅いブロック未加工実行期間(TSBE)が該選択されたサブスケジュール・テンプレート(ブロック2012)のサブスケジュール実行期間と等しくない、とサブスケジュール生成ルーチン1710が判断すると、制御はフィールド装置を飛び越え、サブスケジュール生成ルーチン1710が同期データ転送を行うように構成された別のフィールド装置を選択する時点でブロック2008に戻る。
また、その逆に、ブロック2008で選択されたフィールド装置1012aの最も遅いブロック未加工実行期間(TSBE)が該選択されたサブスケジュール・テンプレート(ブロック2012)のサブスケジュール実行期間と等しい、とサブスケジュール生成ルーチン1710が判断すると、サブスケジュール生成ルーチン1710は、該選択されたフィールド装置1012aに割り当てられ且つ同期データ転送に関連した機能ブロック(例えば、機能ブロック1022a、1022cまたは1022eの一つ)を選択する(ブロック2014)。議論の目的上、サブスケジュール生成ルーチン1710はAI12機能ブロック1022c(図10および12)を選択するとする。
その後、サブスケジュール生成ルーチン1710は、選択されたAI12機能ブロック1022c(ブロック2016)のデータ利用可能時間(tDA)を読み出す。ここに示される実施例において、全てのデータ使用可能時間(tDA)は、同期データ利用可能時間生成ルーチン(図示せず)により事前に決定され、機能ブロックの入力ポートと関連したデータ構造に格納される。例えば、同期データ利用可能時間生成ルーチンは、図18のスケジュール生成過程前に、またはその生成過程中に、全ての機能ブロック(例えば、機能ブロック1022a〜e)を走査し、同期データ転送を必要とする機能ブロックはどれかを判断する。その後、同期データ利用可能時間生成ルーチンは、その他の機能ブロック対して同期式にデータを転送しなければならない機能ブロックが実行され、かつ特定の時点にデータを必要とする機能ブロックがその時間までにデータを受け取ることができるように、デジタルデータバス1014によってそれらのデータを転送できるだけの十分な時間が与えられることを保証するために、データ使用可能時間(tDA)を事前に決定できる。別の機能ブロックからのデータを必要とせずに実行できる機能ブロック(例えば、AI11機能ブロック1022a)については、サブスケジュール期間開始後直ちに機能ブロックを実行できるので、データ利用可能時間(tDA)がゼロに設定される。
図21を参照して下記されるように、開始時間オフセット決定素子1722(図17)は、該選択されたAI12機能ブロック1022c(ブロック2018)に対する開始時間オフセット値(tS)を決定する。その後、サブスケジュール生成ルーチン1710は、ブロック2018で決定された開始時間オフセット値(tS)にデータ転送時間(ブロック2020)を割り当てる。データ転送時間とは、デジタルデータバス1014を介して一つの機能ブロックから別の機能ブロックにデータを通信するのに必要な時間のことである。但し、同装置内の別の機能ブロックにデータを転送する機能ブロックは、データ転送時間を持っていない。データ転送時間は、デジタルデータバス1014での時間を占める。従って、サブスケジュールを生成することにより、サブスケジュールが確実に全ての機能ブロック実行およびデータ転送がデジタルデータバス1014で行われること保証するのに十分長い時間を備えられるようにすることが必要である。
その後、サブスケジュール生成ルーチン1710は、フィールド装置1012aに割り当てられた別の機能ブロックが同期データ転送(ブロック2022)に関連しているかどうかを判断する。フィールド装置1012aに割り当てられた別の機能ブロックが同期データ転送(ブロック2022)に関連している、とサブスケジュール生成ルーチン1710が判断すると、その後、サブスケジュール生成ルーチン1710が同期データ転送に関連した次の機能ブロックを選択する時点で、制御がブロック2014に戻る。そうでない場合は、サブスケジュール生成ルーチン1710は、デジタルデータバス1014に通信可能に連結された別のフィールド装置が同期データ転送(ブロック2024)を行うように構成されているかどうかを判断する。デジタルデータバス1014に通信可能に連結された別のフィールド装置が同期データ転送(ブロック2024)を行うように構成されている、とサブスケジュール生成ルーチン1710が判断すると(ブロック2024)、サブスケジュール生成ルーチン1710が同期データ転送を行うように構成された別のフィールド装置(例えば、図10および図12のフィールド装置1012bおよび1012cの一つ)を選択する時点で、制御がブロック2008に戻される。
また、その逆に、デジタルデータバス1014に通信可能に連結された別のフィールド装置が同期データ転送を行うようには構成されていない、とサブスケジュール生成ルーチン1710が判断すると(ブロック2024)、サブスケジュール生成ルーチン1710が非同期データ転送の処理を行う(ブロック2026)。例えば、サブスケジュール生成ルーチン1710は、機能ブロック1022a〜e(図10および12)のうち非同期データ転送に関連しているものを識別し、ブロック2016を参照して上記される方法に似た方法で当該機能ブロック用のデータ使用可能時間(tDA)を読み出し、図21を参照して下記される方法に似た方法で開始時間オフセット値(tS)を決定し、ブロック2020を参照して上記される方法に似た方法で当該機能ブロックにデータ転送時間を割り当てることができる。
その後、サブスケジュール生成ルーチン1710は、ブロック2006で選択されたサブスケジュール・テンプレートのサブスケジュール実行期間が上記の如く決定された開始時間オフセット値(tS)およびデータ転送時間を含みえる十分な長さを有するかどうかを判断する(ブロック2028)。ブロック2006で選択されたサブスケジュール・テンプレートのサブスケジュール実行期間が開始時間オフセット値(tS)およびデータ転送時間を含みえる十分な長さを有さない、とサブスケジュール生成ルーチン1710が判断すると(ブロック2028)、サブスケジュール生成ルーチン1710は、サブスケジュールを再生成するために開始時間オフセット値(tS)およびデータ転送時間(ブロック2030)を破棄する。サブスケジュール・テンプレート用に生成される機能ブロックの開始時間オフセット値(tS)およびデータ転送時間を含みえる十分な長さのサブスケジュール実行期間をブロック2006で選択されたサブスケジュール・テンプレートに提供するために、サブスケジュール生成ルーチン1710は、サブスケジュール・テンプレート(ブロック2032)のサブスケジュール期間を拡張する。すなわち、サブスケジュール生成ルーチン1710は、サブスケジュール実行期間を延長するために、サブスケジュール・テンプレートのサブスケジュール実行期間に時間を追加する。例えば、図12の2000ミリ秒のサブスケジュール1216を生成するのに使用されるサブスケジュール・テンプレートが、機能ブロック1022a〜cおよび1022eに関連した開始時間オフセット(tS)およびデータ転送時間を含みえる十分な長さのサブスケジュール実行期間を有さない場合、サブスケジュール生成ルーチン1710は、サブスケジュール・テンプレートに500ミリ秒(またはその他のいかなる時間)を追加できる。
サブスケジュール生成ルーチン1710が該選択されたサブスケジュール・テンプレートのサブスケジュール実行期間を拡張した後(ブロック2032)、ブロック2008、2010、2012、2014、2016、2018、2020、2022、2024、2026および2028の動作が該拡張されたサブスケジュール実行期間に基づいて反復される時点で、制御がブロック2008に戻る。ブロック2006で選択されたサブスケジュール・テンプレートのサブスケジュール実行期間が、開始時間オフセット値(tS)およびデータ転送時間を含むのに十分に長い期間である、とサブスケジュール生成ルーチン1710が判断すると(ブロック2028)、サブスケジュール生成ルーチン1710は、別のサブスケジュールを生成するべきかどうかを判断する(ブロック2034)。例えば、図18の実施例として挙げられる方法が図12のスケジュール1202を生成するのに使用されて、サブスケジュール生成ルーチン1710がサブスケジュール1216ではなくサブスケジュール1214を生成した場合、サブスケジュール生成ルーチン1710は別のサブスケジュール(例えば、サブスケジュール1216)が生成されるべきであると判断する。別のサブスケジュール(例えば、サブスケジュール1216)が生成されるべきである、とサブスケジュール生成ルーチン1710が判断すると(ブロック2034)、サブスケジュール基準テンプレートインターフェース1712が次の最短サブスケジュール実行期間(例えば、図12の2000ミリ秒サブスケジュール1216に対応する2000ミリ秒サブスケジュール実行期間)を選択する時点で(ブロック2006)、制御がパスされてブロック2006(図20A)に戻る。
それ以外の場合、スケジュール生成ルーチン1708は、スケジュール(例えば、図12のスケジュール1202)を生成するために、サブスケジュール生成ルーチン1710により生成されたサブスケジュール(例えば、図12のサブスケジュール1214および1216)をマージする(ブロック2036)。その後、強制データシーケンス生成ルーチン1714は、スケジュールの強制データシーケンスを生成する(ブロック2038)。強制データシーケンスは、コントローラ106が確実にフィールド装置1012a〜cに強制データ指令を通信するようにして、フィールド装置1012a〜cに、生成されたスケジュールに従って機能ブロック1022a〜eの各々該当するものに対応するデジタルデータバス1014のデータを公開させる。その後、制御は、呼出機能または呼出工程(例えば、図18の実施例として挙げられる方法)に戻され、図20Aおよび20Bの実施例として挙げられる方法が終了される。
図21を参照するに、図中のフローダイヤグラムは、機能ブロック用の開始時間オフセット値(tS)を判断するために図20Aのブロック2018を実施するのに使用されうる実施例として挙げられる方法を示す図である。ここに示される実施例において、図21の実施例として挙げられる方法は、開始時間オフセット値(tS)を判断するために上記方程式4を使用する。初期段階において、開始時間オフセット決定素子1722(図17)は、選択された機能ブロック(ブロック2102)(例えば、図20Aのブロック2014で選択された機能ブロック)に関連した開始時間オフセット数(QS)を読み出す。議論の目的上、AI12機能ブロック1022c(図10および12)は該選択された機能ブロックであるとする。従って、ブロック2102で読み出された開始時間オフセット数(QS)は4である。ここに示される実施例において、開始時間オフセット数(QS)(例えば、4)が、該選択されたAI12機能ブロック1022cのために、図18のブロック1812にて決定される。その後、開始時間オフセット決定素子1722は開始時間オフセット・カウンタをゼロにリセットする(ブロック2104)。開始時間オフセット・カウンタの値は上記方程式4のシーケンス番号(Nseq)を提供するのに使用される。また、開始時間オフセット・カウンタの値は、該選択された機能ブロックに対する開始時間オフセット値(tS)の全てがいつ決定されたかを判断するのに使用される。
開始時間オフセット決定素子1722は、第1の開始時間オフセット値(tS)を判断する(ブロック2106)。例えば、開始時間オフセット決定素子1722は、上記方程式4を使用して、開始時間オフセット・カウンタの値(例えば、現在の開始時間オフセットのシーケンス番号(Nseq)(シーケンス0、シーケンス1、シーケンス2、等))に基づきt1として図12に示されるAI12機能ブロック1022cの開始時間オフセット値(tS)と、AI12機能ブロック1022cを実行するために割り当てられたフィールド装置(例えば、フィールド装置1012a)に関連した最も遅いブロック未加工実行期間(TSBE)と、AI12機能ブロック1022c用にブロック2016で得られるデータ利用可能時間(tDA)とを決定する。
その後、開始時間オフセット決定素子1722は、開始時間オフセット・カウンタの値をインクリメントし(カウンタの数値を増加させ)(ブロック2108)、開始時間オフセット・カウンタがブロック2102で読み出された開始時間オフセット数(QS)と等しいかどうかを判断する(ブロック2110)。開始時間オフセット・カウンタが開始時間オフセット数(QS)と等しくない、と開始時間オフセット決定素子1722が判断すると、開始時間オフセット決定素子1722が次の開始時間オフセット値(tS)(例えば、t5として図12に示されるAI12機能ブロック1022cの開始時間オフセット値(tS))を決定する時点で、制御がブロック2106に戻る。そうでない場合は、制御が呼出機能または呼出工程(例えば、図20Aおよび20Bの実施例として挙げられる方法)に戻され、図21の実施例として挙げられる方法が終了される。
図22は、図12のスケジュール1202の実施例として挙げられる機能実行およびデータ転送順序図2200である。実施例として挙げられる機能実行およびデータ転送順序図2200は、デジタルデータバス1014を介して一つの機能ブロックから別の機能ブロックにデータを転送するのに必要な機能ブロック1022a〜eの実行およびデータ転送時間の関係を示す。実施例として挙げられる機能実行およびデータ転送順序図はまた、図12のフィールド装置1012a〜cにデジタルデータバス1014のデータを公開させるために強制データ指令がコントローラ106によりいつ発行されるかも示す。例えば、図22に示されるように、AI11機能ブロック実行2202後、強制データ指令2204は、PID12実行2208を可能にするため、フィールド装置1012aにAI11データ転送2206を行なわせる。その他の機能ブロック実行、強制データ指令、および対応するデータ転送も示されている。図示されてはいないが、二つの機能ブロックが同じフィールド装置により実行される場合、データ転送が同じフィールド装置内で生じるので、機能ブロック間のデータを交換する際に、デジタルデータバス1014に関係するデータ転送時間(例えば、AI11データ転送2206)は必要ない。
図23は、ここに記載される機器および方法を実施するのに使用されうる実施例として挙げられるプロセッサーシステム2310のブロック図である。図23に示されるように、プロセッサーシステム2310は相互接続バス2314に連結されるプロセッサ2312を含む。(図23では完全にチップ上(オンチップ)に備えられた状態で示されているが、その代わりとして、完全にまたは部分的にチップ外(オフチップ)に備えて専用の電気接続部を介して且つ又は相互接続バス2314を介してプロセッサ2312に直接連結することもできる)レジスタ・セットまたは登録スペース2316が、プロセッサ2312には含まれる。プロセッサ2312には、適切なプロセッサ、処理装置またはマイクロプロセッサーであればいかなるものでも使用しえる。図23には図示されていないが、システム2310は、マルチプロセッサシステムでありえ、よってプロセッサ2312と同一であるまたは類似する且つ相互接続バス2314に通信可能に連結される一つ又は複数のさらに追加された別のプロセッサを含みうる。
図23のプロセッサ2312は、メモリーコントローラー2320および周辺入出力(I/O)コントローラ2322を含むチップセット2318に連結される。周知の如く、チップセットは一般に、チップセット2318に連結される一つ又は複数のプロセッサによりアクセス可能または使用される複数の汎用且つ又は専用レジスタやタイマーなどに加え、入出力および記憶管理機能を備える。メモリ制御器2320は、プロセッサ2312(または、複数のプロセッサが備えられている場合は「複数のプロセッサ」)がシステムメモリー2324および大容量記憶メモリ2325にアクセスできるようにする機能を果たす。
システムメモリー2324は、例えば静的ランダムアクセス記憶装置(SRAM)、動的ランダムアクセス記憶装置(DRAM)、フラッシュメモリ、読み取り専用メモリなど(ROM)など所望のあらゆるタイプの持久且つ又は揮発性記憶装置を含みうる。大容量記憶メモリ2325は、ハードディスクドライブ、オプティカルドライブ、テープ記憶装置などを含む所望のあらゆるタイプの大容量記憶装置を含んでいてもよい。
周辺I/Oコントローラ2322は、周辺I/Oバス2332を介して、周辺入出力(I/O)装置2326および2328、ならびにネットワーク・インターフェース2330とプロセッサ2312が通信することを可能にする機能を行う。I/O装置2326および2328には、例えば、キーボード、ビデオディスプレイまたはモニター、マウスなど、所望するいかなるタイプのI/O装置を使用しえる。ネットワーク・インターフェース2330は、例えばイーサネット(登録商標)装置、非同期転送モード(ATM)装置、802.11装置、DSLモデム、ケーブルモデム、セルラーモデムなどでありえ、プロセッサーシステム2310が別のプロセッサーシステムと通信することを可能にする。
メモリ制御器2320とI/Oコントローラ2322は、図23においてチップセット2318内の別々の機能ブロックとして表されているが、これらのブロックにより実行される機能は、単一の半導体回路内に統合しても、個別の集積回路を二つ以上用いても実施しえるもである。
実施例として挙げられる特定の方法、機器および製造品がここにおいて記載されているが、この特許の適用領域の範囲はそれに限定されるものではなく、それとは反対に、この特許は、字義的にもしくは均等論に基づいて添付の特許請求の範囲内に公正に含まれる方法、機器および製造品の全てを網羅するものである。