JP3787359B2 - Distributed control system and control method of distributed control system - Google Patents
Distributed control system and control method of distributed control system Download PDFInfo
- Publication number
- JP3787359B2 JP3787359B2 JP53160696A JP53160696A JP3787359B2 JP 3787359 B2 JP3787359 B2 JP 3787359B2 JP 53160696 A JP53160696 A JP 53160696A JP 53160696 A JP53160696 A JP 53160696A JP 3787359 B2 JP3787359 B2 JP 3787359B2
- Authority
- JP
- Japan
- Prior art keywords
- task
- controller
- executed
- controllers
- load factor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
Description
発明の属する技術分野
本発明はネットワークに複数のコントローラとI/O装置が接続された、水平分散アーキテクチャの制御システムにおいて、各コントローラのタスク実行方式に関する。
従来の技術
ネットワークに複数のコントローラとI/O装置が接続された制御システムにおける各コントローラのタスク実行に関する従来手法としては、コントローラのそれぞれが実行するタスクをあらかじめ決定し、各コントローラは割当てられたタスクに対応したプログラムを固定的に実行する方法であった。
このとき信頼性を高める手法としては、各コントローラを多重化することにより、コントローラの出力を高信頼化したり、あるコントローラが動作不良をおこしたときのバックアップを可能にする方法があった。またコントローラの故障に伴うシステムのダウンタイムを最小化する目的で、数台のコントローラを一台のコントローラでバックアップする手法もあった。
各コントローラを協調動作させる手法としては、特開平5−342303号に記載されているように、コントローラのいそがしさの情報を伝える母線でコントローラ間を接続し、母線から得られる情報をもとに、いそがしいコントローラからそうでないコントローラにタスクの受け渡しをする方法があった。
発明が解決しようとする課題
上記従来技術には、次のような問題点があった。まずコントローラの実行タスクが固定された方式の場合、あるタスクはあらかじめ定められた特定のコントローラでしか実行できないため、そのコントローラが故障した場合に実行できないタスクが生じ、システム全体の動作に不都合が発生していた。これを回避するためにコントローラを多重化したり、バックアップ用のコントローラを備えた構成では、システムの動作は継続できるもののシステムが高価格となる問題があった。さらにこれらの手法では、信頼性の観点から各コントローラの負荷率の裕度を十分に取っておく必要があるため、平均的な負荷率が低くなり、結果的に必要以上の台数のコントローラを備えた高価格なシステムとなっていた。またコントローラの負荷率が不均一となり、極めて負荷率の低いコントローラがあることが無駄になる場合もあった。
タスクの受け渡しをコントローラ間で行う従来技術では、あるタスクが発生した時点でこれを実行するコントローラが決定されるため、この処理がオーバヘッドとなり、タスクの実行終了までの応答時間が長くなるため、制御システムの性能が低下する問題があった。
課題を解決するための手段
上記問題点は、以下の技術的手段により解決される。
まず、制御システムを安価で高信頼化する目的に関しては、制御対象の状態を取り込み、あらかじめ備えられたタスクを実行することにより決定された信号を該制御対象に出力することを繰り返すコントローラを複数備えるとともに、該複数のコントローラがネットワークで接続された分散制御システムにおいて、前記制御対象のタスクの起動関係を格納し、該タスクの起動関係に関する情報と該コントローラで現在実行中のタスクに関する情報に基づいて近々実行順序の来るタスクを特定するシステムシミュレータと、前記複数のコントローラより前記システムシミュレータにより前記特定されたタスクを実行するコントローラを決定するタスクブローカとを備えることにより解決される。
同様の目的は、コントローラのそれぞれにタスクを一括して格納し、各タスクがタスクブローカからの指示により選択的に起動される構成とすることによっても解決される。
さらに制御システムを高信頼化する目的に関しては、コントローラの異常を検知し、対応した処理の実行をシステムシミュレータとタスクブローカに指示する異常検知・処理手段を設けることにより実現される。
タスク格納手段には、コントローラが実行するタスクがロードモジュールの形で、一括してタスク毎に格納されている。システムシミュレータはタスクの起動関係を保持しており、コントローラから取り込んだ情報を基に現在稼働中のタスクを特定し、さらに各コントローラの負荷率のトレンドを特定する。タスクブローカはシステムシミュレータを起動し、次にコントローラで起動されるべきタスク、および各コントローラの負荷率を把握した後、それぞれのタスクを実行するコントローラを決定する。さらにタスクをいつまでにコントローラにダウンロードすればよいかを決定する。ネットワークスケジューラはネットワークのトラフィックを把握した後、各タスクを負荷分散装置からコントローラにダウンロードするタイミングを決定する。そして決定されたタイミングで、ロードモジュールを該当するコントローラにダウンロードする。
またコントローラのそれぞれにタスクを一括して格納する構成とした場合には、同様の処理の後、負荷分散装置からタスクの起動指令のみがネットワークを介してコントローラに伝えられる。コントローラではタスクブローカからの指示にしたがってタスクを順次起動する。
さらにどちらの構成においても、異常検知・処理手段はコントローラに異常が発生したことを検知すると、該当するコントローラが実行していたタスクを他のコントローラに振り分けるべく、システムシミュレータとタスクブローカを起動する。タスクブローカは、異常なコントローラが実行していたタスクの実行優先順位を最大に設定したうえで、システムシミュレータ出力にしたがって正常なコントローラに割当てるタスクを決定する。
発明の実施の形態
以下、本発明の実施例を図にしたがって詳細に説明する。第1図に、本発明が適用される負荷分散装置100の構成、および負荷分散装置100が用いられる制御システムの構成を示す。負荷分散装置100は、システムシミュレータ101,タスクブローカ102,タスク格納手段103,ネットワークスケジューラ104,通信I/F105,ユーザがタスクの内容を入力したりシステムシミュレータ110のパラメータをセットしたりする入力手段120,負荷分散装置が取り込んだ信号や演算内容を表示する出力手段121から構成される。負荷分散装置100は、コントローラ131〜133,I/O141〜143とともにネットワーク130に接続され、これらと信号の授受を行う。コントローラ131〜133は、制御対象150の状態をI/O141〜143,ネットワーク130を介して取り込み、適当な制御演算の後、制御対象を動作させる信号をネットワーク130I/O141〜143を経由して出力する。
次に負荷分散装置100の全体の構成を説明し、その後、各部の動作を詳細に説明する。システムシミュレータ101は、コントローラシミュレータ110とタスクシミュレータ111からなり、コントローラシミュレータ110は各コントローラの現行の負荷率を取り込み、さらに後述するタスクシミュレータ111により近未来に実行終了となるタスクの負荷分を差し引くことにより、負荷率のトレンドを予測する。またタスクシミュレータ111は、コントローラ131〜133が実行するタスクの起動関係を格納しており、通信I/F105を介して取り込んだ現在起動中のタスクに関する情報を基に、タスクブローカ102の指示により、近未来に実行タイミングが来るタスクを時系列に抽出する。タスクブローカ102は、システム管理手段112,起動タスク選定手段113,コントローラ選定手段114からなる。システム管理手段112は、通信I/F105を介してコントローラ131〜133が実行したタスクが正常に終了したかどうかを管理するとともに、起動タスク選定手段113に対して周期的に起動をかける。起動タスク選定手段113はタスクシミュレータ111を起動し、近々に実行タイミングが来るタスクを抽出した後、コントローラ選定手段114を起動する。コントローラ選定手段114はコントローラシミュレータ110を起動し、各コントローラの現在の負荷率および負荷率のトレンドを検出した後、抽出したタスクに対して、タスクの実行を行うコントローラの選定を行う。システム管理手段112は、この結果を受けてネットワークスケジューラ104を起動する。ネットワークスケジューラ104は、ネットワーク130のトラフィックを通信I/F105を介して検出したうえで、各タスクのダウンロードのタイミングを決定する。そして決定されたタイミングでタスク格納手段103から、所定のタスクを抽出した後、ネットワーク130を介して割当てられたコントローラ131〜133にダウンロードする。ダウンロードされたタスクは実行タイミングが来るのを待ってコントローラ131〜133で実行され、実行後コントローラ131〜133はタスクが正常に終了したかどうかをシステム管理手段112に送信する。実行後のタスクは、必要に応じてタスク格納手段103に返送されたり、このタスクを次回実行するのに必要な情報のみがタスク格納手段103に返送される。また単に廃棄してもよい。
次に各部の動作を詳細に説明する。第2図に制御対象150の一例として、制御対象が熱間圧延プラントである場合の例を示す。第2図に示したのは熱間圧延プラントの一部で、補助ロール211により運ばれる鋼板220が、大雑把な圧延を行う粗仕上げプロセス200,最終的な圧延を行う仕上げプロセス201でそれぞれ加工を受けた後、冷却プロセス202で冷やされ、ダウンコイラ203に巻き取られる。本実施例で、粗仕上げプロセス200は2つの仕上げスタンド204,205からなり、各スタンドはロール206により鋼板の圧延を行う。同様に仕上げプロセス201は複数のスタンド207〜208からなり、ロール209が運ばれてくる鋼板220を圧延する。また冷却プロセス202は水を噴射する多数のノズル210からなり、鋼板221を700〜900℃程度から400〜600℃程度に冷却する。制御対象150を制御する信号は、コントローラ131〜133における演算により生成され、これらはI/O143,ネットワーク130を介して出力される。
次に本発明で実現された負荷分散装置100の構成について詳細に説明する。第3図にタスク格納手段103の構成を示す。図は制御対象150を制御する処理が合計n個のタスクで構成された例を示している。各タスクの内容として、たとえばタスク1は1番目の仕上げスタンドの定常時のロール速度を計算することと対応し、以下、タスク2,タスク3,…,タスクi,…,タスクnに対応して、図に記載された内容が割付けられている。これらのタスクは、コントローラ131〜133でそのまま実行可能なロードモジュールの形で格納されている。
第4図はシステムシミュレータ101に備えられたコントローラシミュレータ110が実行するアルゴリズムである。コントローラシミュレータ110はS4−1で、常時、周期的に各コントローラ131〜133の負荷率を通信I/F105を介して検出し、把握している。第5図にコントローラ131〜133の構成の一例を示す。NCP(Network Control Processor)510はネットワーク130と接続され、ここから得た信号をコントローラ内のローカルバス515を経由して、PM(Program Memory)511やDM(Data Memory)513へ伝送する。CPU512はSM(System Memory)514にしたがって動作し、PM511に書かれているプログラムを解読した後、DM513やNCP510と必要なデータを交換しながら制御を実行する。第6図にCPU512の動作モードの一例と負荷率の算出するのに必要な所量の計測方法を示す。図でCPU512の動作モードは主として、タスクの起動を待っている状態、ウォッチドグタイマをリセットする等のバックグラウンドタスクを実行している状態、およびPM511に書かれたタスクを実行している状態の3通りにより構成される。図ではバックグラウンドタスクを実行した後タスク1を実行し、以下タスク待ち状態を経ながら次々とタスクを実行していく状態を示している。このとき得られた各タスクの実行時間t1〜tn、およびトータルのタスク実行時間T0を用いて、負荷率Lratioは例えば数式1の形で計算され、通信I/F105を介して負荷分散装置100に送信される。
t1〜tnおよびT0は、これらを計測する専用のハードウェアを設けて測定してもよいし、バックグラウンドタスクの中でソフトウェア的に計測してもよい。S4−1では送られてくる各コントローラ131〜133の負荷率Lratioの値を、逐次把握している。
コントローラシミュレータではS4−1を実行中に、タスクブローカ102からの指示によりS4−2およびS4−3が起動される。すなわちS4−2で、各コントローラ131〜133の現在の負荷率の値から負荷率の裕度を計算する。負荷率の裕度は、コントローラ131〜133の負荷能力から現在の負荷分を差し引き、さらにそれぞれのコントローラ131〜133に固定的に割付けられているタスクの負荷分を差し引いた値で与えられる。固定的に割付けられているタスクとしては、鋼板220の張力異常のときにロール速度を下げるために起動されるタスク等が考えられる。このように突発的に発生するため、事前に実行タイミングが設定できないタスクについては、コントローラ131〜133のいずれかあるいは複数に常駐させることになる。固定的に割付けられているタスクは突発的に実行されることが予想されるため、負荷率の裕度からは差し引くことになる。さらにS4−3でタスクシミュレータ111を起動し、後述する演算により現在起動中のタスクの中から近々終了するタスクを予測し、新たに実行開始となるタスクがないと仮定した場合の、各コントローラの負荷率のトレンドを予測する。S4−4で演算結果をタスクブローカ102に返送する。
第7図にタスクシミュレータ111が実行するアルゴリズムを示す。タスクシミュレータ111は、例えば第8図のような形で制御対象150で実行される各タスクの起動関係を格納している。第8図の内容はシステム構築時の運転方案を基に、ユーザが入力手段120から入力することにより構築される。またプログラミング言語が制御用言語として普及しつつあるSFC(Sequential Functional Chart)や高級言語であれば、ユーザのプログラムから自動的に編集することもできる。ここで第8図は、各タスクを同期ゲート804を介して有向枝803で接続した構成となっており、接続関係がタスクの起動・終了関係を示している。図中に黒丸で示したトークンは、現在稼働中のタスクを意味しており、図ではタスク11,タスク19,タスク18,タスク5が実行状態にあることを意味している。またタスクとしては、タスク102,タスク122,タスク125のような、タスク切り換えの同期管理を行う入力待ちタスク801と、制御演算結果を制御対象へ出力したり制御指令の算出を行う演算タスク802の2種類が定義された例を示している。第6図が示しているタスクの接続関係は、まず並列して実行されるタスク24とタスク51の実行が終了した後、タスク112で鋼板の減速タイミングを検知すると、タスク11とタスク19が並行して起動される。さらにタスク102で鋼板抜けを検知したところで、タスク11とタスク19の処理を終了する。
さらにこのタイミングまでにタスク18とタスク5を終了しておき、タスク125で鋼板の噛み込みを検知したタイミングでコントローラが実行すべきタスクが次へ遷移し、タスク71とタスク85が同時に起動される。第7図のS7−1では、通信I/F105を介して制御対象150およびコントローラ131〜133の現在の状態を逐次把握し、S7−2でトークン移行の要否を判定する。コントローラ131〜133で実行中のタスクが遷移した場合にはS7−3でトークン移行処理を行う。タスクシミュレータ111は、S7−1〜7−3の処理を常時繰り返し、第8図のトークンの配置を遷移していく。さらにタスクブローカ102からの指令によりS7−4とS7−5の処理が起動される。まずS7−4で、第8図に示したタスクの起動関係と現状のトークン分布を基に、次にトークンが移行されるべきタスクを時系列に抽出する。たとえば第8図の場合には、まずタスク125が抽出され、次にタスク71とタスク85が抽出される。次にS7−5で抽出結果をタスクブローカ102に返信し、通常の処理へ復帰する。またコントローラシミュレータ110からの指令によりS7−6〜S7−7が起動される。S7−6では、現在トークンのあるタスクを抽出し、これらのタスクがいつ終了するかを算出する。第8図の例では、タスク11,タスク19,タスク18,タスク5が抽出される。ここでタスク11,タスク19は鋼板の抜けが検知されるまで周期的に繰り返し実行されるため、終了タイミングを正確に算出するのは困難であるが、タスク18,タスク5については指令値を一回算出した後終了となるため、終了タイミングはタスクの演算量で機械的に算出できる。したがってタスク18,タスク5についてはタスクの演算量をロードモジュールの大きさ等で算出する。またタスク11,タスク19については、鋼板の抜けるタイミングをラインの運転情報や過去の実績から見積ることにより、算出する。S7−7で算出する結果をコントローラシミュレータ110に返信する。
次にタスクブローカ102の動作アルゴリズムを示す。第9図にシステム管理手段112の実行内容を示す。システム管理手段112は通常S9−1〜S9−4の処理を行い、タイマ割込等により周期的にS9−5〜S9−8の処理を行う。まずS9−1で、新たなタスクの終了があったかどうかを、コントローラ131〜133からのタスク終了情報の送付の有無で判定する。タスク終了情報は、コントローラ131〜133でタスクが終了することに対応してタスクブローカへ送られ、少なくとも、コントローラ131〜133で実行されたタスクが正常に終了したか否か、異常があった場合にはその内容、さらに必要に応じて次回に引き継ぐべき情報、タスクの実行に要した時間等が記載されている。S9−2ではタスクの終了情報の解釈を行う。S9−3で、解釈の結果タスクが正常に終了したかどうかを判定する。タスクが異常終了した場合には、S9−4で出力手段121に異常があったこと、およびタスク終了情報から得た異常情報を表示し、S9−1に復帰する。S9−1〜9−4を実行中にタイマ割込等でS9−5〜S9−8の処理が起動された場合には、処理をS9−5に遷移する。まずS9−5で起動タスク選定手段113を起動し、現時点から近未来にかけて実行が予定されているタスクの抽出を行った後、S9−6で処理の終了を判定し、終了していればS9−7に処理を移行する。処理の終了は所定の個数のタスクが抽出できたことや、現在から所定の時間後までに実行される可能性のあるタスクをすべて抽出できたことで判定する。次にS9−7で、コントローラ選定手段114を起動し、抽出したタスクを実行するコントローラを決定する。S9−8で抽出したすべてのタスクに対してコントローラの割付けが終わったことを判定した後、S9−1〜S9−4の通常処理へ復帰する。
次に起動タスク選定手段113とコントローラ選定手段114で実行される処理について詳細に説明する。第10図に起動タスク選定手段113が実行するアルゴリズムを示す。まずS10−1でタスクシミュレータ111を起動し、直近に実行タイミングが来るタスクを抽出する。タスクシミュレータ111では、第7図で示したアルゴリズムにしたがってタスクの抽出を行う。S10−2で新たに抽出したタスクがあったかどうかを判定し、あった場合には、S10−3で各タスクに実行タイミングの順番により優先順位を付ける。
第11図にコントローラ選定手段114が実行する処理を示す。最初にS11−1でコントローラシミュレータ110を起動し、各コントローラの現在の負荷率および負荷率のトレンドを検出する。次にS11−2で起動タスク選定手段113の出力を受け取り、優先順位の高いタスクから順に、現在の負荷率の低いコントローラに割当てて行く。また負荷率のトレンドから、近未来に負荷率が下がると予想されるコントローラに対しては、その時点で起動されるタスクを現在の負荷率に関係なく割付けてもよい。
ネットワークスケジューラ104では、タスクブローカ113の演算により得られた直近に実行すべきタスクと実行タイミング、およびこれらが実行されるコントローラの情報を基に、これらをコントローラ131〜133にダウンロードするタイミングを設定する。第12図にネットワークスケジューラ104が実行する処理のフローチャートを示す。まずS12−1で、新たにコントローラに割付けられたタスクについて、ダウンロード開始時刻のリミットを設定する。ダウンロードの終了リミットはタスクの実行開始に間に合うことで、開始リミットは終了リミットからダウンロードに必要な時間だけ遡った時刻になる。実際にはコントローラ131〜133は、第6図のタスク待ちの間を利用して順次ロードモジュールを受け付けていくため、ローディングに必要な時間に、ローディング先のコントローラがタスク実行に従事している時間を加算して決定される。次にS12−2でネットワークのトラフィックを検出し、ダウンロード開始時刻のリミットまでのどのタイミングでタスクをコントローラ131〜133にダウンロードすれば、ネットワークのトラフィックを過大にすることなくダウンロードできるかを判定する。S12−3でこれらの結果を基に、各タスクのダウンロードのタイミングを設定する。
次に本発明の第2の実施例として、各コントローラ131〜133にTM(タスクメモリ)を設けた構成について説明する。実施例ではコントローラ131を例に説明する。TM1301はPM511に代わって設けられており、同様にローカルバス515に接続される。CPU512はTM1301に書かれたプログラムを以下に示す手法で選択的に実行する。TM1301には、コントローラ131〜133で実行されるタスクが一括して蓄えられている。第14図にTM1301の構成を示す。格納されている内容はタスク格納手段と同様で、タスク1〜タスクnがコントローラ131〜133で実行可能な形で格納されている。負荷分散装置100は第1の実施例と同様に動作するが、各タスクがすでにコントローラ131〜133に格納されているため、負荷分散装置100からタスクに対応したロードモジュールをダウンロードする必要はない。したがってタスクブローカ102で起動すべきタスクの抽出と、抽出されたタスクの実行を行うコントローラの選定が終了した後には、これらを示す情報を該当するコントローラに送信する。第15図にこの情報をコード化して送信する場合の例を示す。第15図のタスク割当てコード1501は、一例としてコントローラ番号,タスク番号,起動タイミングを含んでいる。コントローラ番号はタスクが実行されるコントローラを特定する情報で、同時にタスク割当てコードの送信先を示す。タスク番号はTM1301の中のどのタスクを実行するかを示す情報である。また起動タイミングは、タスクの実行の開始がいつであるかを特定する。この他にも必要に応じてタスクの優先順位や、前回実行されたときの終了情報等を付加してもよい。タスク割当てコード1501は、コントローラ番号で示されたコントローラのみに送付してもよいし、コントローラ131〜133のすべてに送付してもよい。
本実施例ではコントローラ131〜133のそれぞれが、実行すべきタスクをすべて格納している方式としたが、同一のタスクが適当な複数のコントローラに格納されていれば同様の効果を得ることが可能となる。したがってタスク毎に格納するコントローラを取捨選択する方式も考えられる。
次に本発明の第3の実施例として、コントローラ131〜133のうち1台もしくは複数台が故障した場合に、コントローラが実行するタスクを再構成することにより、制御対象150への制御を継続するアルゴリズムを示す。第16図は負荷分散装置100にコントローラ131〜133の異常を検知し、対応した処置を行う異常検知・処理手段1601を設けてこれらを行う場合の実施例である。図において異常検知・処理手段1601は、通信I/F105を介してコントローラ131〜133から得られる信号によりコントローラに異常が発生したことを検知する。検知の手法としては、コントローラ131〜133が自己診断により異常の発生を知り、これを自主的に負荷分散装置100に知らせる方法、異常検知・処理手段1601から各コントローラ131〜133に対して定期的にアライブ確認信号を出力し、これに対する応答を基に負荷分散装置100の側で異常の発生を知る方法等、種々考えられる。異常を検知すると、異常検知・処理手段1401は異常処理を行う。ここではコントローラ131が故障した場合の例を示す。第17図にこのときのアルゴリズムを示す。S17−1で異常の発生を検知すると、S17−2でコントローラシミュレータ110におけるコントローラ131の負荷率を100%に固定した後、S17−3でタスクブローカ102を起動する。タスクブローカ102の処理としては、基本的には第1および第2の実施例と同様のアルゴリズムを実行してもよいが、異常発生時のタスク切り換えの応答を高めるために、以下に示す手法で行うことが考えられる。第18図に異常検知・処理手段1401が設けられた場合に、起動タスク選定手段113が実行する処理アルゴリズムを示す。まずS18−1でタスクシミュレータ111を起動し、直近に実行タイミングが来るタスクを抽出する。タスクシミュレータ111では、第7図で示したアルゴリズムにしたがってタスクの抽出を行う。S18−2で新たに抽出したタスクがあったかどうかを判定し、あった場合にはS18−3で各タスクに実行タイミングの順番により優先順位を付ける。さらにS18−4で、以上の演算結果を起動タスク格納手段1602に出力する。起動タスク格納手段1602を設けたことで、コントローラ131〜133に異常が検知されたとき、起動タスク選定手段113を再度起動する必要はなく、単に起動タスク格納手段1402を検索するのみでよい。したがってタスクを正常なコントローラに再分配する処理が簡略化される。
第19図に、異常検知・処理手段1401に起動された後にシステム管理手段112が実行するアルゴリズムを示す。すなわちS19−1で起動タスク格納手段1602から起動すべきタスクを抽出する。次にS19−2でコントローラ131が実行していたタスクに最大の優先順位を付与する。この後S19−3で、コントローラ選定手段114を起動する。コントローラ選定手段114は第11図のアルゴリズムにしたがってタスクとコントローラの割付けを行う。割付けが終了したらS19−4で、割付け結果を第15図に示したタスク割当てコードの形で各コントローラ132〜133へ送付する。このとき最大の優先順位のタスクは即座に実行すべき起動タイミングが設定してある。各コントローラ132〜133は送られてきたタスクを、起動タイミングにしたがって順次実行していく。以上のようにして、コントローラ131のタスクはコントローラ132〜133に分配され、制御対象150に対する制御が継続される。さらにその他のコントローラが故障した場合であっても、正常なコントローラの演算能力の総和を超えなければ、制御の継続が可能となる。
各コントローラのMTBF(Mean Time Between Failure)を外的ノイズによる誤動作を含めて10-4/h、ダウンタイムの平均値を1hと仮定すると、システムの信頼性および価格メリットは次のように定量化できる。価格メリットはコントローラの台数で評価する。従来のシステムの第1の例として10台のコントローラが負荷率60%で稼働しているシステム、本発明で実現された同様のシステム、従来システムの第2の例として(2×10)台のコントローラからなる2重系のシステムを考える。従来システムの第1の例では、10台のコントローラのいずれか一台が故障するとシステムが完全な形で動作できないため、システムの故障率はコントローラ単体の故障率と一致し、10-4/hとなる。これに対して各コントローラは暫定的に80%の負荷率で動作可能とすると、本発明で実現されたシステムでは、第1及び第2の実施例で記載したダイナミックな負荷の割付けにより、制御が継続可能なコントローラの台数は、
80×10/(60×10)=7.5 …(数式2)
となる。従って3台以上のコントローラの同時故障が起こった場合にのみシステム故障となるため、システムの故障率は近似的に、
10C3(10-4)3=1.2×10-10 …(数式3)
となり、同一のコントローラ数で信頼性が大幅に向上する。また、従来システムの第2の例では、20台のコントローラの特定の2台に同時に故障が発生した場合にシステム故障となるため、システムの故障率は、
10×(10-4)2=1.0×10-7 …(数式4)
となる。本発明では従来システムの第2の例に比べ、半分の台数のコントローラで高い信頼性のシステムを構築できる。本発明で実現されたシステムの故障率は、コントローラの台数をN,コントローラの故障率をp,ダウンタイムの平均値をT,通常運転時の平均負荷率をf1,瞬時的に実行可能な負荷率をf2とすると、一般的には、
NC[f2/f1](pT)[f2/f1] …(数式5)
で表わされる。ただし[α]はαの整数部を示す。
本実施例では、コントローラ131〜133にTM1301を設けた第2の実施例の構成を例に、異常検知・処理手段1601の処理を説明したが、第1の実施例に対しても同様の形態で実現できる。
以上の実施例では、制御システムの中に負荷分散装置100を専用に設ける構成としたが、プログラミング装置やシステム監視を行う装置と兼用し、安価にシステムを構築することも考えられる。また負荷分散装置100は、ワークステーションやサーバ,パソコン等の汎用の計算機を用いて容易に実現できる。さらにコントローラの1つあるいは複数にシステムシミュレータ101とタスクブローカ102を備えることにより、負荷分散装置100の処理を行わせることも可能である。
発明の効果
本発明によれば、コントローラが一台もしくは数台故障したとしても、他のコントローラが実行タスクの切り換えを高速に行い、処理を代替するため、制御が停止することはない。したがってシステムダウンを回避した高信頼な制御システムが実現される。またコントローラの負荷率を均一化できるため、過大な負荷率で動作するコントローラはなくなり、この点でもシステムを高信頼化できる。
またコントローラの処理の裕度が低く設定でき、したがって平均負荷率を高くできるため、全体としてコントローラの台数を削減した安価なシステム構築が可能となる。またコントローラ毎の多重化を行わなくてもこれと同等の信頼性が得られるため、同様にシステムを安価にできる。
さらにシステム構築時にコントローラを必要以上に備えておき、故障した場合には、このコントローラにタスクを割当てない処理を行うことにより、システムの動作を継続させることも可能となる。これによりコントローラの交換やこれにともなう保守作業を省略でき、システムのランニングコストが低減できる。
またシステムシミュレーションで起動間近と判定されたタスクが、コントローラで実行準備を整えておき、起動タイミングになると即座に実行開始となるため、タスクの実行に要するオーバヘッドを最小化できる。したがって従来の、コントローラが実行するタスクを固定的に割付け、これらをコントローラに常駐させる方式と同等の性能を得ることができ、システム性能が低下することはない。
【図面の簡単な説明】
第1図は本発明において実現された負荷分散装置の構成図である。
第2図は制御対象の構成図である。
第3図は本発明のタスク格納手段の構成である。
第4図は本発明のコントローラシミュレータが実行するアルゴリズムである。
第5図はコントローラの構成図である。
第6図はコントローラのCPUの動作の一例である。
第7図は発明のタスクシミュレータが実行するアルゴリズムである。
第8図は本発明のタスクシミュレータが保持するタスクの起動関係である。
第9図は本発明のシステム管理手段が実行するアルゴリズムである。
第10図は本発明の起動タスク選定手段が実行するアルゴリズムである。
第11図は本発明のコントローラ選定手段が実行するアルゴリズムである。
第12図はネットワークスケジューラが実行するアルゴリズムである。
第13図はコントローラにタスクメモリを設けた構成図である。
第14図はタスクメモリの構成である。
第15図はタスク割当てコードのフォーマットである。
第16図は異常検知・処理手段を設けた負荷分散装置の構成図である。
第17図は異常検知・処理手段が実行するアルゴリズムである。
第18図は異常検知・処理手段を設けた場合の起動タスク選定手段が実行するアルゴリズムである。
第19図は異常検知・処理手段に起動された後にシステム管理手段が実行するアルゴリズムである。
符号の説明
101…システムシミュレータ、102…タスクブローカ、103…タスク格納手段、130…ネットワーク、131,132,133…コントローラ。TECHNICAL FIELD OF THE INVENTION
The present invention relates to a task execution method for each controller in a horizontal distributed architecture control system in which a plurality of controllers and I / O devices are connected to a network.
Conventional technology
As a conventional method for task execution of each controller in a control system in which a plurality of controllers and I / O devices are connected to a network, a task to be executed by each controller is determined in advance, and each controller corresponds to an assigned task. It was a way to run the program fixedly.
At this time, as a technique for improving the reliability, there is a method of making the controller output highly reliable by multiplexing each controller or enabling backup when a certain controller malfunctions. There was also a method of backing up several controllers with one controller in order to minimize system downtime due to controller failure.
As a method of operating each controller in a coordinated manner, as described in Japanese Patent Laid-Open No. 5-342303, the controllers are connected with a bus that conveys information about the urgency of the controller, and based on information obtained from the bus, There was a way to pass tasks from a busy controller to a non-busy controller.
Problems to be solved by the invention
The above prior art has the following problems. First, in the case where the execution task of the controller is fixed, a certain task can be executed only by a specific controller that is determined in advance. Therefore, if the controller fails, a task that cannot be executed occurs, resulting in inconvenience to the operation of the entire system. Was. In order to avoid this, in the configuration in which the controllers are multiplexed or the backup controller is provided, the system operation can be continued, but the system becomes expensive. Furthermore, in these methods, it is necessary to keep a sufficient margin of the load factor of each controller from the viewpoint of reliability, so the average load factor becomes low, resulting in having more controllers than necessary. It was an expensive system. In addition, the load factor of the controller becomes uneven, and it may be useless to have a controller with a very low load factor.
In the conventional technology in which tasks are transferred between controllers, the controller that executes a task is determined when a certain task occurs. This process is overhead, and the response time until the task execution ends is increased. There was a problem that system performance deteriorated.
Means for solving the problem
The above problems are solved by the following technical means.
First, for the purpose of making the control system inexpensive and highly reliable, a plurality of controllers are provided that repeatedly capture the state of the control target and output a signal determined by executing a task provided in advance to the control target. In addition, in a distributed control system in which the plurality of controllers are connected via a network, the activation relationship of the task to be controlled is stored, and based on information regarding the activation relationship of the task and information regarding a task currently being executed by the controller The problem is solved by including a system simulator that identifies a task that is about to be executed soon, and a task broker that determines a controller that executes the identified task by the system simulator from the plurality of controllers.
The same object can be solved by storing the tasks in each controller in a batch and selectively starting each task according to an instruction from the task broker.
Further, the purpose of making the control system highly reliable is realized by providing an abnormality detection / processing means for detecting an abnormality of the controller and instructing the system simulator and the task broker to execute the corresponding processing.
In the task storage means, tasks executed by the controller are collectively stored for each task in the form of a load module. The system simulator holds task activation relationships, identifies the currently active task based on the information fetched from the controller, and identifies the trend of the load factor of each controller. The task broker activates the system simulator, and then determines the controller to execute each task after grasping the task to be activated by the controller and the load factor of each controller. In addition, determine when the task should be downloaded to the controller. After grasping the network traffic, the network scheduler determines the timing for downloading each task from the load balancer to the controller. Then, the load module is downloaded to the corresponding controller at the determined timing.
Further, in a configuration in which tasks are collectively stored in each controller, only the task activation command is transmitted from the load balancer to the controller via the network after the same processing. The controller sequentially starts tasks according to instructions from the task broker.
Furthermore, in either configuration, when the abnormality detection / processing means detects that an abnormality has occurred in the controller, the system simulator and the task broker are activated in order to distribute the task being executed by the corresponding controller to the other controller. The task broker determines the task to be assigned to the normal controller according to the system simulator output, after setting the execution priority of the task executed by the abnormal controller to the maximum.
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. FIG. 1 shows a configuration of a
Next, the overall configuration of the
Next, the operation of each unit will be described in detail. FIG. 2 shows an example in which the control object is a hot rolling plant as an example of the
Next, the configuration of the
FIG. 4 shows an algorithm executed by the
t1-tn and T 0 May be measured by providing dedicated hardware for measuring them, or may be measured by software in a background task. In S4-1, the load factor L of each controller 131-133 sent ratio The value of is sequentially grasped.
In the controller simulator, S4-2 and S4-3 are activated by an instruction from the
FIG. 7 shows an algorithm executed by the task simulator 111. The task simulator 111 stores the activation relationship of each task executed on the
Furthermore, the task 18 and the task 5 are finished by this timing, and the task to be executed by the controller is transitioned to the next at the timing when the engagement of the steel sheet is detected in the task 125, and the task 71 and the task 85 are started simultaneously. . In S7-1 of FIG. 7, the current state of the
Next, an operation algorithm of the
Next, processing executed by the activated
FIG. 11 shows a process executed by the
In the
Next, as a second embodiment of the present invention, a configuration in which TMs (task memories) are provided in the
In this embodiment, the
Next, as a third embodiment of the present invention, when one or more of the
FIG. 19 shows an algorithm executed by the
10 MTBF (Mean Time Between Failure) of each controller including malfunction due to external noise -Four Assuming that the average downtime is 1h, the reliability and price merit of the system can be quantified as follows. The price merit is evaluated by the number of controllers. As a first example of a conventional system, a system in which ten controllers are operating at a load factor of 60%, a similar system realized by the present invention, and a second example of a conventional system (2 × 10) Consider a dual system consisting of controllers. In the first example of the conventional system, if any one of the 10 controllers fails, the system cannot operate completely. Therefore, the failure rate of the system matches the failure rate of the single controller. -Four / H. On the other hand, if each controller is tentatively operable at a load factor of 80%, in the system realized by the present invention, control can be performed by the dynamic load allocation described in the first and second embodiments. The number of controllers that can be continued is
80 × 10 / (60 × 10) = 7.5 (Expression 2)
It becomes. Therefore, since system failure occurs only when three or more controllers fail simultaneously, the system failure rate is approximately
Ten C Three (10 -Four ) Three = 1.2 × 10 -Ten ... (Formula 3)
Thus, reliability is greatly improved with the same number of controllers. In the second example of the conventional system, a system failure occurs when a failure occurs in two specific 20 controllers at the same time.
10 x (10 -Four ) 2 = 1.0 × 10 -7 ... (Formula 4)
It becomes. In the present invention, a highly reliable system can be constructed with half the number of controllers as compared with the second example of the conventional system. The failure rate of the system realized by the present invention is that the number of controllers is N, the failure rate of the controller is p, the average value of downtime is T, the average load rate during normal operation is f 1 , The load factor that can be executed instantaneously f 2 Then, in general,
N C [f2 / f1] (PT) [f2 / f1] ... (Formula 5)
It is represented by [Α] represents the integer part of α.
In the present embodiment, the processing of the abnormality detection / processing means 1601 has been described by taking the configuration of the second embodiment in which TM1301 is provided in the
In the above embodiment, the
The invention's effect
According to the present invention, even if one or several controllers fail, the control does not stop because other controllers perform switching of execution tasks at high speed and substitute processing. Therefore, a highly reliable control system that avoids system down is realized. In addition, since the load factor of the controller can be made uniform, there is no controller operating at an excessive load factor, and the system can be highly reliable in this respect as well.
In addition, since the processing margin of the controller can be set low, and thus the average load factor can be increased, it is possible to construct an inexpensive system with the total number of controllers reduced. In addition, since the same reliability can be obtained without performing multiplexing for each controller, the system can be similarly made inexpensive.
Furthermore, it is possible to continue the operation of the system by preparing a controller more than necessary at the time of system construction and performing a process in which no task is assigned to the controller if a failure occurs. As a result, replacement of the controller and maintenance work associated therewith can be omitted, and the running cost of the system can be reduced.
In addition, a task that is determined to be about to be started up by the system simulation is prepared for execution by the controller, and the execution starts immediately at the start timing, thereby minimizing the overhead required for executing the task. Therefore, it is possible to obtain the same performance as a conventional method in which tasks executed by the controller are fixedly allocated and these are made resident in the controller, and the system performance is not lowered.
[Brief description of the drawings]
FIG. 1 is a configuration diagram of a load distribution apparatus realized in the present invention.
FIG. 2 is a configuration diagram of a control target.
FIG. 3 shows the structure of the task storage means of the present invention.
FIG. 4 shows an algorithm executed by the controller simulator of the present invention.
FIG. 5 is a block diagram of the controller.
FIG. 6 shows an example of the operation of the CPU of the controller.
FIG. 7 shows an algorithm executed by the task simulator of the invention.
FIG. 8 shows task activation relationships held by the task simulator of the present invention.
FIG. 9 shows an algorithm executed by the system management means of the present invention.
FIG. 10 shows an algorithm executed by the activated task selection means of the present invention.
FIG. 11 shows an algorithm executed by the controller selection means of the present invention.
FIG. 12 shows an algorithm executed by the network scheduler.
FIG. 13 is a configuration diagram in which a task memory is provided in the controller.
FIG. 14 shows the configuration of the task memory.
FIG. 15 shows a task assignment code format.
FIG. 16 is a block diagram of a load distribution apparatus provided with abnormality detection / processing means.
FIG. 17 shows an algorithm executed by the abnormality detection / processing means.
FIG. 18 shows an algorithm executed by the activated task selection means when the abnormality detection / processing means is provided.
FIG. 19 shows an algorithm executed by the system management means after being activated by the abnormality detection / processing means.
Explanation of symbols
DESCRIPTION OF
Claims (2)
前記制御対象のタスクの起動関係を格納し、該タスクの起動関係に関する情報と該コントローラで現在実行中のタスクに関する情報に基づいて近々実行順序の来るタスクを特定するシステムシミュレータと、前記複数のコントローラより前記システムシミュレータにより前記特定されたタスクを実行するコントローラを決定するタスクブローカとを有し、
前記システムシミュレータは、各々のタスクをプロセスの進行と規定する互いの起動順序として関係づけた起動関係をタスク間を接続する有向枝で表現し、トークンの有無で該タスクが実行中であるかどうかを表現し、有向枝にしたがったトークンの遷移をトレースすることで、現在実行しているタスクを求めると共に、将来実行されるタスクを優先順位をつけて求め、前記各々のコントローラの現在の負荷率を求めると共に前記各々のコントローラの将来の負荷率を求め、前記タスクブローカは、前記求められた優先順位のうちの優先順位の高いタスクから順に、現在の負荷率及び将来負荷率が低下するコントローラに割当てることで、割当てるべきタスクと該割当てるべきタスクを実行するコントローラを決定することを特徴とする分散制御システム。A distributed control system including a plurality of controllers that repeatedly capture a state of a control target and output a signal determined by executing a task provided in advance to the control target, and the plurality of controllers are connected via a network In
A system simulator for storing a start relationship of the tasks to be controlled and identifying a task that is about to be executed in the near future based on information on the start relationship of the task and information on a task currently being executed by the controller; and the plurality of controllers A task broker that determines a controller that executes the task specified by the system simulator;
The system simulator expresses an activation relationship in which each task is defined as a mutual activation order that defines the progress of the process as a directional branch connecting the tasks, and whether the task is being executed with or without a token. By expressing whether or not and tracing the transition of the token according to the directed edge, the task currently being executed is obtained, and the task to be executed in the future is obtained with priority, and the current A load factor is obtained and a future load factor of each controller is obtained, and the task broker decreases the current load factor and the future load factor in order from the highest priority task among the obtained priority orders. by assigning a controller, dispersion and determines the controller to perform the task to apply the task and該割be assigned Your system.
前記制御対象のタスクの起動関係を格納し、該タスクの起動関係に関する情報と該コントローラで現在実行中のタスクに関する情報に基づいて近々実行順序の来るタスクを特定し、前記複数のコントローラより前記特定されたタスクを実行するコントローラを決定し、
各々のタスクをプロセスの進行と規定する互いの起動順序として関係づけた起動関係をタスク間を接続する有向枝で表現し、トークンの有無で該タスクが実行中であるかどうかを表現し、有向枝にしたがったトークンの遷移をトレースすることで、現在実行しているタスクを求めると共に、将来実行されるタスクを優先順位をつけて求め、前記各々のコントローラの現在の負荷率を求めると共に前記各々のコントローラの将来の負荷率を求め、前記求められた優先順位のうちの優先順位の高いタスクから順に、現在の負荷率及び将来負荷率が低下するコントローラに割当てることで、割当てるべきタスクと該割当てるべきタスクを実行するコントローラを決定する分散制御システムの制御方法。A distributed control system that repeatedly outputs a signal determined by capturing a state of a control target and executing a task provided in advance to the control target and controlling a plurality of controllers connected to each other via a network. In the control method,
Stores the activation relationship of the task to be controlled, identifies the task that is about to be executed in the near future based on the information regarding the activation relationship of the task and the information regarding the task currently being executed by the controller, and identifies the task from the plurality of controllers. Determine the controller that will perform the task
Representing the activation relationship in which each task is defined as the mutual activation order that defines the progress of the process as a directional branch connecting the tasks, expressing whether the task is being executed by the presence or absence of a token, By tracing the token transitions according to the directional branch, the task currently being executed is obtained, the tasks to be executed in the future are given priorities, and the current load factor of each controller is obtained. The future load factor of each controller is obtained, and the tasks to be assigned are assigned by assigning the current load factor and the controller with a lower future load factor in order from the highest priority task among the obtained priority orders. A control method of a distributed control system for determining a controller that executes a task to be assigned.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP1995/000794 WO1996033467A1 (en) | 1995-04-21 | 1995-04-21 | Distributed control system, load distribution apparatus and control method for distributed control system |
Publications (1)
Publication Number | Publication Date |
---|---|
JP3787359B2 true JP3787359B2 (en) | 2006-06-21 |
Family
ID=14125885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP53160696A Expired - Fee Related JP3787359B2 (en) | 1995-04-21 | 1995-04-21 | Distributed control system and control method of distributed control system |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP3787359B2 (en) |
WO (1) | WO1996033467A1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007257280A (en) * | 2006-03-23 | 2007-10-04 | Yokogawa Electric Corp | Distributed processing system and distributed processing method |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60237568A (en) * | 1984-05-09 | 1985-11-26 | Hitachi Ltd | Data processing system |
JP2638065B2 (en) * | 1988-05-11 | 1997-08-06 | 富士通株式会社 | Computer system |
JPH06250869A (en) * | 1993-03-01 | 1994-09-09 | Hitachi Ltd | Distributed control system |
-
1995
- 1995-04-21 WO PCT/JP1995/000794 patent/WO1996033467A1/en active Application Filing
- 1995-04-21 JP JP53160696A patent/JP3787359B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
WO1996033467A1 (en) | 1996-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109062658B (en) | Scheduling method, device, medium, equipment and system for realizing computing resource servitization | |
CN107943555B (en) | Big data storage and processing platform and big data processing method in cloud computing environment | |
CN108845884A (en) | Physical source distributing method, apparatus, computer equipment and storage medium | |
CN106843170B (en) | Method for scheduling task based on token | |
CN102360309B (en) | Scheduling system and scheduling execution method of multi-core heterogeneous system on chip | |
CN108958880B (en) | Data processing method and data processing system | |
US11520673B2 (en) | Maintenance operations based on analysis of collected data | |
CN109766180A (en) | Load-balancing method and device, calculate equipment and computing system at storage medium | |
CN109343939A (en) | A kind of distributed type assemblies and parallel computation method for scheduling task | |
CN111160873A (en) | Batch processing device and method based on distributed architecture | |
CN111488181A (en) | Task scheduling method and device, storage medium and server | |
WO2016153401A1 (en) | Methods and nodes for scheduling data processing | |
JP3787359B2 (en) | Distributed control system and control method of distributed control system | |
CN115297124A (en) | System operation and maintenance management method and device and electronic equipment | |
CN108804035A (en) | Reduce method, apparatus, computer equipment and the storage medium of IO delays | |
CN105933136B (en) | A kind of resource regulating method and system | |
CN108304254A (en) | Quick virtual machine process dispatch control method and device | |
JPH07160656A (en) | External interruption control method | |
CN113590281B (en) | Distributed parallel fuzzy test method and system based on dynamic centralized scheduling | |
CN114115140B (en) | System and method for synchronizing data between multi-core main controller and main and auxiliary multi-core controllers | |
JP3770366B2 (en) | Development environment device for control program, control device for executing control program, and recording medium for program for realizing the same | |
CN110221902A (en) | A kind of data transmission method and relevant apparatus based on virtual machine | |
JPH06348664A (en) | Controller for computer system constituted of plural cpus provided with different instruction characteristics | |
CN113515356B (en) | Lightweight distributed resource management and task scheduler and method | |
CN112817732B (en) | Stream data processing method and system suitable for cloud-edge collaborative multi-data-center scene |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040727 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040921 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050517 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050713 |
|
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: 20060307 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060327 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |