(57)【特許請求の範囲】
【請求項１】
複数のハードウエアサブユニットを有するハードウエア構成要素に関連するユニットモジュールオブジェクトを含み、前記ユニットモジュールオブジェクトに関連する複数のモジュールオブジェクトであって該複数のモジュールオブジェクトのそれぞれがハードウエアサブユニットの異なる一つに関連しているものを含むプロセス制御システムにおいて、情報を書き込むためのアクセスを制御する方法であって、
それぞれ値を有するユニットモジュールオブジェクトモード属性を含む前記ユニットモジュールオブジェクトの特定の一つにおいて、前記ハードウエア構成要素を制御するためのパラメータを格納するステップと、
前記モジュールオブジェクトの特定の一つにおいて、前記ハードウエア構成要素の前記サブユニットの特定の一つを制御するためのパラメータを格納するステップであって、前記モジュールオブジェクトの特定の一つはモジュールオブジェクトモード属性を有し、前記モジュールオブジェクトの特定の一つは、前記ハードウエア構成要素のサブユニットの前記特定の一つの動作状態を変更するために使用され、前記モジュールオブジェクトモード属性は、第１の値のセットの何れか一つに設定され得、前記第１の値のセットのそれぞれは、前記ユニットモジュールオブジェクトモード属性値とは独立であり、又は前記ユニットモジュールオブジェクトモード属性値に依存することを示している、格納するステップと、
（１）前記モジュールオブジェクトモード属性が前記第１の値のセットの一つに設定されたときに前記モジュールオブジェクトモード属性の前記第１の値のセットの一つによって指示されているように前記モジュールオブジェクトに情報を書き込むアクセスを選択的に許容することにより、および（２）前記モジュールオブジェクトモード属性が更なる値に設定されたときに前記ユニットモジュールオブジェクトモード属性の値によって指示されているように前記モジュールオブジェクトに情報を書き込むアクセスを選択的に許容することにより、前記モジュールオブジェクトモード属性の値に基づいて前記モジュールオブジェクトに書き込むことを許容するかどうかを決定するステップと
を包含している方法。
【請求項２】
請求項１に記載の方法であって、前記モジュールオブジェクトに情報を書き込むアクセスを選択的に許容するステップが、前記ユニットモジュールオブジェクトモード属性が更なる値に設定され、前記ユニットモジュールオブジェクトモード属性の値がロック解除状態を示しているときに、前記モジュールオブジェクトに情報を書き込むアクセスを許容するステップを包含している方法。
【請求項３】
請求項１に記載の方法であって、前記モジュールオブジェクトに情報を書き込むアクセスを選択的に許容するステップが、前記ユニットモジュールオブジェクトモード属性が更なる値に設定され、前記ユニットモジュールオブジェクトモード属性の値がロック状態であるときに、前記モジュールオブジェクトに情報を書き込むアクセスを許容しないステップを包含している方法。
【請求項４】
請求項１に記載の方法であって、前記モジュールオブジェクトに情報を書き込むアクセスを選択的に許容するステップが、ユーザが前記モジュールオブジェクトに情報を書き込む権限を有しているかどうかを決定するステップを包含している方法。
【請求項５】
請求項１に記載の方法であって、前記ユニットモジュールオブジェクトモード属性は値を有するユニットモジュールオブジェクトロック属性を含み、前記ユニットモジュールオブジェクトモード属性が更なる値に設定されたときに前記モジュールオブジェクトに情報を書き込むアクセスを選択的に許容するステップが、前記ユニットモジュールオブジェクトロック属性の値に基づいて、前記モジュールオブジェクトに情報を書き込むアクセスを制御するステップを包含している方法。
【請求項６】
請求項５に記載の方法であって、前記プロセス制御システムがフェーズを有し、前記ユニットモジュールオブジェクトモード属性が更なる値に設定されたときに前記モジュールオブジェクトに情報を書き込むアクセスを選択的に許容するステップが、前記ユニットモジュールオブジェクトが前記フェーズによって使用されているかを決定することにより、前記ユニットモジュールオブジェクトロック属性の値を決定するステップを包含している方法。
【請求項７】
請求項５に記載の方法であって、前記プロセス制御システムがオペレータロックアウトフィールドを含むフェーズを有し、前記ユニットモジュールオブジェクトモード属性が更なる値に設定されたときに前記モジュールオブジェクトに情報を書き込むアクセスを選択的に許容するステップが、前記ユニットモジュールオブジェクトを使用して前記フェーズに対して前記オペレータロックアウトフィールドが設定されているかを決定することにより、前記ユニットモジュールオブジェクトロック属性の値を決定するステップを包含している方法。
【請求項８】
請求項１に記載の方法であって、前記ユニットモジュールオブジェクトモード属性は値を有するユニットモジュールオブジェクトロック属性を含み、前記モジュールオブジェクトに情報を書き込むアクセスを選択的に許容するステップが、前記ユニットモジュールオブジェクトロック属性の値に基づいて、前記複数のモジュールオブジェクトに情報を書き込むアクセスを制御するステップを包含している方法。
【請求項９】
請求項８に記載の方法であって、前記複数のモジュールオブジェクトに情報を書き込むアクセスを選択的に許容するステップが、前記ユニットモジュールオブジェクトロック属性の値がロック状態のときに、前記複数のモジュールオブジェクトに情報を書き込むアクセスを許容しないステップを包含している方法。
【請求項１０】
請求項８に記載の方法であって、前記複数のモジュールオブジェクトに情報を書き込むアクセスを選択的に許容するステップが、前記ユニットモジュールオブジェクトロック属性の値がロック解除状態のときに、前記複数のモジュールオブジェクトに情報を書き込むアクセスを許容するステップを包含している方法。
【請求項１１】
請求項１に記載の方法であって、前記情報を書き込むアクセスを選択的に許容するステップが、前記ユニットモジュールオブジェクトモード属性の値に基づいて、前記複数のモジュールオブジェクトに情報を書き込むアクセスを制御するステップを包含している方法。
【請求項１２】
請求項１１に記載の方法であって、前記情報を書き込むアクセスを選択的に許容するステップが、前記ユニットモジュール機密性属性の値がロック状態であるときに、前記複数のモジュールオブジェクトに情報を書き込むアクセスを許容しないステップを包含している方法。
【請求項１３】
請求項１１に記載の方法であって、前記情報を書き込むアクセスを制御するステップが、前記ユニットモジュール機密性属性の値がロック解除状態であるときに、前記複数のモジュールオブジェクトに情報を書き込むアクセスを許容するステップを包含している方法。
【請求項１４】
複数のハードウエアサブユニットを有するハードウエア構成要素に関連するユニットモジュールオブジェクトを含み、それぞれ前記複数のハードウエアサブユニットの異なる一つに関連し前記ユニットモジュールオブジェクトに関連する複数のモジュールオブジェクトを含むプロセス制御システムにおける制御要素への制御パラメータを書き込むアクセスを制御するためのアクセス制御システムであって、
プロセッサと、
ハードウエア構成要素を制御し、値を有するユニットモジュールオブジェクトモード属性を含むパラメータを格納するユニットモジュールオブジェクトと、
前記ハードウエア構成要素の前記サブユニットの特定の一つを制御するためのパラメータを格納する第１のモジュールオブジェクトであって、該第１のモジュールオブジェクトは前記ハードウエア構成要素の前記サブユニットの特定の一つの動作状態を変更するために使用され且つモジュールオブジェクトモード属性を含み、前記モジュールオブジェクトモード属性は第１の値のセットの何れか一つに設定可能であり、前記第１の値のセットそれぞれは前記ユニットモジュールオブジェクトモード属性値とは独立し又は前記ユニットモジュールオブジェクトモード属性値に依存すること示す更なる値に設定可能である、第１のモジュールオブジェクトと、
メモリと、
前記メモリに格納され、前記モジュールオブジェクトモード属性の値を前記プロセッサに決定させるための第１のルーチンと、
前記メモリに格納され、（１）前記モジュールオブジェクトモード属性が前記第１の値のセットの一つに設定されたときに、前記モジュールオブジェクトモード属性の第１の値のセットの一つによって指示されるように、前記モジュールオブジェクトへの情報の書き込むアクセスを選択的に許容することにより、および（２）前記モジュールオブジェクトモード属性が前記更なる値に設定されたときに、前記ユニットモジュールオブジェクトモード属性の値によって指示されるように、前記モジュールオブジェクトへの情報の書き込むアクセスを選択的に許容することにより、前記モジュールオブジェクトモード属性の値に基づいて前記第１のモジュールオブジェクトに情報を書き込むアクセスを前記プロセッサに選択的に許容させる第２のルーチンと
を備えているシステム。
【請求項１５】
請求項１４に記載のシステムであって、前記第２のルーチンは、前記ユニットモジュールオブジェクトモード属性の値がロック解除状態であり、前記モジュールオブジェクトモード属性が更なる値に設定されたときに、前記第１のモジュールオブジェクトに情報を書き込むアクセスを前記プロセッサに許容させるための命令を含んでいるシステム。
【請求項１６】
請求項１４に記載のシステムであって、前記第２のルーチンは、前記ユニットモジュールオブジェクトモード属性の値がロック状態であり、前記モジュールオブジェクトモード属性が更なる値に設定されたときに、前記第１のモジュールオブジェクトに情報を書き込むアクセスを前記プロセッサに許容させないための命令を含んでいるシステム。
【請求項１７】
請求項１４に記載のシステムであって、前記ユニットモジュールオブジェクトモード属性は値を有するユニットモジュールオブジェクトロック属性を含み、前記第２のルーチンは、前記モジュールオブジェクトモード属性が更なる値に設定されたときに、前記ユニットモジュールオブジェクトロック属性に基づいて、前記第１のモジュールオブジェクトに情報を書き込むアクセスを前記プロセッサに制御させるための命令を含んでいるシステム。
【請求項１８】
請求項１７に記載のシステムであって、前記プロセス制御システムがフェーズを有し、
前記第２のルーチンが、前記ユニットモジュールオブジェクトが前記フェーズによって使用されているかを決定することにより、前記ユニットモジュールオブジェクトロック属性の値を前記プロセッサに決定させる命令を含んでいるシステム。
【請求項１９】
請求項１７に記載のシステムであって、前記プロセス制御システムがオペレータロックアウトを含むフェーズを有し、前記第２のルーチンが、前記ユニットモジュールオブジェクトを使用して前記フェーズに対して前記オペレータロックアウトが設定されているかを決定することにより、前記ユニットモジュールオブジェクトロック属性の値を前記プロセッサに決定させる命令を含んでいるシステム。
【請求項２０】
請求項１４に記載のシステムであって、前記ユニットモジュールオブジェクトモード属性は値を有するユニットモジュールオブジェクトロック属性を含み、前記プロセス制御システムは、前記第２のルーチンが、前記ユニットモジュールオブジェクトロック属性の値に基づいて、前記複数のモジュールオブジェクトに情報を書き込むアクセスを前記プロセッサに制御させる命令を含んでいるシステム。
【請求項２１】
請求項２０に記載のシステムであって、前記第２のルーチンが、前記ユニットモジュールオブジェクトロック属性の値がロック状態のときに、前記複数のモジュールオブジェクトに情報を書き込むアクセスを前記プロセッサに許容させない命令を含んでいるシステム。
【請求項２２】
請求項２０に記載のシステムであって、前記第２のルーチンが、前記ユニットモジュールオブジェクトロック属性の値がロック解除状態のときに、前記複数のモジュールオブジェクトに情報を書き込むアクセスを前記プロセッサに許容させる命令を含んでいるシステム。
【請求項２３】
プロセス制御システムに情報を書き込むアクセスを制御する方法であって、
ユニットモジュールオブジェクトにおいて、複数のハードウエアサブユニットを有するハードウエア構成要素を制御するためのパラメータを格納するステップであって、前記ユニットモジュールオブジェクトは、前記複数のハードウエアサブユニットの少なくとも１つに対応するモジュールオブジェクトを含み、かつ、値を有するユニットモジュールオブジェクトモード属性と値を有するユニットモジュールオブジェクトロック属性とを含む、格納ステップと、
前記ユニットモジュールオブジェクトの前記少なくとも１つのモジュールオブジェクトにおいて、前記ハードウエア構成要素のサブユニットの特定の一つを制御するためのパラメータを格納するステップであって、前記モジュールオブジェクトの少なくとも１つは、
前記ハードウエア構成要素のサブユニットの特定の一つの動作状態を変更するのに使用され、前記モジュールオブジェクトの少なくとも１つは、（１）前記ユニットモジュールオブジェクトモード属性値とはそれぞれ独立している第１の値のセットの何れか一つに設定され得、又は（２）前記ユニットモジュールオブジェクトモード属性値又は前記ユニットモジュールオブジェクトロック属性値に依存することを示す更なる値に設定され得るモジュールオブジェクトモード属性を有している、格納ステップと、
前記モジュールオブジェクトモード属性の値を決定するステップと、
前記モジュールオブジェクトモード属性が前記第１の値のセットの一つに設定されたときに前記モジュールオブジェクトモード属性の値に基づいて、前記モジュールオブジェクトモード属性が前記更なる値に設定されたときに前記モジュールオブジェクトモード属性の値に基づいて、前記モジュールオブジェクトに情報を書き込むアクセスを選択的に許容するステップと
を包含している方法。
【請求項２４】
請求項２３に記載の方法であって、前記モジュールオブジェクトに情報を書き込むアクセスを選択的に許容するステップが、前記モジュールオブジェクトモード属性の値がロック解除状態を示す前記第１の値のセットの一つであるときに、前記モジュールオブジェクトに情報を書き込むアクセスを許容するステップを包含している方法。
【請求項２５】
請求項２３に記載の方法であって、前記モジュールオブジェクトに情報を書き込むアクセスを選択的に許容するステップが、前記モジュールオブジェクトモード属性の値がロック状態を示す前記第１の値のセットの一つであるときに、前記モジュールオブジェクトに情報を書き込むアクセスを許容しないステップを包含している方法。
【請求項２６】
請求項２３に記載の方法であって、前記プロセス制御システムがフェーズを有し、前記ユニットモジュールオブジェクトが前記フェーズによって使用されているかどうかを決定することにより、前記ユニットモジュールオブジェクトロック属性の値又は前記ユニットモジュールオブジェクトモード属性の値を決定するステップを包含している方法。
【請求項２７】
請求項２６に記載の方法であって、前記ユニットモジュールオブジェクトロック属性の値又は前記ユニットモジュールオブジェクトモード属性の値を決定するステップが、前記ユニットモジュールオブジェクトを使用して前記フェーズに対してオペレータロックアウトが設定されているかを決定するステップを包含している方法。
【請求項２８】
プロセス制御システムであって、
第１のプロセス制御装置と第２のプロセス制御装置とを含むハードウエア構成要素と、
前記第１のプロセス制御装置に関連する第１のモジュールオブジェクトと前記第２のプロセス制御装置に関連する第２のモジュールオブジェクトであって、前記第１及び第２のモジュールオブジェクトは前記第１及び第２のプロセス制御装置を制御するために使用されるパラメータを含むものと、
前記ハードウエア構成要素を制御するための前記パラメータを格納するためのユニットモジュールオブジェクトであって、該ユニットモジュールオブジェクトは第１及び第２のモジュールオブジェクトを有し、前記第１及び第２のモジュールオブジェクトのそれぞれは、前記第１及び第２のモジュールオブジェクトの前記パラメータに情報を書き込むアクセスを選択的に許容するためのモジュールオブジェクトモード属性を含み、前記第１及び第２のモジュールオブジェクトの少なくとも１つに対するモジュールオブジェクトモード属性は、（１）それぞれ前記ユニットモジュールオブジェクト属性値とは独立した第１の値のセットの何れか一つに設定可能であるか、又は（２）前記ユニットモジュールオブジェクト属性値に依存することを示す更なる値に設定可能である、ユニットモジュールオブジェクトと
を含むプロセス制御システム。
【請求項２９】
請求項２８に記載のプロセス制御システムであって、前記ユニットモジュールオブジェクトは、前記第１及び第２のモジュールオブジェクトモード属性が更なる値に設定されたときに、前記第１及び第２のモジュールオブジェクトの前記パラメータに情報を書き込むアクセスを選択的に許容するためのユニットモジュールオブジェクトモード属性を含んでいるシステム。
【請求項３０】
請求項２９に記載のプロセス制御システムであって、前記第１及び第２のモジュールオブジェクトの少なくとも１つのモジュールオブジェクトモード属性は、前記ユニットモジュールオブジェクトモード属性に基づいており、前記ユニットモジュールオブジェクトは、前記第１及び第２のモジュールオブジェクトの少なくとも１つの前記パラメータに情報を書き込むアクセスを選択的に許容するためのユニットモジュールオブジェクトロック属性を更に含んでいるシステム。
【請求項３１】
請求項３０に記載のプロセス制御システムであって、前記第１及び第２のモジュールオブジェクトの少なくとも１つが、前記ユニットモジュールオブジェクトロック属性がロックに設定されているかどうかに基づいて、前記第１及び第２のモジュールオブジェクトの少なくとも１つの前記パラメータに情報を書き込むアクセスを選択的に許容するシステム。
【請求項３２】
請求項３１に記載のプロセス制御システムであって、前記ユニットモジュールオブジェクトに関連する複数のモジュールオブジェクトを更に有し、前記複数のモジュールオブジェクトのそれぞれは、それへのアクセスが前記ユニットモジュールオブジェクトロック属性によって制御されるパラメータのセットを含んでいるシステム。
【請求項３３】
請求項２９に記載のプロセス制御システムであって、前記ユニットモジュールオブジェクトに関連する複数のモジュールオブジェクトを更に有し、前記複数のモジュールオブジェクトのそれぞれは、それへのアクセスが前記ユニットモジュールオブジェクトモード属性によって制御されるパラメータのセットを含んでいるシステム。
【請求項３４】
プロセス制御システムにおける制御装置において使用されるプログラムオブジェクトに情報を書き込むアクセスを制御する方法であって、
入力を受信し前記入力に基づいて装置サブユニットの状態を調整するように構成された第１のモジュールオブジェクトを実行するステップであって、前記第１のモジュールオブジェクトは、前記第１のモジュールオブジェクトのモジュールオブジェクトモード属性によって指示されるモードで動作する、ステップと、
前記第１のモジュールオブジェクトを含むモジュールオブジェクトのセットに対応しプロセス装置ユニットを制御するユニットモジュールオブジェクトを実行するステップであって、該ユニットモジュールオブジェクトは、前記ユニットモジュールオブジェクトのユニットモジュールオブジェクトモード属性によって指示されるモードで動作し、前記第１のモジュールオブジェクトのモジュールオブジェクトモード属性は、第１の値のセットの何れか一つに設定可能であり、第１の値のセットのそれぞれは前記ユニットモジュールオブジェクトモード属性値とは独立であり又は前記ユニットモジュールオブジェクトモード属性値に基づく更なる値に設定可能である、ステップと、
前記モジュールオブジェクトモード属性が前記更なる値に設定されたときに前記ユニットモジュールオブジェクトモード属性の値に基づいて情報を前記モジュールオブジェクトに書き込むアクセスを選択的に許容するステップと
を包含している方法。
【請求項３５】
プロセス制御システムにおける制御装置で使用されるプログラムオブジェクトへの情報の書き込みアクセスを制御するためのアクセス制御システムであって、
プロセッサと、
メモリと、
前記メモリに格納され、入力を受信し前記受信した入力に基づいて装置サブユニットの状態を調整するように構成された第１のモジュールオブジェクトであって、該第１のモジュールオブジェクトのモジュールオブジェクトモード属性によって指示されるモードで動作するものと、
前記メモリに格納され、前記第１のモジュールオブジェクトを含むモジュールオブジェクトのセットに対応しプロセス装置ユニットを制御するように構成されたユニットモジュールオブジェクトであって、該ユニットモジュールオブジェクトは、前記ユニットモジュールオブジェクトのユニットモジュールオブジェクトモード属性によって指示されるモードで動作し、前記モジュールオブジェクトモード属性は、（１）それぞれ前記ユニットモジュールオブジェクトモード属性値とは独立である第１の値のセットの何れか一つに設定可能であり、（２）前記ユニットモジュールオブジェクトモード属性値に基づいて更なる値に設定可能である、ユニットモジュールオブジェクトと、
前記メモリに格納され、前記モジュールオブジェクトモード属性の値を前記プロセッサに決定させる第１のルーチンと、
前記メモリに格納され、前記モジュールオブジェクトモード属性が前記第１の値のセットの何れか一つに設定されたときに前記モジュールオブジェクトモード属性の値に基づいて情報を前記モジュールオブジェクトに書き込むアクセスを前記プロセッサに選択的に許容させ第２のルーチンと
を包含するシステム。
【請求項３６】
プロセス制御システムにおける制御装置において使用されるプログラムオブジェクトに情報を書き込むアクセスを制御する方法であって、
入力を受信し前記入力に基づいて装置サブユニットの状態を調整するように構成された第１のモジュールオブジェクトを実行するステップであって、前記第１のモジュールオブジェクトは、前記第１のモジュールオブジェクトのモジュールオブジェクトモード属性によって指示されるモードで動作する、ステップと、
前記第１のモジュールオブジェクトを含むモジュールオブジェクトのセットに対応しプロセス装置ユニットを制御するユニットモジュールオブジェクトを実行するステップであって、該ユニットモジュールオブジェクトは、ユニットモジュールオブジェクトモード属性によって指示されるモードで動作するとともに、値を有するユニットモジュールオブジェクトロック属性を含む、ステップと、
前記モジュールオブジェクトモード属性は、（１）それぞれ前記ユニットモジュールオブジェクトモード属性値とは独立である第１の値のセットの何れか一つに設定可能であり、又は（２）前記ユニットモジュールオブジェクトモード属性値に基づく更なる値に設定可能であり、前記ユニットモジュールオブジェクトロック属性および前記モジュールオブジェクトモード属性は、前記モジュールオブジェクトモード属性が前記更なる値に設定されたときに前記モジュールオブジェクトモード属性の値に基づいている、ステップと、
前記モジュールオブジェクトモード属性の値に基づいて情報を前記モジュールオブジェクトに書き込むアクセスを選択的に許容するステップと
を包含する方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、概略的にはプロセス制御ネットワークに関し、より詳細には、プロセスが実行されている間に、オペレータがバッチプロセスのようなプロセスで使用するためのモジュールオブジェクト又は装置を変更することを防止することに関連している。
【０００２】
【従来の技術】
化学、石油又は他のプロセスに使用されるようなプロセス制御ネットワークは、一般的に、例えばバルブポジショナ、スイッチ、（温度、圧力及び流速センサ等の）センサ等であり得る一又はそれ以上のフィールドデバイスと通信可能に接続された集中プロセスコントローラを含んでいる。これらのフィールドデバイスは、プロセス内で物理的な制御機能（例えば、バルブの開閉）を果たし得、プロセスのオペレーションを制御するのに使用するためにプロセス内で計測され得、又はプロセス内で他の所望される機能を果たし得る。歴史的には、プロセスコントローラは、例えば４−２０ミリアンペア（ｍＡ）の信号をフィールドデバイスへ又はそれから伝送される一又はそれ以上のアナログ信号線又はバスを介してフィールドデバイスに接続されている。しかしながら、最近では、プロセス制御産業は、多くの標準的で開放されたデジタルの又はデジタルとアナログの結合した通信プロトコル、例えば、コントローラとフィールドデバイスとの間で通信を実行するのに使用され得るＦＯＵＮＤＡＴＩＯＮ（商標）フィールドバス（以後”Ｆｉｅｌｄｂｕｓ”と称する）、ＨＡＲＴ（商標）、ＰＲＯＦＩＢＵＳ（商標）、ＷＯＲＬＤＦＩＰ（商標）、Ｄｅｖｉｃｅ−Ｎｅｔ（商標）及びＣＡＮプロトコルを発展させている。一般的に言えば、プロセスコントローラは、一又はそれ以上のフィールドデバイスによって行われた測定値及び／又はそのフィールドデバイスに関連する情報を表す信号を受領し、この情報を使用して典型的に複雑な制御ルーチンを実行し、及びそのフィールドバスに信号線又はバスを介して送られる制御信号を生成し、それによってそのプロセスのオペレーションを制御する。
【０００３】
バッチプロセス等で使用されるようなあるタイプのプロセス制御ネットワークは、プロセス内の同じ機能を本質的に果たす同じ又は同様の装置を有するように設計された複製された装置の複数のセットを典型的に含んでいる。従って、例えば、クッキー製造プラントは、複数セットの混合装置（即ち、混合ユニット）、複数セットのベーキング装置（即ち、ベーキングユニット）、及び複数セットの包装装置（即ち、包装ユニット）を有し、混合ユニットの幾つか又は全ては、並行して動作することができ、ベーキングユニット及び包装ユニットの幾つか又は全てと直列で動作するように接続され得る。
【０００４】
典型的には、バッチプロセスは多くの異なるフェーズ又はステップを連続して実行し、第２のステージの始めの前に第１のステージが完了する。従って、上記のクッキー製造プラントでは、バッチプロセスは、混合ユニットを制御する第１のフェーズ又はステップを実行し、次に、混合ユニットによって製造された生成物上でベーキングユニットを実行する第２のフェーズを実行し、次に、ベーキングユニットによって製造された生成物を包装ユニットが包装するように制御する第３のフェーズを実行する。典型的には、各ユニットはユニットモジュールオブジェクトを有し、これはユニット（即ち、ハードウエア構成要素）の状態を表すように適合したソフトウエアであり得る。ユニットモジュールオブジェクトは、より低レベルのモジュールの実行を調整するように最適化されたソフトウエア命令に埋め込まれたアルゴリズムであり得る（以降では、より低レベルのモジュールは、単に「モジュールオブジェクト」と称する）。後に詳細に述べるように、モジュールオブジェクトは、変数部分とアルゴリズム部分とを有している。典型的には、モジュールオブジェクトは、例えば、バルブの開放、タンクの充満のような単一の論理的機能を実行するように設計されている。手短に言えば、モジュールオブジェクトは、ハードウエア構成要素の状態を変更するために使用されている。
【０００５】
クッキーを製造するためのバッチプロセスの先の例は、各フェーズが一つの特定のユニット上で動作することを示しているが、このことは必ずしも常にそうではない。各フェーズのステップの数に依存して、装置の複数のユニットが特定のフェーズを実行するのに使用され得る。例えば、もし記載されているクッキー製造に使用されているバッチプロセスに代えて、クッキーの製造がより大きいバッチプロセスの単一のフェーズであるなら、このようなフェーズは、混合、ベーキング及び包装ユニットを制御することができる。
【０００６】
各ユニット（及びそれに関連するユニットモジュールオブジェクト）は、それに関連する一又はそれ以上の関連するモジュールオブジェクトを有し得る。典型的には、ユニットモジュールオブジェクトが従属するモジュールオブジェクトを有するとき、そのユニットモジュールオブジェクトは、従属モジュールオブジェクトを「所有する」と言われ得る。例えば、混合ユニットモジュールオブジェクトは、成分をミキサーに投入するための多くのバルブを所有し得、多くのバルブのそれぞれの一つは、特定のバルブの位置を制御するための関連するモジュールオブジェクトを有し得る。モジュールオブジェクトは、入力、処理及び出力部分を含んでいる。オペレーションに際して、入力部分はセンサからの信号を受領し、その受領した信号を処理のために処理部分に渡す。処理部分は、受領した信号と設定値とを比較し、２つの信号の差に基づいて出力を生成する。処理部分からの出力信号は出力部分に渡され、これは、ハードウエアの部分（即ち、バルブ）を制御するのに使用される出力を生成する。例えば、混合フェーズの間、バルブモジュールオブジェクトは、ミキサー内のミルクの量の示量を受領する。モジュールオブジェクトの処理部分は、比例−積分−微分（ＰＩＤ）制御ルーチンを使用して、そのミルクの量の示量をミキサー内のミルクの望ましい量を表す設定値と比較し、ミキサーに追加のミルクを加える必要があるかどうかを決定する。ミルクの量の示量と設定値との比較に基づいて、モジュールオブジェクトは、ミキサーへのミルクの流れを増加させ、減少させ又は停止する。
【０００７】
【発明が解決しようとする課題】
先の例では、出力バルブに関連する付加的なモジュールオブジェクトが、混合フェーズの間にバルブを開けることにより、ミキサーからのクッキー生地の流れを制御するのに使用され得る。個々のモジュールオブジェクトは、バッチプロセスで異なるフェーズによって使用され得る。更に、オペレータは、特定のモジュールオブジェクトのプログラミングを変更することを望み得る。例えば、オペレータは、混合ユニットの洗浄の間、モジュールオブジェクトの設定値を変更し得る。モジュールオブジェクトのプログラミングの変更がオペレータに、洗浄、保守、修理等の必要な機能果たすのを許容する一方、そのモジュールオブジェクトを使用してバッチプロセス又はフェーズの実行の間にモジュールオブジェクトのプログラミングを変更することは、バッチプロセス又はフェーズの運転を混乱させかねない。
【０００８】
従って、オペレータは、特定のモジュールオブジェクトが現在使用されていないか、又はそのモジュールオブジェクトのプログラミングの変更前に使用されるように予定されていないことを注意深く確認しなければならない。例えば、オペレータは、設定値、流速、タイミングのようなパラメータ又は特定のモジュールオブジェクトの他のパラメータを変更することを希望することができる。しかしながら、オペレータがどのように注意深くても、モジュールオブジェクトの不注意な再プログラミングが起こり得、バッチプロセス又はフェーズの実行を混乱させ、それによって、生成物（即ち、クッキー生地）のロス又は汚染を引き起こす可能性がある。
【０００９】
製造以外の適用に於いても、モジュールオブジェクトの不注意な再プログラミングは、より重大な結果を引き起こす。例えば、もし、バッチプロセス又はフェーズで使用されるモジュールオブジェクトが原子力発電プラントの制御に使用されたら、不注意な再プログラミングは、破局的な事故を引き起こしかねない。
【００１０】
【課題を解決するための手段】
プロセス制御システムは、ユニットモジュールオブジェクト及びモジュールオブジェクトに含まれるモジュールレベルパラメータを含んでいる。このようなパラメータは、不注意なモジュールオブジェクトの再プログラミングを避けて、モジュールオブジェクトへのアクセスを制御するために使用され得る。モジュールオブジェクトへのアクセスは、モジュール毎を基準として個々に制御され得、又はユニットモジュールオブジェクトによって所有され又はフェーズによって使用されるモジュールオブジェクトによって階層的に制御され得る。特に、モジュールオブジェクトへのアクセスは、ロックされ、ロック解除され又は制限される。モジュールオブジェクトがロックされているとき、そのモジュールオブジェクトのパラメータ又はプログラミングは変更されない（即ち、情報はそのモジュールオブジェクトに書き込まれない）。逆に、モジュールオブジェクトがロック解除されると、そのモジュールオブジェクトのパラメータ又はプログラミングは変更され得る（即ち、情報はそのモジュールオブジェクトに書き込まれ得る）。制限されたアクセスは、ロック及びロック解除の状態の両方の組合せであり、その場合には、モジュールオブジェクトは、適切なアクセスコードを有するオペレータに対してロック解除されるが、適切なアクセスコードを有していないオペレータに対してはロックされている。モジュールオブジェクトレベルパラメータは、オペレータが、バッチプロセス又はフェーズで使用され又は使用されるであろうモジュールオブジェクトを変更するのを防止し、それによって、バッチプロセス又はフェーズが不注意に混乱するのを妨げる。
【００１１】
第１の実施形態に従えば、本発明は、ハードウエア構成要素の状態を表すユニットモジュールオブジェクトを有するプロセス制御システムで使用するためのオブジェクトモジュールに情報を書き込むためのアクセスを制御する方法であり得、そこでは、モジュールオブジェクトはユニットモジュールオブジェクトに関連し及びハードウエア構成要素の状態を変更するのに使用され、ユニットモジュールオブジェクトは、値を有するユニットモジュールオブジェクトモード属性を有している。この方法は、ユニットモジュールオブジェクトモード属性の値を決定し、ユニットモジュールオブジェクトモード属性に基づいてモジュールオブジェクトへの情報を書き込むためのアクセスを選択的に許容するステップを含み得る。
【００１２】
幾つかの実施形態では、モジュールオブジェクトへの情報を書き込むためのアクセスを選択的に許容するステップは、ユニットモジュールオブジェクトモード属性の値がロック解除の状態にあるときにモジュールオブジェクトへの情報を書き込むアクセスを許容するステップを含み得る。更に、モジュールオブジェクトへの情報を書き込むためのアクセスを選択的に許容するステップは、ユニットモジュールオブジェクトモード属性の値がロックされた状態にあるときにモジュールオブジェクトへの情報を書き込むアクセスを許容しないステップを含み得る。更に、モジュールオブジェクトへの情報を書き込むためのアクセスを選択的に許容するステップは、ユーザがモジュールオブジェクトに情報を書き込む権限を有するかを決定するステップを含み得る。
【００１３】
他の実施形態では、モジュールオブジェクトは、値を有するモジュールオブジェクトモード属性を含み得、そこでは、モジュールオブジェクトへの情報を書き込むためのアクセスを選択的に許容するステップは、ユニットモジュールオブジェクトモード属性の値とモジュールオブジェクトモード属性の値とに基づいて、モジュールオブジェクトに情報を書き込むアクセスを制御するステップを含み得る。
【００１４】
他の実施形態では、ユニットモジュールオブジェクトは、値を有するユニットモジュールオブジェクトロック属性を含み得、そこでは、モジュールオブジェクトへの情報を書き込むためのアクセスを選択的に許容するステップは、ユニットモジュールオブジェクトロック属性の値に基づいて、モジュールオブジェクトに情報を書き込むためのアクセスを制御するステップを含み得る。更に、プロセス制御システムはフェーズを含み得、モジュールオブジェクトへの情報を書き込むためのアクセスを選択的に許容するステップは、ユニットモジュールオブジェクトがそのフェーズによって使用されているかを決定することによりユニットモジュールオブジェクトロック属性の値を決定するステップを含み得る。
【００１５】
更に、プロセス制御システムは、オペレータロックアウトを含むフェーズを含み得、そこでは、モジュールオブジェクトへの情報を書き込むためのアクセスを選択的に許容するステップは、ユニットモジュールオブジェクトを使用してオペレータロックアウトがそのフェーズに対して設定されたかを決定することにより、ユニットモジュールオブジェクトロック属性の値を決定するステップを含み得る。更に、ユニットモジュールオブジェクトは、値を有するユニットモジュールオブジェクトロック属性を含み得、そして、プロセス制御システムは、そのユニットモジュールオブジェクトに関連する複数のモジュールオブジェクトを含み得、モジュールオブジェクトへの情報を書き込むためのアクセスを選択的に許容するステップは、ユニットモジュールオブジェクトロック属性の値に基づいて複数のモジュールオブジェクトに情報を書き込むためのアクセスを制御するステップを含み得る。
【００１６】
第２の実施形態に従えば、本発明は、プロセッサとハードウエア構成要素の状態を表すユニットモジュールオブジェクトとを有するプロセス制御システムで使用するための、モジュールオブジェクトに情報を書き込むアクセスを制御するためのアクセス制御システムであり得、そこでは、モジュールオブジェクトは、ユニットモジュールオブジェクトに関連し、ハードウエア構成要素の状態を変更するのに使用され、ユニットモジュールオブジェクトは値を有するユニットモジュールオブジェクトモード属性を有している。このシステムは、メモリと、そのメモリに格納されプロセッサにユニットモジュールモード属性の値を決定させる第１のルーチンと、そのメモリに格納されプロセッサにユニットモジュールオブジェクトモード属性の値に基づいてモジュールオブジェクトへの情報を書き込むためのアクセスを選択的に許容させるための第２のルーチンとを含んでいる。
【００１７】
第３の実施形態に従えば、本発明は、ハードウエア構成要素の状態を表すユニットモジュールオブジェクトを有するプロセス制御システムで使用するためのモジュールオブジェクトに情報を書き込むためのアクセスを制御する方法であり得、そこでは、モジュールオブジェクトは、ユニットモジュールオブジェクトに関連し、ハードウエア構成要素の状態を変更するのに使用され、モジュールオブジェクトは値を有するモジュールオブジェクトモード属性を有している。このような実施形態では、その方法は、モジュールオブジェクトモード属性の値を決定し、モジュールオブジェクトの値に基づいてモジュールオブジェクトに情報を書き込むためのアクセスを選択的に許容するステップを含んでいる。
【００１８】
第４の実施形態に従えば、本発明は、プロセス制御装置とそのプロセス制御装置に関連するモジュールオブジェクトとを含むプロセス制御システムであり得、そこでは、モジュールオブジェクトはプロセス制御装置のオペレーションを制御するのに使用されるパラメータを含み、モジュールオブジェクトはそのモジュールオブジェクトのパラメータに情報を書き込むためのアクセスを選択的に許容するモジュールオブジェクトモード属性を含んでいる。
【００１９】
本発明は、それ自身で、更なる目的と付随する利点と共に、添付の図面と組み合わせて、以下の詳細な記述により、当業者によって最良の理解が行われるであろう。
【００２０】
【発明の実施の形態】
図１を参照すれば、プロセス制御ネットワーク１０は、多数のワークステーション１４に例えばイーサネット（登録商標）接続１５を介して接続されたプロセスコントローラ１２を含んでいる。また、コントローラ１２は、プロセス（概略的に参照番号１６で表されている）内のデバイス又は装置と、入力／出力（Ｉ／Ｏ）デバイス（図示せず）及び通信ラインのセット若しくはバス１８を介して接続されている。単なる例示のＦｉｓｈｅｒ−Ｒｏｓｅｍｏｎｔ  Ｓｙｓｔｅｍｓ株式会社によって販売されているＤｅｌｔａＶ（商標）コントローラであるコントローラ１２は、一又はそれ以上のプロセス制御ルーチンを実行しそれによってプロセス１６の所望の制御を実行するために、例えばプロセス１６全体に分散しているフィールドデバイス及びフィールドデバイス内の機能ブロックのような制御エレメントと通信可能である。プロセス制御ルーチンは、連続又はバッチプロセス制御ルーチン又は手順である。ワークステーション１４（これは、例えばパーソナルコンピュータであり得る）は、一又はそれ以上の技術者又はオペレータによって、コントローラ１２によって実行されるべきプロセス制御ルーチンを設計するために、このようなプロセス制御ルーチンをダウンロードするためにコントローラ１２と通信するために、プロセス１６の操作の間にプロセス１６に関する情報を受領し表示するために、そして、コントローラ１２によって実行されているプロセス制御ルーチンと別の相互作用を行うために、使用され得る。ワークステーション１４のそれぞれは、例えば構成設計アプリケーションのようなアプリケーションを格納し、例えばプロセス１６の構成に関連する構成データのようなデータを格納するためのメモリ２０を含んでいる。また、ワークステーション１４のそれぞれは、ユーザがプロセス制御ルーチンを設計し、コントローラ１２にこれらのプロセス制御ルーチンをダウンロードするのを可能とするアプリケーションを実行するプロセッサ２１を含んでいる。同様に、コントローラ１２は、プロセス１６を制御するために使用される構成データ及びプロセス制御ルーチンを格納するためのメモリ２２を含み、プロセス制御方策を実行するためにプロセス制御ルーチンを実行するプロセッサ２４を含んでいる。もし、コントローラ１２がＤｅｌｔａＶコントローラであるなら、それは、コントローラ１２内のプロセス制御ルーチンの図式描写を、プロセス制御ルーチン内の制御要素とこれらの制御要素がプロセス１６の制御を提供するように構成される方法を図示するワークステーション１４の一つを介してユーザに提供する。
【００２１】
図１に示す例示のプロセス制御ネットワーク１０では、コントローラ１２はバス１８を介して同様に構成された装置の２つのセットに通信可能に接続され、それぞれのセットは、ここでＲｅａｃｔｏｒ＿０１（Ｒ１）又はＲｅａｃｔｏｒ＿０２（Ｒ２）として言及する反応器ユニット、ここでＦｉｌｔｅｒ＿０１（Ｆ１）又はＦｉｌｔｅｒ＿０２（Ｆ２）として言及するフィルタユニット、Ｄｒｙｅｒ＿０１（Ｄ１）又はＤｒｙｅｒ＿０２（Ｄ２）として言及するドライヤユニットを有している。Ｒｅａｃｔｏｒ＿０１は、反応容器１００、例えばヘッドタンク（図示せず）から反応容器１００に液体を供給する入口ラインを制御するために接続されている２つの入力バルブ１０１及び１０２と、排出液体ラインを介して反応容器１００の液体流出を制御するために接続されている出力バルブ１０３とを含んでいる。温度センサ、圧力センサ、液体レベルメーター等のようなセンサであるデバイス１０５、又は電気ヒーター又はスチームヒーター等の幾つかの他の装置が、反応容器１００又はその近傍に配置されている。Ｒｅａｃｔｏｒ＿０１はバルブ１０３を介してフィルタ装置１１０を有するＦｉｌｔｅｒ＿０１に接続され、これは続いてドライヤ装置１２０を有するＤｒｙｅｒ＿０１に接続されている。同様に、装置の第２のセットは、反応器２００、２つの入力バルブ２０１及び２０２と、出力バルブ２０３と、デバイス２０５とを含んでいる。Ｒｅａｃｔｏｒ＿０２はフィルタ装置２１０を有するＦｉｌｔｅｒ＿０２に接続され、これは続いてドライヤ装置２２０を有するＤｒｙｅｒ＿０２に接続されている。フィルタ装置１１０及び２１０、並びにドライヤ装置１２０及び２２０は、付加的な制御要素（例えば、ヒーター、コンベヤベルト等）、それに関連するセンサ等を有し得る。図１に示すように、コントローラ１２は、バルブ１０１−１０３、２０１−２０３、デバイス１０５，２０５、フィルタ１１０，２１０、及びドライヤ１２０，２２０（及びこれらに関連する他の装置）にバス１８を介して通信可能に接続され、これらのユニットに関連する一又はそれ以上のオペレーションを実行するためにこれらの要素の制御を行う。このようなオペレーションは、例えば、反応容器又はドライヤを満たすこと、反応容器又はドライヤ内の材料を加熱すること、反応容器又はドライヤから排出すること、反応容器又はドライヤを洗浄すること、フィルタを操作すること等を含んでいる。
【００２２】
図１に示されているバルブ、センサ、及び他の装置は、例えばフィールドバスデバイス、標準的な４−２０ｍＡデバイス、ＨＡＲＴデバイス等を含む所望の種類又はタイプの何れでもであり得、例えばフィールドバスプロトコル、ＨＡＲＴプロトコル、４−２０ｍＡアナログプロトコル等の公知又は所望の通信プロトコルを使用して、コントローラ１２と通信し得る。更に、他のタイプのデバイスがコントローラ１２に接続され及びこれによって制御され得る。また、他のコントローラも、プロセス１６に関連する他のデバイス又はエリアを制御するために、コントローラ１２及びワークステーション１４にイーサネット（登録商標）通信ライン１５を介して接続され得、このような付加的なコントローラのオペレーションは、図１に示されているコントローラ１２のオペレーションとどのような方法によっても協調し得る。
【００２３】
一般的に言えば、図１のプロセス制御システムは、例えばワークステーション１４の一つ又はコントローラ１２がバッチ実行ルーチン又はバッチ手順を実行するバッチプロセスを実行するのに使用され得る。バッチ手順（これは典型的にワークステーション１４の一つで実行される）は、反応器ユニット、フィルタユニット、ドライヤユニット又は他の装置の一つのような単一のユニット上で動作するサブルーチン又はプロセスである一又はそれ以上のユニット手順の動作を指向する高レベルの制御ルーチンである。各ユニット手順（これも、ワークステーション１４の一つで実行される）は一連のオペレーションを実行し、そのそれぞれは、関連するユニットモジュールを有するユニット上で一又はそれ以上のフェーズを実行する。この議論については、フェーズはユニット上で典型的に実行される最も低レベルのオペレーション又はステップであり、コントローラ１２の一つで実行又は実装され、オペレーションはそのユニット上の特定の機能を実行するフェーズのセットであり、一連のフェーズを呼び出すことによりワークステーション１４の一つで典型的に実行又は実装され、一方、ユニット手順は単一のユニット上で実行される一連の一又はそれ以上のオペレーションであり、一連のオペレーションコールとして典型的に実行される。結果として、ユニット手順は一又はそれ以上のフェーズ及び／又は一又はそれ以上のオペレーションを含み得る。
このような方法により、バッチ実行ルーチンは、食品、薬等のような製品を生産するのに必要とされる異なるステップ又はステージ（即ち、ユニット手順）を実行する。
【００２４】
異なるユニット手順、オペレーション及びステップを実行するために、バッチ手順は、実行されるべきステップ、そのステップに関連する量及び時間、並びにステップの順序を特定する一般的にレシピと言われるものを使用する。一つのレシピについてのステップは、例えば、適当な材料又は原料で反応器を満たすこと、反応容器内の材料を混合すること、反応容器内の材料をある温度である時間加熱すること、反応器内を空にして次に洗浄し次のバッチ実行のために準備すること、反応器からの排出物を濾過するためにフィルタを通過させること、そして次に、反応器で生成された生産物を乾燥させるためにドライヤーを通過させることを含んでいる。異なるユニットに関連する一連のステップのそれぞれは、バッチ実行のユニット手順を定義し、そしてコントローラ１２内のバッチ実行ルーチン又はバッチ手順がこれらのユニット手順のそれぞれの一つについての異なる制御アルゴリズムを実行するであろう。勿論、具体的な材料、材料の量、加熱温度及び時間等は、レシピ毎に異なっており、従って、これらのパラメータは、製造又は生産される生成物と使用されているレシピに依存して、バッチ実行毎に変更され得る。ここでは制御ルーチン及び構成が、図１に示されている反応器ユニット、フィルタユニット及びドライヤユニットでのバッチ実行について記載されているけれども、制御ルーチンは、所望なら、どのようなバッチプロセス実行を行うために、又は連続プロセス実行を行うために使用され得ることを、当業者は理解するであろう。
【００２５】
また、当業者は、バッチプロセスの同じフェーズ、オペレーション又はユニットプロセスは、同時又は異なる時に、図１の異なる反応器ユニットのそれぞれで実行され得ることも理解するであろう。更に、図１の反応器ユニットは、一般的に同じ数及びタイプの装置を有している（即ち、それらは同じユニットクラスに帰属している）ので、この属のフェーズ制御ルーチンが異なる反応器ユニットに関連する異なるハードウエア又は装置を制御するように改変されなければならないという点を除いて、特定のフェーズについての同属のフェーズ制御ルーチンが、異なる反応器ユニットのそれぞれを制御するのに使用され得る。例えば、Ｒｅａｃｔｏｒ＿０１を満たすフェーズを実行するために（ここでは反応器ユニットが満たされる）、充満制御ルーチンは、一又はそれ以上の入力バルブ１０１又は１０２を、例えば液面メータ１０５が反応容器１００が満たされたことを検出するまで、ある時間の間開く。しかしながら、この同様のルーチンは、単に入力バルブの指示をバルブ１０１又は１０２に代えてバルブ２０１又は２０２に変更することにより、そして、液面メータの指示を液面メータ１０５に代えて液面メータ２０５に変更するだけで、Ｒｅａｃｔｏｒ＿０２に対する充満フェーズを実行するのに使用され得る。
【００２６】
図２のオブジェクト構造又はツリーは、ボックス内の具体的なオブジェクトを表し、オブジェクト（又はオブジェクトのタイプ）の一般的な分類は、オブジェクトの上にボックス無しでツリーに示されている。図２に示されているように、プロセス制御ネットワーク１０は、例えば、プラント内のビルディング又は地理的なエリア表示等の他の一又はそれ以上のアイリアスを含んでいる。図２のオブジェクトツリーでは、プロセスは、Ｂｕｉｌｄｉｎｇ＿０１及びＢｕｉｌｄｉｎｇ＿０２と名付けられた２つのエリアオブジェクトを有している。それぞれのエリアオブジェクトはプロセスセルに分割され、それぞれのプロセスセルは、そのエリアで実行されているプロセスの特徴、又はそのエリア内の相互接続された装置のセットを認識する。図２のＢｕｉｌｄｉｎｇ＿０１エリアオブジェクトは、Ｃｅｌｌ＿０１及びＣｅｌｌ＿０２で示される少なくとも２つのプロセスセルオブジェクトを含んでいるように記載されている。各セルオブジェクトは、プロセスセルで使用されるハードウエアの異なるカテゴリ又はグルーピングを認識するゼロ、一又はそれ以上のユニットクラスを含み得る。
【００２７】
ユニットクラスは、複製された装置のセットの共通の構成を保持する命名されたオブジェクトであり、より詳細には、非常に似ているが同一ではないプロセス機器を有するユニットの収集物であり、そのそれぞれは、プロセス内で非常に似ているが同一ではない機能を果たす。ユニットクラスオブジェクトは、それが帰属するプロセス制御システム内のユニットのタイプを記述するように典型的に命名される。図２は、Ｃｅｌｌ＿０１オブジェクトに関連するＨｅａｄＴａｎｋユニットクラス、Ｒｅａｃｔｏｒユニットクラス、Ｆｉｌｔｅｒユニットクラス及びＤｒｙｅｒユニットクラスを記述している。ユニットの他のグルーピングが他のセルに関連し得るが、同様のユニットクラスがＣｅｌｌ＿０２に見られるであろう。勿論、殆どのプロセス制御ネットワークでは、ユニットクラスの多くの他のタイプが、同様に提供され又は定義されるであろう。
【００２８】
図２のＲｅａｃｔｏｒユニットクラスについて示されているように、各ユニットクラスオブジェクトは、それに関連するユニットモジュールオブジェクト及びフェーズクラスオブジェクト（即ち、フェーズ）を有し得る。ユニットクラスは、一般的に、命名されたユニットクラス内の複製されたハードウエアのあるインスタンスを特定し、一方、フェーズクラスは、一般的に、ユニットクラスに関連するユニットモジュールオブジェクトに適用され得るフェーズを特定する。より詳細には、ユニットモジュールオブジェクトは、単一のプロセスユニットに対する変数とユニットフェーズの全てを保持する命名されたソフトウエアオブジェクトであり得、具体的なプロセス装置を識別するように典型的に命名される。例えば、図２のＣｅｌｌ＿０１のＲｅａｃｔｏｒユニットクラスは、Ｒ１及びＲ２フェーズオブジェクトを有し、これらは図１に示されているＲｅａｃｔｏｒ＿０１及びＲｅａｃｔｏｒ＿０２ユニットモジュールに対応している。Ｃｅｌｌ＿０１のＨｅａｄＴａｎｋユニットクラスは、単一のＨＴ１のユニットモジュールを含んでいる。同様に、Ｃｅｌｌ＿０１のＦｉｌｔｅｒユニットクラスは、具体的なフィルタモジュールＦ１を有し、Ｃｅｌｌ＿０１のＤｒｙｅｒユニットクラスは、それに関連するＤ１及びＤ２のドライヤユニットを有している。同様に、Ｃｅｌｌ＿０２は（ＨＴ１の単一のユニットモジュールを有する）ＨｅａｄＴａｎｋ、（Ｒ３の単一の反応器ユニットモジュールを有する）Ｒｅａｃｔｏｒ、（フィルタユニットモジュールＦ２及びＦ３を有する）Ｆｉｌｔｅｒのユニットクラスを有しているであろう。
【００２９】
図２に示すように、各ユニットフェーズオブジェクトは、一又はそれ以上の関連するモジュールを有し得、そのそれぞれは、（処理している部分内に含まれ又は含まれない）セットポイントをモニタする部分と同様に、入力、処理及び出力の部分を有している。例えば、ユニットモジュールオブジェクト１（これはユニットモジュールオブジェクトであると考えられる）は、モジュールオブジェクト１及び２を所有し得る。加えて、ユニットモジュールオブジェクト２（これもユニットモジュールオブジェクトであると考えられる）は、モジュールオブジェクト２を所有し得る。当業者によって理解されるように、モジュールオブジェクトは一又はそれ以上の異なるユニットモジュールオブジェクト又はユニットフェーズオブジェクトに関連し得る。一般的には、特定のモジュールオブジェクトが２つ又はそれ以上の異なるユニットモジュールオブジェクトに関係しているけれども、これらのユニットモジュールオブジェクトのたった一つが、与えられた時間に特定のモジュールを使用し得る。ユニットモジュールオブジェクトに関連するどのようなモジュールオブジェクトも、そのユニットモジュールオブジェクトによって所有されているとして言及され得る。
【００３０】
フェーズクラスは、同じユニットクラスに属する複数のユニットクラス上で、及び所望なら複数の異なるユニットクラス上で実行され得るフェーズに対する共通の構成を保持する命名されたオブジェクトである。本質的には、各フェーズは、コントローラ１２によって生成され使用されて同じ又は異なるユニットクラス内のユニットモジュールを制御する異なる制御ルーチンである。典型的には、各フェーズクラスは、ユニットモジュール上で実行されるアクションを記述する動詞に関連して命名される。例えば、図２に記載されているように、Ｒｅａｃｔｏｒユニットクラスは、図１の反応容器１００又は２００の何れか一つを充満させるのに使用されるＦｉｌｌフェーズクラス、図１の反応容器１００又は２００の何れか一つを加熱するのに使用されるＨｅａｔフェーズクラス、図１の反応容器１００又は２００の何れか一つを空にするのに使用されるＤｕｍｐフェーズクラス、及び図１の反応容器１００又は２００の何れか一つを洗浄するのに使用されるＣｌｅａｎフェーズクラスを有している。勿論、これに関連するどのような他のフェーズクラス又はユニットクラスでもあり得る。ＨｅａｄＴａｎｋ、Ｆｉｌｔｅｒ及びＤｒｙｅｒフェーズクラスに対する図２には具体的なフェーズクラスは示されてはいないが、少なくとも一つのフェーズクラスがそれぞれに対して存在し、そして、そのフェーズクラスが関連するユニットモジュールオブジェクトを使用して、バッチプロセスの部分、ユニット手順又はオペレーションを実行するのに使用される。フェーズクラスは、一般的には、そのバッチプロセスについてのレシピによって定義されるように、全体に亘るバッチプロセスで必要とされる幾つかの機能を果たすように、ユニットプロセスのオペレーション（バッチ実行ルーチン内の全て）によって呼び出されるサブルーチンであると考えられる。フェーズクラスは、基本的にバッチ実行ルーチン又は他のフェーズクラスからフェーズクラスサブルーチンに提供される入力であるゼロ又はそれ以上のフェーズ入力パラメータ、基本的にバッチ実行ルーチン又は他のフェーズクラスに戻されるフェーズクラスサブルーチンの出力であるゼロ又はそれ以上のフェーズ出力パラメータ、フェーズクラスのオペレーションに関してユーザに表示されるメッセージ又は幾つかの方法でこのフェーズクラスが関連する他のフェーズクラスに関する情報であるゼロ又はそれ以上のメッセージ、及びこのフェーズクラスに基づいてフェーズ論理モジュール又はユニットフェーズで生成されるパラメータを生ずるゼロ又はそれ以上のフェーズアルゴリズムパラメータを含み得る。（ユニットフェーズは、単に特定のユニットに対するフェーズクラスの実例を示す変形である）。これらのフェーズアルゴリズムパラメータは、一時的な格納場所又はフェーズの実行中の変数として使用され、必ずしもユーザ又はバッチ実行ルーチンに見えている必要はない。各フェーズは、一般的に言えばフェーズを実行するのに使用される制御ルーチンである一又はそれ以上のフェーズアルゴリズム定義（ＰＡＤｓ）を含み得る。また、各フェーズクラスは、ゼロ、一、二又はそれ以上のユニットへの連想リストを有し、このリストは、このフェーズクラス及び従ってフェーズクラスのＰＡＤが適用され得るユニットクラスを定義する。従って、同じフェーズクラスは異なるプロセスセルの同じユニットクラス、又は同じ若しくは異なるプロセスセル若しくは装置の列の異なるユニットクラスに関連し得る。
【００３１】
再び図２のユニットモジュールを参照すると、各ユニットモジュールオブジェクトは、初期値を有するゼロ又はそれ以上のユニットタグオブジェクト（ＵＴ）又はパラメータを含んでいる。ＵＴオブジェクトは図２のＲ１及びＲ２モジュールについてのみ示されている。これらのパラメータは、そのユニットモジュールに関連する装置の設定と構成パラメータとに対応し得る。これらのユニットタグは、例えば、ユニットの容量、ユニットの材料、ユニットの製造者、又はその装置に関連する他のデータ若しくはパラメータを定義している。このデータは、製造データのように固定であり得、又はそのユニットが使用された最終時間、最後のプロセス又はそのユニット内に入れられた材料等のように可変であり得る。更にまた、各ユニットモジュールオブジェクトは、それに関連するアラーム、リソース識別子、（マン−マシンインターフェイス画像のような）制御ディスプレイ、このユニットモジュールが要求するリソースのリスト、プロセスセル情報等を有し得る。
【００３２】
よく知られているように、バッチ制御ルーチン又はバッチ手順は、例えば反応器ユニット（Ｒ１，Ｒ２，Ｒ３，Ｒ４）、フィルタユニット（Ｆ１，Ｆ２，Ｆ３）及び ドライヤ（Ｄ１，Ｄ２，Ｄ３）の何れかを含み得る装置のグループ又はセット上で特定のバッチプロセスを実行するために生成される。一般的に、このようなバッチ手順は、そのユニット手順が全体に亘るバッチ手順の間に実行される必要があるときに、それぞれ特定のユニットに関連し一又はそれ以上のモジュールオブジェクトを所有し得る一又はそれ以上のユニット手順又はユニットオブジェクトを呼び出し又は実行するであろう。しかしながら、バッチ手順が書かれ又は最初に実行を開始したときに異なるユニット手順のそれぞれに於いて使用されるべき特定のユニットを特定する代わりに、バッチ手順は、そのユニット手順又はステージが実行されるべきときに、バッチ手順のそれぞれの特定のユニット手順又はステージに対して使用されるべきユニットを選択する動的選択ルーチンを含み得る。この選択のタイミングは、バッチ手順が書かれ最初に実行されてから長時間経った後であり得る。実際に、幾つかの例では、バッチ手順の後のステージに対する動的選択ルーチンは、バッチ手順が最初に実行されてから数時間又は数日でさえある。
【００３３】
一般的に言えば、バッチ手順は、ユニット又は装置の異なるセット（又はときには同じセット）に関連する異なるユニット手順又はユニットモジュールを呼び出すように書かれる。書かれるに際しては、バッチ手順は、それが実行されるべき或る又は特定のプロセスセルを特定することができ、又はバッチ手順の開始時に使用されるべきプロセスセルをユーザ又はオペレータが選択するのを許容するように書かれる。しかしながら、一度特定のセルが選択されてバッチ手順が開始されたら、バッチ手順は、選択されたプロセスセルに関連する装置又はユニットモジュールを使用するように制限される。
【００３４】
勿論、バッチ手順を生成し又は記述するときには、エンジニアは、新たなユニット手順が実行されるときはいつでも、バッチ手順に動的選択ルーチンを単に呼び出させ得る。エンジニアは、動的にユニットを選択するためにその選択ルーチンによって使用されるべき各ユニット手順、ユニットクラス、ユニットオブジェクト等に対するユニットアロケーションテーブルを生成し得る。このユニットアロケーションテーブルは、例えば、関連するユニット手順、ユニットクラス、ユニットモジュール等に対して実行されるべき適切な表現と優先度の表現を含み得る。エンジニアは、各ユニットモジュールに対するユニットタグが選択ルーチンによって必要とされるユニットパラメータを含んでいるということを確保しなければならない。次に、エンジニアは、バッチ手順が実行され得るときに、適当なコントローラ１２及び／又はワークステーション１４内の適当なデータベースに、バッチ手順、選択ルーチン、ユニットアロケーションテーブル及びユニットタグをダウンロードする。
【００３５】
図３を参照すれば、ユーザインターフェイス３００の描写は、フェーズのステップを表す種々のボックスを含むフェーズダイヤグラム図式描写３０５をフローチャートの形式で含んでいる。このようなユーザインターフェイス３００は、ビデオディスプレイ上に表示され得るユーザインターフェイスと同様であり得る。ステップは、フェーズダイヤグラムの種々のボックスによって色々に表現されているステップは、種々のユニットモジュールオブジェクト及び／又はモジュールオブジェクトを使用して実行され得る。
【００３６】
また、ユーザインターフェイス３００は、ユニットモジュールオブジェクト及び／又はモジュールオブジェクトがユーザインターフェイス３００上に表示されているフローダイヤグラム３０５によって表現されるフェーズによって使用されるときに、ユーザがユニットモジュールオブジェクト及び／又はモジュールオブジェクトのロック特性を可能又は不可能とすることを許容するパラメータを表わすオペレータロックアウトチェックボックス３１０を含んでいる。ここで使用されているように、「ロック」という用語は、ユニットモジュールオブジェクト又はモジュールオブジェクトに情報が書き込まれ得ないことを意味し、「ロック解除」という用語は、ユニットモジュールオブジェクト又はモジュールオブジェクトに情報が書き込まれ得ることを意味している。モジュールオブジェクトに書き込まれるべき情報は、これには限定されないが、セットポイント、流速、タイミング又は他のパラメータを含み得る。本開示の目的のために、そのフェーズがそのフェーズの実行の間その特定のユニットモジュールオブジェクト及び／又はモジュールオブジェクトを使用するときに、特定のユニットモジュールオブジェクト及び／又はモジュールオブジェクトは、特定のフェーズによって所有されるとして言及される。特に、フェーズオペレーションの混乱を避けるために、ユニットモジュールオブジェクト及び／又はそれらに関連するモジュールオブジェクトは、チェックボックス３１０の使用を通じて優位に制御され得る。例えば、フェーズのオペレータ設計又は改変がチェックボックス３１０の使用を介してロックアウト特性を可能とするとき、特定のフェーズによって所有されているユニットモジュールオブジェクト及び／又はモジュールオブジェクトは、そのフェーズがアクティブなときにロックされ得る。フェーズがアクティブと考えられる間、フェーズは種々のオペレーションのモードを有し得る。例えば、そのフェーズが実行され、保持され、停止され、中断され又は再スタートされるときには、フェーズはアクティブであると考えられる。フェーズがアイドル、完了、停止又は中断状態であるときは、そのユニットモジュールオブジェクトによって所有されているモジュールオブジェクトはロックされていない。その代わりに、フェーズが稼働していないときでさえ、ユニットモジュールオブジェクト及び／又はモジュールオブジェクトはロックされている。
【００３７】
図４に示すように、ユニットモジュールオブジェクト３２０はＯＰＥＲＬＯＣＫ属性、パラメータ又はフィールド３２５、及びＯＰＥＲＭＯＤＥ属性、パラメータ又はフィールド３３０を有し、それぞれユニットモジュールオブジェクトによって所有されるユニットモジュールオブジェクト及び／又はモジュールオブジェクトにオペレータがアクセスするのに使用され得る属性を表している。ＯＰＥＲＬＯＣＫ属性は、各ユニットモジュールオブジェクトに含まれるモジュールレベル名設定パラメータであり、ＯＰＥＲＭＯＤＥ属性は、各ユニットモジュールオブジェクト及び／又はモジュールオブジェクトに含まれるモジュールレベル名設定パラメータである。ＯＰＥＲＬＯＣＫ及びＯＰＥＲＭＯＤＥフィールド３２５、３３０は、フィールド３２５、３３０を異なる値で満たすためにユーザによって使用され得るプルダウンメニューを有している。これに代えて、ＯＰＥＲＬＯＣＫ及びＯＰＥＲＭＯＤＥフィールド３２５、３３０は、プログラムの部分によって操作され得る（即ち、ロック、ロック解除等）。また、図４に示されているのは、ユニットモジュールオブジェクト３２０によって所有されている３つのモジュールオブジェクト３３５，３４０，３４５である。各モジュールオブジェクト３３５，３４０，３４５は、ＯＰＥＲＭＯＤＥフィールド３３０を有している。ＯＰＥＲＬＯＣＫ及びＯＰＥＲＭＯＤＥフィールド３２５、３３０に入れられている値は、ユニットモジュールオブジェクト及び／又はモジュールオブジェクトの状態を制御する。例えば、ユニットモジュールオブジェクト又はモジュールオブジェクトは、ＯＰＥＲＬＯＣＫ及びＯＰＥＲＭＯＤＥフィールド３２５、３３０に入れられている値に基づいて、ロック状態又はロック解除状態にされる。オペレータのアクセスに関する更なる詳細及びどのようにＯＰＥＲＬＯＣＫ及びＯＰＥＲＭＯＤＥフィールド３２５、３３０を使用してそれが制御されるかは、図５、６及び７とそれらに付随する以下の記述とに関して提供されるであろう。
【００３８】
ＯＰＥＲＬＯＣＫフィールド３２５は、ロック３５０、ロック解除３５５及び制限３５７という値をそれぞれ含み得るプルダウンメニュー項目を有し得、これらはオペレータによって選択され得る。例えば、オペレータはマウス、キーボード又は幾つかの他の入力デバイスをワークステーション１４で使用して、プルダウンメニューから値を選択する。これに代えて、ＯＰＥＲＬＯＣＫフィールド３２５の値は、オペレータロックアウトチェックボックス３１０（図３）及び後に詳細に記述するＯＰＥＲＭＯＤＥフィールド３３０の値に基づいて計算され又は評価される。例えば、オペレータがフェーズを編集し又は生成したとき、もしオペレータがオペレータロックアウトチェックボックス３１０を選択したら、ユニットモジュールオブジェクト３２０のＯＰＥＲＬＯＣＫフィールド３２５は、そのユニットモジュールオブジェクト３２０を使用するフェーズが開始されたときにＬＯＣＫＥＤの値で満たされる得る。また、ユニットモジュールオブジェクト３２０のＯＰＥＲＬＯＣＫフィールド３２５は、ユニットモジュールオブジェクト３２０を使用するフェーズが実行中又はＯＰＥＲＬＯＣＫフィールド３２５のトラック状態を実行中かどうかにとは独立に制御され得る。もし、ユニットモジュールオブジェクト３２０及びモジュール３３５，３４０，３４５のＯＰＥＲＭＯＤＥフィールド３３０が（後述するように）適切に設定されているなら、ＯＰＥＲＬＯＣＫフィールド３２５は、ユニットモジュールオブジェクト３２０及びモジュール３３５，３４０，３４５へのアクセスを制御するのに使用され得る。従って、ＯＰＥＲＬＯＣＫフィールド３２５は、オペレータがソフトウエア又はユニットモジュールオブジェクト３２０若しくはモジュールオブジェクト３３５，３４０，３４５の属性を変更することにより混乱することを防止するのに有利に使用され得る。ＯＰＥＲＬＯＣＫフィールド３２５及びその計算は、図５に関連して更に詳細に記述されるであろう。
【００３９】
ユニットモジュールオブジェクト３２０及び／又はモジュールオブジェクト３３５，３４０，３４５に含まれ得るＯＰＥＲＭＯＤＥフィールド３３０は、図４のロック３６０、ロック解除３６５、制限３７０又は自動３７５の値を含むプルダウンメニューを含み得る。もし、ＯＰＥＲＭＯＤＥフィールド３３０がロックの値を有するなら、そのユニットモジュールオブジェクトによって所有されるユニットモジュールオブジェクト及び／又はモジュールオブジェクトへの全ての書き込みの試みは、妨げられるであろう。従って、オペレータは、ロック状態の値を特定しているＯＰＥＲＭＯＤＥフィールド３３０を有するユニットモジュールオブジェクト又はモジュールオブジェクトに変更を加えようとすると、妨げられる。逆に、もし、ＯＰＥＲＭＯＤＥフィールド３３０がロック解除状態の値を有しているなら、ユニットモジュールオブジェクト又はモジュールオブジェクトへの書き込みが行われる（おそらく、標準の機密性チェック下にある）。もし、ユニットモジュールオブジェクト又はモジュールオブジェクトが制限状態の値を有するＯＰＥＲＭＯＤＥフィールド３３０を有しているなら、そのユニットモジュール又はモジュールは、もし変更を加えようとするオペレータが適切な承認コードを有しているときのみ変更され得る。例えば、オペレータは、制限されているオブジェクト又はモジュールに変更を加えようとするのを許可される前に、正しいコード、個人識別番号（ＰＩＮ）又はパスワードをワークステーション１４に入力する必要がある。また、ユニットモジュールオブジェクト又はモジュールオブジェクトのＯＰＥＲＭＯＤＥフィールド３３０は、自動状態の値を有し得る。ロック、ロック解除及び制限の値を有するＯＰＥＲＭＯＤＥフィールド３３０のオペレーションは、ユニットモジュールオブジェクトとモジュールオブジェクトとの間で実質的に同じ（例えば、変更は許可され、妨げられ、又は制限されたアクセスに基づく）であるが、自動状態の値を有するＯＰＥＲＭＯＤＥフィールド３３０は、ＯＰＥＲＭＯＤＥフィールド３３０がユニットモジュールオブジェクト３２０又はモジュールオブジェクト３３５，３４０，３４５に位置するかどうかに依存して、僅かに異なる機能を果たし得る。
【００４０】
もし、ユニットモジュールオブジェクト３２０に対するＯＰＥＲＭＯＤＥフィールド３３０が自動の値を有するなら、ユニットモジュールオブジェクト３２０は、ユニットモジュールオブジェクト３２０のＯＰＥＲＬＯＣＫの状態に依存して、ロック又はロック解除の状態であろう。ＯＰＥＲＬＯＣＫの状態の計算に関する詳細は、図５の記述に関連して以下に提供されている。例えば、もし、ユニットモジュールオブジェクト３２０のＯＰＥＲＭＯＤＥフィールド３３０は自動の値を有し、そしてＯＰＥＲＬＯＣＫフィールド３２５がロックの値を有するなら、ユニットモジュールオブジェクト３２０はロックされ、従って、オペレータは、ユニットモジュールオブジェクト３２０に変更を加えようとすると妨げられるであろう。ユニットモジュールオブジェクトのＯＰＥＲＭＯＤＥフィールド３３０が自動に設定されているインスタンスでは、ＯＰＥＲＬＯＣＫフィールド３２５の値はモジュールオブジェクトを使用しているフェーズが動作しているかどうかに基づいて決定され得る。逆に、もし、ＯＰＥＲＭＯＤＥフィールド３３０が自動の値を有し、ＯＰＥＲＬＯＣＫフィールド３２５がロック解除の値を有しているなら、オペレータはユニットモジュールオブジェクト３２０に変更を加えることができるであろう。
【００４１】
もし、モジュールオブジェクト（例えば、モジュールオブジェクト３３５）内のＯＰＥＲＭＯＤＥフィールド３３０が自動の値を有しているなら、モジュールオブジェクト３３５の状態（例えば、ロック又はロック解除）が、モジュールオブジェクト３３５を所有するユニットモジュールオブジェクト３２０のＯＰＥＲＭＯＤＥフィールド３３０値に基づいて決定される。例えば、図４を参照すれば、モジュールオブジェクト３３５のＯＰＥＲＭＯＤＥフィールド３３０が自動の値を有しているなら、モジュールオブジェクト３３５は、ＯＰＥＲＬＯＣＫフィールド３２５を調べることにより、その状態を決定するであろう。従って、モジュールオブジェクトへのアクセスは、種々のモジュールオブジェクトを所有するユニットモジュールオブジェクトへのアクセスを制御することにより、階層的に制御され得る。
【００４２】
ユニットモジュールオブジェクト３２０及びモジュールオブジェクト３３５のＯＰＥＲＭＯＤＥフィールド３３０が自動の値を有しているとき、モジュールオブジェクト３３５の状態はユニットモジュールオブジェクト３２０のＯＰＥＲＬＯＣＫフィールド３２５によって制御されるであろう。例えば、もし、ＯＰＥＲＬＯＣＫフィールド３２５がロック状態の値を有しているなら、モジュールオブジェクト３３５はロックされるであろう。逆に、ユニットモジュールオブジェクト３２０のＯＰＥＲＬＯＣＫフィールド３２５がロック解除の値を有しているなら、モジュールオブジェクト３３５はロック解除されるであろう。
【００４３】
ＯＰＥＲＬＯＣＫ及びＯＰＥＲＭＯＤＥの両方がモジュールレベルパラメータを有しているので、多重フェーズは、種々のモジュールオブジェクト及び／又はユニットモジュールオブジェクトのＯＰＥＲＬＯＣＫ及びＯＰＥＲＭＯＤＥパラメータを変更するために、それらのオペレーションを調整する。例えば、フェーズは、フェーズの最初にロックの値をモジュールオブジェクトのＯＰＥＲＭＯＤＥに書き込むことにより、モジュールオブジェクトをロックし、フェーズが実質的に完了した後に自動の値をモジュールオブジェクトのＯＰＥＲＭＯＤＥに書き込むことにより、モジュールオブジェクトを自動モードに戻すことができる。
【００４４】
さて、図５に移れば、ユニットモジュールオブジェクトＯＰＥＲＬＯＣＫ決定機能４００は、種々のブロックによって表される種々のステップ又は手順を含んでいる。図５に示されているステップ又は手順は、適当な言語で書かれたソフトウエア命令を使用して実行され得、ソフトウエア命令はコントローラ１２又はワークステーション１４に含まれるようなプロセッサ上で実行され得る。ユニットモジュールオブジェクトは、そのユニットモジュールオブジェクトのＯＰＥＲＬＯＣＫ属性が、図６及び図７に関連して記述されるであろう機密性チェックプロセスソフトウエアを含むソフトウエアの他の部分によって読み取られるように、そのＯＰＥＲＬＯＣＫ属性の値を周期的に決定する。
【００４５】
一般的には、ロック、ロック解除及び制限のモジュールオブジェクトＯＰＥＲＭＯＤＥフィールド値については、ＯＰＥＲＬＯＣＫ属性はユニットモジュールオブジェクト３２０（図４）のＯＰＥＲＭＯＤＥフィールド３３０の値を追跡する。しかしながら、ユニットモジュールオブジェクト３２０のＯＰＥＲＭＯＤＥフィールド３３０は自動の値を有しているとき、ＯＰＥＲＬＯＣＫ属性の値は、そのユニットモジュールオブジェクトがフェーズによって使用されているか、及びそのフェーズのオペレータロックアウトチェックボックス３１０（図３）が選択されているかに基づいて決定される。
【００４６】
再び図５を参照すれば、ブロック４０２で、プロセス４００は、ユニットモジュールオブジェクト３２０のＯＰＥＲＭＯＤＥ属性がロックの値を有するかを決定する。もし、ユニットモジュールオブジェクト３２０のＯＰＥＲＭＯＤＥ属性がロックの値を有しているなら、制御はブロック４０２からブロック４０４に移行し、ユニットモジュールオブジェクト３２０のＯＰＥＲＬＯＣＫ属性をロックに設定する（即ち、ＯＰＥＲＭＯＤＥ属性と同じ値）し、制御はブロック４０６に移行してプロセス４００を終了する。しかしながら、もし、ＯＰＥＲＭＯＤＥ属性がロックの値を有していないなら、ブロック４０２はブロック４０８に移行する。
【００４７】
ブロック４０８はＯＰＥＲＭＯＤＥ属性の値がロック解除に設定されているかを決定する。もし、ブロック４０８がＯＰＥＲＭＯＤＥ属性がロック解除に設定されているなら、制御はブロック４０８からブロック４１０に移行し、ＯＰＥＲＬＯＣＫ属性をロック解除（即ち、ＯＰＥＲＭＯＤＥ属性と同じ値）に設定する。ブロック４１０がその実行を完了した後、ブロック４１０は制御をブロック４１２に移行させ、プロセス４００を終了させる。もし、ブロック４０８がユニットモジュールオブジェクト３２０のＯＰＥＲＭＯＤＥ属性がロック解除に設定されていなければ、制御はブロック４０８からブロック４１４に移行する。
【００４８】
ブロック４０２及び４０８と同様に、ブロック４１４はＯＰＥＲＭＯＤＥ属性の値をテストする。しかし、ブロック４１４は、ＯＰＥＲＭＯＤＥ属性が制限に設定されているかを決定するようにテストする。もし、ブロック４１４がＯＰＥＲＭＯＤＥ属性が制限に設定されていることを決定したなら、制御はブロック４１４からブロック４１６に移行し、ＯＰＥＲＬＯＣＫ属性の値を制限に等しく設定する。ブロック４１６の実行の後、制御はブロック４１８に移行し、プロセス４００の処理を終了する。
【００４９】
もし、ブロック４０２、４０８及び４１４で述べた問いかけに対する答えが全て「いいえ」なら、制御は最終的にブロック４２０に移行する。ユニットモジュールオブジェクトＯＰＥＲＭＯＤＥ属性に対するブロック４０２、４０８及び４１４のテストはロック、ロック解除及び制限にそれぞれ等しい値であるべきであるので、もし、プロセス４００の実行によりブロック４２０に達するなら、ＯＰＥＲＭＯＤＥ属性は自動に等しいはずである。ブロック４２０は、フェーズが現在ユニットモジュールオブジェクト３２０を使用しているか、及びユニットモジュールオブジェクトが使用されているか、現在ユニットモジュールオブジェクト３２０を使用しているそのフェーズに対するオペレータロックアウトチェックボックス３１０（図３）が選択されているかを決定する。各モジュールはそれを所有するユニットモジュールオブジェクトの正体を知っているので、これは可能である。もし、ユニットモジュールオブジェクト３２０が使用されており、ユニットモジュールオブジェクト３２０を使用しているフェーズのオペレータロックアウトチェックボックス３１０が選択されているなら、制御はブロック４２２に移行する。ブロック４２２はＯＰＥＲＬＯＣＫ属性をロックに等しく設定し、制御をブロック４２４に移行させ、プロセス４００の実行を終了する。
【００５０】
図５に示すプロセス４００は、特定の順序でブロック４０２，４０８，４１４及び４２０に示す問い合わせを有しているけれども、当業者は、問い合わせの順序は変更可能であることを容易に認識するであろう。例えば、ブロック４０２によって果たされる問い合わせは、ブロック４０８又は４１４によって果たされる問い合わせの何れかの後に実行されてもよい。どのように問い合わせが図５に再配置されるかの更なる例として、ブロック４０２，４０８及び４１４によって果たされる問い合わせに対する答えが全て「いいえ」であるなら、ブロック４２０はＯＰＥＲＭＯＤＥが自動モードであると仮定する。このような仮定が行われるのは、ＯＰＥＲＭＯＤＥがブロック４２０の実行前にブロック４０２，４０８及び４１４によってテストされているからである。従って、ＯＰＥＲＭＯＤＥが自動であることを仮定する最後の問い合わせの代わりに、ＯＰＥＲＭＯＤＥが例えばロックであることを仮定する最後の問い合わせを可能とするように、問い合わせを加え又は並び替え得る。例えば、もし、図５のブロック４０２がＯＰＥＲＭＯＤＥがロックの代わりに自動であるかをテストするように変更されると、プロセス４００の実行がブロック４２０に達したとき、ブロック４０２，４０８及び４１４によって果たされる問い合わせが全て「いいえ」の答えを有しているので、ブロック４２０はＯＰＥＲＭＯＤＥはロックであると仮定することができる。
【００５１】
さて、ブロック４２０に戻って、もし、ユニットモジュールオブジェクト３２０がフェーズによって現在使用されていないか、又はユニットモジュールオブジェクト３２０を使用しているフェーズのオペレータロックアウトチェックボックス３１０が選択されていないなら、制御はブロック４２０からブロック４２６に移行する。ブロック４２６は、プロセス４００を終了させるブロック４２８に移行する前にＯＰＥＲＬＯＣＫ属性をロック解除に等しく設定する。
【００５２】
図５の先の記載によって理解されるように、ユニットモジュールオブジェクト３２０のＯＰＥＲＭＯＤＥ属性は自動に設定されるとき、ブロック４２０−４２８は、ユニットモジュールオブジェクト３２０がフェーズによって使用されているかどうか、及びオペレータロックアウトチェックボックス３１０のロックアウトが選択されているかどうかに基づいて、ＯＰＥＲＬＯＣＫ属性をロック又はロック解除の何れかに自動的に設定されるように機能する。図６及び図７に示される機密性チェックプロセス５００に関連して記述されるように、ＯＰＥＲＬＯＣＫ属性は、フェーズオペレーションの間にユニットモジュールオブジェクト及び／又はモジュールオブジェクトにオペレータがアクセスするのを防止するのに有用である。
【００５３】
設定ポイント、流速等の情報又はパラメータをユニットモジュールオブジェクト及び／又はモジュールオブジェクトにオペレータが不注意に書き込むことを防止するために、図６及び図７に示すように、オペレータがユニットモジュールオブジェクト及び／又はモジュールオブジェクトに情報を書き込むことを希望したときに、機密性チェックプロセス５００が実行される。付加的な又は他の機密性チェックが、図６及び図７に示すプロセスに加えて実行される。記述の簡単のために、情報が書き込まれるべきモジュールオブジェクトは、書き込まれるべき情報の標的であるので、標的モジュールオブジェクトと呼ばれる。ユニットモジュールオブジェクト及び／又はモジュールオブジェクトに書き込まれるべき情報はそのアドレスを有し、そのアドレスはパラメータ名及びフィールド名を含んでいる。パラメータ名は、情報が書かれるべきデータ構造を識別するのに使用される。フィールド名は、情報が書かれるべきデータ構造の特定の位置を識別するのに使用される。従って、パラメータ名及びフィールド名は、標的モジュールに書き込まれるべき情報に対するアドレスとして振る舞う。
【００５４】
以下の記述で強調されるように、オペレータは、標的モジュールオブジェクトとその標的モジュールオブジェクトを所有するユニットモジュールオブジェクトのＯＰＥＲＭＯＤＥ属性に基づいて、標的モジュールオブジェクトに情報を書き込む能力を有するであろう。加えて、標的モジュールオブジェクトに情報を書き込む能力は、標的モジュールオブジェクトを所有するユニットモジュールオブジェクトＯＰＥＲＭＯＤＥ属性の値に依存し得る。
【００５５】
図６及び図７を参照すれば、プロセス５００が開始したとき、ブロック５０２は情報が書き込まれるべきフィールドが機密状態にあるかを決定する。もし、報が書き込まれるべきフィールドが機密状態にないなら、制御はブロック５０４に移行し、これは標的モジュールオブジェクトへの書き込みを可能とする。ブロック５０４が完了した後、機密性チェックプロセス５００はブロック５０６で終了する。しかし、もし、情報が書き込まれるべきフィールドが機密状態であるなら、制御はブロック５０２からブロック５０８に移行し、標的モジュールオブジェクトに書き込まれるべきパラメータが機密状態にあるかを決定する。もし、標的モジュールオブジェクトに書き込まれるべきパラメータが機密状態にあるなら、制御はブロック５１０に移行し、標的モジュールオブジェクトへの書き込みを可能とし、制御をブロック５１２に移行し、そこで機密性チェックプロセス５００を終了する。フィールド又はパラメータが機密状態にあるかどうかは、単に設計上の選択に過ぎない。例えば、オペレータはアラーム、状態条件等には常に応答する必要があるので、アラーム又は他の状態条件の認識は機密状態にあることにはならない。もし、標的モジュールオブジェクトに書き込まれるべき情報が機密状態にあるパラメータであるなら、ブロック５０８は制御をブロック５１４に移行させ、ブロック５１４は標的モジュールオブジェクトのＯＰＥＲＭＯＤＥを読み取る。
【００５６】
標的モジュールオブジェクトのＯＰＥＲＭＯＤＥがブロック５１４で読み出された後、制御はブロック５１６に移行する。もし、標的モジュールオブジェクトのＯＰＥＲＭＯＤＥがロック状態なら、ブロック５１６は制御をブロック５１８に移行させ、標的モジュールオブジェクトへの書き込みを不可とし、標的モジュールオブジェクトがロックされていることをオペレータに知らせる。ブロック５１８が完了すると、制御はブロック５２０に移行し、ここで機密性チェックプロセス５００は終了する。もし、標的モジュールオブジェクトのＯＰＥＲＭＯＤＥがロック解除状態なら、ブロック５１６は制御をブロック５２２に移行させ、標的モジュールオブジェクトのＯＰＥＲＭＯＤＥが制限状態であるかを決定する。もし、ＯＰＥＲＭＯＤＥが制限状態であるなら、制御はブロック５２２からブロック５２４に移行し、オペレータが情報を標的モジュールオブジェクトに書き込むことを可能とする適切なキーを有しているかどうかを決定する。適切なキーは、個人識別番号（ＰＩＮ）、オペレータの名前、パスワード又はオペレータを識別するのに使用し得る他の適切な情報のどのような断片をも含み得る。もし、オペレータが適切なキーを有していないなら、ブロック５２４は制御をブロック５２６に移行させ、標的モジュールオブジェクトへの書き込みを不可とし、彼又は彼女が標的モジュールオブジェクトへの書き込みを行うアクセス権を有していないことをユーザに知らせる。ブロック５２６が実行された後、制御はブロック５２８に移行し、機密性チェックプロセス５００の実行を終了する。しかし、もし、オペレータが適切なキーを有していないなら、ブロック５２４は制御を標的モジュールオブジェクトに情報が書き込まれることを可能とするブロック５３０に移行させ、更に制御をブロック５３２に移行させ、機密性チェックプロセス５００を終了する。
【００５７】
もし、標的モジュールオブジェクトのＯＰＥＲＭＯＤＥがロック状態でもなく制限状態でもないなら、制御はブロック５２２からブロック５３４に移行し、ＯＰＥＲＭＯＤＥが自動であるかを決定する。もし、ＯＰＥＲＭＯＤＥが自動に設定されていないなら、ＯＰＥＲＭＯＤＥはロック解除に設定されなければならず、ブロック５３４は制御をブロック５３６に移行させ、標的モジュールオブジェクトに情報が書き込まれるのを可能とする。ブロック５３６が実行を完了した後、制御はブロック５３８に移行し、機密性チェックプロセス５００が終了する。
【００５８】
しかし、もし、ブロック５３４がＯＰＥＲＭＯＤＥが自動に設定されていることを決定したなら、制御はブロック５４０に移行し、標的モジュールオブジェクトを所有するユニットモジュールオブジェクトを決定する。例えば、図４に戻って参照すれば、もし、モジュールオブジェクト３３５のＯＰＥＲＭＯＤＥが自動に設定されているなら、図６のブロック５４０はモジュールオブジェクト３３５がユニットモジュールオブジェクト３２０によって所有されていることを決定するであろう。このことは、各モジュールはそれを所有しているユニットモジュールの正体を知っているので可能である。標的モジュールオブジェクトを所有するユニットモジュールが決定された後、制御はブロック５４０からブロック５４２に移行し、ユニットモジュールオブジェクトのＯＰＥＲＬＯＣＫは読み取られる。図５に関連して記述したように、ＯＰＥＲＬＯＣＫは、ユニットモジュールオブジェクトのＯＰＥＲＭＯＤＥによって決定され、及び／又はユニットモジュールオブジェクトがフェーズによって使用されているかどうかとフェーズのオペレータロックアウト特性が可能となっているかどうかとに基づく属性である。
【００５９】
ユニットモジュールオブジェクトのＯＰＥＲＬＯＣＫがブロック５４２によって読み出された後、ブロック５４４はユニットモジュールオブジェクトのＯＰＥＲＬＯＣＫがロックに設定されているかどうかを決定する。もし、ユニットモジュールオブジェクトのＯＰＥＲＬＯＣＫがロックに設定されているなら、制御はブロック５４４からブロック５４６に移行し、情報が標的モジュールオブジェクトに書き込まれるのを可能とする。ブロック５４６の実行が完了した後、制御はブロック５４８に移行し、プロセス５００の実行を終了する。
【００６０】
もし、ユニットモジュールオブジェクトのＯＰＥＲＬＯＣＫがロックに設定されていないなら、ブロック５４４は制御をブロック５５０に移行させ、ユニットモジュールオブジェクトのＯＰＥＲＬＯＣＫが制限に設定されているかどうかを決定する。もし、ユニットモジュールオブジェクトのＯＰＥＲＬＯＣＫが制限に設定されているなら、制御はブロック５５０からブロック５５２に移行し、ブロック５５２は、ブロック５５４及びブロック５５６、又はブロック５５８及びブロック５６０の何れかに選択的に制御を移行させる。集団として、ブロック５５２〜５６０は、制限されたモジュールオブジェクトへのアクセス権をオペレータが有することを可能とする適切なキーをオペレータが有しているかを決定する機能と、そして、そのキーに基づいてオペレータの書き込み能力を可能とし又は不可能とする機能とを果たしている。ブロック５５２〜５６０は、上述したブロック５２４〜５３２と実質的に同じように機能している。
【００６１】
もし、ブロック５５０がユニットモジュールオブジェクトのＯＰＥＲＬＯＣＫが制限に設定されていないと決定したなら、ユニットモジュールオブジェクトのＯＰＥＲＬＯＣＫはロック解除でなければならず、制御はブロック５６２に移行し、情報が標的モジュールオブジェクトに書き込まれるのを可能とする。ブロック５６２が完了すると、制御はブロック５６４に移行し、プロセス５００の実行を終了する。
【００６２】
当業者によって理解されるように、図５と同様に、プロセス５００内のブロックは、プロセス５００を実行するのに必要な機能を維持しながら再配置が可能である。例えば、ブロック５０８はブロック５０２の前に実行可能である。加えて、ブロック５１６，５２２及び５３４はどのような順序であってもよく、又はブロック５４４及び５５０はどのような順序にも再配列され得る。
【００６３】
当業者によって理解されるように、機密性チェック５００は、図６及び図７に示すように、ユニットモジュールオブジェクト及び／又はモジュールオブジェクトの階層的なロックを許容する。例えば、各モジュールオブジェクトのＯＰＥＲＭＯＤＥは、ロック、ロック解除又は制限の状態であり得、これにより、各モジュールオブジェクトの個々の制御が可能となる。それに代えて、多重モジュールオブジェクトのＯＰＥＲＭＯＤＥが自動に設定され得、それによってこれらのモジュールオブジェクトへのアクセスは、これらのモジュールオブジェクトを所有するユニットモジュールオブジェクトのＯＰＥＲＭＯＤＥによって制御され得る。更に、ユニットモジュールオブジェクトを所有するユニットモジュールオブジェクトのＯＰＥＲＭＯＤＥは、自動に設定され得、それにより、ユニットモジュールオブジェクトのＯＰＥＲＬＯＣＫは、次に自動に設定されたＯＰＥＲＭＯＤＥを有するユニットモジュールオブジェクトによって所有されているモジュールオブジェクトへのアクセスを制御する。ＯＰＥＲＭＯＤＥが自動に設定されたとき、ＯＰＥＲＬＯＣＫはモジュールを使用してフェーズによって制御され、従って、フェーズはユニットモジュールによって所有されているモジュールへの書き込みを制御し得る。
【００６４】
【発明の効果】
バッチ手順のように、アクセス制御を使用するプロセス制御ルーチンがどのような所望のプロセス制御プログラミング環境内に於いても使用され実行され得ること、どのような所望のタイプのプロセス制御通信プロトコルを使用してどのようなプロセス制御システムでも使用され得ること、更に、どのようなタイプのデバイス又はデバイスのサブユニットに関連するどのようなタイプの機能を実行するのにも使用され得ることが理解されるであろう。従って、個々の記述されているフローチャートに示されている機能は必ずしも記載されているように実行されるものと限定されるものではなく、当業者は容易に理解し、種々の方法で実行するであろう。ここに記載されているようにアクセス制御を使用するプロセス制御ルーチンは、例えばコントローラ又は他のプロセス制御デバイスに格納されるソフトウエアに於いて実行される。しかしながら、これらのルーチンは、これに代えて又はこれに加えて、所望のハードウエア、ファームウエア、アプリケーションに特化された集積回路、プログラム可能な論理回路等に於いて実行され得る。もし、ソフトウエアで実行されるなら、プロセス制御ルーチンは、磁気ディスク、光ディスク、又は他の記録媒体等のコンピュータ読み取り可能なメモリ上に、コンピュータ、コントローラフィールドデバイス、プログラムされた論理回路等のランダムアクセスメモリ（ＲＡＭ）又はリードオンリーメモリ（ＲＯＭ）内に、格納され得る。更に、このようなソフトウエアは、非圧縮状態又は圧縮状態で格納され得、このようなソフトウエアは、実行可能にインストールされ得る。同様に、このソフトウエアは、例えばワイヤレスリンク、電話回線、インターネット、コンピュータ読み取り可能なディスクのような搬送可能な媒体上を含むどのような公知の又は所望の配布方法を介して、ユーザ又はデバイスに配送され得る。
【００６５】
本発明は特定の実施例を参照して記載されているが、これは例示のみを意図し本発明の限定を意図するものではない。本発明の精神及び範囲から逸脱することなく、変更、不可又は削除が開示された実施形態に可能であることが当業者に理解されるであろう。
【図面の簡単な説明】
【図１】図１は、モジュールアクセスを制御するためにモジュールレベルパラメータを使用するプロセス制御ネットワークの部分の部分ブロックダイヤグラム、部分概略ダイヤグラムである。
【図２】図２は、図１のプロセス制御ネットワークの概念的な配置を示すオブジェクト構造のブロックダイヤグラムである。
【図３】図３は、フェーズの図式描写を使用してフェーズを制御又は構築するのに使用されるユーザインターフェイスを表している。
【図４】図４は、ユニットモジュールオブジェクトと、そのユニットモジュールオブジェクトによって所有される３つの典型的なモジュールオブジェクトとの間の関係を示している。
【図５】図５は、ユニットモジュールオブジェクトがそのＯＰＥＲＬＯＣＫパラメータの値を決定するプロセスを表している。
【図６】図６は、オペレータがプロセス制御システムのモジュールに不注意な変更を行うのを防止するための機密性チェックプロセスを表している。
【図７】図７は、オペレータがプロセス制御システムのモジュールに不注意な変更を行うのを防止するための機密性チェックプロセスを表している。
【符号の説明】
２０  メモリ
２１  プロセッサ
１４  ワークステーション
１２  コントローラ
１００，２００  反応容器
１１０，２１０  フィルタ装置
１２０，２２０  ドライヤ
１０１，１０２  入力バルブ
２０１，２０２  入力バルブ
１０３  出力バルブ
２０３  出力バルブ
【図１】
0005155509.tif 000002
【図２】
0005155509.tif 000003
【図３】
0005155509.tif 000004
【図４】
0005155509.tif 000005
【図５】
0005155509.tif 000006
【図６】
0005155509.tif 000007
【図７】
0005155509.tif 000008