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

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

Info

Publication number
JP2004127242A
JP2004127242A JP2003145504A JP2003145504A JP2004127242A JP 2004127242 A JP2004127242 A JP 2004127242A JP 2003145504 A JP2003145504 A JP 2003145504A JP 2003145504 A JP2003145504 A JP 2003145504A JP 2004127242 A JP2004127242 A JP 2004127242A
Authority
JP
Japan
Prior art keywords
function block
process control
control system
file
information
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.)
Pending
Application number
JP2003145504A
Other languages
English (en)
Other versions
JP2004127242A5 (ja
Inventor
Mark J Nixon
ニクソン, マーク ジェイ.
Ken Beoughter
ビオーター, ケン
Brandon Hieb
ハイブ, ブランドン
Terrence L Blevins
ブレビンズ, テレンス エル.
Dennis L Stevenson
スティーブンソン, デニス エル.
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fisher Rosemount Systems Inc
Original Assignee
Fisher Rosemount Systems Inc
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 Fisher Rosemount Systems Inc filed Critical Fisher Rosemount Systems Inc
Publication of JP2004127242A publication Critical patent/JP2004127242A/ja
Publication of JP2004127242A5 publication Critical patent/JP2004127242A5/ja
Pending 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)

Abstract

【課題】ユーザがファンクション・ブロックを生成することを可能にする。
【解決手段】ユーザは、製造者によって提供されていないプロシジャ、ルーチンまたはアルゴリズムを包含するようにファンクション・ブロックのソース・コード・ファイルを変更することが可能であり、かつ変更されたソース・コード・ファイルを検証のために製造者へ送ることができる。ファンクション・ブロックのソース・コード・ファイルの有効性が確認されれば、デジタル・サインのような安全措置がユーザに供給され、ユーザはそのファンクション・ブロックをプロセス制御システム内に組み込むことができるようになる。
【選択図】 図1

Description

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

