JP2013168090A - マルチコントローラシステム、制御方法及びプログラム - Google Patents

マルチコントローラシステム、制御方法及びプログラム Download PDF

Info

Publication number
JP2013168090A
JP2013168090A JP2012032274A JP2012032274A JP2013168090A JP 2013168090 A JP2013168090 A JP 2013168090A JP 2012032274 A JP2012032274 A JP 2012032274A JP 2012032274 A JP2012032274 A JP 2012032274A JP 2013168090 A JP2013168090 A JP 2013168090A
Authority
JP
Japan
Prior art keywords
controller
program
information
plc
abnormality
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2012032274A
Other languages
English (en)
Inventor
Shutaro Hata
秀太朗 畑
Naoki Hara
直樹 原
Noboru Onozato
登 小野里
Nariaki Kawasumi
成章 川澄
Nobuyuki Nakamura
信幸 中村
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2012032274A priority Critical patent/JP2013168090A/ja
Publication of JP2013168090A publication Critical patent/JP2013168090A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Safety Devices In Control Systems (AREA)

Abstract

【課題】複数のPLCと複数のI/O装置間の接続が固定されたシステムであっても、複数のコントローラ及びI/O装置間の協調制御を可能にする。
【解決手段】 同一バス上で接続した各々が異なる処理内容を実行する複数のコントローラと、該コントローラの制御対象と当該コントローラとを接続し、制御対象とコントローラ間で必要な情報を伝送する複数のI/O装置と、任意のコントローラ及びI/O装置間で情報の伝送を実現するネットワーク回線網と、記バス上に接続した共有サーバと、を備えたマルチコントローラシステムを構成する。
上記共有サーバは、コントローラの異常を検知した場合に、異常の生じたコントローラのプログラムを他の正常なコントローラへ追記し、当該異常の生じたコントローラがネットワーク回線網を介して接続していたI/O装置と、他の正常なコントローラとを接続するための情報を当該他の正常なコントローラへ通知する。
【選択図】図7

Description

