IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 横河電機株式会社の特許一覧

特開2024-113969情報処理装置、情報処理方法、情報処理プログラム及び分散制御システム
<>
  • 特開-情報処理装置、情報処理方法、情報処理プログラム及び分散制御システム 図1
  • 特開-情報処理装置、情報処理方法、情報処理プログラム及び分散制御システム 図2
  • 特開-情報処理装置、情報処理方法、情報処理プログラム及び分散制御システム 図3
  • 特開-情報処理装置、情報処理方法、情報処理プログラム及び分散制御システム 図4
  • 特開-情報処理装置、情報処理方法、情報処理プログラム及び分散制御システム 図5
  • 特開-情報処理装置、情報処理方法、情報処理プログラム及び分散制御システム 図6
  • 特開-情報処理装置、情報処理方法、情報処理プログラム及び分散制御システム 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024113969
(43)【公開日】2024-08-23
(54)【発明の名称】情報処理装置、情報処理方法、情報処理プログラム及び分散制御システム
(51)【国際特許分類】
   G06F 9/50 20060101AFI20240816BHJP
【FI】
G06F9/50 150D
G06F9/50 150C
【審査請求】有
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2023019285
(22)【出願日】2023-02-10
(11)【特許番号】
(45)【特許公報発行日】2024-01-17
(71)【出願人】
【識別番号】000006507
【氏名又は名称】横河電機株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】吉田 善貴
(72)【発明者】
【氏名】戸井永 剛
(57)【要約】
【課題】DCSの制御ノードが過負荷になることを抑止すること。
【解決手段】実施形態の制御ノード10は、実行部131、選択部133、判定部136及び依頼部137を有する。実行部131は、割り当てられたタスクを実行する。選択部133は、自装置の負荷の大きさが閾値を超えた場合、割り当てられたタスクのうちのいずれかを選択する。判定部136は、選択部133によって選択されたタスクが条件を満たすか否かを判定する。依頼部137は、タスクが条件を満たす場合、タスクの実行を第1の装置に依頼し、タスクが条件を満たさない場合、タスクの実行を第2の装置に依頼する。
【選択図】図2
【特許請求の範囲】
【請求項1】
割り当てられたタスクを実行する実行部と、
自装置の負荷の大きさが閾値を超えた場合、割り当てられたタスクのうちのいずれかを選択する選択部と、
前記選択部によって選択されたタスクが条件を満たすか否かを判定する判定部と、
前記タスクが前記条件を満たす場合、前記タスクの実行を第1の装置に依頼し、前記タスクが前記条件を満たさない場合、前記タスクの実行を第2の装置に依頼する依頼部と、
を有することを特徴とする情報処理装置。
【請求項2】
前記判定部は、前記選択部によって選択されたタスクが実行される周期の長さが閾値以下であるという条件を満たすか否かを判定することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記判定部は、前記選択部によって選択されたタスクの実行に要求される演算能力が閾値以下であるという条件を満たすか否かを判定することを特徴とする請求項1に記載の情報処理装置。
【請求項4】
割り当てられたタスクを実行し、
自装置の負荷の大きさが閾値を超えた場合、割り当てられたタスクのうちのいずれかを選択し、
選択したタスクが条件を満たすか否かを判定し、
前記タスクが前記条件を満たす場合、前記タスクの実行を第1の装置に依頼し、前記タスクが前記条件を満たさない場合、前記タスクの実行を第2の装置に依頼する、
処理をコンピュータが実行することを特徴とする情報処理方法。
【請求項5】
割り当てられたタスクを実行し、
自装置の負荷の大きさが閾値を超えた場合、割り当てられたタスクのうちのいずれかを選択し、
選択したタスクが条件を満たすか否かを判定し、
前記タスクが前記条件を満たす場合、前記タスクの実行を第1の装置に依頼し、前記タスクが前記条件を満たさない場合、前記タスクの実行を第2の装置に依頼する、
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
【請求項6】
互いに接続された複数の制御ノードと、前記複数の制御ノードと接続されたサーバと、を有する分散制御システムであって、
前記複数の制御ノードのそれぞれは、
割り当てられたタスクを実行する実行部と、
自装置の負荷の大きさが閾値を超えた場合、割り当てられたタスクのうちのいずれかを選択する選択部と、
前記選択部によって選択されたタスクが条件を満たすか否かを判定する判定部と、
前記タスクが前記条件を満たす場合、前記タスクの実行を、前記複数の制御ノードのうち自装置以外の制御ノードに依頼し、前記タスクが前記条件を満たさない場合、前記タスクの実行を前記サーバに依頼する依頼部と、
を有することを特徴とする分散制御システム。
【請求項7】
前記複数の制御ノードは、アプリケーションのプログラムを記憶し、
前記実行部は、割り当てられたタスクであって、前記プログラムに従った演算を含むタスクを実行する
ことを特徴とする請求項6に記載の分散制御システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、情報処理プログラム及び分散制御システムに関する。
【背景技術】
【0002】
従来、互いにネットワークで接続された複数の制御ノードがプラントの制御を行う分散制御システム(DCS:Distributed Control System)が知られている(例えば、特許文献1を参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特表2017-511024号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来のDCSには、制御ノードが過負荷になることを抑止できない場合があるという問題がある。
【0005】
例えば、制御ノードが過負荷になることを抑止する方法として、ネットワークに接続された管理装置が、各制御ノードの負荷を監視し、制御ノードへのタスクの再割り当てを行う方法が考えられる。一方で、この方法を実施するためには、監視及び再割り当ての機能と、タスクスケジューラ等の他の管理機能との混在を考慮し、機能間の競合及び矛盾等を防止する策を講じる必要がある。
【0006】
また、例えば、制御ノードが過負荷になることを抑止する方法として、各制御ノードを管理装置として機能させる方法が考えられる。一方で、この方法を実施するためには、全てのノードに管理装置と同等の機能を実装する必要がある。
【0007】
このように、従来のDCSでは、上記の制御ノードが過負荷になることを抑止する方法を実施することは容易ではない。
【0008】
一つの側面では、DCSの制御ノードが過負荷になることを抑止することを目的とする。
【課題を解決するための手段】
【0009】
一側面にかかる情報処理装置は、割り当てられたタスクを実行する実行部と、自装置の負荷の大きさが閾値を超えた場合、割り当てられたタスクのうちのいずれかを選択する選択部と、前記選択部によって選択されたタスクが条件を満たすか否かを判定する判定部と、前記タスクが前記条件を満たす場合、前記タスクの実行を第1の装置に依頼し、前記タスクが前記条件を満たさない場合、前記タスクの実行を第2の装置に依頼する依頼部と、を有することを特徴とする。
【0010】
一側面にかかる情報処理方法は、割り当てられたタスクを実行し、自装置の負荷の大きさが閾値を超えた場合、割り当てられたタスクのうちのいずれかを選択し、選択したタスクが条件を満たすか否かを判定し、前記タスクが前記条件を満たす場合、前記タスクの実行を第1の装置に依頼し、前記タスクが前記条件を満たさない場合、前記タスクの実行を第2の装置に依頼する、処理をコンピュータが実行することを特徴とする。
【0011】
一側面にかかる情報処理プログラムは、割り当てられたタスクを実行し、自装置の負荷の大きさが閾値を超えた場合、割り当てられたタスクのうちのいずれかを選択し、選択したタスクが条件を満たすか否かを判定し、前記タスクが前記条件を満たす場合、前記タスクの実行を第1の装置に依頼し、前記タスクが前記条件を満たさない場合、前記タスクの実行を第2の装置に依頼する、処理をコンピュータに実行させることを特徴とする。
【0012】
一側面にかかる分散制御システムは、互いに接続された複数の制御ノードと、前記複数の制御ノードと接続されたサーバと、を有する分散制御システムであって、前記複数の制御ノードのそれぞれは、割り当てられたタスクを実行する実行部と、自装置の負荷の大きさが閾値を超えた場合、割り当てられたタスクのうちのいずれかを選択する選択部と、前記選択部によって選択されたタスクが条件を満たすか否かを判定する判定部と、前記タスクが前記条件を満たす場合、前記タスクの実行を、前記複数の制御ノードのうち自装置以外の制御ノードに依頼し、前記タスクが前記条件を満たさない場合、前記タスクの実行を前記サーバに依頼する依頼部と、を有することを特徴とする。
【発明の効果】
【0013】
一実施形態によれば、DCSの制御ノードが過負荷になることを抑止することができる。
【図面の簡単な説明】
【0014】
図1】第1の実施形態に係る分散制御システムの構成例を示す図である。
図2】第1の実施形態に係る制御ノードの構成例を示す図である。
図3】第1の実施形態に係るサーバの構成例を示す図である。
図4】タスクのオフロードを説明する図である。
図5】タスクのオフロードを説明する図である。
図6】制御ノードの処理の流れを示すフローチャートである。
図7】ハードウェア構成例を説明する図である。
【発明を実施するための形態】
【0015】
以下に、本願の開示する情報処理装置、情報処理方法、情報処理プログラム及び分散制御システムの実施形態を図面に基づいて詳細に説明する。なお、ここで説明する実施形態により本願の発明が限定されるものではない。また、同一の要素には同一の符号を付し、重複する説明は適宜省略する。また、各実施形態は、矛盾のない範囲内で適宜組み合わせることができる。また、制御ノードは、情報処理装置の一例である。
【0016】
図1を用いて、第1の実施形態の分散制御システムの構成を説明する。図1は、第1の実施形態に係る分散制御システムの構成例を示す図である。
【0017】
図1に示すように、分散制御システム1は、制御ノード10a、制御ノード10b、制御ノード10c及び制御ノード10d、制御ノード10d、フィールド機器21a、フィールド機器22a、フィールド機器21b、フィールド機器22b、フィールド機器21c及びサーバ30を有する。
【0018】
以降の説明では、各制御ノードを区別せずに制御ノード10と呼ぶ場合がある。また、以降の説明では、各フィールド機器を区別せずにフィールド機器20と呼ぶ場合がある。
【0019】
分散制御システム1に含まれる制御ノード10及びフィールド機器20の数は、図1に示すものに限られない。また、制御ノード10のそれぞれには、1つ又は複数のフィールド機器20が接続されていてもよいし、フィールド機器20が接続されていなくてもよい。
【0020】
フィールド機器20は、プラントに備えられる。プラントは、例えば石油プラント、石油化学プラント、化学プラント、又はガスプラントである。プラントが稼働することで、LNG(液化天然ガス)、樹脂(プラスチック、ナイロン等)、化学製品といった生成物が得られる。
【0021】
また、プラントは、工場施設、機械施設、生産施設、発電施設、貯蔵施設、石油、天然ガス等を採掘する井戸元における施設等を有する。また、プラント内には、生成物を生成するための設備機器が備えられる。
【0022】
フィールド機器20は、プラントの状態に関する情報を取得する。例えば、フィールド機器20は、温度センサ、pHセンサ、速度センサ、加速度センサ、気圧センサ、ガス濃度センサ、バルブの開度を検知する機器、スイッチの状態(オン又はオフ)を検知する機器等である。
【0023】
フィールド機器20は、センサ値又は検知結果を示すデータを、あらかめ決められた通信プロトコルにより制御ノード10に送信する。
【0024】
制御ノード10は、割り当てられたタスクを実行する。タスクは、アプリケーションの実行にともなって生じる演算の一部又は全部である。例えば、タスクは、アプリケーションに含まれる関数、ファンクションブロック(FB:Function Block)、機能モジュール等である。なお、タスクは、フィールド機器20から受信したデータを用いるものであってもよい。
【0025】
なお、図1に示す制御APP(制御アプリケーション)は、タスクを実行するためのアプリケーションである。制御ノード10a、制御ノード10b、制御ノード10c、制御ノード10dには、共通の制御アプリケーションがインストール済みである。
【0026】
また、制御ノード10a、制御ノード10b、制御ノード10c、制御ノード10dは、管理機能を有する。管理機能は、制御ノード10が、過負荷になることを防止するための機能である。管理機能の詳細については後述する。
【0027】
サーバ30は、制御ノード10とネットワークを介して接続される。図1に示すように、サーバ30は、フィールド機器20とは直接接続されていなくてもよい。サーバ30は、制御ノード10と比較して大きな処理能力(例えば、プロセッサの演算速度、メモリ容量、ディスクI/Oの速度、データ通信速度)を持つものとする。
【0028】
ここで、分散制御システム1は、プロセス制御システムの一例である。プロセス制御システムでは、リアルタイム処理と非リアルタイム処理が実行される。また、制御ノード10が実行するタスクは、リアルタイム処理と非リアルタイム処理のいずれかに分類される。
【0029】
リアルタイム処理は、制御アプリケーションの実行、制御ノード間のデータ送受信等である。例えば、リアルタイム処理は、制御ノード10が、フィールド機器20から取得した情報を基に、フィールド機器20を制御する処理(例えば、PID制御)である。
【0030】
非リアルタイム処理は、システム監視、フィールド機器管理、品質管理、高度制御等に関する処理である。例えば、非リアルタイム処理は、複数の制御ノード10から一定の期間にわたって収集されたデータを用いて行われる処理である。なお、この場合、制御ノード10は、フィールド機器20から取得したデータを、後段の処理に合わせて形式を変換した上で出力する。
【0031】
また、非リアルタイム処理には、一定の高さの演算能力が要求される処理、GPU(Graphics Processing Unit)等の特殊な装置が要求される処理が含まれる。
【0032】
従来のDCSでは、リアルタイム処理は、コントローラ(例えば、制御ノード10に相当)で実行されていた。また、従来のDCSでは、非リアルタイム処理は、PC及びサーバ等のコントローラとは異なる装置(例えば、本実施形態のサーバ30に相当)で実行されていた。
【0033】
これに対し、昨今、OPAF(Open Process Automation Forum)が提唱するOPA(Open Process Automation)システム(参考文献:https://www.yokogawa.com/us/solutions/featured-topics/open-process-automation/)等のオープンなプロセス制御システムが提案されている。OPAシステムでは処理の階層がフラットになり、サーバ等のコントローラとは異なる装置でもリアルタイム処理が要求される。一方、制御ノード上で非リアルタイム処理を実行するケースも出てくる。
【0034】
OPAシステムにおける制御ノードは、DCN(Distributed Control Node)と呼ばれる場合がある。また、本実施形態の制御ノードは、例えばOPAシステムにおけるDCN(Distributed Control Node)である。
【0035】
例えば、図1の例では、サーバ30は、制御ノード10と比べて、プラント及びフィールド機器20から、物理的又はネットワーク上で離れた位置にある。例えば非リアルタイム処理においてフィールド機器20から取得されたデータが用いられる場合、当該処理をサーバ30が実行するよりも、制御ノード10が実行する方がデータの転送時間等の面において有利である。このように、制御ノード10が非リアルタイム処理を実行することにより、エッジコンピューティングを実現することができる。
【0036】
一方で、制御ノード10が非リアルタイム処理を実行する場合、制御ノード10の負荷がより大きくなるという問題がある。これに対し、本実施形態の管理機能によれば、制御ノード10がリアルタイム処理と非リアルタイム処理の両方を行う場合であっても、制御ノード10が過負荷になることを抑止できる。
【0037】
図2を用いて、制御ノード10の構成を説明する。図2は、第1の実施形態に係る制御ノードの構成例を示す図である。図2に示すように、制御ノード10は、通信部11、記憶部12及び制御部13を有する。
【0038】
ここで、制御ノード10a、制御ノード10b、制御ノード10c、制御ノード10dは、図2に示す構成を有する。ただし、分散制御システム1には、図2に示す構成と異なる構成を有する制御ノードが含まれていてもよい。
【0039】
通信部11は、他の装置との間でデータの通信を行う。例えば、通信部11は、通信インタフェースである。通信部11は、フィールド機器20、サーバ30との間で通信を行う。
【0040】
また、通信部11は、自装置以外の制御ノード10との間でデータの通信を行う。これにより、制御ノード間での通信が実現される。例えば、制御ノード10bにとっての、自装置以外の制御ノード10は、制御ノード10a、制御ノード10c及び制御ノード10dである。この場合、制御ノード10bは、制御ノード10a、制御ノード10c及び制御ノード10dとの間で通信を行うことができる。
【0041】
以降の説明では、自装置以外の制御ノード10を、単に他の制御ノード10、又は異なる制御ノード10と呼ぶ場合がある。
【0042】
記憶部12は、各種データ、及び制御部13が実行する各種プログラム等を記憶する。例えば、記憶部12は、メモリ及びハードディスク等の記憶装置である。この記憶部12は、制御部13が各種処理を実行する際の過程で得られるデータ、及び各種処理を実行したことで得られる処理結果等、制御ノード10が実行する処理で発生する各種データを記憶する。
【0043】
記憶部12は、タスク情報121及びアプリケーション情報122を記憶する。
【0044】
タスク情報121は、制御ノード10に割り当てられたタスクの一覧である。タスクは、アプリケーション、関数、ファンクションブロック、機能モジュール等の単位で割り当てられる。また、タスクはサーバ30を介して割り当てられてもよいし、サーバ30以外の装置を介して割り当てられてもよい。
【0045】
アプリケーション情報122は、アプリケーションの実行に必要なプログラム等のデータである。例えば、アプリケーション情報122は、パッケージ化されたアプリケーションである。
【0046】
制御部13は、制御ノード10全体を司る処理部である。制御部13は、例えばプロセッサ等により実現される。制御部13は、実行部131、監視部132、選択部133、取得部134、提供部135、判定部136、及び依頼部137を有する。
【0047】
実行部131は、タスクを実行する。例えば、実行部131は、タスク情報121に示されるタスクに対応するアプリケーションのプログラムをアプリケーション情報122から読み込む。そして、実行部131は、読み込んだプログラムに従った演算を実行する。
【0048】
監視部132は、制御ノード10の負荷を監視する。例えば、監視部132は、制御ノード10のCPU使用率、メモリ使用率、ディスクI/Oの量、データ通信量のうちのいずれか1つ又は複数を負荷として監視する。
【0049】
なお、制御ノード10の負荷が変動する要因は、フィールド機器及びプロセス異常によるアラームの過大な発生、新たなフィールド機器20の追加による制御演算の変更、HMI(Human Machine Interface)からの監視増大等である。
【0050】
選択部133は、自装置の負荷の大きさが閾値を超えた場合、割り当てられたタスク、すなわちタスク情報121に示されるタスクのうちのいずれかを選択する。ここで選択されたタスクは、他の装置に処理が依頼される場合がある。
【0051】
例えば、選択部133は、タスク情報121に示されるタスクのうち、処理負荷が最も大きいタスクを選択する。この場合、タスクごとの処理負荷の大きさの推定値が、あらかじめタスク情報121に記憶されている。選択部133は、タスク情報121を参照し、各タスクの処理負荷の大きさを取得する。
【0052】
取得部134は、他の制御ノード10が、選択部133によって選択されたタスクの処理が可能か否かを示す情報を取得する。タスクの処理が可能か否かを示す情報は、他の制御ノード10の負荷の大きさであってもよい。
【0053】
提供部135は、他の制御ノード10に対し、指定されたタスクの処理が可能か否かを示す情報を提供する。
【0054】
判定部136は、選択部133によって選択されたタスクが条件を満たすか否かを判定する。例えば、判定部136は、タスクがリアルタイム処理であるか、非リアルタイム処理であるかを判定する。
【0055】
また、タスク情報121には、あらかじめ各タスクがリアルタイム処理であるか非リアルタイム処理であるかを示す情報が記憶されていてもよい。この場合、判定部136は、タスク情報121を参照して、各タスクがリアルタイム処理であるか非リアルタイム処理であるかを判定することができる。
【0056】
依頼部137は、他の制御ノード10又はサーバ30に、選択部133によって選択されたタスクの実行を依頼する。依頼部137は、タスクが条件を満たす場合、タスクの実行を他の制御ノード10(第1の装置の例)に依頼し、タスクが条件を満たさない場合、タスクの実行をサーバ30(第2の装置の例)に依頼する。
【0057】
図3を用いて、サーバ30の構成を説明する。図3は、第1の実施形態に係るサーバの構成例を示す図である。図3に示すように、サーバ30は、通信部31、記憶部32及び制御部33を有する。
【0058】
通信部31は、他の装置との間でデータの通信を行う。例えば、通信部31は、通信インタフェースである。通信部31は、制御ノード10との間で通信を行う。
【0059】
記憶部32は、各種データ、及び制御部33が実行する各種プログラム等を記憶する。例えば、記憶部32は、メモリ及びハードディスク等の記憶装置である。この記憶部32は、制御部33が各種処理を実行する際の過程で得られるデータ、及び各種処理を実行したことで得られる処理結果等、サーバ30が実行する処理で発生する各種データを記憶する。
【0060】
記憶部32は、アプリケーション情報322を記憶する。
【0061】
アプリケーション情報322は、アプリケーションの実行に必要なプログラム等のデータである。例えば、アプリケーション情報122は、パッケージ化されたアプリケーションである。
【0062】
制御部33は、サーバ30全体を司る処理部である。制御部33は、例えばプロセッサ等により実現される。制御部33は、実行部331を有する。
【0063】
実行部331は、タスクを実行する。例えば、制御ノード10から実行を依頼されたタスクに対応するアプリケーションのプログラムをアプリケーション情報122から読み込む。そして、実行部331は、読み込んだプログラムを実行する。
【0064】
図2に戻り、依頼部137は、判定部136による判定結果に応じて、タスクを依頼する装置を決定する。また、タスクの実行を他の装置に依頼することを、オフロードと呼ぶ。図4及び図5は、タスクのオフロードを説明する図である。
【0065】
判定部136によって、選択部133によって選択されたタスクがリアルタイム処理であると判定された場合、図4に示すように、依頼部137は、他の制御ノード10にタスクの実行を依頼する。
【0066】
判定部136によって、選択部133によって選択されたタスクが非リアルタイム処理であると判定された場合、図5に示すように、依頼部137は、サーバ30にタスクの実行を依頼する。
【0067】
図6を用いて、制御ノード10の処理の流れを説明する。図6は、制御ノードの処理の流れを示すフローチャートである。
【0068】
ここでは、制御ノード10bが処理の主体であるものとして説明する。また、制御ノード10の各構成要素の符号に「a」、「b」、「c」、「d」を付した符号に対応する構成要素は、それぞれ制御ノード10a、制御ノード10b、制御ノード10c、制御ノード10dに含まれる。
【0069】
例えば、制御ノード10bは、タスク情報121b、アプリケーション情報122b、実行部131b、監視部132b、選択部133b、取得部134b、提供部135b、判定部136b及び依頼部137bを有する。
【0070】
また、「a」、「b」、「c」、「d」が付された符号に対応する各構成要素は、元の符号に対応する各構成要素と同等の機能を有する。例えば、監視部132bは、監視部132と同等の機能を有する。
【0071】
図6に示すように、まず、制御ノード10bは、タスクを実行しつつ自装置の負荷を監視する(ステップS101)。このとき、実行部131bがタスクを実行する。また、監視部132bが負荷を監視する。
【0072】
監視部132bによって監視された負荷が閾値を超えるまで(ステップS102、No)、制御ノード10bはタスクの実行及び負荷の監視を継続する。
【0073】
例えば、ステップS102において、監視部132bは、CPU使用率があらかじめ閾値として定められた80%を超えたか否かを判定する。
【0074】
監視部132bによって監視された負荷が閾値を超えた場合(ステップS102、Yes)、選択部133bは、未選択のタスクの中から、処理負荷が最も大きいタスクを選択する(ステップS103)。
【0075】
未選択のタスクは、タスク情報121bに含まれるタスクのうち、実行されていないタスクである。また、タスク情報121bには、各タスクについて、リアルタイム処理であるか非リアルタイム処理であるかを示す情報、処理負荷の推定値及び選択済みであるか否かを示す情報が含まれているものとする。初期状態又はリセットされた直後は、全てのタスクが未選択の状態である。
【0076】
判定部136bは、選択部133bが選択したタスクがリアルタイム処理であるか否かを判定する(ステップS104)。
【0077】
選択部133bが選択したタスクがリアルタイム処理である場合(ステップS104、Yes)、取得部134bは、他の制御ノードの負荷を示す情報を取得する(ステップS105)。また、取得部134bは、選択部133bが選択したタスクを他の制御ノードが実行可能であるか否かを、取得した情報を基に判定する(ステップS106)。
【0078】
また、取得部134bは、選択部133bが選択したタスクを他の制御ノードに対して指定し、当該他の制御ノードからタスクを実行可能であるか否かを示す情報を取得してもよい。取得部134bは、他の制御ノードがタスクを実行可能であるか否かを示す情報を取得可能であれば、いずれの方法を用いてもよい。
【0079】
例えば、取得部134bは、制御ノード10cがタスクを実行可能であるか否かを示す情報を取得する。また、このとき、制御ノード10cの提供部135cは、制御ノード10cの負荷、又は制御ノード10cがタスクを実行可能であるか否かを示す情報を、取得部134bに提供する。
【0080】
また、制御ノード10cがタスクを実行可能であるか否かは、タスクごとの処理負荷の推定値、及び制御ノード10cの負荷の大きさに応じて判定されてもよい。
【0081】
制御ノード10cが、選択部133bが選択したタスクを実行可能である場合(ステップS107、Yes)、依頼部137bは、制御ノード10cにタスクの実行を依頼する(ステップS109)。そして、制御ノード10bは、ステップS111へ進む。
【0082】
ステップS107で、制御ノード10cが、選択部133bが選択したタスクを実行可能でない場合(ステップS107、No)、未選択のタスクがあれば(ステップS108、Yes)、制御ノード10bは、ステップS103に戻り処理を繰り返す。
【0083】
ステップS103に戻り処理が繰り返された場合、次にステップS103で選択されるタスクの処理負荷の大きさは、前回選択されたタスクの処理負荷の大きさ以下である。このため、処理が繰り返されるたびに、ステップS107で実行されると判定される可能性は増加していく。
【0084】
未選択のタスクがなければ(ステップS108、No)、制御ノード10bは、ステップS111へ進む。この場合、制御ノード10bがタスクを実行する。
【0085】
また、ステップS104で、選択部133bが選択したタスクがリアルタイム処理でない場合(非リアルタイム処理である場合)(ステップS104、No)、依頼部137bは、サーバ30にタスクの実行を依頼し(ステップS110)、ステップS111へ進む。
【0086】
ステップS111では、制御ノード10bはタスクの選択状況をリセットし、ステップS101に戻り処理を繰り返す。
【0087】
なお、サーバ30は、依頼されたタスクの実行にともない、負荷の大きさが閾値を超える場合、さらに別のサーバ及びクラウド環境等をスケールアウトし、タスクの実行のためのリソースを増やすことができる。
【0088】
ステップS104において、判定部136は、タスクが実行される周期を基に、タスクがリアルタイム処理であるか否かを判定してもよい。すなわち、判定部136は、選択部133によって選択されたタスクが実行される周期の長さが閾値(例えば1秒)以下であるという条件を満たすか否かを判定する。これにより、実行される周期が短い(長さが閾値以下)、リアルタイム性が要求されるタスクを、制御ノード10で実行することが可能になる。
【0089】
また、ステップS104におけるリアルタイム処理であるという条件は、タスクの実行を制御ノード10に依頼するかサーバ30に依頼するかを判定するための条件の一例である。判定部136は、タスクのリアルタイム性の代わりに、タスクに要求される演算能力を基に、タスクの実行を制御ノード10に依頼するかサーバ30に依頼するかを判定してもよい。例えば、判定部136は、選択部133によって選択されたタスクの実行に要求される演算能力が閾値以下であるという条件を満たすか否かを判定する。演算能力は、例えばCPUのクロック数である。この場合、制御ノード10では実行に時間がかかるタスクをサーバ30に依頼することができる。
【0090】
その他にも、判定部136は、フィールド機器20から取得したデータのみで実行可能なタスクを制御ノード10に依頼すると判定し、フィールド機器20から取得したデータ以外のデータが必要なタスクをサーバ30に依頼すると判定してもよい。
【0091】
[効果]
これまで説明してきたように、制御ノード10は、実行部131、選択部133、判定部136及び依頼部137を有する。実行部131は、割り当てられたタスクを実行する。選択部133は、自装置の負荷の大きさが閾値を超えた場合、割り当てられたタスクのうちのいずれかを選択する。判定部136は、選択部133によって選択されたタスクが条件を満たすか否かを判定する。依頼部137は、タスクが条件を満たす場合、タスクの実行を第1の装置に依頼し、タスクが条件を満たさない場合、タスクの実行を第2の装置に依頼する。
【0092】
このように、負荷に応じて他の装置に適宜タスクを依頼することで、DCS(分散制御システム1)の制御ノードが過負荷になることを抑止することができる。
【0093】
また、複数の制御ノード10は、アプリケーションのプログラムを記憶する。実行部131は、割り当てられたタスクであって、プログラムに従った演算を含むタスクを実行する。このように、複数の制御ノード10で共通のアプリケーションを実行可能に設定しておくことで、容易にタスクの実行を依頼することができる。
【0094】
タスクの実行を依頼される制御ノードが、当該タスクを実行するためのアプリケーションのプログラムを記憶していない場合、依頼の際に制御ノード間で、プログラムを含むアプリケーション全体のデータ(コンテナ)の送受信を行う必要がある。その場合、データの送受信に時間がかかり、場合によっては処理が一時的に停止するという問題が生じる。本実施形態によれば、このような問題を解決することができる。
【0095】
[システム]
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0096】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
【0097】
さらに、各装置にて行なわれる各処理機能は、その全部又は任意の一部が、CPU及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0098】
[ハードウェア]
次に、制御ノード10のハードウェア構成例を説明する。図7は、ハードウェア構成例を説明する図である。図7に示すように、制御ノード10は、通信装置100a、HDD(Hard Disk Drive)100b、メモリ100c、プロセッサ100dを有する。また、図7に示した各部は、バス等で相互に接続される。
【0099】
通信装置100aは、ネットワークインタフェースカード等であり、他のサーバとの通信を行う。HDD100bは、図2に示した機能を動作させるプログラム及びDBを記憶する。
【0100】
プロセッサ100dは、図2に示した各処理部と同様の処理を実行するプログラムをHDD100b等から読み出してメモリ100cに展開することで、図2等で説明した各機能を実行するプロセスを動作させる。例えば、このプロセスは、制御ノード10が有する各処理部と同様の機能を実行する。具体的には、プロセッサ100dは、実行部131、監視部132、選択部133、取得部134、提供部135、判定部136、及び依頼部137と同様の機能を有するプログラムをHDD100b等から読み出す。そして、プロセッサ100dは、実行部131、監視部132、選択部133、取得部134、提供部135、判定部136、及び依頼部137と同様の処理を実行するプロセスを実行する。
【0101】
このように、制御ノード10は、プログラムを読み出して実行することで情報処理方法を実行する情報処理装置として動作する。また、制御ノード10は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、制御ノード10によって実行されることに限定されるものではない。例えば、他のコンピュータ又はサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【0102】
このプログラムは、インターネット等のネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD-ROM、MO(Magneto-Optical disk)、DVD(Digital Versatile Disc)等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することができる。
【0103】
開示される技術的特徴の組合せのいくつかの例を以下に記載する。
【0104】
(1)
互いに接続された複数の制御ノードと、前記複数の制御ノードと接続されたサーバと、を有する分散制御システムであって、
前記複数の制御ノードのそれぞれは、
割り当てられたタスクを実行する実行部と、
自装置の負荷の大きさが閾値を超えた場合、割り当てられたタスクのうちのいずれかを選択する選択部と、
前記選択部によって選択されたタスクが条件を満たすか否かを判定する判定部と、
前記タスクが前記条件を満たす場合、前記タスクの実行を、前記複数の制御ノードのうち自装置以外の制御ノードに依頼し、前記タスクが前記条件を満たさない場合、前記タスクの実行を前記サーバに依頼する依頼部と、
を有することを特徴とする分散制御システム。
(2)
前記複数の制御ノードは、アプリケーションのプログラムを記憶し、
前記実行部は、割り当てられたタスクであって、前記プログラムに従った演算を含むタスクを実行する
ことを特徴とする(1)に記載の分散制御システム。
(3)
前記判定部は、前記選択部によって選択されたタスクが実行される周期の長さが閾値以下であるという条件を満たすか否かを判定することを特徴とする(1)又は(2)に記載の分散制御システム。
(4)
前記判定部は、前記選択部によって選択されたタスクの実行に要求される演算能力が閾値以下であるという条件を満たすか否かを判定することを特徴とする(1)又は(2)に記載の分散制御システム。
【符号の説明】
【0105】
1 分散制御システム
10、10a、10b、10c、10d 制御ノード
11、31 通信部
12、32 記憶部
13、33 制御部
20、21a、22a、21b、22b、21c フィールド機器
30 サーバ
100a 通信装置
100b HDD
100c メモリ
100d プロセッサ
121 タスク情報
122、322 アプリケーション情報
131、331 実行部
132 監視部
133 選択部
134 取得部
135 提供部
136 判定部
137 依頼部
図1
図2
図3
図4
図5
図6
図7
【手続補正書】
【提出日】2023-05-29
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
互いに接続された複数の制御ノードと、前記複数の制御ノードと接続されたサーバと、を有する分散制御システムに含まれる前記複数の制御ノードの1つである情報処理装置であって、
割り当てられたタスクを実行する実行部と、
自装置の負荷の大きさが閾値を超えた場合、割り当てられたタスクのうちのいずれかを選択する選択部と、
前記選択部によって選択されたタスクが条件を満たすか否かを判定する判定部と、
前記タスクが前記条件を満たす場合、前記タスクの実行を、前記複数の制御ノードのうち自装置以外の制御ノードに依頼し、前記タスクが前記条件を満たさない場合、前記タスクの実行を前記サーバに依頼する依頼部と、
を有することを特徴とする情報処理装置。
【請求項2】
前記判定部は、前記選択部によって選択されたタスクが実行される周期の長さが閾値以下であるという条件を満たすか否かを判定することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記判定部は、前記選択部によって選択されたタスクの実行に要求される演算能力が閾値以下であるという条件を満たすか否かを判定することを特徴とする請求項1に記載の情報処理装置。
【請求項4】
互いに接続された複数の制御ノードと、前記複数の制御ノードと接続されたサーバと、を有する分散制御システムに含まれる前記複数の制御ノードの1つである情報処理装置が実行する情報処理方法であって、
割り当てられたタスクを実行し、
自装置の負荷の大きさが閾値を超えた場合、割り当てられたタスクのうちのいずれかを選択し、
選択したタスクが条件を満たすか否かを判定し、
前記タスクが前記条件を満たす場合、前記タスクの実行を、前記複数の制御ノードのうち自装置以外の制御ノードに依頼し、前記タスクが前記条件を満たさない場合、前記タスクの実行を前記サーバに依頼する、
とを特徴とする情報処理方法。
【請求項5】
互いに接続された複数の制御ノードと、前記複数の制御ノードと接続されたサーバと、を有する分散制御システムに含まれる前記複数の制御ノードの1つである情報処理装置に、
割り当てられたタスクを実行し、
自装置の負荷の大きさが閾値を超えた場合、割り当てられたタスクのうちのいずれかを選択し、
選択したタスクが条件を満たすか否かを判定し、
前記タスクが前記条件を満たす場合、前記タスクの実行を、前記複数の制御ノードのうち自装置以外の制御ノードに依頼し、前記タスクが前記条件を満たさない場合、前記タスクの実行を前記サーバに依頼する、
処理を実行させることを特徴とする情報処理プログラム。
【請求項6】
互いに接続された複数の制御ノードと、前記複数の制御ノードと接続されたサーバと、を有する分散制御システムであって、
前記複数の制御ノードのそれぞれは、
割り当てられたタスクを実行する実行部と、
自装置の負荷の大きさが閾値を超えた場合、割り当てられたタスクのうちのいずれかを選択する選択部と、
前記選択部によって選択されたタスクが条件を満たすか否かを判定する判定部と、
前記タスクが前記条件を満たす場合、前記タスクの実行を、前記複数の制御ノードのうち自装置以外の制御ノードに依頼し、前記タスクが前記条件を満たさない場合、前記タスクの実行を前記サーバに依頼する依頼部と、
を有することを特徴とする分散制御システム。
【請求項7】
前記複数の制御ノードは、アプリケーションのプログラムを記憶し、
前記実行部は、割り当てられたタスクであって、前記プログラムに従った演算を含むタスクを実行する
ことを特徴とする請求項6に記載の分散制御システム。
【手続補正書】
【提出日】2023-10-02
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
互いに接続された複数の制御ノードと、前記複数の制御ノードと接続されたサーバと、を有する分散制御システムに含まれる前記複数の制御ノードの1つである情報処理装置であって、
割り当てられたタスクを実行する実行部と、
自装置の負荷の大きさが閾値を超えた場合、割り当てられたタスクのうちのいずれかを選択する選択部と、
前記選択部によって選択されたタスクが実行される周期の長さが閾値以下である場合、前記タスクをリアルタイム処理と判定する判定部と、
前記タスクが前記判定部によってリアルタイム処理と判定された場合、前記タスクの実行を、前記複数の制御ノードのうち自装置以外の制御ノードに依頼し、前記タスクが前記判定部によってリアルタイム処理と判定されなかった場合、前記タスクの実行を前記サーバに依頼する依頼部と、
を有することを特徴とする情報処理装置。
【請求項2】
互いに接続された複数の制御ノードと、前記複数の制御ノードと接続されたサーバと、を有する分散制御システムに含まれる前記複数の制御ノードの1つである情報処理装置が実行する情報処理方法であって、
割り当てられたタスクを実行し、
自装置の負荷の大きさが閾値を超えた場合、割り当てられたタスクのうちのいずれかを選択し、
選択したタスクが実行される周期の長さが閾値以下である場合、前記タスクをリアルタイム処理と判定し、
前記タスクがリアルタイム処理と判定された場合、前記タスクの実行を、前記複数の制御ノードのうち自装置以外の制御ノードに依頼し、前記タスクがリアルタイム処理と判定されなかった場合、前記タスクの実行を前記サーバに依頼する、
ことを特徴とする情報処理方法。
【請求項3】
互いに接続された複数の制御ノードと、前記複数の制御ノードと接続されたサーバと、を有する分散制御システムに含まれる前記複数の制御ノードの1つである情報処理装置に、
割り当てられたタスクを実行し、
自装置の負荷の大きさが閾値を超えた場合、割り当てられたタスクのうちのいずれかを選択し、
選択したタスクが実行される周期の長さが閾値以下である場合、前記タスクをリアルタイム処理と判定し、
前記タスクがリアルタイム処理と判定された場合、前記タスクの実行を、前記複数の制御ノードのうち自装置以外の制御ノードに依頼し、前記タスクがリアルタイム処理と判定されなかった場合、前記タスクの実行を前記サーバに依頼する、
処理を実行させることを特徴とする情報処理プログラム。
【請求項4】
互いに接続された複数の制御ノードと、前記複数の制御ノードと接続されたサーバと、を有する分散制御システムであって、
前記複数の制御ノードのそれぞれは、
割り当てられたタスクを実行する実行部と、
自装置の負荷の大きさが閾値を超えた場合、割り当てられたタスクのうちのいずれかを選択する選択部と、
前記選択部によって選択されたタスクが実行される周期の長さが閾値以下である場合、前記タスクをリアルタイム処理と判定する判定部と、
前記タスクが前記判定部によってリアルタイム処理と判定された場合、前記タスクの実行を、前記複数の制御ノードのうち自装置以外の制御ノードに依頼し、前記タスクが前記判定部によってリアルタイム処理と判定されなかった場合、前記タスクの実行を前記サーバに依頼する依頼部と、
を有することを特徴とする分散制御システム。
【請求項5】
前記複数の制御ノードは、アプリケーションのプログラムを記憶し、
前記実行部は、割り当てられたタスクであって、前記プログラムに従った演算を含むタスクを実行する
ことを特徴とする請求項に記載の分散制御システム。