JP5444394B2 - プロセス制御システムと共用するためのカスタム・ファンクション・ブロック - Google Patents

プロセス制御システムと共用するためのカスタム・ファンクション・ブロック Download PDF

Info

Publication number
JP5444394B2
JP5444394B2 JP2012047021A JP2012047021A JP5444394B2 JP 5444394 B2 JP5444394 B2 JP 5444394B2 JP 2012047021 A JP2012047021 A JP 2012047021A JP 2012047021 A JP2012047021 A JP 2012047021A JP 5444394 B2 JP5444394 B2 JP 5444394B2
Authority
JP
Japan
Prior art keywords
function block
process control
control system
routine
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2012047021A
Other languages
English (en)
Other versions
JP2012133809A (ja
Inventor
マーク ジェイ. ニクソン,
ケン ビオーター,
ブランドン ハイブ,
テレンス エル. ブレビンズ,
デニス エル. スティーブンソン,
Original Assignee
フィッシャー−ローズマウント システムズ,インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by フィッシャー−ローズマウント システムズ,インコーポレイテッド filed Critical フィッシャー−ローズマウント システムズ,インコーポレイテッド
Publication of JP2012133809A publication Critical patent/JP2012133809A/ja
Application granted granted Critical
Publication of JP5444394B2 publication Critical patent/JP5444394B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23258GUI graphical user interface, icon, function bloc editor, labview
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25232DCS, distributed control system, decentralised control unit
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25428Field device

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)
  • Stored Programmes (AREA)

Description

