JP6978443B2 - レガシー・レベル1コントローラ仮想化システムおよび方法 - Google Patents

レガシー・レベル1コントローラ仮想化システムおよび方法 Download PDF

Info

Publication number
JP6978443B2
JP6978443B2 JP2018565805A JP2018565805A JP6978443B2 JP 6978443 B2 JP6978443 B2 JP 6978443B2 JP 2018565805 A JP2018565805 A JP 2018565805A JP 2018565805 A JP2018565805 A JP 2018565805A JP 6978443 B2 JP6978443 B2 JP 6978443B2
Authority
JP
Japan
Prior art keywords
controller
legacy
operating system
level
configuration 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.)
Active
Application number
JP2018565805A
Other languages
English (en)
Other versions
JP2019518289A (ja
Inventor
クリシュナマーシー,アナンサパドマナバ
ムニハヌマイア,シャイラジャ
ラクリン,エリオット
マクラフリン,ポール・エフ
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.)
Honeywell International Inc
Original Assignee
Honeywell International 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 Honeywell International Inc filed Critical Honeywell International Inc
Publication of JP2019518289A publication Critical patent/JP2019518289A/ja
Application granted granted Critical
Publication of JP6978443B2 publication Critical patent/JP6978443B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4155Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/52Binary to binary
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/04Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators
    • G05B13/048Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators using a predictor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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/30Nc systems
    • G05B2219/33Director till display
    • G05B2219/33338DNC distributed, decentralised nc, concurrent, multiprocessing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Manufacturing & Machinery (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Debugging And Monitoring (AREA)
  • Testing And Monitoring For Control Systems (AREA)

Description

[0001] 本開示は、一般的には、分散型制御システムに関する。更に特定すると、本開示は、分散型制御システムにおけるレガシー・レベル1コントローラの仮想化システムおよび方法に関する。
[0002] 工業プロセス制御および自動化システムは、化学工業におけるような、大規模で複雑な工業プロセスを自動化するために使用されることが多い。これらの種類のシステムは、決まって、センサ、アクチュエータ、およびコントローラを含む。コントローラは、通例、センサから測定値を受信し、アクチュエータのために制御信号を生成する。
[0003] 分散型制御システム(DCS)は、工業プロセス制御および自動化システムと併せて、またはその一部として実装されることが多い。DSCは、多くの場合、工業プロセスにおいて1つ以上のモデル予測コントローラ(MPC、多変数予測コントローラ、または単に、多変数コントローラとしても知られている)を使用して、経済的に利益がある範囲で動作するように複雑なシステムを管理する。このようなMPCおよびDCSにおけるその他のコントローラは、これらのコントローラがランタイムDCS環境に実装される前に、設定する(configure)ことが必要となる場合もある。
[0004] 本開示は、分散型制御システムにおけるレガシー・レベル1コントローラの仮想化システムおよび方法を提供する。
[0005] 第1実施形態において、方法は、分散型制御システムにおけるレガシー・コントローラに関連する少なくとも1つのアプリケーション・ソース・コード・ファイルを、コントローラ・シミュレーション・コンピューティング・デバイスによって実行可能な命令に変換するステップを含み、レガシー・コントローラは、レガシー・オペレーティング・システムと関連付けられ、コントローラ・シミュレーション・コンピューティング・デバイスは、レガシー・オペレーティング・システムとは異なる第2オペレーティング・システムと関連付けられる。また、この方法は、これらの命令、およびコントローラ・シミュレーション・コンピューティング・デバイスにおけるレガシー・オペレーティング・システムのエミュレーションを使用して、レガシー・コントローラの動作をシミュレートするステップを含む。更に、この方法は、レガシー・コントローラのシミュレーション動作中に、レガシー・コントローラに対してコンフィギュレーション・データを決定するステップを含む。加えて、この方法は、コンフィギュレーション・データをコンフィギュレーション・データ・ファイルに格納するステップを含む。
[0006] 第2実施形態において、装置は、少なくとも1つのメモリと少なくとも1つのプロセッサとを含む。少なくとも1つのメモリは、データを格納するように構成される。少なくとも1つの処理デバイスは、分散型制御システムにおけるレガシー・コントローラに関連する少なくとも1つのアプリケーション・ソース・コード・ファイルを、この装置によって実行可能な命令に変換するように構成され、レガシー・コントローラはレガシー・オペレーティング・システムと関連付けられ、この装置は、レガシー・オペレーティング・システムとは異なる第2オペレーティング・システムと関連付けられる。また、少なくとも1つの処理デバイスは、前述の命令およびレガシー・オペレーティング・システムのエミュレーションを使用して、レガシー・コントローラの動作をシミュレートするように構成される。更に、少なくとも1つの処理デバイスは、レガシー・コントローラのシミュレーション動作中に、レガシー・コントローラに対してコンフィギュレーション・データを決定するように構成される。加えて、少なくとも1つの処理デバイスは、コンフィギュレーション・データを、少なくとも1つのメモリに格納されたコンフィギュレーション・データ・ファイルに保存するように構成される。
[0007] 第3実施形態において、非一時的コンピュータ読み取り可能媒体は、命令を収容し、少なくとも1つの処理デバイスによってこの命令が実行されると、少なくとも1つの処理デバイスに、分散型制御システムにおけるレガシー・コントローラに関連する少なくとも1つのアプリケーション・ソース・コード・ファイルを、少なくとも1つの処理デバイスによって実行可能なコントローラ命令に変換させる。レガシー・コントローラは、レガシー・オペレーティング・システムと関連付けられ、少なくとも1つの処理デバイスは、レガシー・オペレーティング・システムとは異なる第2オペレーティング・システムと関連付けられる。また、この媒体は、命令を収容し、少なくとも1つの処理デバイスによってこの命令が実行されると、少なくとも1つの処理デバイスに、コントローラ命令、および少なくとも1つの処理デバイスにおけるレガシー・オペレーティング・システムのエミュレーションを使用して、レガシー・コントローラの動作をシミュレートさせる。更に、この媒体は、命令を収容し、少なくとも1つの処理デバイスによってこの命令が実行されると、少なくとも1つの処理デバイスに、レガシー・コントローラのシミュレーション動作中に、レガシー・コントローラに対してコンフィギュレーション・データを決定させる。加えて、この媒体は、命令を収容し、少なくとも1つの処理デバイスによってこの命令が実行されると、少なくとも1つの処理デバイスに、コンフィギュレーション・データを、コンフィギュレーション・データ・ファイルに保存させる。
[0008] 以下の図、説明、および特許請求の範囲から、当業者には他の技術的特徴も容易に明白になるであろう。
[0009] 本開示を一層深く理解するために、これより以下の説明を添付図面と合わせて参照する。
図1は、本開示による工業プロセス制御および自動化システムの一例を示す。 図2は、本開示にしたがって、分散型制御システムにおいてレガシー・レベル1コントローラを仮想化するためのフレームワークを示す。 図3は、本開示にしたがって、分散型制御システムにおいてレガシー・レベル1コントローラを仮想化するためのシステム例を示す。 図4は、本開示によるレガシー・レベル1コントローラ仮想化システムの異なるコンポーネントを示す。 図5は、本開示によるレガシー・レベル1コントローラ仮想化システムの異なるコンポーネントを実行する操作員端末からの画面例を示す。 図6は、本開示によるレガシー・レベル1コントローラ仮想化システムの異なるコンポーネントを実行する操作員端末からの画面例を示す。 図7は、本開示にしたがって、分散型制御システムにおいてレガシー・レベル1コントローラを仮想化する方法例を示す。 図8は、本開示にしたがって、分散型制御システムにおいてレガシー・レベル1コントローラの仮想化を実行するデバイス例を示す。
[0017] 以下で論ずる図1から図8、ならびに本特許文書において本発明の原理を説明するために使用する種々の実施形態は、例示に過ぎず、本発明の範囲を限定するように解釈しては決してならない。尚、本発明の原理は、適切に構成されたデバイスまたはシステムであれば、いずれの形式でも実施できることは、当業者には理解されよう。
[0018] 図1は、本開示による工業プロセス制御および自動化システム100の一例を示す。図1に示すように、システム100は、少なくとも1つの生産物またはその他の材料の生産あるいは処理を容易にする種々のコンポーネントを含む。例えば、ここでは、システム100は、1つまたは複数のプラント101a〜101nにおいてコンポーネントに対する制御を容易にするために使用される。各プラント101a〜101nは、少なくとも1つの生産物またはその他の材料を生産するための1つ以上の製造設備というような、1つ以上の処理設備(または1つ以上のその部分)を表す。一般に、各プラント101a〜101nが1つ以上のプロセスを実装するのでもよく、個々にまたは纏めてプロセス・システムと呼ぶことができる。プロセス・システムは、全体的に、1つ以上の生産物またはその他の材料を何らかの方法で処理するように構成された任意のシステムまたはその部分を表す。
[0019] 図1において、システム100は、プロセス制御のPurdueモデルを使用して実装される。Purdueモデルでは、「レベル0」は1つ以上のセンサ102aおよび1つ以上のアクチュエータ102bを含むことができる。センサ102aおよびアクチュエータ102bは、プロセス・システムにおいて、多種多様の機能の内任意のものを実行することができるコンポーネントを表す。例えば、センサ102aは、温度、圧力、または流量のような、プロセス・システムにおいて多種多様の特性を測定することができる。また、アクチュエータ102bは、プロセス・システムにおける多種多様の特性を変更することもできる。センサ102aおよびアクチュエータ102bは、任意の適したプロセス・システムにおいて任意の他のまたは追加のコンポーネントを表すこともできる。センサ102aの各々は、プロセス・システムにおける1つ以上の特性を測定するのに適した任意の構造を含む。アクチュエータ102bの各々は、プロセス・システムにおいて1つ以上の状態に動作する(operating)または作用する(affecting)のに適した任意の構造を含む。
[0020] 少なくとも1つのネットワーク104が、センサ102aおよびアクチュエータ102bに結合されている。ネットワーク104は、センサ102aおよびアクチュエータ102bとの相互作用を容易にする。例えば、ネットワーク104はセンサ102aからの測定データを移送し、制御信号をアクチュエータ102bに供給することができる。ネットワーク104は、任意の適したネットワークまたはネットワークの複合体(combination)を表すことができる。特定例として、ネットワーク104は、イーサネット・ネットワーク、電気信号ネットワーク(HARTまたはFOUNDATION FIELDBUSネットワーク等)、空気制御信号ネットワーク、あるいは任意のそのほかのまたは追加の形式のネットワーク(1つまたは複数)を表すことができる。
[0021] Purdueモデルにおいて、「レベル1」は、ネットワーク104に結合された1つ以上のコントローラ106を含むことができる。とりわけ、各コントローラ106は、1つ以上のセンサ102aからの測定値を使用して、1つ以上のアクチュエータ102bの動作を制御することができる。例えば、コントローラ106は、1つ以上のセンサ102aから測定データを受信し、この測定データを使用して1つ以上のアクチュエータ102bに制御信号を生成することができる。また、1つのコントローラ106が主コントローラとして動作し、一方他のコントローラ106がバックアップ・コントローラ(主コントローラと同期し、主コントローラの障害時に、主コントローラの機能を引き継ぐことができる)として動作するときのように、複数のコントローラ106が冗長構成で動作することもできる。各コントローラ106は、1つ以上のセンサ102aと相互作用し、1つ以上のアクチュエータ102bを制御するのに適した任意の構造を含む。各コントローラ106は、例えば、ロバスト多変数予測制御技術(RMPCT:Robust Multi variable Predictive Control Technology)コントローラ、あるいはモデル予測制御(MPC)または他の高度予測制御(APC)を実現する他の種類のコントローラのような、多変数コントローラを表すことができる。特定例として、各コントローラ106は、リアル・タイム・オペレーティング・システムを実行するコンピューティング・デバイスを表すことができる。
[0022] ネットワーク108はコントローラ106に結合されている。ネットワーク108は、データをコントローラ106に移送する、そしてデータをコントローラ106から移送することによってというようにして、コントローラ106との相互作用を容易にする。ネットワーク108は、任意の適したネットワークまたはネットワークの複合体を表すことができる。特定例として、ネットワーク108は、HONEYWELL INTERNATIONAL INC(ハネウェル・インターナショナル社)からのフォールト・トレラント・イーサネット(FTE)ネットワークのような、1対のイーサネット・ネットワークまたは冗長対のイーサネット・ネットワークを表すことができる。
[0023] 少なくとも1つのスイッチ/ファイアウォール110が、ネットワーク108を2つのネットワーク112に結合する。スイッチ/ファイアウォール110は、1つのネットワークから他方にトラフィックを移送することができる。また、スイッチ/ファイアウォール110は、1つのネットワーク上において、トラフィックが他のネットワークに到達するのを阻止することもできる。スイッチ/ファイアウォール110は、 HONEYWELL CONTROL FIREWALL(CF9)デバイスのような、ネットワーク間において通信を行うのに適した任意の構造を含む。ネットワーク112は、1対のイーサネット・ネットワークまたはFTEネットワークのような、任意の適したネットワークを表すことができる。
[0024] Purdueモデルにおいて、「レベル2」は、ネットワーク112に結合された1つ以上の機械レベル・コントローラ114を含むことができる。機械レベル・コントローラ114は、特定の工業用機器(ボイラまたはその他の機械等)の1つ1つと関連付けることができるコントローラ106、センサ102a、およびアクチュエータ102bの動作および制御をサポートするために種々の監理機能(supervisory functions)を実行する。例えば、機械レベル・コントローラ114は、センサ102aからの測定データ、またはアクチュエータ102bのための制御信号のような、コントローラ106によって収集または生成された情報を記録する(log)ことができる。また、機械レベル・コントローラ114は、コントローラ106の動作を制御するアプリケーションを実行することもでき、これによってアクチュエータ102bの動作を制御する。加えて、機械レベル・コントローラ114はコントローラ106への安全なアクセスを付与することができる。機械レベル・コントローラ114の各々は、機械またはその他の個々の機器へのアクセスを付与する、これらの制御を行う、あるいはこれらに関係する動作の制御を行うのに適した任意の構造を含む。例えば、機械レベル・コントローラ114の各々は、MICROSOFT WINDOWSオペレーティング・システムを実行するサーバ・コンピューティング・デバイスを表すことができる。加えてまたは代わりに、各コントローラ114は、RMPCTコントローラ、あるいはMPCまたは他のAPCを実装する他の種類のコントローラのような、分散型制御システム(DCS)に埋め込まれた多変数コントローラを表すこともできる。図示しないが、プロセス・システムにおいて異なる機器を制御するために、異なる機械レベル・コントローラ114を使用することができる(この場合、各機器は1つ以上のコントローラ106、センサ102a、およびアクチュエータ102bと関連付けられる)。
[0025] 1つ以上の操作員端末116がネットワーク112に結合されている。操作員端末116は、機械レベル・コントローラ114へのユーザ・アクセスを付与するコンピューティング・デバイスまたは通信デバイスを表し、次いで、機械レベル・コントローラ114は、コントローラ106(更に、恐らくは、センサ102aおよびアクチュエータ102b)へのユーザ・アクセスを付与することができる。特定例として、操作員端末116は、コントローラ106および/または機械レベル・コントローラ114によって収集された情報を使用して、センサ102aおよびアクチュエータ102bの動作履歴をユーザに検査させる(review)ことができる。また、操作員端末116は、センサ102a、アクチュエータ102b、コントローラ106、または機械レベル・コントローラ114の動作をユーザに調節させることもできる。加えて、操作員端末116は、コントローラ106または機械レベル・コントローラ114によって生成される警告(warning)、警報(alert)、あるいはその他のメッセージまたは表示を受信し表示することができる。操作員端末116の各々は、システム100における1つ以上のコンポーネントのユーザ・アクセスおよび制御をサポートするのに適した任意の構造を含む。操作員端末116の各々は、例えば、MICROSOFT WINDOWSオペレーティング・システムを実行するコンピューティング・デバイスを表すことができる。
[0026] 少なくとも1つのルータ/ファイアウォール118が、ネットワーク112を2つのネットワーク120に結合する。ルータ/ファイアウォール118は、セキュア・ルータまたは複合ルータ/ファイアウォールのような、ネットワーク間で通信を行うのに適した任意の構造を含む。ネットワーク120は、1対のイーサネット・ネットワークまたはFTEネットワークのような、任意の適したネットワークを表すことができる。
[0027] Purdueモデルでは、「レベル3」は、ネットワーク120に結合された1つ以上のユニット−レベル・コントローラ(unit-level controller)122を含むことができる。各ユニット−レベル・コントローラ122は、通例、プロセス・システムにおける1つのユニットと関連付けられ、プロセスの少なくとも一部を実現するために協働する異なる機械の集合体を表す。ユニット−レベル・コントローラ122は、それよりも低いレベルにあるコンポーネントの動作および制御をサポートするために、種々の機能を実行する。例えば、ユニット−レベル・コントローラ122は、それよりも低いレベルにあるコンポーネントによって収集または生成された情報を記録し、それよりも低いレベルにあるコンポーネントを制御するアプリケーションを実行し、それよりも低いレベルにあるコンポーネントに安全なアクセスを付与することができる。ユニット−レベル・コントローラ122の各々は、プロセス・ユニットにおける1つ以上の機械または他の機器にアクセスを付与する、これらの制御を行う、あるいはこれらに関係する動作を行うのに適した任意の構造を含む。ユニット−レベル・コントローラ122の各々は、例えば、MICROSOFT WINDOWSオペレーティング・システムを実行するサーバ・コンピューティング・デバイスを表すことができる。加えてまたは代わりに、各コントローラ122は、HONEYWELL C300コントローラのような、多変数コントローラを表すことができる。図示しないが、プロセス・システムにおける異なるユニットを制御するために、異なるユニット−レベル・コントローラ122を使用することができる(各ユニットは、1つ以上の機械−レベル・コントローラ114、コントローラ106、センサ102a、およびアクチュエータ102bと関連付けられる)。
[0028] ユニット−レベル・コントローラ122へのアクセスは、1つ以上の操作員端末124によって付与することができる。操作員端末124の各々は、システム100における1つ以上のコンポーネントのユーザ・アクセスおよび制御をサポートするのに適した任意の構造を含む。操作員端末124の各々は、例えば、MICROSOFT WINDOWSオペレーティング・システムを実行するコンピューティング・デバイスを表すことができる。
[0029] 少なくとも1つのルータ/ファイアウォール126が、ネットワーク120を2つのネットワーク128に結合する。ルータ/ファイアウォール126は、セキュア・ルータまたは複合ルータ/ファイアウォールのような、ネットワーク間において通信を行うのに適した任意の構造を含む。ネットワーク128は、1対のイーサネット・ネットワークまたはFTEネットワークのような、任意の適したネットワークを表すことができる。
[0030] Purdueモデルでは、「レベル4」は、ネットワーク128に結合された1つ以上のプラント−レベル・コントローラ130を含むことができる。各プラント−レベル・コントローラ130は、通例、プラント101a〜101nの1つと関連付けられ、各プラントは、同じプロセス、同様のプロセス、または異なるプロセスを実現する1つ以上のプロセス・ユニットを含むことができる。プラント−レベル・コントローラ130は、それよりも低いレベルにあるコンポーネントの動作および制御をサポートするために、種々の機能を実行する。特定例として、プラント−レベル・コントローラ130は、1つ以上の製造実行システム(MES:manufacturing execution system)アプリケーション、スケジューリング・アプリケーション、あるいはその他のまたは追加のプラント制御アプリケーションもしくはプロセス制御アプリケーションを実行することができる。プラント−レベル・コントローラ130の各々は、プロセス・プラントにおける1つ以上のプロセス・ユニットにアクセスを付与する、これらの制御を行う、またはこれらに関係する動作を行うのに適した任意の構造を含む。プラント−レベル・コントローラ130の各々は、例えば、MICROSOFT WINDOWSオペレーティング・システムを実行するサーバ・コンピューティング・デバイスを表すことができる。
[0031] プラント−レベル・コントローラ130へのアクセスは、1つ以上の操作員端末132によって付与することができる。操作員端末132の各々は、システム100における1つ以上のコンポーネントのユーザ・アクセスおよび制御をサポートするのに適した任意の構造を含む。操作員端末132の各々は、例えば、MICROSOFT WINDOWSオペレーティング・システムを実行するコンピューティング・デバイスを表すことができる。
[0032] 少なくとも1つのルータ/ファイアウォール134が、ネットワーク128を1つ以上のネットワーク136に結合する。ルータ/ファイアウォール134は、安全なルータまたは複合ルータ/ファイアウォールのような、ネットワーク間において通信を行うのに適した任意の構造を含む。ネットワーク136は、企業規模のイーサネットまたはその他のネットワーク、あるいはもっと大きなネットワーク(インターネット等)の全部または一部のような、任意の適したネットワークを表すことができる。
[0033] Purdueモデルでは、「レベル5」は、ネットワーク136に結合された1つ以上の企業−レベル・コントローラ138を含むことができる。各企業−レベル・コントローラ138は、通例、複数のプラント101a〜101nのための計画業務を実行し、プラント101a〜101nの種々の面(aspect)を制御することができる。また、企業−レベル・コントローラ138は、プラント101a〜101nにおけるコンポーネントの動作および制御をサポートするために、種々の機能を実行することができる。特定例として、企業−レベル・コントローラ138は、1つ以上の命令処理アプリケーション、企業リソース計画(ERP:enterprise resource planning)アプリケーション、高度計画およびスケジューリング(APS:advanced planning and scheduling)アプリケーション、あるいは任意のその他のまたは追加の企業用制御アプリケーションを実行することができる。企業−レベル・コントローラ138の各々は、1つ以上のプラントにアクセスを付与する、1つ以上のプラントの制御を行う、または1つ以上のプラントの制御に関係する動作を行うに適した任意の構造を含む。企業−レベル・コントローラ138の各々は、例えば、MICROSOFT WINDOWSオペレーティング・システムを実行するサーバ・コンピューティング・デバイスを表すことができる。この文書では、「企業」(enterprise)という用語は、管理すべき1つ以上のプラントまたはその他の処理設備を有する組織を指す。尚、1つのプラント101aを管理しようとする場合、企業−レベル・コントローラ138の機能をプラント−レベル・コントローラ130に組み込むことができることを注記しておく。
[0034] 企業−レベル・コントローラ138へのアクセスは、1つ以上の操作員端末140によって付与することができる。操作員端末140の各々は、システム100における1つ以上のコンポーネントのユーザ・アクセスおよび制御をサポートするのに適した任意の構造を含む。操作員端末140の各々は、例えば、MICROSOFT WINDOWSオペレーティング・システムを実行するコンピューティング・デバイスを表すことができる。
[0035] Purdueモデルの種々のレベルは、1つ以上のデータベース等の、他のコンポーネントも含むことができる。各レベルと関連付けられたデータベース(1つまたは複数)は、システム100のそのレベルまたは1つ以上の他のレベルに関連する任意の適した情報を格納することができる。例えば、ヒストリアン(historian)141をネットワーク136に結合することができる。ヒストリアン141は、システム100についての種々の情報を格納するコンポーネントを表すことができる。ヒストリアン141は、例えば、生産スケジューリングおよび最適化の間に使用された情報を格納することができる。ヒストリアン141は、情報を格納し、情報の検索(retrieval)を容易にするのに適した任意の構造を表す。ネットワーク136に結合された1つの集中コンポーネントとして示されているが、ヒストリアン141は、システム100におけるいずれの場所にも配置することができ、または複数のヒストリアンをシステム100における異なる場所に分散させることもできる。
[0036] 特定実施形態では、図1における種々のコントローラおよび操作員端末は、コンピューティング・デバイスを表すこともできる。例えば、コントローラおよび操作員端末の各々は、1つ以上の処理デバイスと、これらの処理デバイス(1つまたは複数)によって使用、生成、または収集された命令およびデータを格納する1つ以上のメモリとを含むことができる。また、コントローラおよび操作員端末の各々は、1つ以上のイーサネット・インターフェースまたはワイヤレス・トランシーバのような、少なくとも1つのネットワーク・インターフェースを含むこともできる。
[0037] 本開示によれば、システム100にインストールする前に、システム100におけるレベル1コントローラ106の内1つ以上のプロパティをシミュレートし、仮想的に設定する(configure)することができる。例えば、センサ102aからのデータを正しく解釈するため、またはアクチュエータ102bを正しく制御するために、コントローラ106を前もって設定する必要があるというのでもよい。この機能に関する更なる詳細を以下に示す。
[0038] 図1は、工業プロセス制御および自動化システム100の一例を示すが、種々の変更が図1に対してなされてもよい。例えば、制御システムは任意の数のセンサ、アクチュエータ、コントローラ、サーバ、操作員端末、ネットワーク、および安全性マネージャを含むことができる。また、図1におけるシステム100の構成(makeup)および配置(arrangement)も例示のために過ぎない。個々の必要性に応じて、任意の他の適した構成で、コンポーネントを追加する、省略する、組み合わせる、または配置(place)することができる。更に、特定の機能について、システム100の特定のコンポーネントによって実行されると説明した。これは、例示のために過ぎない。一般に、プロセス制御システムは、多様に設定可能であり、個々の必要性に応じて任意の適した方法で構成することができる。加えて、図1は、予め設定されたレベル1コントローラを使用することができる環境の一例を示すが、このような予め設定されたレベル1コントローラは、任意の他の適したデバイスまたはシステムにおいても使用することができる。
[0039] ときの経過につれて、システム100の構成は変更される可能性が高い。例えば、特定のコンポーネントが時代遅れまたは旧式になると、これらの旧式コンポーネントは、新しいコンポーネントと交換されるのが当然である。このような新しいコンポーネントは、システム100内で問題なく(successfully)動作するためには、前もって設定しておく必要がある場合もある。注文したが未だ届いていないDCS機器のようなコンポーネント上で設定作業(configuration activities)を実行できると都合がよい場合が多い。これは特に、上ではレベル2機械レベル・コントローラ114に接続し、下ではレベル0センサ102aおよびアクチュエータ102bに接続する、コントローラ106のような、レベル1コントローラに該当する。ある種の機器にとっては、ハードウェア機能のソフトウェア・シミュレーションはさほど難しくない。しかしながら、特にレベル1コントローラについては、コントローラの制御戦略をシミュレートし、更に対応するセンサ、アクチュエータ、およびプラント自体の挙動をシミュレートすることが要求されるため、これは容易な作業ではないのが通例である。
[0040] コントローラの設定のためにレベル1コントローラのシミュレーションを作成する(create)1つの方法は、実際のレベル1コントローラからソフトウェアを移植し、次いでセンサ、アクチュエータ、およびプラントの挙動をシミュレートするシミュレータ・ツールを追加することである。しかしながら、これは、通例、多数の理由のために遂行するのは非常に困難である。例えば、既存のコントローラ・ソフトウェア・コードがアセンブリ言語で書かれているかもしれず、既存のソフトウェア・コードが特定のオペレーティング・システムの機能に依存するかもしれず、または移植されたコードが特定のタスク・スケジューリング機能(capabilities)に依存するかもしれない。加えて、レガシー・コントローラ・プロパティには、30年よりも前の設計に基づくものもあり、MICROSOFT WINDOWSのような現行のオペレーティング・システムよりも前に作られた可能性がある。したがって、これらのコントローラ・プロパティをもっと新しい環境においてシミュレートすることは困難である可能性がある。
[0041] これらおよびその他の問題に取り組むために、本開示の実施形態は、ランタイム環境に合わせてレガシー・レベル1コントローラを設定するために、レガシー・レベル1コントローラおよびその環境をシミュレートまたは仮想化するシステムならびに方法を提供する。開示するシミュレーションは、多数の有利で新規な技法を使用する。これらの技法には、とりわけ、一意のソース・コード変換、オペレーティング・システムのエミュレーション、およびカスタム・スケジューリング・アルゴリズムが含まれる。開示するシミュレーション技法を使用することによって、レガシー・レベル1コントローラを設定するときに、多大な時間およびコストの節約が得られる。
[0042] 設計が古い(older-design)レガシー・レベル1コントローラには、レベル1通信用に1つのプロセッサ、入力/出力(IO)通信のために1つのプロセッサ、そして制御アルゴリズム実行のために1つのプロセッサというように、複数のプロセッサを含むものがある。1つ以上のハードウェア/ソフトウェア・インターフェースが、コントローラ内におけるプロセッサ間通信を可能にする。これらのプロセッサの各々は、複数の動作およびタスクを管理および実行する埋め込み型オペレーティング・システムをホストするのでもよい。これに取り組むために、開示する実施形態は、効果的なソフトウェア移植方法(software port methodology)を特徴とし、レガシー・コントローラのランタイム・コンポーネントの全てを、進んだプラットフォーム上で実行する1つのソフトウェア・プロセスの下でシミュレートすることを可能にする。異なるプロセッサによってホストされた別々のオペレーティング・システム上で実行するタスクは、進んだプラットフォームにおける異なる仮想プロパティにおいて管理することができる。
[0043] 図2は、本開示にしたがって、分散型制御システムにおいてレガシー・レベル1コントローラを仮想化(またはシミュレート)するフレームワーク200を示す。フレームワーク200は、異なるスレッドとして実行されるが、協働してシミュレーション環境を構成する異なるコンポーネントを表す。フレームワーク200は、変換されたアプリケーション・コード201、レガシー・オペレーティング・システムAPI202、アプリケーション・ランタイム環境203、カスタム・スケジューラ204、レガシー・オペレーティング・システムをシミュレートするための追加コンポーネント205を含む。
[0044] 変換されたアプリケーション・コード201は、レガシー・レベル1コントローラに関連するソース・アプリケーション・コードであり、近年のオペレーティング・システムにおいて実行可能となるように、レガシー・コントローラのオペレーティング・システムから変換されたものである。例えば、HONEYWELL社による「PM」、「APM」、「HPM」、または「EHPM」コントローラのような、一部のレガシー・レベル1コントローラは、MOTOROLA社による68040プロセッサ、およびINTEL×86(または同等の)プロセッサを有するコンピューティング・デバイスによって一般に使用されるオペレーティング・システム(例えば、MICROSOFT WINDOWS)と互換性がない、古い(older)レガシー・オペレーティング・システム(例えば、「MTOS」)を使用する。レガシー・レベル1コントローラに開発されたアプリケーション・コード(例えば、Pascalまたはその他の高級プログラミング言語で書かれたソフトウェア・コード)は、したがって、x86系オペレーティング・システムによって実行可能となるように変換される。本文書全体にわたって、HPMコントローラを一例として使用する。しかしながら、本文書(図面を含む)において見られるHPMに対する引用は、限定することを意図するのではなく、HPMは他のレガシー・レベル1コントローラも同様に表すことができることは理解されよう。
[0045] アプリケーション・ランタイム環境203は、変換アプリケーション・コード201を実行するためのランタイム環境を提供する。ある実施形態では、これはPascalランタイム環境を含むことができる。
[0046] レガシー・オペレーティング・システムAPI202は、本来68040アセンブリ言語で開発されたレガシー・オペレーティング・システム用のAPIであるが、C、Pascal、またはその他の高級プログラミング言語を使用して、シミュレーション・システムにおいて複製される。レガシー・オペレーティング・システム・シミュレーション・コンポーネント205は、仮想化レガシー・レベル1コントローラがシミュレーション・システムにおいて動作することを可能にするために採用される追加のサポート機能である。
[0047] レガシー・オペレーティング・システムAPI202およびレガシー・オペレーティング・システム・シミュレーション・コンポーネント205は、レガシー・アプリケーションが実行することが予測されるレガシー・コントローラ・オペレーティング・システム(例えば、MTOS)のカスタム化シミュレーションによって、変換アプリケーション・コード201をサポートする。レガシー・オペレーティング・システムAPI202は、シミュレーション・システムのオペレーティング・システムの上にある抽象化レイヤにおいてエミュレートされる。シミュレートされたレガシー・オペレーティング・システムは、全てのレガシー・ソフトウェア命令(IO(例えば、データ受信、データ表示等を含む)および物理コマンド(例えば、スイッチをオンに切り替える、モータを作動させる等))が正しく実行することを可能にする。
[0048] カスタム・スケジューラ204は、シミュレーション・システムのオペレーティング・システムが通例提供するものよりも強化されたスレッド・スケジューリング能力を提供する、カスタム化されたアプリケーションである。例えば、レガシー・コントローラ・オペレーティング・システムMTOSは、多数の特定優先順位(specific priorities)を扱うスレッド・スケジューリングを含み、これは、オペレーティング・システムとして、MICROSOFT WINDOWSが通例では提供しないもの(something)である。カスタム・スケジューラ204は、これらのスレッド・スケジューリング動作、およびWINDOWSでは見られないその他のレガシーIOコマンドのためのサポートを提供する。カスタム・スケジューラ204は、レガシー・コントローラ・オペレーティング・システムを熟知する技術者または開発者によって生成することができる。カスタム・スケジューラ204は、Cまたはその他の高級プログラミング言語で書くことができる。
[0049] シミュレーション・システムの動作の一部は、レガシー・システム・ハードウェアとの相互作用を扱うためにアドレス・リマッピング(address remapping)を実行し、全てのビッグ・エンディアン定数(big-endian constants)、レガシー(68040)ソース・コードにおいて定義される全てのラベル、またはバイト・スワッピングを必要とする他のあらゆる項目に対して、ランタイム「エンディアン」補正を実行する動作を含む。
[0050] 「エンディアン」(endian)という用語は、コンピュータ・メモリに格納するときにデータ・ワードまたはメッセージを構成する1つ以上のバイトを格納および解釈するために使用される慣例(convention)を指す。メモリにおけるデータの各バイトは、それ自体のアドレスを有する。複数のバイトを含むデータ・ワードを読み出すまたは書き込むとき、メモリに格納されているバイトの順序が、データ・ワードの解釈を決定する。
[0051] ビッグ・エンディアン・システムは、データ・ワードの最上位バイトを最も小さいアドレスに格納し、最下位バイトを最も大きいアドレスに格納する。対照的に、リトル・エンディアン・システムは、データ・ワードの最下位バイトを最も小さいアドレスに格納する。ビッグ・エンディアン・デバイスまたはシステムからリトル・エンディアン・デバイスまたはシステムに(またはその逆に)データを移動させるとき、データをしかるべき「エンディアンネス」(endianness)に変換する必要があり、そうでなければ、受信デバイスまたはシステムが相違を考慮する必要がある。これをエンディアン補正と呼ぶ。
[0052] ランタイム・エンディアン補正は、変換アプリケーション・コード201が生成されるときに、各変換x86アセンブリ・ファイルの終端においてエンディアン補正関数コールを含ませることによって行われる。この関数コールは、そのファイルにおいて交換されるべきあらゆる項目に対してエンディアン補正関数を起動し(launch)、エンディアン補正を必要とするメモリ位置へのポインタ、データ型情報、およびサイズを含む関数パラメータを渡す。次いで、エンディアン補正関数は、必要に応じて、バイト交換を実行する。エンディアン補正関数は、Cまたはその他の適した高級プログラミング言語で書くことができる。
[0053] エンディアン補正に関する更なる詳細は、本願と所有者が同じであり、2015年1月23日に出願された米国特許出願第14/604,346号において見ることができる。この特許出願をここで引用したことにより、その内容は本願にも含まれるものとする。
[0054] 図2は分散型制御システムにおいてレガシー・レベル1コントローラを仮想化するフレームワーク200の一例を示すが、図2には種々の変更を行うこともできる。例えば、図2における種々のコンポーネントを組み合わせること、更に細分化すること、または省略することができ、更に、個々の必要性に応じて追加のコンポーネントを追加することもできる。また、仮想化およびシミュレーション環境は、多種多様の構成で組むことができ(come in)、図2は本開示をいずれの特定の構成にも限定しない。
[0055] 図3は、本開示にしたがって分散型制御システムにおいてレガシー・レベル1コントローラを仮想化するシステム例300を示す。システム300は、工業プロセス制御および自動化システム100において使用するためのコントローラを設定するために、フレームワーク200のコンポーネントの内1つ、一部、または全部を組み込むことができる。
[0056] 図3に示すように、システム300は、レガシー・レベル1コントローラのために1つ以上のアプリケーション・ソース・コード・ファイル302を含み、アプリケーション・ソース・コード・ファイル302はPascalまたはCのような、互換性がある高級プログラミング言語で書かれている。例えば、ソース・コード・ファイル(1つまたは複数)302は、68040プロセッサ系HPMコントローラ用ソフトウェア・ルーチンのためのHONEYWELL Pascalで書かれた命令を含むことができる。各ソース・コード・ファイル302は、任意の適した数の命令を任意の適したプログラミング言語で含むことができる。
[0057] コンパイラ304は、ソース・コード・ファイル(1つまたは複数)302を受け取り、各ソース・コード・ファイル302における命令を機械実行可能なアセンブリ言語命令にコンパイルする。アセンブリ言語命令は、レガシー・コントローラ処理デバイスと互換性がある。例えば、アセンブリ言語命令は、68040プロセッサ用のアセンブリ・コードとすることができる。
[0058] 変換器306は、レガシー・プラットフォームと互換性があるアセンブリ言語命令を受け取り、アセンブリ言語命令を、変換アセンブリ言語命令に変換する。変換アセンブリ言語命令は、シミュレータ320のような、x86プロセッサを有するシミュレーション・デバイスにおける実行のためにアセンブルすることができる。即ち、変換器306は命令を68040アセンブリ言語からx86アセンブリ言語に変換することができる。変換器306は、カスタム化したアセンブリ言語変換器とすることができ、または、MICROAPL LTDによるPortASM/68K変換器のような、ソフトウェア移行ツール(software migration tool)の一部である既存のアセンブリ・コード変換器とすることができる。
[0059] アセンブラ308は、変換アセンブリ言語命令を受け取り、これらの命令をオブジェクト・コード310にアセンブルする。一旦アセンブルされると、オブジェクト・コード310は、x86互換コンピューティング・デバイスによって実行可能になる。アセンブラ308は、任意の適したアセンブラ・ユーティリティを表すことができ、システム300のために特定的に設計またはカスタム化されたもの、あるいは既存の市販されているものを含む。
[0060] オブジェクト・コード310は、C言語ランタイム・ライブラリ312およびx86系起動およびコンフィギュレーション・オブジェクト・コード314と組み合わせて、パーソナリティ・ファイル(personality file)316にすることができる。パーソナリティ・ファイル316は、レガシー・レベル1コントローラのパーソナリティと関連付けられた実行可能ファイルである。このコンテキストでは、パーソナリティとは、ハードウェア・デバイスに異なる機能またはタスクを実行させるプロファイルの一種である。例えば、「ユニバーサル・ステーション」パーソナリティ(universal station personality)は、ディスプレイ、キーボード、およびマウスを管理する(govern)ソフトウェアを表すことができる。「アプリケーション・モジュール」(application module)パーソナリティは、ループ制御を管理するソフトウェアを表すことができる。ここで、レガシー・レベル1コントローラのパーソナリティは、分散型制御システムにおけるレガシー・レベル1コントローラの挙動のシミュレーションである。パーソナリティ・ファイル316は、レガシー・レベル1コントローラの機能、およびそのレベル2監理ノード(1つまたは複数)に対するコントローラのインターフェースに関連する機能も含むことができる。
[0061] シミュレータ320は、WINDOWSのような、x86系オペレーティング・システムを実行する汎用コンピューティング・デバイスである。例えば、シミュレータ320は、デスクトップ・コンピュータ、ラップトップ・コンピュータ、ノートブック、サーバ、または任意の他の適したコンピューティング・デバイスであってもよい。パーソナリティ・ファイル316は、シミュレータ320による実行のために、シミュレータ320のメモリにロードされる。パーソナリティ・ファイル316に加えて、シミュレータ320は、レベル2監理ノードの機能を実行するソフトウェア、およびレガシー・レベル1コントローラをレベル2ネットワークに接続するために使用されるハードウェア・インターフェースを制御するソフトウェアをホストすることができる。これらのハードウェア/ソフトウェア・コンポーネントは、物理的に別々にすることができ、または同じ物理ハードウェア上に位置することもできるが、別個の論理エンティティとして管理および実行される。
[0062] シミュレーションの間、シミュレータ320は、パーソナリティ・ファイル316内に具体化された仮想化レガシー・レベル1コントローラをシミュレートおよび設定するために、1つ以上のシミュレータ・アプリケーション322を動作させる。例えば、シミュレータ320によって実行されるシミュレータ・アプリケーション322は、レガシー・シミュレーション管理ユーティリティ、シミュレータ・コンフィギュレーション・ユーティリティ、およびコントローラ・コンフィギュレーション・ユーティリティを含むことができる。これらについては、以下で更に詳しく説明する。シミュレータ320、パーソナリティ・ファイル316、およびシミュレータ・アプリケーション322を使用して、ユーザ(例えば、システム・エンジニア)は、コントローラの実際の物理インスタンスがなくても、仮想レガシー・レベル1コントローラを設定することができる。
[0063] 一旦シミュレーションが完了し、仮想レガシー・レベル1コントローラが正しく設定されたなら、コンフィギュレーション・データをコンフィギュレーション・データベース324(あるいはフラット・ファイルまたは任意の他の適したデータ構造)に保存する。次いで、一旦コントローラ328が使用可能になったなら、コンフィギュレーション・データベース324を物理レベル1コントローラ328にインポートまたはロードすることができる。
[0064] コンピュータ・ゲートウェイ326は、コントローラ328および対応するレガシー・レベル2監理ネットワークにインターフェースするために使用することができる。コンピュータ・ゲートウェイ326は、ハードウェア・インターフェースを介した通信を可能にするために、レベル2監理ネットワーク、ハードウェア・インターフェース用デバイス・ドライバ、および1つ以上のソフトウェア・コンポーネントに接続するハードウェア・インターフェース(例えば、周辺素子相互接続(PCI)デバイス)を含む。コンピュータ・ゲートウェイ326を使用して、仮想レガシー・レベル1コントローラはレガシー・レベル2監理ネットワークと通信することができ、こうして同じユーザ・インターフェースを仮想レガシー・レベル1コントローラおよび物理コントローラの設定のために使用することが可能となる。
[0065] コンピュータ・ゲートウェイ326は、IPプロトコルを使用して、レベル1コントローラ328と通信する。コンピュータ・ゲートウェイ326およびレベル1ソフトウェア・アプリケーションによって維持されるデータのフォーマットは、コントローラ328のそれと同じである。これによって、仮想および埋め込みレベル1コントローラを跨いでデータベース324の完全性を保存し、こうして、シミュレータ320において生成されたデータベース324を実際のハードウェアにインポートすることを可能にする。コンピュータ・ゲートウェイ326は、複数の接続をサポートすることができ、必要な数だけのレガシー・レベル1コントローラ328に対してインターフェースを有することが可能になる。レガシー・レベル1コントローラ328にインターフェースするためにコンピュータ・ゲートウェイ326を使用することによって、LLC/バス特定通信ハンドラのような、低レベル通信コンポーネントを削減し、こうすることによって、仮想レベル1ソフトウェアのアーキテクチャの複雑さを軽減する。
[0066] 図3はレガシー・レベル1コントローラ仮想化システム300の一例を示すが、図3に対して種々の変更がなされてもよい。例えば、個々の必要性に応じて、図3における種々のコンポーネントを組み合わせること、更に細分化すること、または省略することができ、更に、追加のコンポーネントを加えることもできる。特定例として、別々のコンポーネントとして示すが、コンパイラ304、変換器306、アセンブラ308、シミュレータ320、およびゲートウェイ326の内2つ以上を組み合わせて1つのデバイスにすることができる。また、仮想化およびシミュレーション環境は、多種多様の構成で組むことができ(come in)、図3は本開示をいずれの特定の構成にも限定しない。
[0067] 図4は、本開示によるレガシー・レベル1コントローラ仮想化システム400の異なるコンポーネントを示す。レガシー・レベル1コントローラ仮想化するシステム400は、本開示によるレガシー・レベル1コントローラ仮想化システム300を表す(denote)こともできる。
[0068] 図4におけるシステム400は、コンフィギュレーションに応じて異なる仮想コントローラに対して実行可能なシミュレーションの複数の異なるインスタンスを呼び出し実行する役割を果たす。即ち、各インスタンスは、1つの物理レガシー・レベル1コントローラの機能をシミュレートするように動作する。システム400は、個々の仮想ノード・インスタンスを割り当てて処理する(handle)。システム400は、ユーザ定義コンフィギュレーションを読み出す。ユーザ定義コンフィギュレーションは、コントローラ・シミュレーションのインスタンスを実行するために必要とされる入力を含む。システム400は、設定するだけの数のインスタンスを起動する(launch)。図4に示すように、クライアントAPP1 401、クライアントAPP2 402、およびクライアントAPP3 403は、シミュレーションの異なるインスタンスを表し、異なるコンフィギュレーションおよび異なるデータベースを用いる。
[0069] システム400は、シミュレートされるHPMアプリケーションの監理をサポートする。システム400によって実行されるタスクの一部には以下が含まれる。
・サービス起動中において、コンフィギュレーションにしたがってシミュレートされたレガシー・コントローラ(SIM HPM)の起動。
・サービス停止中において、シミュレートされたレガシー・コントローラの閉鎖。
・シミュレートされたレガシー・コントローラに関連するアプリケーションの監視。
[0070] 図5および図6は、本開示によるレガシー・レベル1コントローラ仮想化システムの異なるコンポーネントを実行する操作員端末からの画面例を示す。レガシー・レベル1コントローラ仮想化システムは、本開示によるレガシー・レベル1コントローラ仮想化システム300を表すこともできる。
[0071] 図5における画面500は、シミュレータ・コンフィギュレーション・ユーティリティ505における表示を示す。シミュレータ・コンフィギュレーション・ユーティリティ505は、シミュレーション環境において複数のレベル1仮想コントローラを設定するために使用することができる。新たなHPMSIMCONFIGメニュー項目501がシミュレータ・コンフィギュレーション・ユーティリティ505に追加されている。HPMSIMCONFIGメニュー項目501の選択により、図6に示すSIM HPMコンフィギュレーション・ウィンドウ605が現れる(launch)。
[0072] 図6における画面600は、SIM HPMコンフィギュレーション・ウィンドウ605を示す。SIM HPMコンフィギュレーション・ウィンドウ605は、インスタンス毎にシミュレートされるレガシー・コントローラの数および関連する詳細を、ユーザが設定する(configuration)することを可能にする。SIM HPMコンフィギュレーション・ウィンドウ605は、以下の設定可能な(configurable)選択肢を含む。
・SIM HPMの数、
・HPMノード・アドレス、
・UCNネットワーク番号、
・NIMアドレス、
・TPSIMサーバ名。
[0073] これらの設定可能な選択肢は、シミュレートされる各レガシー・コントローラの識別情報(identity)を、レガシー・レベル1コントローラ仮想化システムにおいて一意にする。
[0074] 図5および図6は、レガシー・レベル1コントローラ仮想化システムのコンポーネントを実行する操作員端末からの画面の例を示すが、図5および図6に対して種々の変更がなされてもよい。例えば、画面500、600を別々にフォーマットすることができ、更に異なる型式の情報を表示することができる。
[0075] 図7は、本開示にしたがって分散型制御システムにおいてレガシー・レベル1コントローラを仮想化する方法例700を示す。説明を容易にするために、方法700は、図3のシステム300を使用して実行するとして説明する。しかしながら、方法700は、任意の適したデバイスまたはシステムと共に使用することができる。
[0076] ステップ701において、システム300は、分散型制御システムにおけるレガシー・コントローラに関連する少なくとも1つのアプリケーション・ソース・コード・ファイルを、コントローラ・シミュレーション・コンピューティング・デバイスによって実行可能な命令に変換する。レガシー・コントローラはレガシー・オペレーティング・システムと関連付けられ、コントローラ・シミュレーション・コンピューティング・デバイスは、レガシー・オペレーティング・システムとは異なる第2オペレーティング・システムと関連付けられる。これは、例えば、コンパイラ304が少なくとも1つのアプリケーション・ソース・コード・ファイル302をコンパイルすること、次いで変換器306がコンパイルされたコードを変換すること、およびアセンブラ308が変換されたコードをオブジェクト・コード310にアセンブルすることを含むのでもよい。オブジェクト・コード310は、C言語ランタイム・ライブラリ312ならびにx86系起動およびコンフィギュレーション・オブジェクト・コード314と組み合わせられ、パーソナリティ・ファイル316にすることができる。
[0077] ステップ703において、システム300は、前述の命令を使用して、更にコントローラ・シミュレーション・コンピューティング・デバイスにおけるレガシー・オペレーティング・システムのエミュレーションを使用して、レガシー・コントローラの動作をシミュレートする。これは、例えば、シミュレータ320が、パーソナリティ・ファイル316を使用して、レガシー・コントローラをシミュレートすることを含むのでもよい。
[0078] ステップ705において、システム300は、レガシー・コントローラの動作のシミュレーション中に、レガシー・コントローラのコンフィギュレーション・データを決定する。これは、例えば、シミュレータ320が、レガシー・コントローラに1つ以上のコンフィギュレーション・パラメータを決定または計算すること、あるいはユーザから1つ以上のコンフィギュレーション・パラメータを受け取ることを含むのでもよい。
[0079] ステップ707において、システム300はコンフィギュレーション・データをコンフィギュレーション・データ・ファイルに保存する。これは、例えば、シミュレータ320がコンフィギュレーション・データベース324を生成することを含むのでもよい。
[0080] ステップ709において、システム300は、ゲートウェイを使用して、コンフィギュレーション・データ・ファイルをレガシー・コントローラにエクスポートする。ゲートウェイは、レガシー・コントローラに対するハードウェア・インターフェースを含む。これは、例えば、ゲートウェイ326がコンフィギュレーション・データベース324をレガシー・レベル1コントローラ328にエクスポートすることを含むのでもよい。
[0081] 図7は、分散型制御システムにおいてレガシー・レベル1コントローラを仮想化する方法700の一例を示すが、図7に対して種々の変更がなされてもよい。例えば、一連のステップとして示したが、図7に示す種々のステップは、重複すること、並列に行うこと、異なる順序で行うこと、複数回行う事も可能である。更に、個々の必要性に応じて、いくつかのステップを組み合わせるまたは取り除くこともでき、追加のステップを加えることもできる。加えて、工業プロセス制御および自動化システムに関して説明したシステム300に関して方法700を説明したが、方法700は、他の種類のデバイスおよびシステムとでも使用することができる。
[0082] 図8は、本開示にしたがって、分散型制御システムにおいてレガシー・レベル1コントローラの仮想化を実行するデバイス例800を示す。デバイス800は、例えば、シミュレータ320またはゲートウェイ326のような、図3のシステム300におけるコンピューティング・デバイスを表すことができる。デバイス800は、分散型制御システムにおいてレガシー・レベル1コントローラの仮想化を実行するのに適した他の任意のデバイスを表すこともできる。
[0083] 図8に示すように、デバイス800はバス・システム802を含むことができる。バス・システム802は、少なくとも1つの処理デバイス804、少なくとも1つの記憶デバイス806、少なくとも1つの通信ユニット808、および少なくとも1つの入力/出力(I/O)ユニット810間における通信をサポートする。処理デバイス804は、メモリ812にロードすることができる命令を実行する。処理デバイス804は、任意の適した数および種類のプロセッサまたはその他のデバイスを、任意の適した構成で含むことができる。処理デバイス804の種類の例には、マイクロプロセッサ、マイクロコントローラ、ディジタル信号プロセッサ、フィールド・プログラマブル・ゲート・アレイ、特定用途集積回路、およびディスクリート回路が含まれる。
[0084] メモリ812および永続的ストレージ814は、記憶デバイス806の例であり、情報(一時的なまたは永続的な、データ、プログラム・コード、および/またはその他の適した情報等)を格納し、検索を容易にすることができる任意の構造(1つまたは複数)を表す。メモリ812は、ランダム・アクセス・メモリあるいは任意の他の適した揮発性または不揮発性記憶デバイス(1つまたは複数)を表すことができる。永続的ストレージ814は、リード・オンリ・メモリ、ハード・ドライブ、フラッシュ・メモリ、または光ディスクのような、データの長期(longer-term)格納をサポートする1つ以上のコンポーネントまたはデバイスを含むことができる。本開示によれば、メモリ812および永続的ストレージ814は、ソフトウェア移行の間に絶対アドレスの動的リマッピングを容易にすることに関連する命令を格納するように構成されてもよい。
[0085] 通信ユニット808は、他のシステム、デバイス、またはネットワーク110〜120のようなネットワークとの通信をサポートする。例えば、通信ユニット808は、少なくとも1つのイーサネット・ネットワーク上での通信を容易にするネットワーク・インターフェースを含むこともできる。また、通信ユニット808は、少なくとも1つのワイヤレス・ネットワーク上での通信を容易にするワイヤレス・トランシーバも含むことができる。通信ユニット808は、任意の適した物理またはワイヤレス通信リンク(1つまたは複数)を通じた通信もサポートすることができる。
[0086] I/Oユニット810は、データの入力および出力に対処する。例えば、I/Oユニット810は、キーボード、マウス、キーパッド、タッチスクリーン、またはその他の適した入力デバイスを介したユーザ入力のために、接続を設けることができる。また、I/Oユニット810は、ディスプレイ、プリンタ、またはその他の適した出力デバイスに出力を送ることもできる。
[0087] 図8は、分散型制御システムにおいてレガシー・レベル1コントローラの仮想化を実行するデバイス800の一例を示すが、図8には種々の変更がなされてもよい。例えば、個々の必要性に応じて、図8における種々のコンポーネントを組み合わせる、更に細分化する、または省略することもでき、追加のコンポーネントを加えることもできる。また、コンピューティング・デバイスは、多種多様の構成で組むことができ(come in)、図8は本開示をデバイスのいずれの特定の構成にも限定しない。
[0088] ある実施形態では、本特許文書において説明した種々の機能が、コンピュータ読み取り可能プログラム・コードで形成され、コンピュータ読み取り可能媒体に埋め込まれたコンピュータ・プログラムによって実現またはサポートされる。「コンピュータ読み取り可能プログラム・コード」という語句は、任意の型式のコンピュータ・コードを含み、ソース・コード、オブジェクト・コード、および実行可能コードを含む。「コンピュータ読み取り可能媒体」という語句は、リード・オンリ・メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、ハード・ディスク・ドライブ、コンパクト・ディスク(CD)、ディジタル・ビデオ・ディスク(DVD)のような、コンピュータによってアクセス可能な任意の種類の媒体、または任意の他の種類のメモリを含む。「非一時的」コンピュータ読み取り可能媒体は、一時的電気信号またはその他の信号を移送する有線、ワイヤレス、光、またはその他の通信リンクを除外する。非一時的コンピュータ読み取り可能媒体には、データを永続的に格納することができる媒体、および書き換え可能光ディスクまたは消去可能メモリ・デバイスのような、データを格納して後に上書きすることができる媒体が含まれる。
[0089] 本特許文書全体において使用した特定の単語および語句の定義を明記することは利点があると考えられる。「アプリケーション」(application)および「プログラム」(program)という用語は、適したコンピュータ・コード(ソース・コード、オブジェクト・コード、または実行可能コードを含む)で実現するために構成された(adapt)1つ以上のコンピュータ・プログラム、ソフトウェア・コンポーネント、命令の集合、手順、関数、オブジェクト、クラス、インスタンス、関連データ、またはその一部を指す。「送信する」(transmit)、「受信する」(receive)、および「通信する」(communicate)という用語、ならびにその派生語は、直接および間接的な通信双方を含む。「含む」(include)および「備える」(comprise)という用語、ならびにその派生語は、限定のない包含を意味する。「または」(or)という用語は、包含的であり、および/またはを意味する。「と関連する」(associated with)という語句、およびその派生語は、含む、内部に含まれる、相互接続する、内蔵する、内部に収容される、〜にまたは〜と接続する、〜にまたは〜と結合する、〜と通信可能である、〜と協働する、交互配置する(interleave)、並置する、近接する、〜にまたは〜と境界を接する、有する、プロパティを有する、〜にまたは〜と関係を有する等を意味することができる。「コントローラ」(controller)という用語は、少なくとも1つの動作を制御する任意のデバイス、システム、またはその一部を意味する。コントローラは、ハードウェア、またはハードウェアおよびソフトウェア/ファームウェアの組み合わせで実装することができる。任意の特定のコントローラに関連する機能は、ローカルかリモートかには関係なく、集中または分散させることもできる。「少なくとも1つの」(at least one)という語句は、項目のリストと共に使用される場合、羅列された項目の内1つ以上の異なる組み合わせを使用できることを意味し、リストにおける1つの項目だけが必要とされればよい。例えば、「A、B、およびCの内少なくとも1つ」は、A、B、C、AおよびB、AおよびC、BおよびC、AおよびBおよびCという組み合わせのいずれをも含む。
[0090] 本開示は、特定の実施形態および全体的に関連する方法について説明したが、これらの実施形態および方法の改変(alternation)および置換(permutation)は当業者には明白であろう。したがって、実施形態例についての以上の説明は、本開示を定めるのでも、制約するのでもない。更に、以下の特許請求の範囲によって定められる本開示の主旨および範囲から逸脱することなく、その他の変更(change)、交換(substitution)、および改変も可能である。

Claims (5)

  1. 散型制御システム(100)においてレガシー・コントローラ(106、114、122、130、138)に関連する少なくとも1つのアプリケーション・ソース・コード・ファイル(302)を、コントローラ・シミュレーション・コンピューティング・デバイス(320、800)によって実行可能な命令に変換するステップ(701)であって、前記レガシー・コントローラがレガシー・オペレーティング・システムを用いて動作するように構成され、前記コントローラ・シミュレーション・コンピューティング・デバイスが、前記レガシー・オペレーティング・システムと互換性がない第2オペレーティング・システムを用いて動作するように構成される、ステップ(701)と、
    前記命令、および前記コントローラ・シミュレーション・コンピューティング・デバイスにおける前記レガシー・オペレーティング・システムのエミュレーション(322)を使用して、前記レガシー・コントローラの動作をシミュレートするステップ(703)と、
    前記レガシー・コントローラの動作をシミュレートする間に、前記レガシー・コントローラに対するコンフィギュレーション・データを決定するステップ(705)と、
    前記コンフィギュレーション・データをコンフィギュレーション・データ・ファイル(324)に保存するステップ(707)と、
    を含む、方法。
  2. 請求項1記載の方法において、前記少なくとも1つのアプリケーション・ソース・コード・ファイルを変換するステップが、
    前記少なくとも1つのアプリケーション・ソース・コード・ファイルを、前記レガシー・オペレーティング・システムと互換性のある第1アセンブリ言語命令にコンパイルするステップ(304)と、
    前記第1アセンブリ言語命令を、前記第2オペレーティング・システムと互換性のある第2アセンブリ言語命令に変換するステップ(306)と、
    前記第2アセンブリ言語命令を、前記第2オペレーティング・システムと互換性のあるオブジェクト・コード命令(310)にアセンブルするステップ(308)と、
    を含む、方法。
  3. 請求項2記載の方法において、前記少なくとも1つのアプリケーション・ソース・コード・ファイルを変換するステップが、更に、
    前記少なくとも1つのアプリケーション・ソース・コード・ファイルにおいて1つ以上のビッグエンディアン定数に対してエンディアン補正を行うステップを含む、方法。
  4. ータを格納するように構成された少なくとも1つのメモリ(812)と、
    少なくとも1つの処理デバイス(804)と、
    を含み、前記 少なくとも1つの処理デバイス(804)が、
    分散型制御システム(100)においてレガシー・コントローラ(106、114、122、130、138)に関連する少なくとも1つのアプリケーション・ソース・コード・ファイル(302)を、前記装置によって実行可能な命令に変換し、前記レガシー・コントローラがレガシー・オペレーティング・システムを用いて動作するように構成され、前記装置が、前記レガシー・オペレーティング・システムと互換性がない第2オペレーティング・システムを用いて動作するように構成され
    前記命令、および前記レガシー・オペレーティング・システムにおけるエミュレーション(322)を使用して、前記レガシー・コントローラの動作をシミュレートし、
    前記レガシー・コントローラの動作をシミュレートする間に、前記レガシー・コントローラに対するコンフィギュレーション・データを決定し、
    前記コンフィギュレーション・データを、前記少なくとも1つのメモリに格納されたコンフィギュレーション・データ・ファイル(324)に保存するように構成される、装置(320、800)。
  5. 命令を含む非一時的コンピュータ読み取り可能媒体であって、前記命令が少なくとも1つの処理デバイス(320、804)によって実行されると、前記少なくとも1つの処理デバイスに、
    分散型制御システム(100)においてレガシー・コントローラ(106、114、122、130、138)に関連する少なくとも1つのアプリケーション・ソース・コード・ファイル(302)を、前記少なくとも1つの処理デバイスによって実行可能なコントローラ命令に変換させ、前記レガシー・コントローラが、レガシー・オペレーティング・システムを用いて動作するように構成され、前記少なくとも1つの処理デバイスが、前記レガシー・オペレーティング・システムと互換性がない第2オペレーティング・システムを用いて動作するように構成され
    前記コントローラ命令、および前記少なくとも1つの処理デバイスにおけるレガシー・オペレーティング・システムのエミュレーション(322)を使用して、前記レガシー・コントローラの動作をシミュレートさせ、
    前記レガシー・コントローラの動作をシミュレートする間に、前記レガシー・コントローラに対するコンフィギュレーション・データを決定させ、
    前記コンフィギュレーション・データをコンフィギュレーション・データ・ファイル(324)に保存させる、
    非一時的コンピュータ読み取り可能媒体。
JP2018565805A 2016-06-14 2017-06-07 レガシー・レベル1コントローラ仮想化システムおよび方法 Active JP6978443B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/182,497 2016-06-14
US15/182,497 US10372112B2 (en) 2016-06-14 2016-06-14 System and method for legacy level 1 controller virtualization
PCT/US2017/036426 WO2017218267A1 (en) 2016-06-14 2017-06-07 System and method for legacy level 1 controller virtualization

Publications (2)

Publication Number Publication Date
JP2019518289A JP2019518289A (ja) 2019-06-27
JP6978443B2 true JP6978443B2 (ja) 2021-12-08

Family

ID=60573843

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018565805A Active JP6978443B2 (ja) 2016-06-14 2017-06-07 レガシー・レベル1コントローラ仮想化システムおよび方法

Country Status (4)

Country Link
US (1) US10372112B2 (ja)
EP (1) EP3469430B1 (ja)
JP (1) JP6978443B2 (ja)
WO (1) WO2017218267A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10691093B2 (en) * 2016-06-22 2020-06-23 Honeywell International Inc. Controller programming migration automation
US10783026B2 (en) 2018-02-15 2020-09-22 Honeywell International Inc. Apparatus and method for detecting network problems on redundant token bus control network using traffic sensor
CN108845548B (zh) * 2018-07-04 2021-01-05 深圳库博能源科技有限公司 一种基于软件组态实现io硬接线分配的dcs及分配方法
US11366777B2 (en) * 2019-06-11 2022-06-21 Honeywell International, Inc. Process control device having modern architecture and legacy compatibility
US11009840B2 (en) * 2019-06-19 2021-05-18 Honeywell International, Inc. Control execution environment and container based architecture
US11846934B2 (en) 2019-09-23 2023-12-19 Fisher-Rosemount Systems, Inc. Industrial control system hyperconverged architecture
CN111176246B (zh) * 2020-02-25 2021-06-01 杭州和利时自动化有限公司 一种分布式控制***远程仿真的方法及***

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6578193B1 (en) * 1998-03-24 2003-06-10 Novell, Inc. Endian-neutral loader for interpretive environment
US6247172B1 (en) 1998-07-02 2001-06-12 Hewlett-Packard Company Method for a translation system that aggressively optimizes and preserves full synchronous exception state
US7266811B2 (en) * 2001-09-05 2007-09-04 Conexant Systems, Inc. Methods, systems, and computer program products for translating machine code associated with a first processor for execution on a second processor
US7107580B2 (en) 2003-01-07 2006-09-12 Intel Corporation Binary translation of self-modifying code
US7809547B2 (en) * 2005-12-29 2010-10-05 Guenthner Russell W Host computer system emulating target system legacy software and providing for incorporating more powerful application program elements into the flow of the legacy software
US9058203B2 (en) 2006-11-20 2015-06-16 Freescale Semiconductor, Inc. System, apparatus and method for translating data
US8056062B2 (en) * 2007-05-14 2011-11-08 General Electric Company Methods and systems for converting application code in turbine control systems
US8069021B2 (en) 2007-09-28 2011-11-29 Rockwell Automation Technologies, Inc. Distributed simulation and synchronization
US8494833B2 (en) * 2008-05-09 2013-07-23 International Business Machines Corporation Emulating a computer run time environment
KR101606803B1 (ko) * 2010-04-29 2016-03-28 엘지전자 주식회사 제어정보의 전송방법 및 기지국과, 제어정보의 수신방법 및 사용자기기
SG11201404726TA (en) * 2012-02-21 2014-09-26 Applied Materials Inc Enhanced re-hosting capability for legacy hardware and software
US20170228225A1 (en) * 2016-02-05 2017-08-10 Honeywell International, Inc. System and method for preserving value and extending life of legacy software in face of processor unavailability, rising processor costs, or other issues

Also Published As

Publication number Publication date
WO2017218267A1 (en) 2017-12-21
US20170357247A1 (en) 2017-12-14
US10372112B2 (en) 2019-08-06
EP3469430B1 (en) 2021-08-04
JP2019518289A (ja) 2019-06-27
EP3469430A1 (en) 2019-04-17
EP3469430A4 (en) 2020-02-19

Similar Documents

Publication Publication Date Title
JP6978443B2 (ja) レガシー・レベル1コントローラ仮想化システムおよび方法
US11550311B2 (en) Centralized virtualization management node in process control systems
US11726463B2 (en) Industrial control system architecture for real-time simulation and process control
US20170228225A1 (en) System and method for preserving value and extending life of legacy software in face of processor unavailability, rising processor costs, or other issues
BR112017020503B1 (pt) Método e sistema para controle de processo de usinas em uma rede de máquina a máquina com base em opc-ua
JP6624008B2 (ja) エンジニアリングツール連携装置、エンジニアリングツール連携方法、エンジニアリングツール連携プログラム及び記録媒体
US9690268B2 (en) Tool and method for dynamic configuration and implementation of device firmware utilizing defined components
US11726464B2 (en) Publish/subscribe protocol for real-time process control
Breivold et al. Virtualize for architecture sustainability in industrial automation
Bartusiak et al. Open Process Automation: A standards-based, open, secure, interoperable process control architecture
US9213329B2 (en) System and method for vendor release independent reusable customized function block libraries
JP7053476B6 (ja) 効率的な同時使用のためのメモリイメージの複製
JP7525310B2 (ja) プロセス制御システム内の集中仮想化管理ノード
US12019431B2 (en) Ease of node switchovers in process control systems
GB2587842A (en) Centralized virtualization management node in process control system

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190215

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200605

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210319

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210610

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: 20211013

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211111

R150 Certificate of patent or registration of utility model

Ref document number: 6978443

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150