本発明は、例えば上下水道プラント等の監視制御を行なうプラント監視制御システムに用いるマルチコントローラシステム、制御方法及びプログラムに関するものである。
近年、プラント監視制御システムとして用いられる計算機は、ICの高密度化やメモリの大容量化によって単位時間当たりの計算量は増加している。故に、監視制御対象の多様なニーズに対応する結果、PLC(プログラマブル・ロジック・コントローラ)をはじめとした制御装置(コントローラ)の制御演算に用いる、入出力情報の処理点数も増加している。
上記PLCは、各々が異なるプログラムを格納し、別々の場所に設置することが一般的であるが、連動制御や上位監視を行う場合は、PLC間を光ケーブル等の伝送用信号ケーブルで接続し、閉ループのネットワークを構築することで、情報共有が可能となる。
中でも、同一バス系に設置されたPLCのCPU(Central Processing Unit)負荷を、各PLCが共有メモリにサイクリックに書き込むことで、各々の負荷情報を共有し、CPU負荷が閾値以上となったPLCは、閾値以下のCPU負荷であった他PLCに自らの制御演算プログラム(一部)を渡して演算を行わせる協調方法をとることで、負荷効率を向上させた制御方式も提案されている(例えば、特許文献1を参照)。
また、一般的には1対1でPLCと接続するリモートI/O装置も、ネットワーク回線網を介して複数のPLCと接続することによってN対N通信を可能としたリモートI/Oシステムも提案されている(例えば、特許文献2を参照)。
特開2010−79355号公報 特許第4634026号公報
しかしながら、特許文献1に記載された協調方法では、他PLCへプログラムを移行した場合の演算方法他、PLCと対象I/O装置との接続方法を明記していない。同一バスにて接続された他PLCにプログラムを移行させたとしても、I/O装置自体は元のPLCとしか接続できていない構成であるため、I/O装置は他PLCとデータの送受信ができない。よって、実際にPLCから他PLCへプログラムをコピーして演算を行ったとしてもその処理結果の信頼性は低いと考えられる。
また、各PLCのCPU負荷率からプログラムコピー処理の実行判定を行っている。そのために、故障以外の原因でシステムが停止時、例えば回線障害やPLCに対する保守作業の発生時は、プログラムコピー処理が行われず、結果として該当するプログラムの処理がどのPLCにおいても実行されなかったということ象が発生してしまう。
特許文献2に記載されたリモートI/Oシステムの構成では、予めPLCとI/O装置間の接続を定義している。そのため回線障害やPLCに対する保守作業といった運用開始後に発生する事象に対して、PLC間でプログラムの共有ができないことに加え、PLCとI/O装置間の接続切換が行えない。それゆえ、その事象の対象となるPLCのプログラム演算処理やI/O装置との入出力データの伝送が不可能となる。
本発明は、上記の状況を考慮してなされたものであり、複数のPLCと複数のI/O装置間の接続が固定されたシステムであっても、複数のコントローラ及びI/O装置間の協調制御を可能にすることを目的とする。
本発明の一側面のマルチコントローラシステムは、同一バス上で接続した各々が異なる処理内容を実行する複数のコントローラと、このコントローラの制御対象と該コントローラとを接続し、制御対象とコントローラ間で必要な情報を伝送する複数のI/O装置と、任意のコントローラ及びI/O装置間で情報の伝送を実現するネットワーク回線網と、同一バス上に接続した共有サーバと、を有する。
上記共有サーバは、上記コントローラの異常を検知した場合は、異常が生じたコントローラのプログラムを他の正常なコントローラへ追記する処理と、上記異常が生じたコントローラがネットワーク回線網を介して接続していたI/O装置と、上記他の正常なコントローラとを接続するための情報を上記他の正常なコントローラへ通知する処理を制御する。
本発明の一側面によれば、コントローラ間でのプログラムの共有化を実現し、かつ共有するプログラムで使用するI/O装置の接続先を、アドレス情報を元に現在のコントローラからプログラム送信先のコントローラへ切り換えることができる。
本発明によれば、複数のPLCと複数のI/O装置間の接続が固定されたシステムであっても、複数のコントローラ及びI/O装置間の協調制御を可能にし、コントローラによる演算処理の冗長化を可能とする。
本発明の一実施形態に係るプラント監視制御システムにおける、マルチコントローラシステムの全体構成例を示すブロック図である。 共有サーバ、PLC及びI/O装置の機能ブロック図である。 共有サーバ、PLC及びI/O装置における各格納部のテーブル構成を示した説明図である。 PLCもしくはI/O装置において異常が発生した場合の、共有サーバに異常を報告する処理を示したフローチャートである。 PLCにおいて、共有サーバに対して異常検出ではなく任意に他の正常なPLCに切換を要求する処理を示したフローチャートである。 共有サーバにおける、PLCもしくはI/O装置の異常検出を行う処理を示したフローチャートである。 共有サーバにおける、異常状態のPLCを発見した場合に、正常なPLCを探索し、異常となったPLCの代替処理を行わせる処理を示したフローチャートである。 図7で示した代替処理に至るまでの、共有サーバとPLCとI/O装置間のやり取りを示したシーケンス図である。
以下、本発明を実施するための形態の例について、添付図面を参照しながら説明する。なお、各図において共通の構成要素には、同一の符号を付して重複する説明を省略する。
<1.第1の実施形態>
[マルチコントローラシステムの全体構成例]
図1は、本発明の一実施形態であるプラント監視制御システムにおける、マルチコントローラシステムの全体構成例を示したブロック図である。
本実施形態に係るマルチコントローラシステムは主に、共有サーバ1と、複数のPLC3(コントローラの一例)と、複数のI/O装置5と、ネットワーク回線網4を備えて構成される。
共有サーバ1は、バス2のネットワークを介して複数のPLC3と接続されている。また、複数のPLC3と複数のI/O装置5は、ネットワーク回線網4とルータ7を介して接続されている。複数のPLC3及び複数のI/O装置5は、例えばTCP/IPもしくはUDP/IPネットワーク機器として構築が可能である。ネットワーク回線網4を利用することで任意のPLC3と任意のI/O装置5で接続が可能であり、N対N通信が可能である。
なお、本実施形態では、IPネットワーク回線網、いわゆるインターネット網を例示したが、回線網や通信プロトコルはこの例に限らない。
図1では、PLC3について、一番目のPLC3である第一PLC3aと、二番目のPLC3である第二PLC3bと、n番目のPLC3である第nPLC3nを図示している。同様にI/O装置5について、一番目のI/O装置5である第一I/O装置5aと、二番目のI/O装置である第二I/O装置5b、m番目のI/O装置5である第mI/O装置5mを図示している。
複数のI/O装置5は、有線にて制御対象6(ポンプやモータ、計器などを含む制御対象群)と接続されている。図1では一番目の制御対象6を第一制御対象6a、二番目の制御対象6を第二制御対象6b、m番目の制御対象6である第m制御対象6mを図示している。
また、本実施形態では、バス2に監視端末9が接続され、監視端末9にモニタ10が接続されている。監視端末9は、バス2からマルチコントローラシステムの各ブロックに関する情報を受信し、液晶表示パネル等を備えるモニタ10に表示する。
監視端末9には、コンピュータが用いられ、例えばCPU等の演算処理装置と、該CPUが実行する制御プログラムを記憶したROM、制御プログラムの実行時にワーキングエリアとして利用されるRAMなどを有する。
図2は、共有サーバ1、PLC3及びI/O装置5の内部構成例を示す機能ブロック図である。PLC3及びI/O装置5の内部構成は同じであるので、図2では一つのPLC3及びI/O装置5を示している。
(共有サーバ1)
共有サーバ1は、コンピュータが用いられ、例えばCPU等の演算処理装置と、該CPUが実行する制御プログラムを記憶したROM(図示略)、制御プログラムの実行時にワーキングエリアとして利用されるRAM(図示略)、大容量記録装置(図示)略などを有する。CPUは、ROMに記憶されている各種の制御プログラムやアプリケーションプログラムの実行及びそれに付随する各種データ処理を行う。
共有サーバ1を機能面から説明すると、図2に示すように、共有サーバ内部メモリ100と、共有サーバ通信情報格納部101と、PLC全プログラム格納部102と、共有サーバ通信処理部103と、異常検出処理部104とを備える。
共有サーバ1とバス2との接続において、共有サーバ1側のインターフェースは共有サーバ通信処理部103が担っている。この共有サーバ通信処理部103は、共有サーバ1内部において、共有サーバ内部メモリ100と、共有サーバ通信情報格納部101と、PLC全プログラム格納部102と接続して処理を行う。
共有サーバ1内部のもう一つの処理部として異常検出処理部104があり、異常検出処理部104は共有サーバ内部メモリ100と接続して処理を行う。
(PLC3)
PLC3は、PLC通信情報格納部105と、PLC内部メモリ106と、PLCプログラム格納部107と、PLC通信処理部108と、演算処理部109とを備えて構成される。
PLC3のバス2との接続インターフェースは、PLC通信処理部108が担う。PLC通信処理部108は、PLC3内部において、PLC通信情報格納部105と、PLC内部メモリ106と、PLCプログラム格納部107と接続して処理を行う。また、PLC通信処理部108は、ルータ7と接続し、ネットワーク回線網4を介してI/O装置5と接続している。
PLC3内部のもう一つの処理部である演算処理部109は、PLC内部メモリ106及びPLCプログラム格納部107と接続して処理を行う。
(I/O装置5)
I/O装置5は、I/O装置通信処理部110と、I/O装置通信情報格納部111と、I/O装置内部メモリ112とを備えて構成される。
I/O装置5とルータ7の接続インターフェースは、I/O装置5内部のI/O装置通信処理部110が担っている。I/O装置通信処理部110は、I/O装置通信情報格納部111及びI/O装置内部メモリ112と接続して処理を行う。
制御対象6は、直接I/O装置内部メモリ112と接続して入出力信号の送受信を行う。
[各格納部のテーブル構成]
図3は、共有サーバ1、PLC3及びI/O装置5における各格納部のテーブル構成例を示した図である。
(共有サーバ1の格納部)
共有サーバ内部メモリ100では、PLC生存信号200と、追記可能なプログラムステップ数201と、CPU負荷率202と、エラー情報203と、接続I/O装置IPアドレス204と、手動切換要求情報205を登録している。
「PLC生存信号200」は、PLC3の夫々が管理する情報として、PLC3の状態を表し、PLC3が正常に稼動している間中、発信され続ける。
「追記可能なプログラムステップ数201」は、PLC3のPLCプログラム格納部107の空き容量を示す追記可能なプログラムステップの数を表す。
「CPU負荷率202」は、PLC3のCPU(演算処理部)のリアルタイムな実行演算による負荷率を表す。
「エラー情報203」は、PLC3がI/O装置5から受信するエラー信号や、ネットワーク回線網8における回線異常信号、PLC3自身で発生するエラー信号を包含する。
「接続I/O装置IPアドレス204」は、PLC3が現在接続しているI/O装置5のIPアドレスを包含する。
「手動切換要求情報205」は、非異常時に異常時と同様の動作、すなわちPLCの切り替えを発生させることができるようなPLC3からの要求信号を包含する。
共有サーバ通信情報格納部101では、通信プログラム210と、通信プロトコル211と、プロトコルスタック212と、通信構築情報213を登録している。
「通信プログラム210」は、共有サーバ通信処理部103の処理内容が記述されている。
「通信プロトコル211」は、バス2を介してPLC3と情報を伝送するための伝送形式が定められている。
「プロトコルスタック212」は、通信プロトコルに従って伝送情報が構築されている。
「通信構築情報213」は、PLC3との接続状況が登録されている。
PLC全プログラム格納部102では、PLC1プログラム220〜PLCnプログラム221と、PLC1プログラム実行場所222〜PLCnプログラム実行場所223を格納している。
「PLC1プログラム220〜PLCnプログラム221」は、バス2を介して接続された第一PLC3aのPLC1プログラム220から第nPLC3nのPLCnプログラム221までの全てのプログラムである。
「PLC1プログラム実行場所222〜PLCnプログラム実行場所223」は、PLC3のプログラムが実際にどのPLC3で実行されているかを記述した、PLC1プログラム220の実行場所を登録しているPLC1プログラム実行場所222からPLCnプログラム221の実行場所を登録しているPLCnプログラム実行場所223までの情報を包含している。
(PLC3の格納部)
PLC通信情報格納部105では、通信プログラム230と、通信プロトコル231と、プロトコルスタック232と、通信構築情報233を格納している。
「通信プログラム230」は、PLC通信処理部108の処理内容が記述されている。
「通信プロトコル231」は、バス2を介して共有サーバ1と情報を伝送するための伝送形式と、ルータ7及びネットワーク回線網8を介してI/O装置5との伝送形式が定められている。
「プロトコルスタック232」は、通信プロトコルに従って伝送情報が構築されている。
「通信構築情報233」は、共有サーバ1とI/O装置5との接続状況が登録されている。
PLC内部メモリ106では、プログラム使用レジスタ240と、システム情報レジスタ241を格納している。
「プログラム使用レジスタ240」は、PLC3の演算処理部109による演算結果を格納する。
「システム情報レジスタ241」は、PLC3とその接続下にあるI/O装置5のエラー信号やネットワーク回線網8における回線異常信号、PLC3自身で発生するエラー信号(異常情報)が登録されている。
PLCプログラム格納部107では、PLC3が自身の演算処理部109で実行する処理を記述した「プログラム250」を格納している。
(I/O装置5の格納部)
I/O装置通信情報格納部111では、通信プログラム260と、通信プロトコル261と、プロトコルスタック262と、通信構築情報263を格納している。
「通信プログラム260」は、I/O装置通信処理部110の処理内容が記述されている。
「通信プロトコル261」は、ルータ7及びネットワーク回線網8を介してPLC3と情報を伝送するための伝送形式が定められている。
「プロトコルスタック262」は、通信プロトコルに従って伝送情報が構築されている。
「通信構築情報263」は、PLC3との接続情報が登録されている。
I/O装置内部メモリ112では、入出力情報登録レジスタ270と、システムレジスタ271を格納している。
「入出力情報登録レジスタ270」は、マルチコントローラシステムとの情報の送受信結果が登録されている。
「システムレジスタ271」は、I/O装置5や制御対象6のエラー信号(異常情報)が登録されている。
(PLC3の動作例)
図4は、PLC3における、演算処理部109による異常検出処理を示すフローチャートである。
まず、ステップS300では、PLC3において通常の制御処理が不可能となる事象が生じた場合、演算処理部109は、PLC内部メモリ106のシステム情報レジスタ241に異常情報を登録する。演算処理部109は、システム情報レジスタ241を参照して異常情報(エラー信号)を検出した場合は、処理をステップS302に移行する。システム情報レジスタ241にて異常情報が検出されなかった場合は、処理をステップS301に移行する。
ステップS301では、PLC3とI/O装置5との間で、通信異常(回線異常)が生じた場合に、演算処理部109は、PLC通信情報格納部105の通信構築情報233に異常情報を登録する。また、演算処理部109は、通信構築情報233にて異常情報を検出した場合は、処理をステップS302に移行する。通信構築情報233にて異常情報が検出されなかった場合は、処理を終了する。
ステップS302では、システム情報レジスタ241の異常情報もしくは通信構築情報233の異常情報を、共有サーバ内部メモリ100のエラー情報203に登録することで異常検出処理を終了する。
図5は、PLC3において、共有サーバ1に対して異常検出ではなく任意に他の正常なPLC3に切換を要求する処理を示すフローチャートである。
まず、ステップS400では、演算処理部109が、PLC内部メモリ106のシステム情報レジスタ241内に手動切換要求の有無を登録し、処理をステップS401に移行する。
ステップS401では、演算処理部109が、システム情報レジスタ241の手動切換要求の有無を参照し、手動切換要求があった場合はステップS402に移行する。手動切換要求が無かった場合は処理を終了する。
ステップS402では、演算処理部109は、PLC通信処理部108を用いて手動切換要求を共有サーバ内部メモリ100の手動切換要求情報205に登録し、処理を終了する。
(共有サーバ1の動作例)
図6は、共有サーバ1における異常検出処理部104の異常検出処理を示すフローチャートである。以下では、第一PLC3aについて異常検出処理を実施した例を説明する。
まず、ステップS500では、異常検出処理部104は、共有サーバ内部メモリ100のPLC生存信号200に登録された各PLC3のPLC生存信号を参照し、PLCの正常動作可否を判別する。PLC生存信号200を参照した結果、例えば第一PLC3aの生存が確認できた場合はステップS501へ移行し、確認できなかった場合は処理をステップS504に移行する。
ステップS501では、異常検出処理部104は、共有サーバ内部メモリ100のCPU負荷率202に登録された、各PLC3(この例では第一PLC3a)のCPU負荷率を参照し、予め設定したCPU負荷率の閾値と比較する。比較の結果、閾値以上のCPU負荷率となったPLC3(例えば第一PLC3a)があった場合は処理をステップS504に移行する。CPU負荷率が閾値以上のPLC3がなかった場合は処理をステップS502に移行する。
ステップS502では、異常検出処理部104は、共有サーバ内部メモリ100のエラー情報203に登録された、各PLC3(この例では第一PLC3a)において発生したエラーを参照し、各PLC3のエラーの有無を判別する。エラー情報203を参照した結果、いずれかのPLC3(例えば第一PLC3a)においてエラーがあった場合は処理をステップS504に移行する。エラーが無かった場合は処理を終了する。
ステップS503では、異常検出処理部104は、共有サーバ内部メモリ100の手動切換要求情報205に登録された、各PLC3(この例では第一PLC3a)からの手動切換要求の有無を参照し判別する。いずれかのPLC3(例えば第一PLC3a)から手動切換要求があった場合は、処理をステップS504に移行する。全てのPLC3において手動切換要求が無かった場合は処理を終了する。
ステップS504では、ステップS500〜S503の判別処理の結果、他の正常なPLC3に処理を代行させる必要があると判断し、他のPLCの状態を探索する処理を開始し、異常検出処理を終了する。
図7は、図6のステップS504の他の正常なPLC3を探索し、異常となったPLC3の代替処理を行う場合の処理を示したフローチャートである。ここでは、処理フローを説明する上で、異常となったPLC3を図1の第一PLC3a、他の正常なPLC3を第二PLC3bとして述べる。
まず、ステップS600では、共有サーバ通信処理部103が、第二PLC3bのPLC生存信号200を参照する。参照した結果、PLC生存信号があった場合はステップS601へ処理を移行し、PLC生存信号が無かった場合はステップS607に処理を移行する。
ステップS601では、第二PLC3bにおいて、ステップS501と同様に、共有サーバ通信処理部103が、CPU負荷率202を参照する。参照した結果、閾値以下であった場合は処理をステップS602に移行し、閾値以上のCPU負荷率であった場合は処理をステップS607に移行する。
ステップS602では、共有サーバ通信処理部103が、第二PLC3bのエラー情報203を参照し、エラー情報が無かった場合は処理をステップS603に移行し、エラー情報があった場合は処理をステップS607に移行する。
ステップS603では、共有サーバ通信処理部103が、第二PLC3bの追記可能なプログラムステップ数201と、第一PLC3aのプログラムステップ数を比較する。比較した結果、第二PLC3bの追記可能なプログラムステップ数201の方が第一PLC3aよりも多かった場合は、処理をステップS604に移行する。第一PLC3aのプログラムステップ数の方が大きかった場合は、処理をステップS607に移行する。
ステップS604では、共有サーバ通信処理部103が、第二PLC3bのPLCプログラム格納部107内のプログラム250に対して第一PLC3aのプログラムを送信する。そして、第二PLC3bにおいて、演算処理部109が、PLCプログラム格納部107内のプログラム250に、送信された第一PLC3aのプログラムを追記する処理を行う。処理の完了後、ステップS605に移行する。
ステップS605では、共有サーバ通信処理部103が、第二PLC3bのPLC通信情報格納部105内の通信プログラム230に対して、第一PLC3aと接続している第一I/O装置5aのIPアドレスを送信する。そして、第二PLC3bにおいて、演算処理部109が、通信プログラム230に当該第一I/O装置5aのIPアドレスを追加登録する処理を行い、処理をステップS606に移行する。
ステップS606では、共有サーバ通信処理部103が、PLC全プログラム格納部102に登録されたPLC1プログラム実行場所222に対して、実行場所を第二PLC3bに変更(書き換え)を行うことで、全体の処理フローを終了する。
ステップS607では、共有サーバ通信処理部103が、第一PLC3a及び第二PLC3b以外のPLC3の探索を開始し、処理をステップS608に移行する。すなわち、n=n+1にインクリメントし、次の第(n+1)PLCの探索を開始する。この例では、第二PLC3bのn=2をインクリメントしてn=3とし、次のPLCとして第三PLC3cを探索する。
ステップS608では、共有サーバ通信処理部103が、全PLC3の探索が完了したかどうかの判定を行う。例えばn=n+1にインクリメントしたとき、n+1が複数のPLC3の上限値であれば探索完了である。全PLC3の探索が終了した場合は、処理をステップS609に移行する。まだ未探索のPLC3が存在する場合は処理をステップS600に移行する。
ステップS609では、共有サーバ通信処理部103が、全PLC3を探索した結果、第一PLC3aの代替処理が可能な他の正常なPLC3がなかったことを示す情報を、共有サーバ内部メモリ100内のエラー情報203に登録し、処理フローを終了する。
ステップS609における共有サーバ内部メモリ100内のエラー情報203に登録した内容を、監視端末9を利用してモニタ10に表示してもよい。このようにした場合、監視員がマルチコントローラシステムのエラー情報を速やかに把握できる。
図6及び図7の例では、第一PLC3a(n=1)から状態探索を開始しているが、第一PLC3aからではなく別のPLCから開始してもよい。その場合、インクリメント後のPLCのn(=n+1)が上限値となることがあるが、その場合は、他の未探索のPLCを探索する。
図8は、図7のステップS604及びS605の処理における、共有サーバ通信情報格納部101内の通信構築情報213と、PLC通信情報格納部105内の通信構築情報233と、I/O装置通信情報格納部111内の通信構築情報263間のやり取りを示すシーケンス図である。
まず、共有サーバ1の通信構築情報213内のPLCプログラム追記要求コマンドが、共有サーバ通信処理部103によってPLC3の通信構築情報233に送信される(ステップS700)。
PLC通信処理部108は、PLCプログラム追記要求コマンドを受信すると、共有サーバ1の通信構築情報213に対してPLCプログラム追記要求受付完了コマンドを送信する(ステップS701)。これにより共有サーバ1とPLC3の間でネゴシエーション処理が完了する。
次に、共有サーバ通信処理部103は、PLCプログラム追記要求受付完了コマンドを受信すると、PLCプログラム送信開始コマンドをPLC3の通信構築情報233に対して送信し、実際に追記するプログラムを送信する(ステップS702)。
PLC3側では、通信構築情報233がPLCプログラム送信開始コマンドを受信した後、PLCプログラム格納部107に受信したプログラムを格納する。プログラムの受信が完了すると、PLC通信処理部108は、共有サーバ1の通信構築情報213に対して、PLCプログラム受信完了コマンドを送信する(ステップS703)。
共有サーバ通信処理部103は、PLCプログラム受信完了コマンドを受信すると、PLC3の通信構築情報233に対してI/O装置IPアドレス登録要求コマンドを送信する(ステップS710)。
PLC通信処理部108は、I/O装置IPアドレス登録要求コマンドを受信すると、共有サーバ1の通信構築情報213に対してI/O装置IPアドレス登録要求受付完了コマンドを送信する(ステップS711)。
共有サーバ通信処理部103は、I/O装置IPアドレス登録要求受付完了コマンドを受信すると、実際に登録するI/O装置のIPアドレスをPLC通信情報格納部105内の通信プログラム230に送信、書き込みを行う。
PLC通信処理部108は、通信プログラム230に新たに書き込まれたIPアドレスを参照して、該当するI/O装置5の通信構築情報263に対してI/O装置接続要求コマンドを送信する(ステップS712)。
I/O装置通信処理部110は、I/O装置接続要求コマンドを受信すると、PLC3の通信構築情報233に対してI/O装置接続完了コマンドを送信し、PLC3とI/O装置5との間で接続が完了となる(ステップS713)。
PLC通信処理部108は、I/O装置接続完了コマンドを受信すると、共有サーバ1の通信構築情報213に対してI/O装置接続完了コマンドを送信する。
共有サーバ通信処理部103は、I/O装置接続完了コマンドを受信すると、PLC3の通信構築情報233に対して演算開始要求コマンドを送信する(ステップS714)。
そして、PLC通信処理部108は、演算開始要求コマンドを受信すると、それまで処理していた自身のプログラムに加えて、新たに追加されたプログラム部分の処理を新たに接続したI/O装置5を用いて開始する。
上述した本開示の一実施形態は、複数のPLC(コントローラの一例)及びI/O装置を備えて構成されているマルチコントローラシステムにおいて、バスで接続されたPLCのプログラムを一元管理する共有サーバを設置することを一つの特徴とする。それにより、PLC間でのプログラムの共有化を実現し、かつ共有するプログラムで使用するI/O装置の接続先を、アドレス情報を元に現在のPLCからプログラム送信先のPLCへ切り換えることができる。
共有サーバは、上述のとおり、同一バスにて接続されたPLCの全プログラムを格納しており、各PLCの生存信号やエラー情報、接続回線の断線情報、受信可能なプログラムのステップ数、CPU負荷率を監視することで、PLCの異常検知処理を行う。そして、異常検知した場合は、他のPLCに対して異常検知したPLCに該当するプログラムを送信する。プログラム送信後、プログラムの受信側のPLCは、そのプログラムで使用するI/O装置を検索して接続を確立させ、追加となったプログラムも含めて演算処理(例えばプラント監視制御)を開始する。
上述した構成により、複数のPLCと複数のI/O装置間の接続が固定された多重化構成のPLCでは回避できない回線障害や、PLCのメンテナンス時に他のPLCにて代理演算及びI/O装置との代理伝送機能を備えたフォールトトレラントシステムを提供できる。
このように、本実施形態に係るマルチコントローラシステムは、故障以外の原因でシステムが停止しても、複数のコントローラ及びI/O装置間の協調制御が行える。すなわち、システム停止の原因に関係なく、PLC演算処理の冗長化を可能とする。
また、ネットワーク回線網の異常もしくはPLC異常が生じていない場合でも、PLCから手動切換要求情報を共有サーバに送信することにより、他の(正常な)PLCで切り替え前のPLCと同一の処理を行わせることが可能である。
なお、PLCのPLC通信処理部は、異常の生じたPLCのプログラムを他のPLCで演算実行している間のみ、I/O装置とPLCとの接続を切り替えるとよい。異常の原因が除去され異常の生じていたPLCが復帰した場合、復帰を受けて、PLCとI/O装置の切り替えを自動的に元に戻すようにしてもよい。
<2.その他>
なお、図8の説明において、PLC3とI/O装置5の接続が完了後、PLC3は、共有サーバ1からの演算開始コマンドを受信してから新たに追加されたプログラム部分の処理を開始すると説明したが、この例に限られない。例えば、PLC3は、I/O装置5との接続が完了後、共有サーバ1へI/O装置接続完了コマンドを送信すると同時に、新たに追加されたプログラム部分の処理を開始するようにしてもよい。
このようにした場合、PLC3がI/O装置5と接続完了後、新たに追加されたプログラム部分の処理を直ちに開始できるので、マルチコントローラシステムの動作に空白が生じない。
図6の例では、PLC生存信号の有無、CPU負荷率と閾値との比較、エラー情報の有無を判定したが、少なくともPLC生存信号がない場合に、他のPLCを検索すればよい。また、PLC生存信号がある場合であっても、エラー情報があるときには、他のPLCを検索する。さらに、PLC生存信号があってエラー情報がない場合でも、CPU負荷率が閾値を超える場合には、他のPLCを検索することが望ましい。
上述した一実施形態例における一連の処理は、ハードウェアにより実行することができるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが専用のハードウェアに組み込まれているコンピュータ、または、各種の機能を実行するためのプログラムをインストールしたコンピュータにより、実行可能である。例えば汎用のパーソナルコンピュータなどに所望のソフトウェアを構成するプログラムをインストールして実行させればよい。
また、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給してもよい。また、そのシステムあるいは装置のコンピュータ(またはCPU等の制御装置)が記録媒体に格納されたプログラムコードを読み出し実行することによっても、機能が実現されることは言うまでもない。
この場合のプログラムコードを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
また、コンピュータが読み出したプログラムコードを実行することにより、上述した実施の形態の機能が実現される。加えて、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOSなどが実際の処理の一部又は全部を行う。その処理によって上述した実施形態の機能が実現される場合も含まれる。
また、本明細書において、時系列的な処理を記述する処理ステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)をも含むものである。
以上、本発明は上述した各実施の形態に限定されるものではなく、特許請求の範囲に記載された要旨を逸脱しない限りにおいて、その他種々の変形例、応用例を取り得ることは勿論である。
1…共有サーバ
2…バス
3…PLC
4…ネットワーク回線網
5…I/O装置
6…制御対象
7…ルータ
8…ネットワーク回線
100…共有サーバ内部メモリ
101…共有サーバ通信情報格納部
102…PLC全プログラム格納部
103…共有サーバ通信処理部
104…異常検出処理部
105…PLC通信情報格納部
106…PLC内部メモリ
107…PLCプログラム格納部
108…PLC通信処理部
109…演算処理部
110…I/O装置通信処理部
111…I/O装置通信情報格納部
112…I/O装置内部メモリ
200…PLC生存信号
201…追記可能なプログラムステップ数
202…CPU負荷率
203…エラー情報
204…接続I/O装置IPアドレス
205…手動切換要求情報
210…通信プログラム(共有サーバ)
211…通信プロトコル(共有サーバ)
212…プロトコルスタック(共有サーバ)
213…通信構築情報(共有サーバ)
220…PLC1プログラム
221…PLCnプログラム
222…PLC1プログラム実行場所
223…PLCnプログラム実行場所
230…通信プログラム(PLC)
231…通信プロトコル(PLC)
232…プロトコルスタック(PLC)
233…通信構築情報(PLC)
240…プログラム使用レジスタ
241…システム情報レジスタ
250…プログラム
260…通信プログラム(I/O装置)
261…通信プロトコル(I/O装置)
262…プロトコルスタック(I/O装置)
263…通信構築情報(I/O装置)
270…入出力情報登録レジスタ
271…システムレジスタ