本発明は、概してプロセス制御システムにユーザ定義・カスタム・ファンクション・ブロックを統合する方法に関し、より特定的には、プロセス制御システムのユーザまたはオペレータがそのプロセス制御システムにおける制御アクティビティを実行するためのカスタム・ファンクション・ブロックを生成できるようにする技術に関する。
最新式のプロセス制御システムは、典型的には、マイクロプロセッサを基礎とする分散形制御システム(DCS)である。伝統的なDCS構成は、データバス(イーサネット(登録商標)等)で1つまたは複数のコントローラに接続されたワークステーションのような1つまたは複数のユーザ・インタフェース・デバイスを含んでいる。コントローラは、概して制御されたプロセスの近くに物理的に位置づけられ、プロセス全体に渡って配置された電子センサ、送信機、電流−圧力変換器、バルブ・ポジショナ、他等の多くの電子監視デバイス及びフィールド・デバイスに接続されている。
伝統的なDCSでは、制御タスクは、各コントローラ内部に制御アルゴリズムを供給することによって分散される。コントローラは、制御アルゴリズムを独立して実行し、コントローラに結合されたフィールド・デバイスを制御する。制御タスクのこの分散化は、システム全体により大きなフレキシブルさをもたらす。例えば、ユーザがDCSに新しいプロセスまたはプロセスの一部を付け加えることを希望する場合、ユーザは、適切なセンサ、アクチュエータ他に接続された(適切な制御アルゴリズムを有する)追加的コントローラを付加することができる。代替として、ユーザが既に存在しているプロセスを変更することを希望すれば、例えば、新しい制御パラメータまたは制御アルゴリズムを、ユーザ・インタフェースからデータバスを介して適切なコントローラへダウンロードすることができる。
改良されたモジュール方式及び製造者間の互換性に備えるため、プロセス制御の製造者は最近、プロセス内部におけるさらに進んだ制御の分散化へと移行している。つい最近のこれらのアプローチは、HART(登録商標)、PROFIBUS(登録商標)、WORLDFIP(登録商標)、Device−Net(登録商標)、CAN及びFieldbusの各プロトコルのようなオープン・プロトコルを使用して互いに、及び/またはコントローラと通信することのできるスマート・フィールド・デバイスを基礎としている。これらのスマート・フィールド・デバイスは、本質的には、ケースによりFieldbusデバイスの場合のように、DCSコントローラによって伝統的に実行されている制御ループ・ファンクションも実行するセンサ、アクチュエータ他等のマイクロプロセッサを基礎とするデバイスである。スマート・フィールド・デバイスの中には、制御ケイパビリティを供給しかつオープン・プロトコルを使用して通信するものがあるため、様々な製造者が製造したフィールド・デバイスは共有のデータバス上で互いに通信することが可能であり、かつ伝統的なDCSコントローラの介入なしに相互に作動して制御ループを実行することができる。
周知のように、プロセス制御システムのコントローラ及び例えばFieldbusデバイスのようなスマート・フィールド・デバイスは、制御ファンクションまたは制御ファンクションの一部を実行する1つまたは複数のファンクション・ブロックを含むことが可能である。これらのファンクション・ブロックは、例えばアナログ入力ファンクション、アナログ出力ファンクション、比例積分微分(PID)制御ファンクションまたは他の任意の所望の制御ファンクションを実行することができる。ファンクション・ブロックは、コントローラまたはスマート・フィールド・デバイス内の他のファンクション・ブロックと、または他のコントローラまたはスマート・フィールド・デバイス内のファンクション・ブロックと通信できるようにリンクされていて、任意の所望の制御ファンクションを実行することができる。例えば、アナログ入力ブロックは流量センサを介する流体の流れの監視に使用されることが可能であり、PIDブロックは、アナログ入力ブロックによって供給される流体流量値を処理し、アナログ出力ブロックを介して応答信号をバルブ・プラグの位置を修正するアクチュエータへ供給することができる。このように、これらのファンクション・ブロックは、バルブを介して流体の流れを制御するPIDベースの制御ループを形成すべく互いに通信できるようにリンクされることが可能である。
プロセス制御の製造者またはプロバイダは、典型的には、システムのユーザに様々なタイプの予め画定されたファンクション・ブロックを含む1つまたは複数の標準ライブラリを提供する。典型的には、予め画定された本ファンクション・ブロックは、システムのユーザの指示に従って、全体的なプロセス制御スキームを実行するように選択されかつ互いに組み合わされることが可能である。プロセス制御の製造者の中には、ユーザがファンクション・ブロック間の論理関係をビジュアル化できるようにするグラフィックなユーザ・インタフェースをも提供するものがあるが、これは、特にプロセス制御スキームが複雑であるような状況において、全体的なプロセス制御スキームの作成を大幅に促進させる。
ユーザが、どのファンクション・ブロックを実行すべきかを選択しかつ選択されたファンクション・ブロック間の論理関係を画定することによって全体的なプロセス制御スキームを作成すると、全体的なプロセス制御スキームを実行するために、プロセス制御システム内で1つまたは複数のファンクション・ブロックのインスタンスを作成することができる。予め画定されたファンクション・ブロックは典型的にはプロセス制御システム全体に分散されたコントローラ及び/またはスマート・フィールド・デバイス内でインスタンスを作成されるため、予め画定されたファンクション・ブロックは、比較的高速で同時的に実行されることが可能である。
プロセス制御システムが、ファンクション・ブロックの標準ライブラリにおいて制御システムの製造者またはプロバイダによって提供されていない特殊なファンクション、アプリケーションまたはアルゴリズムの実行を要求する場合、システムのユーザは、典型的には、その特殊なファンクション、アプリケーションまたはアルゴリズムを実行する独立したプロセスを創成し、インスタンスを作成する。実際には、この独立したプロセスは通常、例えばローカル・エリア・ネットワークのような通信ネットワークを介してプロセス制御システム全体に分散されたコントローラ及び他のデバイスと通信できるように結合されているワークステーションまたは他の何らかのコンピュータ・システム内で創成されかつインスタンスを作成される。その結果、特殊なファンクション、アプリケーションまたはアルゴリズムを実行する独立したプロセスと全体的なプロセス制御スキームとの統合により、典型的には、通信ネットワークを介して全体的な制御プロセスの他の部分と通信するための独立したプロセスが必要になる。
特殊なファンクション、アプリケーションまたはアルゴリズムを実行するユーザによって創成された、または画定された特殊なプロセスと全体的なプロセス制御スキームとを統合させる困難さは、ワークステーションと、ローカル・エリア・ネットワークと通信できるように結合されたコントローラまたは他の何らかのプロセス制御システム・デバイスとの間の通信が通常、システムのユーザには周知でない専有のメッセージ・フォーマットまたはプロトコルを基礎としているという事実によって倍加される。統合上のこの困難さを緩和するために、プロセス制御の製造者の中には、例えばプロセス制御用OLE(OPC)のような共通のデータ言語を基礎とする通信を使用してそれらの制御プロセスと他のプロセスまたはシステムとの間の通信を許容できるものがある。例えばOPCのような共通データ言語は、典型的には、システムのユーザが(特殊なファンクション、アプリケーションまたはアルゴリズムを実行する)ユーザによって特別に創成されたプロセスまたはカスタム・プロセスからの情報またはメッセージを全体的なプロセス制御スキームを実行するシステムによって解釈されることが可能なスキーマまたはフォーマットでワードラップできるようにする、拡張可能なマークアップ言語(例えばXML)またはこれに類するものを基礎としている。同様に、ユーザによって画定されたカスタム・プロセスも、スキーマを習得していることにより拡張可能なマークアップ言語スキーマを使用してワードラップされている、またはフォーマットされているプロセス制御システムから受信された情報またはメッセージを解釈しかつ処理することができる。こうした方法により、プロセス制御の製造者またはプロバイダは、ユーザが、そのうちの幾つかは特殊なファンクション、アプリケーションまたはアルゴリズムを実行するようにユーザによって創成されることが可能な他のシステム及びプロセスを、ワークステーションまたは他のコンピュータ・システムとプロセス制御システム全体に分散されたコントローラとの間の通信の実行に使用される専有のメッセージ・フォーマットまたはプロトコルを明らかにする必要なしに統合できるようにすることが可能である。
ユーザによって画定されたプロセスまたはシステムもしくは他の何らかのプロセスまたはシステムと、全体的なプロセス制御システムとの統合または両者間の通信を可能にするための周知技術は、典型的には、ユーザによって画定されたプロセスとプロセス制御システム内のコントローラ及び/またはスマート・フィールド・デバイスとの間の直接通信を許容しない。反対に、(XMLを基礎とするものもある)これらの周知技術では、ユーザによって画定されたプロセスまたはシステムは、通信ネットワークを介してコントローラ及び他のデバイスに結合されたワークステーションまたは他のコンピュータ・システムを介してコントローラ及び/またはスマート・フィールド・デバイスと通信しなければならない。残念ながら、通信ネットワーク(例えばLAN)を介する通信は、特にコントローラとスマート・フィールド・デバイスとの間で行われる通信に比べると比較的遅い。さらに、プロセス制御システム内のコントローラ及び他のデバイスとユーザによって画定されたプロセスまたはシステムとの間の情報交換を可能にする拡張可能なマークアップ言語またはこれに類するものの使用は、追加の通信オーバーヘッドを発生させる。このような追加的な通信オーバーヘッドはさらに、ユーザによって画定されたプロセスまたはシステムとプロセス制御システムのコントローラ及び/または他のデバイスとの間で伝達されることが可能な情報またはメッセージの有効速度を遅くする。
ユーザによって画定されたプロセスとプロセス制御システムによって実行されている全体的なプロセス制御ルーチンとの間で情報を伝達しなければならないことによるさらなる不利益は、ユーザによって画定されたプロセスまたはシステムによって供給される、または使用される情報またはメッセージがコントローラ及び/またはコントローラに接続されたスマート・フィールドによって実行されている活動と典型的には同期されない点にある。従って、全てではないにしてもプロセス制御システムの大部分においては、ワークステーションとコントローラとを通信できるように結合している通信ネットワークを介して発生する通信は、比較的低いデータ・スループットを有し、かつコントローラとフィールド・デバイスとの間に発生する通信とは同期されない。アプリケーションによっては、ユーザによって画定された特殊なプロセスまたはシステムと全体的なプロセス制御システムのオペレーションとを、例えば2つのシステム間のより迅速な情報交換を可能にすることにより、かつ2つのシステム間の同期を可能にすることによりさらに厳密に統合する、または結合させることができないことが、ユーザによって画定されたプロセスまたはシステムが非実用的なものにする、または場合によっては不能にする可能性のあるものがある。
本明細書に記述されているカスタム・ファンクション・ブロック及びカスタム・ファンクション・ブロックを創成する方法は、プロセス制御システムのユーザが、ユーザによって画定されることが可能な特殊なファンクション、アプリケーション、アルゴリズム及び/またはプロセスを全体的なプロセス制御システムのオペレーションに厳密に統合または結合できるようにする。特に、本明細書に記述されているカスタム・ファンクション・ブロックの創成技術は、ユーザによって選択され、修正されかつ/または組み合わされることが可能なテンプレート、ルーチン、プロシージャ、テーブル他を含む予め画定されたライブラリを使用して、その各々が1つまたは複数のカスタム・ファンクション・ブロックを包含することが可能な1つまたは複数のファンクション・ブロック・ライブラリを組み立てる、生成する、または画定することができる。テキストのエディタ、グラフィック・ユーザ・インタフェース、ファンクション・ブロックのウィザードまたはバーチャル・エキスパート他を使用すれば、カスタム・ファンクション・ブロックの生成を促進することができる。
本明細書に記述されているシステム及び技術によって使用される予め画定されたライブラリは、様々なタイプのファンクション・ブロック・コンポーネントを含んでいるが、その中にはプロセス制御システムがファンクション・ブロックを全体的なプロセス制御ルーチンに統合するために必要なものもあれば、必要でないものもある。ユーザは、本明細書に記述されているシステム及び技術を使用して、プロセス制御システムのプロバイダまたは製造者によってファンクション・ブロックの標準ライブラリに提示されていないファンクション、アプリケーション、アルゴリズムまたはプロセスを実行する1つまたは複数のカスタム・ファンクション・ブロックを創成し、生成し、もしくは画定することができる。一般に、ユーザは、ファンクション・ブロック・コンポーネントを含む予め画定されたライブラリから必要なファンクション・ブロック・コンポーネントを選択し、かつ所望されればこれを修正し、選択されたコンポーネントをカスタム・ファンクション・ブロックに包含する。ユーザはまた、適切な追加のコードまたはソフトウェアを入力することによるカスタム・ファンクション・ブロックが実行する追加のファンクションまたはアルゴリズムをカスタム・ファンクション・ブロックの定義に包含することもできる。
本明細書に記述されているシステム及び技術は、ファンクション・ブロックの標準ライブラリに提示されているファンクション・ブロックに構造が似ている、または同じ構造の新たなファンクション・ブロックまたはカスタム・ファンクション・ブロックを生成することにより、ユーザが、プロセス制御システムのプロバイダまたは製造者によってファンクション・ブロックの標準ライブラリに提示されていないカスタム・ファンクション、アプリケーションまたはアルゴリズム他を実行できるようにする。その結果、カスタム・ファンクション(即ち、カスタム・ファンクション・ブロック)は、標準的なファンクション・ブロックのようなプロセス制御システム内にコンパイルされて使用されることが可能である。このように、カスタム・ファンクション、アプリケーションまたはプロセスは、例えば拡張可能なマークアップ言語を使用してワークステーション及びLANを介して通信する必要がないことから、カスタム・ファンクション・ブロック内に画定されたプロセス、アプリケーション、アルゴリズム他が全体的なプロセス制御ルーチン内で比較的高速で通信できる。さらに、カスタム・ファンクション・ブロックは標準的なファンクション・ブロックの場合に似た方法で、もしくはこれと同一の方法でコントローラ及び/またはスマート・フィールド・デバイスへとコンパイルされかつダウンロードされることが可能であるため、カスタム・ファンクション・ブロックとプロセス制御システム内の他の標準的なファンクション・ブロックとの間の通信は同期的に発生することが可能である(即ち、カスタム・ファンクション・ブロックのオペレーションを標準的なファンクション・ブロックのオペレーションと合わせてスケジュールすることができる)。
ある態様によれば、プロセス制御システムとともに用いるためのファンクション・ブロックを創成する方法は、複数のソース・ファイルから初期化ルーチンを選択することが可能であり、複数のソース・ファイルから周期的な実行ルーチンを選択することが可能であり、かつ複数のソース・ファイルから書込みチェック・ルーチンを選択することが可能である。さらに、本方法は、初期化ルーチン、周期的な実行ルーチン及び書込みチェック・ルーチンをファンクション・ブロックに関連づけることが可能であり、かつ初期化ルーチン、周期的な実行ルーチン及び書込みチェック・ルーチンのうちの1つをプロセス制御システムには供給されていないプロシージャを包含するように修正することができる。
他の態様によれば、プロセス制御システムにおいて使用するためのファンクション・ブロックを創成する方法は、プロセス制御システムのプロバイダによって生成されたファイル・グループからの複数のファイルを組み合わせて、そのファンクション・ブロックに関連づけられたファイルを形成することが可能であり、かつファンクション・ブロックに関連づけられたファイル内部の複数のファイルのうちの1つをファイル・グループ内部に含まれていないプロシージャを包含するように修正することができる。
さらに他の態様によれば、プロセス制御システムとともに用いるためのファンクション・ブロックを創成するためのシステムは、コンピュータ読取り可能な媒体と、コンピュータ読取り可能な媒体に記憶されかつ複数のソース・ファイルから初期化ルーチンを選択するようにプロセス制御システムによって実行されるべく適合化された第1のソフトウェアと、コンピュータ読取り可能な媒体に記憶されかつ複数のソース・ファイルから周期的実行ルーチンを選択するようにプロセス制御システムによって実行されるべく適合化された第2のソフトウェアとを含むことが可能である。本システムはまた、コンピュータ読取り可能な媒体に記憶されかつ複数のソース・ファイルから書込みチェック・ルーチンを選択するようにプロセス制御システムによって実行されるべく適合化された第3のソフトウェアと、コンピュータ読取り可能な媒体に記憶されかつ初期化ルーチン、周期的実行ルーチン及び書込みチェック・ルーチンをファンクション・ブロックに関連づけるようにプロセス制御システムによって実行されるべく適合化された第4のソフトウェアと、コンピュータ読取り可能な媒体に記憶されかつ初期化ルーチン、周期的実行ルーチン及び書込みチェック・ルーチンのうちの1つを修正してプロセス制御システムに供給されていないプロシージャを包含させるようにプロセス制御システムによって実行されるべく適合化された第5のソフトウェアとを含むことが可能である。
さらなる他の態様によれば、カスタム・ファンクション・ブロックをプロセス制御システム内に組み込む方法は、プロセス制御システムのプロバイダが生成したファイル・グループからの複数のファイルを組み合わせてファンクション・ブロックに関連づけられたソース・コード・ファイルを形成することによってカスタム・ファンクション・ブロックを生成することが可能であり、かつソース・コード・ファイル内の複数のファイルの1つを、ファイル・グループ内に含まれていないプロシージャを包含するように修正することができる。本方法はまた、ソース・コード・ファイルをコンパイルしかつリンクしてコンパイル/リンクされたカスタム・ファンクション・ブロック・ファイルを形成することが可能であり、かつコンパイル/リンクされたカスタム・ファンクション・ブロック・ファイルをプロセス制御システムのプロバイダへ転送することができる。さらに、本方法は、コンパイル/リンクされたカスタム・ファンクション・ブロック・ファイルの妥当性を確認することが可能であり、コンパイル/リンクされたカスタム・ファンクション・ブロック・ファイルに安全措置を付加して妥当性を確認されたカスタム・ファンクション・ブロック・ファイルを形成することが可能であり、かつ妥当性を確認されたカスタム・ファンクション・ブロック・ファイルをプロセス制御システムのユーザへ転送することが可能である。さらに、本方法は、妥当性を確認されたカスタム・ファンクション・ブロック・ファイルをプロセス制御システム内へ組み込むことができる。
さらに他の態様によれば、カスタム・ファンクション・ブロックを使用する方法は、情報をデータ・ソースからカスタム・ファンクション・ブロックへ伝達し、データ・ソースからの情報をカスタム・ファンクション・ブロック内のファンクションを基礎として処理し、かつ処理された情報の少なくとも幾分をプロセス制御システムのアプリケーションへ伝達する。
カスタム・ファンクション・ブロックの構造及び生成技術の概要を描いた例示的なブロック図である。 制御システムのプロバイダまたは製造者がその制御システム内のカスタム・ファンクション・ブロックの使用を制御することのできる一方法を描いた例示的なフローチャートである。
本明細書に記述されているカスタム・ファンクション・ブロック及びカスタム・ファンクション・ブロックを創成する方法は、プロセス制御システムのユーザが、ユーザによって画定されることが可能な特殊なファンクション、アプリケーション、アルゴリズム及び/またはプロセスを全体的なプロセス制御システムのオペレーションに厳密に統合または結合できるようにする。より特定的には、本明細書に記述されているカスタム・ファンクション・ブロックの創成技術は、ユーザによって選択され、修正されかつ/または組み合わされることが可能なテンプレート、ルーチン、プロシージャ、テーブル他を含む予め画定されたライブラリを使用して、その各々が1つまたは複数のカスタム・ファンクション・ブロックを包含することが可能な1つまたは複数のファンクション・ブロック・ライブラリを組み立てる、生成する、または画定することができる。テキストのエディタ、グラフィック・ユーザ・インタフェース、ファンクション・ブロックのウィザードまたはバーチャル・エキスパート他を使用すれば、カスタム・ファンクション・ブロックの生成を促進することができる。
本明細書に記述されているシステム及び技術によって使用される予め画定されたライブラリは、様々なタイプのファンクション・ブロック・コンポーネントを含んでいるが、その中にはプロセス制御システムがファンクション・ブロックを全体的なプロセス制御ルーチンに統合するために必要なものもあれば、必要でないものもある。ユーザは、本明細書に記述されているシステム及び技術を使用して、プロセス制御システムのプロバイダまたは製造者によってファンクション・ブロックの標準ライブラリに提示されていないファンクション、アプリケーション、アルゴリズムまたはプロセスを実行する1つまたは複数のカスタム・ファンクション・ブロックを創成し、生成し、もしくは画定することができる。一般に、ユーザは、ファンクション・ブロック・コンポーネントを含む予め画定されたライブラリから必要なファンクション・ブロック・コンポーネントを選択し、かつ所望されればこれを修正し、選択されたコンポーネントをカスタム・ファンクション・ブロックに包含する。ユーザはまた、適切な追加のコードまたはソフトウェアを入力することによるカスタム・ファンクション・ブロックが実行する追加のファンクションまたはアルゴリズムをカスタム・ファンクション・ブロックの定義に包含することもできる。
本明細書に記述されているシステム及び技術は、ファンクション・ブロックの標準ライブラリに提示されているファンクション・ブロックに構造が似ている、または同じ構造の新たなファンクション・ブロックまたはカスタム・ファンクション・ブロックを生成することにより、ユーザが、プロセス制御システムのプロバイダまたは製造者によってファンクション・ブロックの標準ライブラリに提示されていないカスタム・ファンクション、アプリケーションまたはアルゴリズム他を実行できるようにする。その結果、カスタム・ファンクション(即ち、カスタム・ファンクション・ブロック)は、標準的なファンクション・ブロックのようなプロセス制御システム内にコンパイルされて使用されることが可能である。このように、カスタム・ファンクションまたはプロセスは、例えば拡張可能なマークアップ言語を使用してワークステーション及びLANを介して通信する必要がないことから、カスタム・ファンクション・ブロック内に画定されたプロセス、アルゴリズム他が全体的なプロセス制御ルーチン内で比較的高速で通信できる。さらに、カスタム・ファンクション・ブロックは標準的なファンクション・ブロックの場合に似た方法で、もしくはこれと同一の方法でコントローラ及び/またはスマート・フィールド・デバイスへとコンパイルされかつダウンロードされることが可能であるため、カスタム・ファンクション・ブロックとプロセス制御システム内の他の標準的なファンクション・ブロックとの間の通信は同期的に発生することが可能である(即ち、カスタム・ファンクション・ブロックのオペレーションを標準的なファンクション・ブロックのオペレーションと合わせてスケジュールすることができる)。
図1は、概してカスタム・ファンクション・ブロック102の構造及び生成技術を描いた例示的なブロック図100である。図1が示すように、カスタム・ファンクション・ブロック102は、初期化プロシージャまたはルーチン104と、周期的実行ルーチン106と、書込みチェック・ルーチン108とを含んでいる。ルーチン104乃至108は、概してカスタム・ファンクション・ブロック102の行動または方法と呼ぶことができる。ルーチン104乃至108は、公衆データ110及び/またはプライベート・データ112を使用する様々な属性を含むことが可能である。属性及び必然的に属性に関連づけられた公衆データ110及び/またはプライベート・データ112は、カスタム・ファンクション・ブロックが属性テーブル114を介してインスタンスを作成されるプロセス制御システム(図示されていない)から取得されることが可能である。同じく図1が示すように、かつ後により詳細に説明されるように、カスタム・ファンクション・ブロック102は、ヘッダ・ファイルの集合116、ソース・ファイルの集合118及び/またはライブラリ・ファイルの集合120を使用して生成される、もしくは画定されることが可能である。さらにカスタム・ファンクション・ブロック102は、関連づけられた名前122を有することが可能であり、かつ複数のカスタム・ファンクション・ブロック126を含むカスタム・ファンクション・ブロック・ライブラリ124の一部であることが可能である。
初期化ルーチン104は、実行されると、カスタム・ファンクション・ブロック102に関連づけられた公衆データ110とプライベート・データ112とを初期化するように適合化される。データ110及び112の初期設定値は、好適にはデフォルト値または初期値であって、この場合、初期化ルーチン104は、周期的実行ルーチン106の実行に先行して一度実行されるが、必ずしもこの限りではない。当然ながら、所望されれば、初期化ルーチン104をユーザが必要とする特定のアプリケーションまたはファンクションに合わせて複数回実行することもできる。
書込みチェック・ルーチン108は、実行されると、外部ソース(即ち、ファンクション・ブロック102の外側)からカスタム・ファンクション・ブロック102の公衆データ110へ書き込まれるデータの妥当性を確認するように適合化される。書込みチェック・ルーチン108は、好適には、外部ソースによる公衆データ110へのデータまたは情報の書込みの試行に応答して呼び出される。書込みチェック・ルーチン108は、ファンクション・ブロック102のカレント・ステートがターゲット・データへの外部からの書込みの実行を許容するかどうか、外部ソースによるターゲット・データの書き込みが可能であるかどうか、及び/またはターゲット・データに書き込まれている情報またはデータが1つまたは複数の予め決められた許容限界内にあるかどうかを決定することができる。例えば、ブロック102は、その時点でターゲット・データを使用している可能性があり、間違いの多い結果または間違った結果をもたらす可能性のある幾つかのプロシージャ、一連のステップ他を完了する前に外部ソースにターゲット・データを変更させる。当然ながら、書込みチェック・ルーチン108によって他の任意の異なるタイプ、または追加タイプのチェックを実行することも可能である。
周期的実行ルーチン106は、実行されると、ユーザが制御システム内で実施する必要のある、かつ制御システムのプロバイダまたは製造者によって供給された標準ファンクション・ブロックを介しては利用され得ない可能性のある特殊なファンクションまたはアルゴリズムを実行するように適合化される。例示的なものとして、周期的実行ルーチン106は、制御システムと、そうでなければ制御システムが通信し得なかった先である他の何らかのアプリケーション、システムまたはデバイスとの間で情報またはデータを交換できるようにするマッピング・ファンクションまたはアルゴリズムを含むことが可能である。代替として、またはこれに加えて、周期的実行ルーチン106は、典型的には標準ファンクション・ブロック内に供給されることのないプロセス制御システムに関連づけられた収益性の計算及び/または他の何らかの財務計算を含むことが可能である。当然ながら、周期的実行ルーチン106内に包含できるファンクションまたはアルゴリズムの数及びタイプは、実質的には無制限である。実際には、周期的実行ルーチン106によって実行される特殊なファンクションまたはアルゴリズムは、典型的にはカスタム・ファンクション・ブロック102の全体的な行動を画定し、よってカスタム・ファンクション・ブロック102の名前はその特殊な行動を反映することができる。例えば、周期的実行ルーチン106が収益性の計算のファンクションまたはアルゴリズムを含んでいれば、ファンクション・ブロックの名前122は、そのファンクションまたはアルゴリズムを反映して「FB_PROFITCALC」であることが可能である。
周期的実行ルーチン106は、公衆データ110及び/またはプライベート・データ112を使用するアルゴリズムを包含することが可能である。公衆データ110は概して、制御システム内でインスタンスを作成された任意のカスタムまたは標準ファンクション・ブロックによる使用が可能であるが、公衆データ110の幾分か、または全てをカスタム・ファンクション・ブロック102によって独占使用することも可能である。公衆データ110は、例えば、カスタム・ファンクション・ブロック102が外部のデータ・エリア(即ち、カスタム・ファンクション・ブロック102の外側の任意のデータ・エリア)からカスタム・ファンクション・ブロック102の公衆データ110へ転送する外部データを包含することができる。公衆データ110はまた、例えば、周期的実行ルーチン106が実行の間に公衆データ110及び/またはプライベート・データ112を使用して導出するデータを包含することができる。
これに対して、プライベート・データ112は、他のファンクション・ブロックによるアクセスができないデータである。典型的には、プライベート・データ112は、カスタム・ファンクション・ブロック102に関連づけられたブロック実行の情報またはデータの履歴を追跡するために使用され、かつブロック102の後続の実行において使用可能である、もしくは1つまたは複数の異常なイベントに対応してブロック102の行動を制御するために使用可能である。公衆データ110と同様に、プライベート・データ112は、周期的実行ルーチン106が外部のデータ・エリアプライベート・データ112へ転送する外部データを包含することが可能であり、かつ/または周期的実行ルーチン106が公衆データ110及び/またはプライベート・データ112から導出するデータを包含することができる。
公衆データ110及びプライベート・データ112は、所望の任意の計算タイプであることが可能である。例えば、浮動小数点、浮動小数点アレイ、8ビット、16ビット及び/または32ビットの符号付き、または符号のない整数(シングルまたはダブル・ディメンション)、ASCIIストリング、ユニコード・ストリング、他を所望の任意の組合せで使用することができる。さらに、公衆データ110及びプライベート・データ112内のデータ・アイテムの各々には、周期的実行ルーチン106または他のファンクション・ブロック内の他の周期的実行ルーチンによって参照されることが可能な名前を付けることができる。
属性テーブル114は、カスタム・ファンクション・ブロック102によって使用される属性を、カスタム・ファンクション・ブロック102がインスタンスを作成されている制御システム内の情報またはデータへマップする。特に、カスタム・ファンクション・ブロック102内に画定されている属性の各々は、例えば、制御システム内のデータ・ソースへ属性をマップする属性テーブル114の特定の行または部分を参照するポインタを包含することができる。好適には、カスタム・ファンクション・ブロック102内の属性の各々と属性テーブル114の行との間に唯一の対応が存在するが、他のファンクション・ブロックもまた、属性テーブル114によって供給されるマッピング・ファンクションを使用するポインタを包含することができる。言い替えれば、属性テーブル114内の各行は、複数のファンクション・ブロックによって属性テーブル114の各行が参照またはポイントされ得るように、1対多数の関係を有することが可能である。
カスタム・ファンクション・ブロック102を構築し、創成しかつ生成するために、ユーザは、ソフトウェア・ソースのコード・ファイル及び/またはその表示の目視及び操作を可能にするテキスト・エディタ、グラフィック・ユーザ・インタフェースまたは他の任意の技術を使用することができる。図1が示すように、ユーザは、ヘッダ・ファイル116、ソース・ファイル118及びライブラリ・ファイル120から選択されたファイルを組み合わせてカスタム・ファンクション・ブロック102を創成させることが可能である。
ヘッダ・ファイル116は、ターゲットプロセス制御システム(即ち、カスタム・ファンクション・ブロック102のインスタンスが作成されるプロセス制御システム)内のファンクション・ブロックによって使用されることが可能な異なるタイプの構造及び呼出しインタフェースの定義を含んでいる。これに対して、ライブラリ・ファイル120は、ターゲット制御システム内のルーチン・アクティビティの実行に必要であると思われるヘルパ・ルーチンを含んでいる。例えば、ライブラリ・ファイル120は、ターゲット・プロセス制御システム内での所望のオペレーション・モードの確立を促進する1つまたは複数のルーチンを含むことが可能である。
ソース・ファイル118は、初期化ルーチン104、周期的実行ルーチン106及び書込みチェック・ルーチン108を含むソフトウェア・ソースのコード・ファイルである。ソース・ファイル118は、例えばC++のような高レベルのプログラミング言語を基礎とする場合もあり、他の任意の所望のプログラミング言語を基礎とする場合もある。ユーザによる、例えばカスタム・ファンクション・ブロック102のようなカスタム・ファンクション・ブロックの創成を促進するために、各ソース・ファイル118は、ソース・ファイル118内に含まれる様々なソフトウェア・コード部分の目的及びファンクションを明確に説明する広範なコメントを包含することが可能である。例えば本コメントは、ソース・ファイル118のどれが、もしくはどの部分がルーチン104乃至108の各々に対応しているかを明確に示すことができる。さらに、ソース・ファイル118におけるコメントは、ユーザが所望のカスタム・アルゴリズムまたはファンクションのソース・コードを周期的実行ルーチン106内のどこに挿入すべきであるかを明示的に指摘することができる。またさらに、本コメントは、ライブラリ・ファイル120内に含まれる1つまたは複数のヘルパ・ルーチンの使用を示唆することが可能であり、かつさらに、これらのヘルパ・ルーチンがカスタム・ファンクション・ブロック102内に統合され得る方法を示唆または説明することができる。好適には、ソース・ファイル118は、ヘッダ・ファイル116のうちでカスタム・ファンクション・ブロック102の創成、構築または生成に必要とされ得るものを示す参照またはポインタをも含むが、必ずしもこの限りではない。
図1は、ヘッダ・ファイル116、ソース・ファイル118及び/またはライブラリ・ファイル120から生成され、創成され、もしくは構築された単一のカスタム・ファンクション・ブロック102を描いているが、所望されれば、複数のカスタム・ファンクション・ブロックを創成することも可能である。複数のカスタム・ファンクション・ブロックが創成される場合は、これらのファンクション・ブロックをカスタム・ファンクション・ブロックの1つまたは複数のライブラリ内に集めることができる。
さらに、ヘッダ・ファイル116及びソース・ファイル118に使用される特定のプログラミング言語は、ユーザによるカスタム・ファンクション・ブロックの生成を促進するように選択され得る点を認識することが重要である。例えば、C++は、オブジェクト指向技術を使用するプログラミングに特によく適合しているが、これは、比較的複雑なプロセス制御システム用のソフトウェア・アルゴリズムを生成するための直観的フレームワークを提供する。当然ながら、他の任意のプログラミング言語及び/またはプログラミング技術を代用することも可能である。
ヘッダ・ファイル116、ソース・ファイル118及びライブラリ・ファイル120のコンテンツは、ターゲット制御システムの特定要件を満足させるように構成される。言い替えれば、ライブラリ・ファイル120は、例えばモード制御アクティビティ、ステータス・アクティビティ、デバッギング・アクティビティ他のようなアクティビティをターゲット制御システムの特定要件に適合する方法で実行するヘルパ・ルーチンを包含することができる。同様に、ヘッダ・ファイル116及びソース・ファイル118は、制御システムによってコンパイルされ、リンクされかつ実行されるとターゲット制御システムの特定要件に適合するようになるソース・コードを包含することができる。
従って、本明細書に記述されているカスタム・ファンクション・ブロックを使用すれば、ユーザによって画定されることが可能な特殊なファンクション、アプリケーション、アルゴリズム及び/またはプロセスを全体的なプロセス制御システムのオペレーションに厳密に統合または結合することができる。より特定的には、制御システムのユーザまたはオペレータは、1つまたは複数のカスタム・ファンクション・ブロックまたはカスタム・ファンクション・ブロックのライブラリを創成し、生成し、もしくは画定して、そうでなければ制御システムの製造者または供給者によってファンクション・ブロックの標準ライブラリに提示されることのない新たな機能性を制御システムに付加することができる。特に、プロセス制御システムのユーザまたはオペレータは、プロセス制御システムが制御システムの製造者または供給者によって提供される標準ファンクション・ブロックを使用した場合には実行され得ない解析または計算を実行できるようにする1つまたは複数のカスタム・ファンクション・ブロックを創成する、もしくは画定することができる。例えば、プロセス制御システムのユーザまたはオペレータは、プロセス制御システム内の1つまたは複数のパラメータ値を基礎として利益計算を実行するカスタム・ファンクション・ブロックを創成することができる。当然ながら、1つまたは複数のカスタム・ファンクション・ブロックは、システムのユーザまたはオペレータにより、プロセス制御システム内から取得されたパラメータ値を基礎として、かつ後に詳しく述べるように、通常はプロセス制御システムには統合され得ない、よって通常はこれと通信することができない他のデバイス及び/またはシステムから取得されたパラメータ値を基礎として任意の所望される計算を行うように画定され、または創成されることが可能である。
本明細書に記述されているカスタム・ファンクション・ブロックは、旧プロセス制御システムの機能性をアップグレードするために使用可能である。例えば、基本的な制御ケイパビリティしか供給しない旧制御システムには、高度な制御ファンクションを実行するカスタム・ファンクション・ブロックを創成することによって、高度な制御ケイパビリティを付加することができる。同様に、本明細書に記述されているカスタム・ファンクション・ブロックは、例えばプログラマブル論理コントローラのような基本的な制御システムまたはコントローラの機能性をアップグレードする、または高めるために使用可能である。基本的なコントローラまたは制御システムへは、例えば、基本的なコントローラまたは制御システムと他のより複雑なプロセス制御システム、オペレータ端末、他との間に入るカスタム・ファンクション・ブロック層を構築することにより、さらなる機能性を付加することができる。
代替として、または追加的に、システムのユーザまたはオペレータは、プロセス制御システムが他の製造者によって供給された他のデバイス、機器及び/またはシステムとインタフェースできるように、またはこれらと統合できるようにするカスタム・ファンクション・ブロックまたはカスタム・ファンクション・ブロックのライブラリを創成することができる。本明細書に記述されているカスタム・ファンクション・ブロックを使用して一製造者または供給者に関係づけられたプロセス制御システムが他の製造者または供給者に関連づけられたシステムまたはデバイスとインタフェースされる、または統合される場合、このカスタム・ファンクション・ブロックは、プロセス制御システムのユーザによって、他のシステムまたはデバイスにより供給されたデータまたはパラメータをプロセス制御システムによる使用のためにルーティングし、マップし、翻訳し、かつ/または再フォーマットするように画定される、または創成されることが可能である。同様に、カスタム・ファンクション・ブロックは、プロセス制御システムによって供給されたデータまたはパラメータを他のシステムまたはデバイスによる使用のためにルーティングし、マップし、翻訳し、かつ/または再フォーマットすべく機能することもできる。
例示として、本明細書に記述されているカスタム・ファンクション・ブロックは、第1のプロセス制御システムに関連づけられたファンクション・ブロックを第2のプロセス制御システムに関連づけられたファンクション・ブロックにリンクするために使用可能である。但し、この第1及び第2のプロセス制御システムは、異なる製造者または供給者によって供給されることが可能である。第1及び第2のプロセス制御システムの各々におけるPID制御ループは、例えばこの方法でカスケードされることが可能である。無論、本明細書に記述されているカスタム・ファンクション・ブロックは、多数の異なるプロセス制御システムに関連づけられた多数のファンクション・ブロック間に、より複雑なリンクを作り上げるために使用可能である。例えば、異なる個々の制御システム、デバイスまたは機器に関連づけられた2つ以上のファンクション・ブロックを互いに通信できるようにリンクすれば、1つまたは複数のプロセス制御アクティビティを実行することができる。
先行システム及び技術とは対照的に、本明細書に記述されているカスタム・ファンクション・ブロックは、起点の異なるファンクション・ブロックがリンクされることを可能にする点を認識することは重要である。言い替えれば、Fieldbusシステムに関連づけられたファンクション・ブロックは、1つまたは複数のカスタム・ファンクション・ブロックを介して、例えばPROVOXシステムに関連づけられたファンクション・ブロックへリンクされることが可能である。上述のように、本明細書に記述されているカスタム・ファンクション・ブロックは、情報を1つのタイプの制御システムまたはデバイスから他のタイプの制御システムまたはデバイスへシームレスに伝達するために使用されることが可能な標準シェルまたはパラメータ・インタフェースを供給する。例えば、Fieldbusファンクション・ブロックのモード、ステータス及びBLOCK_ERRの各パラメータに関連づけられた規約は、非Fieldbusファンクション・ブロックに関連づけられた規約及び/または対応するパラメータとは大幅に異なる可能性がある。本明細書に記述されている1つまたは複数のカスタム・ファンクション・ブロックは、Fieldbusファンクション・ブロックと非Fieldbusファンクション・ブロックとの間で伝達されるデータまたは情報をマップし、翻訳しかつ/またはミュートするように創成されることが可能である。このようにして、例えばモード、ステータス及びBLOCK_ERRのようなFieldbusパラメータは、非Fieldbusファンクション・ブロックによる適切なパラメータへマップされる、もしくは関連づけられることが可能である。
本明細書に記述されているカスタム・ファンクション・ブロックはまた、プロセス制御システム実装の外部にある(即ち、プロセス制御アクティビティを実行しているソフトウェアの一部として、もしくはこれに統合されたものとしては実行されない)アプリケーション及びアルゴリズムがプロセス制御システム実装に密に、またはシームレスに統合され得るようにする。本明細書に記述されているカスタム・ファンクション・ブロックは標準的なファンクション・ブロックのように処理される、または使用されるため、カスタム・ファンクション・ブロックは、外部のシステム、アプリケーションまたはアルゴリズムがプロセス制御システムのソフトウェアの一部であるように見えることを可能にし、かつ外部のシステム、アプリケーションまたはアルゴリズムの実行が全体のプロセス制御システムの実行と同期され得るようにする。
本明細書に記述されているカスタム・ファンクション・ブロックを介する外部のシステム、アプリケーションまたはアルゴリズムとプロセス制御システムとの密でシームレスな統合は、これらの外部のシステム、アプリケーションまたはアルゴリズムがプロセス制御システムによって実行されるアラーム管理アクティビティに統合されることを可能にし、システムのユーザまたはオペレータが、カスタム・ファンクション・ブロックとの関連で、かつ必然的にこれらが対応する外部のシステム、アプリケーションまたはアルゴリズムとの関連で、プロセス制御システムを供給されている標準的な構成ツール、デバッギング・ツール、シミュレーション・ツール、他を使用できるようにする。例示として、回転機器の監視アプリケーションのような状態監視アプリケーションは、状態監視アプリケーションによって監視されるパラメータがプロセス制御システム内にデバイス警告を発生させるために使用され得るように、1つまたは複数のカスタム・ファンクション・ブロックを介してプロセス制御システムに統合されることが可能である。さらに、本明細書に記述されているカスタム・ファンクション・ブロックを使用する外部のシステム、アプリケーションまたはアルゴリズムの統合は、これらの外部のシステム、アプリケーションまたはアルゴリズムがプロセス制御システムによって供給された冗長ファンクションに関与できるようにし、かつプロセス制御システム内に供給されたオペレータ・インタフェース及び/またはドキュメンテーション・システムを使用して外部のシステム、アプリケーションまたはアルゴリズムに関連づけられたファンクション・ブロックに関する情報のビューイングを促進する。またさらに、プロセス制御システムと、本明細書に記述されているカスタム・ファンクション・ブロックによって供給されることが可能な外部のシステム、アプリケーションまたはアルゴリズムとの間の密な統合は、構成のダウンロードの間のプロセス制御システムの状態の管理を促進するために使用可能である。例えば、外部のシステム、アプリケーションまたはアルゴリズムに関連づけられたカスタム・ファンクション・ブロックを使用すれば、ダウンロードの間に外部のシステム、アプリケーションまたはアルゴリズムに関連づけられた最終値を保持することができる。
従って、本明細書に記述されているカスタム・ファンクション・ブロックは、プロセス制御システムのアプリケーションとデータ・ソースとの間に通信できるように置かれることが可能である。より特定的には、プロセス制御の情報である可能性のあるデータ・ソースからの情報はカスタム・ファンクション・ブロックへ伝達されることが可能であり、ファンクション・ブロックは、データ・ソースからの情報の少なくとも幾分かをカスタム・ファンクション・ブロック内のファンクションを基礎として処理することができる。処理された情報の少なくとも幾分かは、次に、プロセス制御システムのアプリケーションに伝達されることが可能である。データ・ソースは、プロセス制御システムのアプリケーションに関連づけられたファンクション・ブロック、デバイスまたはパラメータであることが可能である。代替として、データ・ソースは、プロセス制御システムのアプリケーションの外部にあるシステム、デバイス、アルゴリズムまたはアプリケーションであることが可能である。
カスタム・ファンクション・ブロックによるデータ・ソースから受信された情報の処理は、データ・ソースから受信された情報の幾分か、及び/または処理された情報の幾分かをプロセス制御システムのアプリケーションに関連づけられた、もしくは同アプリケーションによって使用された1つまたは複数のパラメータへマップすることを包含する可能性がある。代替として、または追加的に、カスタム・ファンクション・ブロックは、プロセス制御システムのアプリケーションに関連づけられたパラメータによって使用される値を計算することができる。カスタム・ファンクション・ブロックによって実行される計算は、典型的には、本明細書に記述されているカスタム・ファンクション・ブロックを使用しなければ実行されない、もしくは実行され得ない計算である可能性がある。従って、一般的には、本明細書に記述されているカスタム・ファンクション・ブロックは、カスタム・ファンクション・ブロックによって実行されるファンクションを基礎としてプロセス制御システムのアプリケーションとデータ・ソースとの間で情報を伝達するために使用可能である。こうして、本明細書に記述されているカスタム・ファンクション・ブロックは、プロセス制御アプリケーションの外部にあるデータ・ソースとプロセス制御アプリケーションとの機能的統合を可能にする。所望されれば、本明細書に記述されているカスタム・ファンクション・ブロックは、データ・ソースから受信された情報を基礎として値を計算し、その値をファンクション・ブロックが関連しているプロセス制御システムのアプリケーションによって使用されるパラメータに関連づけることができる。より一般的には、本明細書に記述されているカスタム・ファンクション・ブロックは、例えばデータ・マッピング・ファンクション、データ変換ファンクション、データ翻訳ファンクション、他のような1つまたは複数のファンクションを実行することができる。
図2は、制御システムのプロバイダまたは製造者がその制御システム内のカスタム・ファンクション・ブロックの使用を制御することのできる一方法を描いた例示的なフローチャート200である。ブロック202において、制御システムのユーザまたはオペレータは、例えば図1が示すカスタム・ファンクション・ブロック102のようなカスタム・ファンクション・ブロックを生成し、創成し、または構築することができる。ユーザによるこのカスタム・ファンクション・ブロックの生成は、例えばユーザが、ライブラリ・ファイルまたは他のファイルからファンクション・ブロックのコンポーネントを表すアイコンをクリックしてドラッグし、アイコン及び必然的にそれらが表すファイルを組み合わせてファンクション・ブロックを形成できるようにすることが可能な、グラフィックなユーザ・インタフェース、テキスト・エディタまたはこれらに類似するものによって促進されることが可能である。さらに、ユーザは、標準ファンクション・ブロックによって提供されない特殊なファンクション、アルゴリズムまたはプロシージャを包含するようにソース・コード・ファイルを編集する、または変更し得る可能性がある。
ブロック204では、ブロック202で生成され、創成され、または構築されて完成した1つまたは複数のソース・コード・ファイルがコンパイルされてリンクされ、対応する1つまたは複数のオブジェクト・コード・ファイル(例えば、1つまたは複数のダイナミック・リンク・ライブラリ(DLL))を生成することができる。好適には、1つまたは複数のソース・コード・ファイルのこのコンパイル及びリンクはユーザによって実行されることが可能であり、もしくは所望されれば他の何らかのエンティティが代わりに実行することも可能であるが、この限りではない。ブロック206では、カスタム・ファンクション・ブロックに関連してコンパイルされかつリンクされた1つまたは複数のソース・コード・ファイルは、ターゲット・プロセス制御システムのプロバイダに転送されることが可能である。プロバイダは、ターゲット・プロセス制御システムに関連づけられたインストーラ、製造者及び/またはユーザ以外の任意のエンティティであることが可能である。さらに、コンパイルされてリンクされた1つまたは複数のソース・コード・ファイルの転送は、例えばインターネットの使用を含む可能性のある無線及び/または結線接続の通信ネットワークを介する電送、例えば磁気または光学的な記憶ディスクまたは他のデバイスのような何らかのタイプの有形記憶媒体を介する送信、印刷されたハードコピーを介する送信、他、のような所望される任意の技術を使用して実行されることが可能である。
ブロック208において、カスタム・ファンクション・ブロック用のコンパイルされてリンクされたソース・コードを受信するエンティティは、ターゲット制御システムにおいてカスタム・ファンクション・ブロックが適正に作動するかどうかの妥当性を検査することができる。また、受信するエンティティは、カスタム・ファンクション・ブロックが、実行されると、受信するエンティティとカスタム・ファンクション・ブロックの創成を担当するエンティティとの間で発効している可能性のある任意のライセンス契約の契約条件に違反しないものであることを決定することが可能である。カスタム・ファンクション・ブロックが有効でなければ、ブロック210は制御をブロック212へ送り、ブロック212においてユーザは、カスタム・ファンクション・ブロックが契約条件に適合しないこと、及び/またはカスタム・ファンクション・ブロックがターゲットプロセス制御システム内で適正に機能しないことを通知されることが可能である。
これに対して、カスタム・ファンクション・ブロックが有効であれば(即ち、ライセンス及び/または機能上の要件が満足されている、または違反されていなければ)、ブロック210は制御をブロック214へ送る。ブロック214では、カスタム・ファンクション・ブロック用のコンパイルされてリンクされたソース・コード・ファイルを受信するエンティティが、デジタル・サインをこのコンパイルされてリンクされたカスタム・ファンクション・ブロック・ファイルへ添付する、または追加することができる。当然ながら、デジタル・サインの代わりに他の任意のタイプの安全または妥当性検査措置を使用することも可能である。代替として、デジタル・サインまたは他の安全/妥当性検査措置を、別個の記憶デバイスまたは媒体として具現されることが可能な別個のデジタル・ファイル内に供給することも可能である。
ブロック216では、検証されたカスタム・ファンクション・ブロック・ファイルが、ユーザまたはカスタム・ファンクション・ブロックの創成または構築を担当するエンティティへ転送して戻される。カスタム・ファンクション・ブロック・ファイルは、デジタル・サインまたは上述のような他の何らかの安全措置を伴って転送し戻されることが可能である。ブロック206におけるファイル転送の場合と同様に、ブロック216におけるファイルの転送は、無線及び/または結線接続された電子転送を含む所望の任意の通信技術を使用して実行されることが可能である。
ブロック218において、ユーザまたはカスタム・ファンクション・ブロックの創成を担当するエンティティは、システムのユーザが、プロセス制御のプロシージャ、アルゴリズム他の設計及び実行に標準ファンクション・ブロックを使用することができる方法に類似する方法、またはこれと同一の方法でカスタム・ファンクション・ブロックを選択しかつ使用できるように、カスタム・ファンクション・ブロックをターゲット制御システムへ組み込むことができる。好適には、リリースされたファンクション・ブロックまたは生産ファンクション・ブロックとして使用されるカスタム・ファンクション・ブロックに関して、図2で例示的に示された技術が使用されるが、この限りではない。従って、図2で例示的に示された技術が、必ずしも設計開発をデバッギング・モードまたは他の何らかの開発モードにおいて実行するために使用されなければならないわけではない。こういった方法でユーザは、制御システムのプロシージャの開発プロセスの間、時間のかかるファイルの転送、妥当性検査プロシージャ、他に携わる必要なしに、カスタム・ファンクション・ブロックを使用して自由に実験を行うことができる。但し、ユーザが、制御システムに組み込まれかつ、あるリリースされたキャパシティ、または生産キャパシティで使用されるカスタム・ファンクション・ブロックまたはカスタム・ファンクション・ブロックのライブラリを開発し終えると、ユーザは、図2に関連して示されかつ説明されたものに類似する、もしくはこれと同一のプロシージャに従わざるを得なくなる可能性がある。
図2で例示的に描かれている技術は、単一のカスタム・ファンクション・ブロックの創成及び妥当性検査に関連して説明されているが、図2に描かれた技術は、より一般的に適用可能である。例えば、図2が示す技術を実質的に同時に使用すれば、複数のカスタム・ファンクション・ブロックを創成しかつ検証することができる。さらに、所望されれば、単一のライブラリまたは複数のライブラリ内に複数のカスタム・ファンクション・ブロックの幾つか、または全てを包含することができる。
単なる例示としては、本明細書に記述されているカスタム・ファンクション・ブロック及びカスタム・ファンクション・ブロックを創成する方法を使用して、例えば食品医薬品局(FDA)が要求する可能性のある妥当性検査のような検証プロシージャを促進することができる。さらに、所望されれば、本明細書に記述されているカスタム・ファンクション・ブロック及び創成技術は、カスタム・ファンクション・ブロックがコンパイルされた形で開発されて配置されることを可能にし、これにより、ファンクション・ブロックの創成者以外のエンティティがエンジニアを覆す、もしくはカスタム・ファンクション・ブロックの機能方法を決定することをより困難にし、おそらくは不可能にする。その結果、本明細書に記述されているカスタム・ファンクション・ブロックは、開発者が開発されたファンクション・ブロックを専有者として保持できるように、コンパイルされた形で開発され、配置されることが可能である。
ソフトウェアに実装される場合、本明細書において論じたファンクション・ブロック及びソフトウェア・ルーチンは、コンピュータ、コントローラ、フィールド・デバイス、他のRAMまたはROMにおける磁気ディスク、レーザ・ディスクまたは他の記憶媒体上のような任意のコンピュータ読取り可能メモリに記憶されることが可能である。同様に、このソフトウェアは、例えば電話回線、インターネット、他等の通信チャネル経由を含む任意の周知の伝達方法または所望の伝達方法を介してユーザまたはデバイスに伝達されることが可能である。
単なる例示であることが意図された、本発明を限定する意図のない特定例に関連して本発明を説明してきたが、一般的な当業者には、開示された実施形態に本発明の精神及び範囲を逸脱することなく変更、追加または削除を実行し得ることが明らかとなるであろう。