Claims (45)

  1. プロセス制御システムと共用するためのファンクション・ブロックを創成する方法であって、
    複数のソース・ファイルから初期化ルーチンを選択することと、
    上記複数のソース・ファイルから周期的実行ルーチンを選択することと、
    上記複数のソース・ファイルから書込みチェック・ルーチンを選択することと、
    上記初期化ルーチンと、上記周期的実行ルーチンと、上記書込みチェック・ルーチンとを上記ファンクション・ブロックに関連づけることと、
    上記初期化ルーチン、上記周期的実行ルーチン及び上記書込みチェック・ルーチンのうちの1つを修正して上記プロセス制御システムが供給されていないプロシジャを包含することを含む方法。
  2. 複数のヘッダ・ファイルから1つのヘッダ・ファイルを選択することと、上記ヘッダ・ファイルを上記ファンクション・ブロックに関連づけることをさらに含む請求項1記載の方法。
  3. 複数のライブラリ・ファイルから1つのライブラリ・ファイルを選択することと、上記ライブラリ・ファイルを上記ファンクション・ブロックに関連づけることをさらに含む請求項1記載の方法。
  4. 上記周期的実行ルーチンは、上記ファンクション・ブロックに関連づけられた属性テーブルに対するポインタを含む請求項1記載の方法。
  5. 上記ファンクション・ブロックによって使用されるデータをプライベート・データ及び公衆データのうちの一方であると定義することをさらに含む請求項1記載の方法。
  6. 上記初期化ルーチン、上記周期的実行ルーチン及び上記書込みチェック・ルーチンのうちの上記1つを修正して上記プロセス制御システムが供給されていない上記プロシジャを包含することが、グラフィック・ユーザ・インタフェースを使用することを含む請求項1記載の方法。
  7. 上記初期化ルーチン、上記周期的実行ルーチン及び上記書込みチェック・ルーチンのうちの上記1つを修正して上記プロセス制御システムが供給されていない上記プロシジャを包含することが、高水準プログラミング言語のソフトウェア命令を上記周期的実行ルーチンに付加することを含む請求項1記載の方法。
  8. プロセス制御システムにおいて使用するためのファンクション・ブロックを創成する方法であって、
    上記プロセス制御システムのプロバイダによって生成されたファイル・グループからの複数のファイルを組み合わせて、上記ファンクション・ブロックに関連づけられたファイルを形成することと、
    上記ファンクション・ブロックに関連づけられた上記ファイル内の上記複数のファイルのうちの1つを修正して、上記ファイル・グループ内に含まれていないプロシジャを包含することを含む方法。
  9. 上記プロセス制御システムの上記プロバイダによって生成された上記ファイル・グループからの上記複数のファイルを組み合わせて、上記ファンクション・ブロックに関連づけられた上記ファイルを形成することが、ソース・ファイルと上記プロセス制御システムによって実行されるように適合化されたヘッダ・ファイルとを組み合わせて、初期化アクティビティ、周期的実行アクティビティ及び書込みチェック・アクティビティのうちの1つのファンクション・ブロックを実行することを含む請求項8記載の方法。
  10. 上記プロセス制御システムの上記プロバイダによって生成された上記ファイル・グループからの上記複数のファイルを組み合わせて上記ファンクション・ブロックに関連づけられた上記ファイルを形成することが、ライブラリ・ファイルを上記ソース・ファイル及び上記ヘッダ・ファイルに組み合わせることをさらに含む請求項9記載の方法。
  11. 上記複数の関連ファイルの1つによって使用される少なくとも1つの属性を有する属性テーブルを上記ファンクション・ブロックに関連づけることをさらに含む請求項8記載の方法。
  12. 上記プロセス制御システムの上記プロバイダによって生成された上記ファイル・グループからの上記複数のファイルを組み合わせて上記ファンクション・ブロックに関連づけられた上記ファイルを形成することが、グラフィック・ユーザ・インタフェース及びテキスト・エディタの一方を使用して上記複数のファイルの各々を選択することを含む請求項8記載の方法。
  13. 上記プロセス制御システムの上記プロバイダによって生成された上記ファイル・グループからの上記複数のファイルを組み合わせて上記ファンクション・ブロックに関連づけられた上記ファイルを形成することが、ファンクション・ブロック初期化ルーチンを含む第1のファイルと、周期的実行ルーチンを含む第2のファイルと、書込みチェック・ルーチンを含む第3のファイルとを選択することを含む請求項8記載の方法。
  14. 上記第1、第2及び第3のファイルを選択することが、複数のソース・ファイルから上記第1、第2及び第3のファイルを選択することを含む請求項13記載の方法。
  15. 属性テーブルを介して上記ファンクション・ブロックの属性を上記制御システム内の情報に関連づけるためにポインタを使用することをさらに含む請求項8記載の方法。
  16. プロセス制御システムと共用するファンクション・ブロックを創成するためのシステムであって、
    コンピュータ読取り可能媒体と、
    上記コンピュータ読取り可能媒体上に記憶され、かつ複数のソース・ファイルから初期化ルーチンを選択するために上記プロセス制御システムによって実行されるように適合化された第1のソフトウェアと、
    上記コンピュータ読取り可能媒体上に記憶され、かつ複数のソース・ファイルから周期的実行ルーチンを選択するために上記プロセス制御システムによって実行されるように適合化された第2のソフトウェアと、
    上記コンピュータ読取り可能媒体上に記憶され、かつ複数のソース・ファイルから書込みチェック・ルーチンを選択するために上記プロセス制御システムによって実行されるように適合化された第3のソフトウェアと、
    上記コンピュータ読取り可能媒体上に記憶され、かつ上記初期化ルーチンと、上記周期的実行ルーチンと、上記書込みチェック・ルーチンとを上記ファンクション・ブロックに関連づけるために上記プロセス制御システムによって実行されるように適合化された第4のソフトウェアと、
    上記コンピュータ読取り可能媒体上に記憶され、かつ上記初期化ルーチン、上記周期的実行ルーチン及び上記書込みチェック・ルーチンのうちの1つを修正して上記プロセス制御システムが供給されていないプロシジャを包含するために上記プロセス制御システムによって実行されるように適合化された第5のソフトウェアとを備えるシステム。
  17. 上記コンピュータ読取り可能媒体上に記憶され、かつ複数のヘッダ・ファイルから1つのヘッダ・ファイルを選択して上記ヘッダ・ファイルを上記ファンクション・ブロックに関連づけるために上記プロセス制御システムによって実行されるように適合化された第6のソフトウェアをさらに備える請求項16記載のシステム。
  18. 上記コンピュータ読取り可能媒体上に記憶され、かつ複数のライブラリ・ファイルから1つのライブラリ・ファイルを選択して上記ライブラリ・ファイルを上記ファンクション・ブロックに関連づけるために上記プロセス制御システムによって実行されるように適合化された第7のソフトウェアをさらに備える請求項16記載のシステム。
  19. 上記第5のソフトウェアは、上記プロセス制御システムが供給されていない上記プロシジャを包含するために、グラフィック・ユーザ・インタフェースを使用して、上記初期化ルーチン、上記周期的実行ルーチン及び上記書込みチェック・ルーチンのうちの上記1つを修正するようにさらに適合化されている請求項16記載のシステム。
  20. 上記第5のソフトウェアは、高水準プログラミング言語のソフトウェア命令を上記周期的実行ルーチンに付加することにより、上記初期化ルーチン、上記周期的実行ルーチン及び上記書込みチェック・ルーチンのうちの上記1つを修正するようにさらに適合化されている請求項16記載のシステム。
  21. プロセス制御システム内にファンクション・ブロックを組み込む方法であって、
    上記プロセス制御システムのプロバイダによって生成されたファイル・グループから複数のファイルを組み合わせて上記ファンクション・ブロックに関連づけられたソース・コード・ファイルを形成することと、上記ソース・コード・ファイル内の上記複数のファイルのうちの1つを修正して上記ファイル・グループ内に含まれていないプロシジャを包含することによって上記ファンクション・ブロックを生成することと、
    上記ソース・コード・ファイルをコンパイルしかつリンクしてコンパイル/リンクされたファンクション・ブロック・ファイルを形成することと、
    上記コンパイル/リンクされたファンクション・ブロック・ファイルを上記プロセス制御システムの上記プロバイダへ転送することと、
    上記コンパイル/リンクされたファンクション・ブロック・ファイルの妥当性検査を行うことと、
    上記コンパイル/リンクされたファンクション・ブロック・ファイルに安全措置を添付して妥当性を検証されたファンクション・ブロック・ファイルを形成することと、
    上記妥当性を検証されたファンクション・ブロック・ファイルを上記プロセス制御システムのユーザへ転送することと、
    上記妥当性を検証されたファンクション・ブロック・ファイルを上記プロセス制御システム内へ組み込むことを含む方法。
  22. 上記コンパイル/リンクされたファンクション・ブロック・ファイルを上記プロセス制御システムの上記プロバイダへ転送することが、無線通信技術及び結線接続された通信技術の一方を使用して上記コンパイル/リンクされたファンクション・ブロック・ファイルを送信することを含む請求項21記載の方法。
  23. 上記コンパイル/リンクされたファンクション・ブロック・ファイルの妥当性を検査することが、上記ファンクション・ブロックがライセンス要件及び上記プロセス制御システムの機能上の特性の一方に適合しているかどうかを決定することを含む請求項21記載の方法。
  24. 上記コンパイル/リンクされたファンクション・ブロック・ファイルに上記安全措置を添付して上記妥当性を検証されたファンクション・ブロック・ファイルを形成することが、デジタル・サインを上記ファンクション・ブロックに関連づけることを含む請求項21記載の方法。
  25. プロセス制御システム内のファンクション・ブロックを使用する方法であって、
    上記プロセス制御システムのユーザからファンクション・ブロック情報を受信することと、
    上記ファンクション・ブロック情報が有効であるかどうかを決定することと、上記ファンクション・ブロック情報は有効であるという決定に応答して安全情報を生成することと、
    上記生成された安全情報を上記ファンクション・ブロックに関連づけることと、
    上記ファンクション・ブロック情報が有効であれば、上記ユーザに上記生成された安全情報を送信することを含む方法。
  26. 上記ファンクション・ブロック情報は有効であるという上記決定に応答して上記安全情報を生成することが、デジタル・サインを生成することを含む請求項25記載の方法。
  27. 上記生成された安全情報を上記ファンクション・ブロックに関連づけることが、上記生成された安全情報を上記ファンクション・ブロック情報に付加することを含む請求項25記載の方法。
  28. 上記カスタム・ファンクション・ブロック情報が有効であるかどうかを決定することが、上記カスタム・ファンクション・ブロックがライセンス要件及び上記プロセス制御システムの機能上の特性の一方に適合しているかどうかを決定することを含む請求項25記載の方法。
  29. カスタム・ファンクション・ブロックの使用方法であって、
    データ・ソースから上記カスタム・ファンクション・ブロックへ情報を伝達することと、
    上記カスタム・ファンクション・ブロック内の一ファンクションを基礎として上記データ・ソースからの上記情報を処理することと、
    少なくとも幾分かの上記処理された情報をプロセス制御システムのアプリケーションへ伝達することを含む方法。
  30. 上記データ・ソースから上記カスタム・ファンクション・ブロックへ上記情報を伝達することが、上記プロセス制御システムのアプリケーションの外部にあるアプリケーション、アルゴリズム、デバイス及びシステムのうちの1つから上記カスタム・ファンクション・ブロックへ上記情報を伝達することを含む請求項29記載の方法。
  31. 上記データ・ソースから上記カスタム・ファンクション・ブロックへ上記情報を伝達することが、プロセス制御情報を伝達することを含む請求項29記載の方法。
  32. 上記カスタム・ファンクション・ブロック内の上記ファンクションを基礎として上記データ・ソースからの上記情報を処理することが、上記情報を上記プロセス制御システムのアプリケーションに関連づけられたパラメータへマップすることを含む請求項29記載の方法。
  33. 上記カスタム・ファンクション・ブロック内の上記ファンクションを基礎として上記データ・ソースからの上記情報を処理することが、上記プロセス制御システムのアプリケーションによって使用されるパラメータを上記データ・ソースからの上記情報を基礎として計算することを含む請求項29記載の方法。
  34. 上記データ・ソースから上記カスタム・ファンクション・ブロックへ上記情報を伝達することが、上記プロセス制御システムのアプリケーション内のデバイス、ファンクション・ブロック及びパラメータの1つから上記カスタム・ファンクション・ブロックへ上記情報を伝達することを含む請求項29記載の方法。
  35. 上記カスタム・ファンクション・ブロック内の上記ファンクションを基礎として上記データ・ソースからの上記情報を処理することが、上記プロセス制御システムのアプリケーションによって実行されない計算を実行することを含む請求項34記載の方法。
  36. カスタム・ファンクション・ブロックの使用方法であって、
    プロセス制御システムのアプリケーションとデータ・ソースとの間に上記カスタム・ファンクション・ブロックを通信できるように配置することと、
    上記カスタム・ファンクション・ブロックによって実行されるファンクションを基礎として、上記プロセス制御システムのアプリケーションと上記データ・ソースとの間で情報を伝達することを含む方法。
  37. 上記プロセス制御システムのアプリケーションと上記データ・ソースとの間に上記カスタム・ファンクション・ブロックを通信できるように配置することは、上記プロセス制御システムのアプリケーションと上記プロセス制御システムのアプリケーションに関連づけられたファンクション・ブロック、デバイス及びパラメータのうちの1つとの間に上記カスタム・ファンクション・ブロックを通信できるように配置することを含む請求項36記載の方法。
  38. 上記プロセス制御システムのアプリケーションと上記データ・ソースとの間に上記カスタム・ファンクション・ブロックを通信できるように配置することが、上記プロセス制御システムのアプリケーションと上記プロセス制御システムのアプリケーションの外部にあるシステム、デバイス及びアプリケーションのうちの1つとの間に上記カスタム・ファンクション・ブロックを通信できるように配置することを含む請求項36記載の方法。
  39. 上記カスタム・ファンクション・ブロックによって実行される上記ファンクションを基礎として上記プロセス制御システムのアプリケーションと上記データ・ソースとの間で上記情報を伝達することが、少なくとも幾分かの上記情報を上記プロセス制御システムのアプリケーションによって使用されるパラメータへマップすることを含む請求項36記載の方法。
  40. 上記カスタム・ファンクション・ブロックによって実行される上記ファンクションを基礎として上記プロセス制御システムのアプリケーションと上記データ・ソースとの間で上記情報を伝達することが、少なくとも幾分かの上記情報を基礎として値を計算することと、上記値を上記プロセス制御システムのアプリケーションによって使用されるパラメータに関連づけることを含む請求項36記載の方法。
  41. ファンクション・ブロックの使用方法であって、
    プロセス制御アプリケーションと上記プロセス制御アプリケーションの外部にあるデータ・ソースとの間に上記ファンクション・ブロックを通信できるように配置することと、
    上記ファンクション・ブロックによって実行されるファンクションを基礎として、上記プロセス制御アプリケーションと上記プロセス制御アプリケーションの外部にある上記データ・ソースとの間で情報を伝達することを含む方法。
  42. 上記プロセス制御アプリケーションと上記プロセス制御アプリケーションの外部にある上記データ・ソースとの間に上記ファンクション・ブロックを通信できるように配置することが、上記プロセス制御アプリケーションと上記プロセス制御アプリケーションの外部にあるシステム、デバイス及びアプリケーションのうちの1つとの間に上記ファンクション・ブロックを通信できるように配置することを含む請求項41記載の方法。
  43. 上記ファンクション・ブロックによって実行される上記ファンクションを基礎として、上記プロセス制御アプリケーションと上記プロセス制御アプリケーションの外部にある上記データ・ソースとの間で上記情報を伝達することが、少なくとも幾分かの上記情報を上記プロセス制御アプリケーションによって使用されるパラメータへマップすることを含む請求項41記載の方法。
  44. 上記ファンクション・ブロックによって実行される上記ファンクションを基礎として、上記プロセス制御アプリケーションと上記プロセス制御アプリケーションの外部にある上記データ・ソースとの間で上記情報を伝達することが、少なくとも幾分かの上記情報を基礎として値を計算することと、上記値を上記プロセス制御アプリケーションによって使用されるパラメータに関連づけることを含む請求項41記載の方法。
  45. ファンクション・ブロックの使用方法であって、
    プロセス制御アプリケーションの外部にあるデータ・ソースを上記ファンクション・ブロックを介して上記プロセス制御アプリケーションに機能的に統合することと、
    上記ファンクション・ブロックによって実行されるデータ・マップ・ファンクション、データ変換ファンクション及びデータ翻訳ファンクションのうちの少なくとも1つを基礎として、上記プロセス制御アプリケーションと上記プロセス制御アプリケーションの外部にある上記データ・ソースとの間で情報を伝達することを含む方法。