Claims (8)

  1. 同一バス上で接続した各々が異なる処理内容を実行する複数のコントローラと、
    前記コントローラの制御対象と前記コントローラとを接続し、前記制御対象と前記コントローラ間で必要な情報を伝送する複数のI/O装置と、
    任意の前記コントローラ及び前記I/O装置間で情報の伝送を実現するネットワーク回線網と、
    前記コントローラの異常を検知した場合に、異常の生じたコントローラのプログラムを他の正常なコントローラへ追記する処理と、前記異常の生じたコントローラが前記ネットワーク回線網を介して接続していた前記I/O装置と、前記他の正常なコントローラとを接続するための情報を前記他の正常なコントローラへ通知する処理を行う、前記バス上に接続した共有サーバと、を備える
    マルチコントローラシステム。
  2. 前記共有サーバは、前記バスで接続した前記コントローラとの通信処理用のプログラムを格納した共有サーバ通信情報格納部と、
    前記共有サーバ通信情報格納部における前記通信処理用のプログラムを参照し、前記コントローラへ情報を伝送する共有サーバ通信処理部と、
    前記コントローラとの伝送情報を格納する共有サーバ内部メモリと、
    前記複数のコントローラのプログラムを全て格納するコントローラ全プログラム格納部と、
    前記コントローラとの間の通信の異常を監視する異常検出処理部と、を備え、
    前記共有サーバ内部メモリは、少なくとも前記コントローラの生存信号と、前記コントローラの追記可能なプログラムステップ数と、接続済みの前記I/O装置のアドレス情報を含み、
    前記異常検出処理部は、前記異常の生じたコントローラの前記生存信号から異常判定を行い、前記追記可能なプログラムステップ数を参照して前記他の正常なコントローラの中から1つを決定し、
    前記共有サーバ通信処理部は、前記コントローラ全プログラム格納部から前記異常の生じたコントローラのプログラムと、前記接続済みの前記I/O装置のアドレス情報を、決定した前記他の正常なコントローラへ送信する
    請求項1に記載のマルチコントローラシステム。
  3. 前記共有サーバ内部メモリは、前記コントローラの異常又は前記ネットワーク回線網の異常についてのエラー情報、を更に含み、
    前記異常検出処理部は、前記コントローラの生存信号、並びに前記コントローラ又は前記ネットワーク回線網についてのエラー情報から異常判定を行い、前記追記可能なプログラムステップ数を参照して前記他の正常なコントローラの中から1つを決定する
    請求項2に記載のマルチコントローラシステム。
  4. 前記共有サーバ内部メモリは、前記コントローラの演算処理装置の負荷率、を更に含み、
    前記異常検出処理部は、前記コントローラの生存信号、並びに前記コントローラ又は前記ネットワーク回線網についてのエラー情報に加えて、前記コントローラの演算処理装置の負荷率を反映して異常判定を行い、前記追記可能なプログラムステップ数を参照して前記他の正常なコントローラの中から1つを決定する
    請求項3に記載のマルチコントローラシステム。
  5. 前記コントローラは、前記バスで接続した前記共有サーバとの通信処理用のプログラムと、前記ネットワーク回線網を介して接続する前記I/O装置との通信処理用のプログラムを格納したコントローラ通信情報格納部と、
    前記コントローラ通信情報格納部における前記通信処理用のプログラムを参照し、前記共有サーバもしくは前記I/O装置へ情報を伝送するコントローラ通信処理部と、
    前記I/O装置との伝送情報を格納するコントローラ内部メモリと、
    前記制御対象を制御するためのプログラムを格納したコントローラプログラム格納部と、
    前記コントローラプログラム格納部のプログラムを参照して、前記コントローラ内部メモリ内の情報をサイクリックに読み書きする演算処理部と、を備え、
    前記共有サーバから、前記異常の生じたコントローラのプログラム及び前記I/O装置のアドレス情報を受信した場合、前記異常の生じたコントローラのプログラムを前記コントローラプログラム格納部に追記し、前記I/O装置のアドレス情報を前記コントローラ通信情報格納部に登録し、前記異常の生じたコントローラのプログラムを演算実行している間のみ、前記コントローラ通信処理部は前記I/O装置のとの接続を切り替える
    請求項2に記載のマルチコントローラシステム。
  6. 前記共有サーバ内部メモリは、手動切換要求情報を更に含み、
    前記コントローラ通信処理部は、前記ネットワーク回線網の異常もしくは前記コントローラの異常が生じていない場合でも、前記共有サーバ内部メモリに前記手動切換要求情報が登録されている場合には、前記手動切換要求情報を前記共有サーバに送信し、前記他のコントローラで切り替え前のコントローラと同一の処理を行わせる
    請求項5に記載のマルチコントローラシステム。
  7. 同一バス上で接続した各々が異なる処理内容を実行する複数のコントローラと、前記コントローラの制御対象と前記コントローラとを接続し、前記制御対象と前記コントローラ間で必要な情報を伝送する複数のI/O装置と、任意の前記コントローラ及び前記I/O装置間で情報の伝送を実現するネットワーク回線網と、前記バス上に接続した共有サーバと、を備えたマルチコントローラシステムの制御方法であって、
    前記共有サーバは、前記コントローラの異常を検知した場合に、異常の生じたコントローラのプログラムを他の正常なコントローラへ追記する処理と、
    前記異常の生じたコントローラが前記ネットワーク回線網を介して接続していた前記I/O装置と、前記他の正常なコントローラとを接続するための情報を前記他の正常なコントローラへ通知する処理を有する
    制御方法。
  8. 同一バス上で接続した各々が異なる処理内容を実行する複数のコントローラと、前記コントローラの制御対象と前記コントローラとを接続し、前記制御対象と前記コントローラ間で必要な情報を伝送する複数のI/O装置と、任意の前記コントローラ及び前記I/O装置間で情報の伝送を実現するネットワーク回線網と、前記バス上に接続した共有サーバと、を備えたマルチコントローラシステムの前記共有サーバが備えるコンピュータに、
    前記コントローラの異常を検知した場合に、異常の生じたコントローラのプログラムを他の正常なコントローラへ追記する手順と、
    前記異常の生じたコントローラが前記ネットワーク回線網を介して接続していた前記I/O装置と、前記他の正常なコントローラとを接続するための情報を前記他の正常なコントローラへ通知する手順を、
    実行させるためのプログラム。