Claims (19)

  1. プロセスプラントに組み込まれたプロセス制御システムとともに用いるための、プログラミング・パラダイムにおけるファンクション・ブロックを創成する方法であって、
    前記ファンクション・ブロック内に前記ファンクション・ブロックにより使用される複数のデータ・アイテムを規定することであって、各データ・アイテムは、関連した属性を有し、その属性の値は前記データ・アイテムが公衆データまたはプライベート・データかどうかを決定し、公衆データであるデータ・アイテムは、記プロセス制御システム内にインスタンスが作成された前記ファンクション・ブロックおよび多数の他のファンクション・ブロックによる使用が可能であり、且つプライベート・データであるデータ・アイテムは、前記プロセス制御システム内にインスタンスが作成された前記ファンクション・ブロックのみによる使用が可能である、前記複数のデータ・アイテムを規定することと、
    前記プロセスプラントにおける前記プロセス制御システムに関連したコンピュータデバイスを用いて複数のソース・コード・ファイルから初期化ルーチンを選択することであって、この初期化ルーチンが、前記ファンクション・ブロックに関連する前記データ・アイテムを初期化するものである、初期化ルーチンを選択することと、
    前記プロセスプラントにおける前記プロセス制御システムに関連した前記コンピュータデバイスを用いて複数のソース・コード・ファイルから周期的実行ルーチンを選択することと、
    前記プロセスプラントにおける前記プロセス制御システムに関連した前記コンピュータデバイスを用いて複数のソース・コード・ファイルから書込みチェック・ルーチンを選択することであって、この書込みチェック・ルーチンが、前記ファンクション・ブロックの外部ソースから前記初期化されたデータ・アイテムに書き込まれるデータの妥当性を確認するように構成されたものである、書込みチェック・ルーチンを選択することと、
    前記プロセスプラントにおける前記プロセス制御システムに関連した前記コンピュータデバイスを用いて前記プログラミング・パラダイム内の前記ファンクション・ブロックを規定するために前記初期化ルーチン、前記周期的実行ルーチンおよび書込みチェック・ルーチンを互いに関連付けることと、
    前記プロセスプラントにおける前記プロセス制御システムに関連した前記コンピュータデバイスを用いて、前記ファンクション・ブロックに新たな機能性を提供するために、前記初期化ルーチン、前記周期的実行ルーチン及び前記書込みチェック・ルーチンのうちの1つを、プロセッサによって実行可能なソース・コードによって規定され且つ複数のソース・コード・ファイルから選択された前記ルーチンにより提供されないファンクション又はアルゴリズムが包含されるように修正することと、
    前記プロセスプラントにおける前記プロセス制御システム内のインスタンスが作成されたファンクション・ブロックを生み出すために用いることのできるテンプレート・ファンクション・ブロックとして、前記新たな実行機能性を備えた前記ファンクション・ブロックを記憶することとを含み、
    前記インスタンスが作成されたファンクション・ブロックは、前記プログラミング・パラダイムを用いて生み出された他のファンクション・ブロック、前記プロセス制御システム内において通信可能に相互作用するものである、方法。
  2. 複数のヘッダ・ファイルから1つのヘッダ・ファイルを選択することと、前記ヘッダ・ファイルを前記ファンクション・ブロックに関連づけることをさらに含む請求項1記載の方法。
  3. 複数のライブラリ・ファイルから1つのライブラリ・ファイルを選択することと、前記ライブラリ・ファイルを前記ファンクション・ブロックに関連づけることをさらに含む請求項1記載の方法。
  4. 前記周期的実行ルーチンは、前記ファンクション・ブロックに関連づけられた属性テーブルに対するポインタを含む請求項1記載の方法。
  5. 前述した、前記初期化ルーチン、前記周期的実行ルーチン及び前記書込みチェック・ルーチンのうちの前記1つを修正して、前記プロセス制御システムには供給されていない前記ファンクション又はアルゴリズムを包含することには、グラフィック・ユーザ・インタフェースを使用することが含まれる、請求項1記載の方法。
  6. 前述した、前記初期化ルーチン、前記周期的実行ルーチン及び前記書込みチェック・ルーチンのうちの前記1つを修正して、前記プロセス制御システムには供給されていない前記ファンクション又はアルゴリズムを包含することには、高水準プログラミング言語のソフトウェア命令を上記周期的実行ルーチンに付加することが含まれる、請求項1記載の方法。
  7. プロセスプラントに組み込まれたプロセス制御システムにおいて用いるための、プログラミング・パラダイムにおけるファンクション・ブロックを創成する方法であって、
    前記ファンクション・ブロックに関連づけられたファイルを形成するために、前記プロセスプラントにおける前記プロセス制御システムに関連したコンピュータデバイスを用いて、前記プロセス制御システムのプロバイダによって生成されたファイル・グループからの複数のファンクション・ブロック・コンポーネントを組み合わせることであって、複数のデータ・アイテムを初期化するように構成された初期化ルーチンであって、各データ・アイテムは、関連した属性を有し、その属性の値は前記データ・アイテムが公衆データまたはプライベート・データかどうかを決定し、公衆データであるデータ・アイテムは、記プロセス制御システム内にインスタンスが作成された前記ファンクション・ブロックおよび多数の他のファンクション・ブロックによる使用が可能であり、且つプライベート・データであるデータ・アイテムは、前記プロセス制御システム内にインスタンスが作成された前記ファンクション・ブロックのみによる使用が可能である、初期化ルーチンと、 周期的な実行ルーチンと、 前記ファンクション・ブロックの外部ソースから初期化されたデータ・アイテムに書き込まれるデータの妥当性を確認するように構成された書込みチェック・ルーチンと、を含んだものである、複数のファンクション・ブロック・コンポーネントを組み合わせることと、
    前記プロセスプラントにおける前記プロセス制御システムに関連したコンピュータデバイスを用いて、前記プログラミング・パラダイムにおける前記ファンクション・ブロックに新たな機能性を備えるように生み出すために、前記ファンクション・ブロックに関連した前記ファイル内に前記複数のファンクション・ブロック・コンポーネントのうちの1つを、プロセッサによって実行可能なソース・コードによって規定され且つ、前記ファイル・グループには含まれていないファンクション又はアルゴリズムが包含されるように修正することと、
    前記プロセスプラントにおける前記プロセス制御システム内の前記インスタンスが作成されたファンクション・ブロックを生み出すために用いることのできるテンプレート・ファンクション・ブロックとして、前記新たな実行機能性を備えた前記ファンクション・ブロックを記憶することとを含み、
    前記インスタンスが作成されたファンクション・ブロックは、前記プログラミング・パラダイムを用いて生み出された他のファンクション・ブロック、前記プロセス制御システム内において通信可能に相互作用するものである、方法。
  8. 前記ファンクション・ブロックに関連づけられたファイルを形成するために、前記プロセス制御システムのプロバイダによって生成されたファイル・グループからの複数のファンクション・ブロック・コンポーネントを組み合わせることは、前記プロセス制御システムによって実行されるようにされたソース・ファイルとヘッダ・フィルとを組み合わせて、前記初期化ルーチン前記周期的実行ルーチン及び前記書込みチェック・ルーチンのうちの1つを実行することを含む請求項7記載の方法。
  9. 前記ファンクション・ブロックに関連づけられたファイルを形成するために、前記プロセス制御システムのプロバイダによって生成されたファイル・グループからの複数のファンクション・ブロック・コンポーネントを組み合わせることは、ライブラリ・ファイルを前記ソース・ファイル及び前記ヘッダ・ファイルに組み合わせることをさらに含む請求項8記載の方法。
  10. 前記複数のファンクション・ブロック・コンポーネントのうちの1つによって使用される少なくとも1つの属性を有する属性テーブルを前記ファンクション・ブロックに関連づけることをさらに含む請求項7記載の方法。
  11. 前記ファンクション・ブロックに関連づけられたファイルを形成するために、前記プロセス制御システムのプロバイダによって生成されたファイル・グループからの複数のファンクション・ブロック・コンポーネントを組み合わせることは、グラフィック・ユーザ・インタフェース及びテキスト・エディタの一方を使用して前記複数のファンクション・ブロック・コンポーネントの各々を選択することを含む請求項7記載の方法。
  12. 前記ファンクション・ブロックに関連づけられたファイルを形成するために、前記プロセス制御システムのプロバイダによって生成されたファイル・グループからの複数のファンクション・ブロック・コンポーネントを組み合わせることは、ファンクション・ブロック初期化ルーチンを含む第1のファンクション・ブロック・コンポーネントと、周期的実行ルーチンを含む第2のファンクション・ブロック・コンポーネントと、書込みチェック・ルーチンを含む第3のファンクション・ブロック・コンポーネントとを選択することを含む請求項7記載の方法。
  13. 前記第1、第2及び第3のファンクション・ブロック・コンポーネントを選択することは、複数のソース・ファイルから前記第1、第2及び第3のファンクション・ブロック・コンポーネントを選択することを含む請求項12記載の方法。
  14. 属性テーブルを介して前記ファンクション・ブロックの属性を前記プロセス制御システム内の情報に関連づけるためにポインタを使用することをさらに含む請求項7記載の方法。
  15. プロセスプラントに組み込まれたプロセス制御システムとともに用いるための、プログラミング・パラダイムにおけるファンクション・ブロックを創成するためのシステムであって、
    前記プロセスプラントにおける前記プロセス制御システムに関連したコンピュータデバイスと通信可能に接続されたコンピュータ読取り可能媒体と、
    前記コンピュータ読取り可能媒体上に記憶され、かつ、複数のソース・コード・ファイルからユーザが初期化ルーチンを選択することができるように前記プロセス制御システムによって実行されるようにされた第1のソフトウェアであって、前記初期化ルーチンは、
    複数のデータ・アイテムを初期化し、各データ・アイテムは、関連した属性を有し、その属性の値は、前記データ・アイテムが公衆データまたはプライベート・データかどうかを決定し、公衆データであるデータ・アイテムは、記プロセス制御システム内にインスタンスが作成された前記ファンクション・ブロックおよび多数の他のファンクション・ブロックによる使用が可能であり、且つプライベート・データであるデータ・アイテムは、前記プロセス制御システム内にインスタンスが作成された前記ファンクション・ブロックのみによる使用が可能である、第1のソフトウェアと、
    前記コンピュータ読取り可能媒体上に記憶され、かつ、ユーザが前記複数のソース・コード・ファイルから周期的実行ルーチンを選択することができるように前記プロセス制御システムによって実行されるようにされた第2のソフトウェアと、
    前記コンピュータ読取り可能媒体上に記憶され、かつ、ユーザが前記複数のソース・ファイルから書込みチェック・ルーチンを選択することができるように前記プロセス制御システムによって実行されるようにされた第3のソフトウェアであって、この書込みチェック・ルーチンが、前記ファンクション・ブロックの外部ソースから前記初期化されたデータ・アイテムに書き込まれるデータの妥当性を確認するように構成されたものである、第3のソフトウェアと、
    前記コンピュータ読取り可能媒体上に記憶され、かつ、ユーザが前記初期化ルーチン、
    前記周期的実行ルーチンおよび前記書込みチェック・ルーチンを前記ファンクション・ブロックに関連付けるように、前記プロセス制御システムによって実行されるようにされた第4のソフトウェアと、
    前記コンピュータ読取り可能媒体上に記憶されるとともに前記プロセス制御システムによって実行されるようにされており、かつ、ユーザが、前記初期化ルーチン、前記周期的実行ルーチン及び前記書込みチェック・ルーチンのうちの1つを修正して、前記選択されたソース・コード・ファイルには含まれていないファンクション又はアルゴリズムを包含するようにされた、第5のソフトウェアであって、前記ファンクション又はアルゴリズムが、前記修正によって前記ファンクション・ブロックに前記プログラミング・パラダイムにおける新たな実行機能性を提供するものである、第5のソフトウェアと、
    前記プロセス制御システム内のインスタンスが作成されたファンクション・ブロックを生み出すために用いることのできるテンプレート・ファンクション・ブロックとして、前記新たな機能性を備えた前記ファンクション・ブロックを記憶するために、前記コンピュータ読取り可能媒体に記憶され、かつ、前記プロセス制御システムによって実行される他のルーチンとを備え、
    前記インスタンスが作成されたファンクション・ブロックは、前記プロセス制御システム内で前記プログラミング・ダイアグラムを用いて生み出される他のファンクション・ブロック、通信可能に相互作用するものである、システム。
  16. 前記コンピュータ読取り可能媒体上に記憶され、かつ複数のヘッダ・ファイルから1つのヘッダ・ファイルを選択して前記ヘッダ・ファイルを前記ファンクション・ブロックに関連づけるために前記プロセス制御システムによって実行されるようにされた第6のソフトウェアをさらに備える請求項15記載のシステム。
  17. 前記コンピュータ読取り可能媒体上に記憶され、かつ複数のライブラリ・ファイルから1つのライブラリ・ファイルを選択して前記ライブラリ・ファイルを前記ファンクション・ブロックに関連づけるために前記プロセス制御システムによって実行されるようにされた第7のソフトウェアをさらに備える請求項15記載のシステム。
  18. プロセス制御システムとともに用いるための、プログラミング・パラダイムにおけるファンクション・ブロックを創成するためのシステムであって、
    コンピュータ読取り可能媒体と、
    前記コンピュータ読取り可能媒体上に記憶され、かつ、複数のソース・コード・ファイルからユーザが初期化ルーチンを選択することができるように前記プロセス制御システムによって実行されるようにされた第1のソフトウェアであって、前記初期化ルーチンは、
    複数のデータ・アイテムを初期化し、各データ・アイテムは、関連した属性を有し、その属性の値は、前記データ・アイテムが公衆データまたはプライベート・データかどうかを決定し、公衆データであるデータ・アイテムは、記プロセス制御システム内にインスタンスが作成された前記ファンクション・ブロックおよび多数の他のファンクション・ブロックによる使用が可能であり、且つプライベート・データであるデータ・アイテムは、前記プロセス制御システム内にインスタンスが作成された前記ファンクション・ブロックのみによる使用が可能である、第1のソフトウェアと、
    前記コンピュータ読取り可能媒体上に記憶され、かつ、ユーザが前記複数のソース・コード・ファイルから周期的実行ルーチンを選択することができるように前記プロセス制御システムによって実行されるようにされた第2のソフトウェアと、
    前記コンピュータ読取り可能媒体上に記憶され、かつ、ユーザが前記複数のソース・ファイルから書込みチェック・ルーチンを選択することができるように前記プロセス制御システムによって実行されるようにされた第3のソフトウェアであって、この書込みチェック・ルーチンが、前記ファンクション・ブロックの外部ソースから前記初期化されたデータ・アイテムに書き込まれるデータの妥当性を確認するように構成されたものである、第3のソフトウェアと、
    前記コンピュータ読取り可能媒体上に記憶され、かつ、ユーザが前記初期化ルーチン、
    前記周期的実行ルーチンおよび前記書込みチェック・ルーチンを前記ファンクション・ブロックに関連付けるように、前記プロセス制御システムによって実行されるようにされた第4のソフトウェアと、
    前記コンピュータ読取り可能媒体上に記憶されるとともに前記プロセス制御システムによって実行されるようにされており、かつ、ユーザが、前記初期化ルーチン、前記周期的実行ルーチン及び前記書込みチェック・ルーチンのうちの1つを修正して、前記選択されたソース・コード・ファイルには含まれていないファンクション又はアルゴリズムを包含するようにされた、第5のソフトウェアであって、前記ファンクション又はアルゴリズムが、記修正によって前記ファンクション・ブロックに前記プログラミング・パラダイムにおける新たな実行機能性を提供するものである、第5のソフトウェアとを備えており、
    前記第5のソフトウェアは、前記プロセス制御システムには供給されていない前記ファンクション又はアルゴリズムを包含するように、グラフィック・ユーザ・インタフェースを使用して、前記初期化ルーチン、前記周期的実行ルーチン及び前記書込みチェック・ルーチンのうちの1つを修正するようにされたものである、システム。
  19. 前記第5のソフトウェアは、高水準プログラミング言語のソフトウェア命令を前記周期的実行ルーチンに付加することにより、前記初期化ルーチン、前記周期的実行ルーチン及び前記書込みチェック・ルーチンのうちの前記1つを修正するようにさらにされている請求項15記載のシステム。