JP2003145504A 2002-04-15 2003-04-15 プロセス制御システムと共用するためのカスタム・ファンクション・ブロック Pending JP2004127242A (ja)

Applications Claiming Priority (1)

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

Related Child 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
JP2004127242A true JP2004127242A (ja) 2004-04-22
JP2004127242A5 JP2004127242A5 (ja) 2008-10-30

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 After (2)

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

Country Status (6)

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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006030643A1 (ja) * 2004-09-02 2006-03-23 Yokogawa Electric Corporation 統合システム、システム統合方法およびシステム統合プログラム
JP2007536647A (ja) * 2004-05-04 2007-12-13 フィッシャー−ローズマウント・システムズ・インコーポレーテッド プロセスプラントのユーザインタフェースにおける、マークアップ言語ベースの動的プロセスグラフィックス

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7565443B2 (en) * 2002-12-13 2009-07-21 Sap Ag Common persistence layer
US8127224B2 (en) * 2003-06-11 2012-02-28 Wtvii, Inc. System for creating and editing mark up language forms and documents
EP1577724B1 (en) * 2004-03-15 2009-10-07 Rockwell Automation Technologies, Inc. Agent program environment
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 横河電機株式会社 プロセス制御システム
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
US9104195B2 (en) 2006-12-20 2015-08-11 Lincoln Global, Inc. Welding job 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
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
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
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 晨星半导体股份有限公司 原始码质量管理***与方法
US9989950B2 (en) * 2015-07-17 2018-06-05 General Electric Company Systems and methods for generating control logic
US10216523B2 (en) 2015-07-17 2019-02-26 General Electric Company Systems and methods for implementing 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
US20180285494A1 (en) * 2017-02-22 2018-10-04 Woodside Energy Technologies Pty Ltd 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 三菱電機株式会社 プログラマブルコントローラおよびそのプログラム容量変更方法
UA41387C2 (uk) * 1994-01-13 2001-09-17 Сертко, Інк Спосіб установлення вірогідного перевірюваного зв'язку, спосіб захищеного зв'язку, спосіб оновлення мікропрограмного забезпечення, спосіб здійснення шифрованого зв'язку та спосіб надання перевіреному на справжність пристрою права на проведення електронної транзакції
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
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
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
US6868538B1 (en) * 1996-04-12 2005-03-15 Fisher-Rosemount Systems, Inc. Object-oriented programmable controller
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
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
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
US6445962B1 (en) * 1999-03-15 2002-09-03 Fisher Rosemount Systems, Inc. Auto-tuning in a distributed process control environment
US6510351B1 (en) * 1999-03-15 2003-01-21 Fisher-Rosemount Systems, Inc. Modifier function blocks in a process control system
JP3829905B2 (ja) * 1999-08-06 2006-10-04 オムロン株式会社 プログラマブル・コントローラ
US6698015B1 (en) * 2000-06-13 2004-02-24 Cisco Technology, Inc. Apparatus and method for improving performance of critical code execution
US6708330B1 (en) * 2000-06-13 2004-03-16 Cisco Technology, Inc. Performance improvement 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

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007536647A (ja) * 2004-05-04 2007-12-13 フィッシャー−ローズマウント・システムズ・インコーポレーテッド プロセスプラントのユーザインタフェースにおける、マークアップ言語ベースの動的プロセスグラフィックス
US9880540B2 (en) 2004-05-04 2018-01-30 Fisher-Rosemount Systems, Inc. Markup language-based, dynamic process graphics in a process plant user interface
WO2006030643A1 (ja) * 2004-09-02 2006-03-23 Yokogawa Electric Corporation 統合システム、システム統合方法およびシステム統合プログラム

Also Published As

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

Similar Documents

Publication Publication Date Title
JP5444394B2 (ja) プロセス制御システムと共用するためのカスタム・ファンクション・ブロック
JP6735326B2 (ja) 動的に再使用可能なクラス
US8185871B2 (en) System for configuring a process control environment
US5909368A (en) Process control system using a process control strategy distributed among multiple control elements
US6266726B1 (en) Process control system using standard protocol control-of standard devices and non-standard devices
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
US5801942A (en) Process control system user interface including selection of multiple control languages
US6098116A (en) Process control system including a method and apparatus for automatically sensing the connection of devices to a network
US5995916A (en) Process control system for monitoring and displaying diagnostic information of multiple distributed devices
US11216159B2 (en) Configuration element for graphic elements
JP2019091410A (ja) 図形要素に対する構成要素
US9563181B2 (en) Method for operating an automation system
Kocı et al. On the Model Continuity in Control Systems Design Using DEVS, UML, and IEC 61499

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080311

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080609

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080612

A524 Written submission of copy of amendment under section 19 (pct)

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20080911

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081007

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090105

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090108

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090406

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090512