JP2012032274A 2012-02-17 2012-02-17 マルチコントローラシステム、制御方法及びプログラム Pending JP2013168090A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012032274A JP2013168090A (ja) 2012-02-17 2012-02-17 マルチコントローラシステム、制御方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012032274A JP2013168090A (ja) 2012-02-17 2012-02-17 マルチコントローラシステム、制御方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2013168090A true JP2013168090A (ja) 2013-08-29

Family

ID=49178425

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012032274A Pending JP2013168090A (ja) 2012-02-17 2012-02-17 マルチコントローラシステム、制御方法及びプログラム

Country Status (1)

Country Link
JP (1) JP2013168090A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160109730A (ko) * 2015-03-12 2016-09-21 김귀찬 종합정보서버를 이용한 극한 작업 환경의 이물질 검사 및 제거 자동화 장비의 데이터 공유 시스템 및 그 방법
DE102017005879A1 (de) 2016-06-29 2018-01-04 Fanuc Corporation Steuerungssystem und Steuerverfahren
JP2018156583A (ja) * 2017-03-21 2018-10-04 株式会社東芝 切替方法及び監視制御システム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160109730A (ko) * 2015-03-12 2016-09-21 김귀찬 종합정보서버를 이용한 극한 작업 환경의 이물질 검사 및 제거 자동화 장비의 데이터 공유 시스템 및 그 방법
KR101708330B1 (ko) 2015-03-12 2017-02-20 김귀찬 종합정보서버를 이용한 극한 작업 환경의 이물질 검사 및 제거 자동화 장비의 데이터 공유 시스템 및 그 방법
DE102017005879A1 (de) 2016-06-29 2018-01-04 Fanuc Corporation Steuerungssystem und Steuerverfahren
US10606232B2 (en) 2016-06-29 2020-03-31 Fanuc Corporation Controller system and control method
DE102017005879B4 (de) 2016-06-29 2022-11-10 Fanuc Corporation Steuerungssystem und Steuerverfahren
JP2018156583A (ja) * 2017-03-21 2018-10-04 株式会社東芝 切替方法及び監視制御システム