JP2012047021A 2002-04-15 2012-03-02 プロセス制御システムと共用するためのカスタム・ファンクション・ブロック Expired - Lifetime JP5444394B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/123,822 2002-04-15
US10/123,822 US7822495B2 (en) 2002-04-15 2002-04-15 Custom function blocks for use with process control systems

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2009092496A Division JP5253277B2 (ja) 2002-04-15 2009-04-06 プロセスプラントに組み込まれたプロセス制御システムにユーザ定義・カスタム・ファンクション・ブロックを統合する方法

Publications (2)

Publication Number Publication Date
JP2012133809A JP2012133809A (ja) 2012-07-12
JP5444394B2 true JP5444394B2 (ja) 2014-03-19

Family

ID=22411094

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2003145504A Pending JP2004127242A (ja) 2002-04-15 2003-04-15 プロセス制御システムと共用するためのカスタム・ファンクション・ブロック
JP2009092496A Expired - Lifetime JP5253277B2 (ja) 2002-04-15 2009-04-06 プロセスプラントに組み込まれたプロセス制御システムにユーザ定義・カスタム・ファンクション・ブロックを統合する方法
JP2012047021A Expired - Lifetime JP5444394B2 (ja) 2002-04-15 2012-03-02 プロセス制御システムと共用するためのカスタム・ファンクション・ブロック

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP2003145504A Pending JP2004127242A (ja) 2002-04-15 2003-04-15 プロセス制御システムと共用するためのカスタム・ファンクション・ブロック
JP2009092496A Expired - Lifetime JP5253277B2 (ja) 2002-04-15 2009-04-06 プロセスプラントに組み込まれたプロセス制御システムにユーザ定義・カスタム・ファンクション・ブロックを統合する方法

Country Status (6)

Country Link
US (2) US7822495B2 (ja)
JP (3) JP2004127242A (ja)
CN (3) CN100474186C (ja)
DE (1) DE10316217A1 (ja)
GB (1) GB2389427A (ja)
HK (1) HK1059128A1 (ja)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7689709B2 (en) * 2002-12-13 2010-03-30 Sap Ag Native format tunneling
US7308458B2 (en) 2003-06-11 2007-12-11 Wtviii, Inc. System for normalizing and archiving schemas
EP1577724B1 (en) * 2004-03-15 2009-10-07 Rockwell Automation Technologies, Inc. Agent program environment
JP2007536634A (ja) * 2004-05-04 2007-12-13 フィッシャー−ローズマウント・システムズ・インコーポレーテッド プロセス制御システムのためのサービス指向型アーキテクチャ
JP4529079B2 (ja) * 2004-09-02 2010-08-25 横河電機株式会社 制御システム
JP4727278B2 (ja) * 2005-04-05 2011-07-20 株式会社エヌ・ティ・ティ・ドコモ アプリケーションプログラム検証システム、アプリケーションプログラム検証方法およびコンピュータプログラム
US7515972B2 (en) * 2005-10-28 2009-04-07 Honeywell International Inc. System and method for dynamically creating and editing function block types in a process control environment
US20070100472A1 (en) * 2005-10-31 2007-05-03 Honeywell International Inc. System and method for creating serial interface protocols in a process control environment
JP5108260B2 (ja) * 2006-07-06 2012-12-26 株式会社アマダ 曲げ加工機金型レイアウトの活用方法およびその装置
US11068426B2 (en) * 2006-08-31 2021-07-20 Red Hat, Inc. Portable storage device capable of transferring data to a portable storage device
US7822802B2 (en) 2006-09-29 2010-10-26 Fisher-Rosemount Systems, Inc. Apparatus and method for merging wireless data into an established process control system
US7561930B2 (en) * 2006-10-02 2009-07-14 Fisher-Rosemount Systems, Inc. Dynamic modifier function blocks for use in a process control system
JP5083591B2 (ja) * 2006-10-26 2012-11-28 横河電機株式会社 プロセス制御システム
US9104195B2 (en) 2006-12-20 2015-08-11 Lincoln Global, Inc. Welding job sequencer
US10994358B2 (en) 2006-12-20 2021-05-04 Lincoln Global, Inc. System and method for creating or modifying a welding sequence based on non-real world weld data
US9937577B2 (en) 2006-12-20 2018-04-10 Lincoln Global, Inc. System for a welding sequencer
DE102006062477A1 (de) 2006-12-28 2008-07-03 Endress + Hauser Process Solutions Ag Verfahren zum Betreiben eines nach dem Blockmodell arbeitenden Feldgerätes für ein verteiltes Automatisierungssystem
EP2093676A1 (de) * 2008-02-20 2009-08-26 Siemens Aktiengesellschaft Verfahren zur Generierung von Funktionsbausteinen für Webdienste.
US8407611B2 (en) * 2008-08-04 2013-03-26 Honeywell International Inc. Apparatus and method for designing graphical user interfaces (GUIs) having different fidelities
US8046519B2 (en) 2008-10-20 2011-10-25 Daniel Measurement And Control, Inc. Coupling a specialty system, such as a metering system, to multiple control systems
AU2014240328B2 (en) * 2008-10-20 2016-08-11 Emerson Automation Solutions Measurement Systems & Services Llc Coupling a specialty system, such as a metering system, to multiple control systems
US8903520B2 (en) * 2009-04-14 2014-12-02 General Electric Company Method for executing sequential function charts as function blocks in a control system
US8689118B2 (en) * 2009-05-18 2014-04-01 Fisher-Rosemount Systems, Inc. Methods and apparatus to conceal portions of a visual object diagram in a process control system
US9535413B2 (en) * 2010-02-12 2017-01-03 Rockwell Automation Technologies, Inc. Automatic device parameter binding method and system
US8538559B2 (en) * 2011-04-04 2013-09-17 Relcom, Inc. Fieldbus system function block enhancements using transducer block
US20120306648A1 (en) * 2011-05-31 2012-12-06 General Electric Company Systems and methods to configure alerts for fieldbus foundation devices
US9772617B2 (en) * 2011-06-30 2017-09-26 General Electric Company Systems and methods for function block instantiation
JP5099251B1 (ja) * 2011-07-15 2012-12-19 オムロン株式会社 Plcのcpuユニット、plc用のシステムプログラム、plc用のシステムプログラムを格納した記録媒体、plcシステム、plcサポート装置、plcサポートプログラム、および、plcサポートプログラムを格納した記録媒体
CN102393657B (zh) * 2011-11-30 2014-11-05 洛阳正扬冶金技术股份有限公司 一种自动化控制系统的功能块化控制方法
US9176751B2 (en) * 2012-04-04 2015-11-03 Xerox Corporation Tools and methods for customizing multi-function devices
US9213329B2 (en) * 2012-10-25 2015-12-15 Honeywell Gmbh System and method for vendor release independent reusable customized function block libraries
WO2016002076A1 (ja) * 2014-07-04 2016-01-07 三菱電機株式会社 位置決め制御装置の同期制御設定方法
US10162315B2 (en) * 2014-07-23 2018-12-25 Emerson Process Management Power & Water Solutions, Inc. Process control system using typical and adapter components
CN105867887A (zh) * 2015-01-22 2016-08-17 晨星半导体股份有限公司 原始码质量管理系统与方法
US10216523B2 (en) 2015-07-17 2019-02-26 General Electric Company Systems and methods for implementing control logic
US9989950B2 (en) * 2015-07-17 2018-06-05 General Electric Company Systems and methods for generating control logic
US10438144B2 (en) 2015-10-05 2019-10-08 Fisher-Rosemount Systems, Inc. Method and apparatus for negating effects of continuous introduction of risk factors in determining the health of a process control system
US11074305B1 (en) * 2016-03-10 2021-07-27 Amazon Technologies, Inc. Extending data store operations using function objects
WO2018152582A1 (en) * 2017-02-22 2018-08-30 Woodside Energy Technologies Pty Ltd A model management system
JP6816554B2 (ja) * 2017-02-22 2021-01-20 オムロン株式会社 制御システム、制御装置および制御プログラム
US10447078B2 (en) 2017-10-02 2019-10-15 Fisher-Rosemount Systems, Inc. Smart function block for integration of PLCS into a control system and methods for the same
CN109858721B (zh) * 2017-11-30 2023-01-06 中广核(北京)仿真技术有限公司 一种控制计算策略生成方法以及系统
US10747508B2 (en) * 2018-12-31 2020-08-18 Rockwell Automation Technologies, Inc. Function block framework generation
CN111158324B (zh) * 2019-12-31 2021-10-22 青岛国信城市信息科技有限公司 隧道机电设备自动化功能库及其使用方法
CN111309309B (zh) * 2020-02-20 2023-09-22 杭州涂鸦信息技术有限公司 基于设备的软件开发方法及其系统和装置

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2681451B1 (fr) 1991-09-13 1993-11-12 Bull Sa Procede de gestion d'objets structures.
JPH0792758B2 (ja) * 1992-01-17 1995-10-09 インターナショナル・ビジネス・マシーンズ・コーポレイション コンパイラおよびコンパイル方法
US6026366A (en) * 1993-09-22 2000-02-15 Motorola, Inc. Method for providing software to a remote computer
JP3251414B2 (ja) 1994-01-11 2002-01-28 三菱電機株式会社 プログラマブルコントローラおよびそのプログラム容量変更方法
NZ329891A (en) * 1994-01-13 2000-01-28 Certco Llc Method of upgrading firmware of trusted device using embedded key
US5748738A (en) 1995-01-17 1998-05-05 Document Authentication Systems, Inc. System and method for electronic transmission, storage and retrieval of authenticated documents
JPH08194624A (ja) * 1995-01-20 1996-07-30 Fujitsu Ltd 実行形式プログラム作成方法
GB2306700A (en) 1995-10-19 1997-05-07 Calcam Control Systems Ltd Control System
US5995916A (en) * 1996-04-12 1999-11-30 Fisher-Rosemount Systems, Inc. Process control system for monitoring and displaying diagnostic information of multiple distributed devices
US6868538B1 (en) * 1996-04-12 2005-03-15 Fisher-Rosemount Systems, Inc. Object-oriented programmable controller
US6032208A (en) * 1996-04-12 2000-02-29 Fisher-Rosemount Systems, Inc. Process control system for versatile control of multiple process devices of various device types
US5862052A (en) * 1996-04-12 1999-01-19 Fisher-Rosemount Systems, Inc. Process control system using a control strategy implemented in a layered hierarchy of control modules
US5909368A (en) * 1996-04-12 1999-06-01 Fisher-Rosemount Systems, Inc. Process control system using a process control strategy distributed among multiple control elements
US6044305A (en) * 1996-10-04 2000-03-28 Fisher Controls International, Inc. Method and apparatus for debugging and tuning a process control network having distributed control functions
US6044218A (en) * 1997-01-31 2000-03-28 Sun Microsystems, Inc. System, method and article of manufacture for creating a live application or applet development environment
JPH10301763A (ja) * 1997-04-25 1998-11-13 Mitsubishi Electric Corp ディジタル制御装置のプログラム作成支援装置
US6304886B1 (en) * 1997-06-19 2001-10-16 International Business Machines Corporation System and method for building a web site using specific interface
US6298389B1 (en) * 1997-06-20 2001-10-02 Compaq Computers, Inc. Method for input and output of structures for the Java language
US5971581A (en) * 1997-09-17 1999-10-26 National Instruments Corp. Fieldbus network configuration utility with improved scheduling and looping
CN1111358C (zh) * 1997-09-23 2003-06-18 Wm·雷格利Jr·公司 用于自动化连续生产口香糖的过程控制系统和方法
US6317760B1 (en) * 1998-01-14 2001-11-13 Microsoft Corporation Extensible ordered information within a web page
JPH11338521A (ja) * 1998-05-28 1999-12-10 Mitsubishi Heavy Ind Ltd 制御装置
GB2345360A (en) 1998-10-02 2000-07-05 Fisher & Paykel Programming programmable controllers
US6339839B1 (en) * 1998-11-12 2002-01-15 International Business Machines Corporation Enabling multiple code generators in a translator-based embedded scripting system
US6298454B1 (en) * 1999-02-22 2001-10-02 Fisher-Rosemount Systems, Inc. Diagnostics in a process control system
US6633782B1 (en) * 1999-02-22 2003-10-14 Fisher-Rosemount Systems, Inc. Diagnostic expert in a process control system
US6510351B1 (en) * 1999-03-15 2003-01-21 Fisher-Rosemount Systems, Inc. Modifier function blocks in a process control system
US6445962B1 (en) * 1999-03-15 2002-09-03 Fisher Rosemount Systems, Inc. Auto-tuning in a distributed process control environment
JP3829905B2 (ja) * 1999-08-06 2006-10-04 オムロン株式会社 プログラマブル・コントローラ
US6708330B1 (en) * 2000-06-13 2004-03-16 Cisco Technology, Inc. Performance improvement of critical code execution
US6698015B1 (en) * 2000-06-13 2004-02-24 Cisco Technology, Inc. Apparatus and method for improving performance of critical code execution
US20020013865A1 (en) * 2000-07-26 2002-01-31 Seagate Technology Llc System and method of a minimized representation of a sector variable-bits-per-inch table
CN1338841A (zh) 2000-08-11 2002-03-06 海南格方网络安全有限公司 计算机安全认证智能密钥
CN1310106C (zh) * 2001-03-01 2007-04-11 费舍-柔斯芒特系统股份有限公司 制炼控制系统数据的远程分析
US7392504B2 (en) * 2002-06-06 2008-06-24 International Business Machines Corporation System and method for automated source code generation