Similar Documents

Publication Publication Date Title
JP7510503B2 (ja) 自動運転制御システム、制御方法及び装置
US10601634B2 (en) Cloud service control device having an information transferor configured to limit the transfer of service information, a cloud service control system having a cloud service control device, a related cloud service control method, and a related storage medium
JP6299640B2 (ja) 通信装置
JP2013168090A (ja) マルチコントローラシステム、制御方法及びプログラム
JP2011113415A (ja) 制御システム及びcpuユニット
US8510402B2 (en) Management of redundant addresses in standby systems
JP5852267B2 (ja) 分散型制御システムのためのリレーインタフェースモジュール
JP5706347B2 (ja) 二重化制御システム
JP5088490B2 (ja) 二重化コントローラ
KR20110123168A (ko) Hmi 이중화 장치
JP4541241B2 (ja) プラント制御システム
US8937555B2 (en) Systems and methods to overlay behaviors on foundation fieldbus alerts
JP5894553B2 (ja) 制御システム、回線接続診断方法及びプログラム
JP2014215622A (ja) プラント監視システム及びプラント監視方法
JP4217734B2 (ja) 分散型電源用転送遮断システム
US11762359B2 (en) Slave apparatus, control method of slave apparatus, master-slave control system, and recording medium that records information processing program
JP2016157158A (ja) コントローラ
CN221058328U (zh) 分散控制系统
US20230008667A1 (en) Controller and controller system
JP4788597B2 (ja) プログラマブルコントローラ二重化システム
JP7362261B2 (ja) 監視システムおよび監視システムの運転方法
JP5961212B2 (ja) 冗長化システム、冗長化方法
CN111213344A (zh) 用于操作自动化技术设施的方法
JP2017151608A (ja) コントローラおよびその制御方法
JP2017151599A (ja) コントローラおよびその制御方法