Also Published As

Publication number Publication date
CN100474186C (zh) 2009-04-01
GB2389427A (en) 2003-12-10
JP2004127242A (ja) 2004-04-22
US20110009985A1 (en) 2011-01-13
CN1924739A (zh) 2007-03-07
CN1452064A (zh) 2003-10-29
CN101419439B (zh) 2014-06-25
US20030195639A1 (en) 2003-10-16
DE10316217A1 (de) 2003-11-13
HK1059128A1 (en) 2004-06-18
JP2009187573A (ja) 2009-08-20
US9086692B2 (en) 2015-07-21
GB2389427A9 (en) 2004-02-11
JP2012133809A (ja) 2012-07-12
CN101419439A (zh) 2009-04-29
CN1310145C (zh) 2007-04-11
JP5253277B2 (ja) 2013-07-31
GB0308581D0 (en) 2003-05-21
US7822495B2 (en) 2010-10-26

Similar Documents

Publication Publication Date Title
JP5444394B2 (ja) プロセス制御システムと共用するためのカスタム・ファンクション・ブロック
JP6735326B2 (ja) 動的に再使用可能なクラス
US6195591B1 (en) Process control system using a process control strategy distributed among multiple control elements
US8185871B2 (en) System for configuring a process control environment
US5862052A (en) Process control system using a control strategy implemented in a layered hierarchy of control modules
US6032208A (en) Process control system for versatile control of multiple process devices of various device types
US6266726B1 (en) Process control system using standard protocol control-of standard devices and non-standard devices
US7600234B2 (en) Method for launching applications
US6098116A (en) Process control system including a method and apparatus for automatically sensing the connection of devices to a network
US8793668B2 (en) Protocol independent programming environment
JP2019091410A (ja) 図形要素に対する構成要素
US9563181B2 (en) Method for operating an automation system
US20220255987A1 (en) Method for linking objects of a control program of a control unit of an automation system, and development environment
Kocı et al. On the Model Continuity in Control Systems Design Using DEVS, UML, and IEC 61499
JP2005353092A (ja) プロセス制御システム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130315

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130326

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130612

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130617

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130925

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131203

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131220

R150 Certificate of patent or registration of utility model

Ref document number: 5444394

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term