(57)【特許請求の範囲】
【請求項１】
伝送路を介して互いに接続された複数のコントローラを備えて構成されるコントローラシステムにおいて、
前記各コントローラは、
記憶手段と、
コントローラに電源が投入された状態である電源投入モード、コントローラの初期化処理がなされている状態である初期化モード、コントローラが運転を待っている状態である運転待機モード、コントローラが運転を実行している状態である運転実行モード、コントローラが運転を停止している状態である運転停止モード、及びコントローラがエラーにより運転していない状態であるエラーダウンモードを含む運転モードのうち、自己コントローラの現在の運転状態がどの運転モードに属するのかを表す運転モードデータを前記自己コントローラの前記記憶手段へ書き込むとともに、他コントローラの記憶手段に書き込まれた前記他コントローラの運転モードデータを読み取り、読み取った前記他コントローラの運転モードデータを、前記自己コントローラの記憶手段に書き込む運転モードデータ書込手段と、
前記自己コントローラの記憶手段に書き込まれた前記自己コントローラの運転モードデータと前記他コントローラの運転モードデータとの組み合わせと、コントローラの現在の運転モードから次の運転モードへの予め定めた遷移条件とを用いて、前記自己コントローラが遷移すべき運転モードを選択し、前記選択した運転モードへと、前記自己コントローラの運転モードを遷移させる運転モード遷移手段と
を備えたことを特徴とするコントローラシステム。
【請求項２】
請求項１に記載のコントローラシステムにおいて、
前記各コントローラは、
前記自己コントローラの運転モードデータの入力を受け付けるとともに、当該入力された運転モードデータを前記運転モード遷移手段へ出力する運転モード入力手段を備え、
前記運転モード遷移手段は、前記運転モード入力手段から運転モードデータが出力された場合には、前記運転モード入力手段から出力された運転モードデータと前記自己コントローラの記憶手段に書き込まれた前記他コントローラの運転モードデータとの組み合わせと、前記遷移条件とを用いて、前記自己コントローラが遷移すべき運転モードを選択し、前記選択した運転モードへと、前記自己コントローラの運転モードを遷移させることを特徴とするコントローラシステム。
【請求項３】
請求項２に記載のコントローラシステムにおいて、
前記各コントローラは、
前記自己コントローラの異常を検出するとともに、当該検出された異常情報を前記運転モード遷移手段へ出力する異常検出手段を備え、
前記自己コントローラの記憶手段には、前記自己コントローラと協調して運転する他コントローラの識別情報が記憶されており、
前記遷移条件は、前記異常検出手段から異常情報が出力された場合には、前記自己コントローラの現在の運転モードと、前記自己コントローラと協調して運転する他コントローラの現在の運転モードとを、それぞれ前記エラーダウンモードへと遷移させるように定められており、
前記運転モード遷移手段は、前記自己コントローラの記憶手段に記憶された識別番号から、前記自己コントローラと協調して運転する他コントローラを把握し、前記異常検出手段から異常情報が出力された場合には、前記遷移条件に基づいて、前記自己コントローラ、及び把握した他コントローラの運転モードを前記エラーダウンモードへ遷移させることを特徴とするコントローラシステム。
【請求項４】
請求項２に記載のコントローラシステムにおいて、
前記各コントローラは、
前記自己コントローラに電源が投入された場合に、前記自己コントローラの動作状態を初期化するとともに、初期化完了時には、前記自己コントローラの初期化が完了したことを示す初期化完了通知を前記運転モード遷移手段に出力する初期化手段と、
前記自己コントローラの異常を検出するとともに、当該検出された異常情報を前記運転モード遷移手段へ出力する異常検出手段とを備え、
前記自己コントローラの記憶手段には、前記自己コントローラと協調して運転する他コントローラの識別情報が記憶されており、
前記遷移条件は、前記初期化手段から前記初期化完了通知が出力された場合には、前記自己コントローラの現在の運転モードと、前記自己コントローラと協調して運転する他コントローラの現在の運転モードとを、それぞれ前記運転待機モードへと遷移させるように定められ、前記異常検出手段から異常情報が出力された場合には、前記自己コントローラの現在の運転モードと、前記自己コントローラと協調して運転する他コントローラの現在の運転モードとを、それぞれ前記エラーダウンモードへと遷移させるように定められており、
前記運転モード遷移手段は、前記自己コントローラの記憶手段に記憶された識別番号から、前記自己コントローラと協調して運転する他コントローラを把握し、前記初期化手段から初期化完了通知が出力された場合には、前記遷移条件に基づいて、前記自己コントローラ、及び前記把握した他コントローラの運転モードを前記運転待機モードへ遷移させ、前記異常検出手段から異常情報が出力された場合には、前記遷移条件に基づいて、前記自己コントローラ、及び前記把握した他コントローラの運転モードを前記エラーダウンモードへ遷移させることを特徴とするコントローラシステム。
【請求項５】
請求項１乃至４のうちいずれか１項に記載のコントローラシステムにおいて、
前記各コントローラは、
前記自己コントローラの運転モードが前記運転モード遷移手段によって遷移された場合に、当該遷移された運転モード毎に予め定められているアプリケーションプログラムを実行する運転実行手段を備えたことを特徴とするコントローラシステム。
【請求項６】
請求項１乃至５のうちいずれか１項に記載のコントローラシステムを適用したことを特徴とするプラント。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コントローラシステム、およびそれを適用したプラントに係り、更に詳しくは、プラントを構成する設備および装置の監視制御等を行なう複数のコントローラを並列運転するコントローラシステム、およびそれを適用したプラントに関するものである。
【０００２】
【従来の技術】
通常、プラントの監視制御には、コントローラが用いられている。
【０００３】
この種のコントローラには、その機能別に１）プラントを構成する各種設備機器、および装置のプロセス運転を制御するもの、２）プラントのシーケンス運転を制御するもの、３）バックグランド的な技術計算やマンマシンを制御するものに分類される。
【０００４】
これらコントローラは、各々独立して分散配置されて備えられるとともに、各コントローラ間はＬＡＮ等で接続され、互いの情報伝達を行なっている。
【０００５】
しかしながら、制御対象プラントが大規模プラントの場合、各種設備機器および装置の種類や数も増え、それに合わせてコントローラの数も増える傾向にある。これによって、各々のコントローラが制御対象とする装置の管理や、コントローラ自体の機能管理が複雑化してしまう。
【０００６】
また、コントローラ同士がＬＡＮで接続されているため、伝送データ量の増加に伴い情報伝送効率が低下する。このため、データ伝送速度が低下し、迅速なるプラント制御に支障をもたらす可能性が生じてしまう。
【０００７】
一方、制御対象プラントが中規模プラントの場合、プラントの種類、目的も多種多様になり、コントローラは、多様な機能を備えていることに加えて、経済的に優れていることも要求される。しかしながら、一種類のコントローラで全ての要求機能に対応しようとすると、コントローラ自体を高機能化しなければならない。これは、コスト高につながる。
【０００８】
また、コントローラ自体にさほど高機能を要求せずに、コントローラ１台当たりのコストを抑えるとともに、複数のコントローラをＬＡＮで接続するという方法もある。しかしながら、これではＬＡＮの負荷が増加して、データ伝送速度が低下し、迅速なるプラント制御に支障をもたらす可能性が生じる。
【０００９】
よって、中規模以上のプラントに関しては、用途を特化して無駄な機能を省き、コストを抑えた複数のコントローラを、１つのユニットに実装し、お互いのコントローラをバスで接続することが行なわれている。
【００１０】
これにより、今まで分散していたコントローラを、少数のユニット単位にまとめることができるようになる。
【００１１】
また、実装するコントローラの組合せで多様な機能を持つコントローラシステムを低コストで実現できる。
【００１２】
さらに、実装するコントローラはバスで接続されているため、ユニット内のコントローラ間のデータ伝送は、ＬＡＮなどの外部ネットワークを介さずに直接伝送することが可能となり、ＬＡＮに過度の負荷をかけずに済むという利点がある。
【００１３】
【発明が解決しようとする課題】
しかしながら、このような従来のコントローラシステムでは、以下のような問題がある。
【００１４】
すなわち、同一ユニット内に複数のコントローラを実装し、これら複数のコントローラで機能分担している従来のコントローラシステムでは、ユニット内のあるコントローラの運転モードが変更となると、このコントローラに協調して運転しているコントローラについても、運転モードの変更が必要となる。
【００１５】
しかしながら、従来のコントローラシステムは、必要最低限の機能のみを備えた複数のコントローラを、同一のユニットに物理的に実装しただけであり、他のコントローラとの連携をとっておらず、それぞれ独立に機能する。
【００１６】
したがって、プラントの運転開始、異常検出、停止などといった運転モードの変更があった場合、協調運転する全てのコントローラの運転モードの変更指定を手動で行なわなければならない。これは、操作員の負荷を増大させるという問題がある。また、協調運転する全てのコントローラの運転モードの変更指定を、手動で行なうために、あるコントローラの運転モードの変更がなされてから、他のコントローラの運転モードの変更が完了するまでに時間遅れが生じ、この間の監視制御能力が低下するという問題がある。
【００１７】
本発明はこのような事情に鑑みてなされたものであり、その第１の目的は、協調運転しているいずれかのコントローラで運転モードの変更があった場合であっても、そのコントローラと協調運転するコントローラの運転モードも自動的に変更することによって、操作員の負荷を低減させるとともに、運転モードの変更があっても監視制御能力の低下することのないコントローラシステムを提供することにある。
【００１８】
また、その第２の目的は、このようなコントローラシステムを適用することにより、より安全性を高めたプラントを提供することにある。
【００１９】
【課題を解決するための手段】
上記の目的を達成するために、本発明では、以下のような手段を講じる。
【００２０】
すなわち、請求項１の発明では、伝送路を介して互いに接続された複数のコントローラを備えて構成されるコントローラシステムにおいて、各コントローラは、記憶手段と、運転モード書込手段と、運転モード遷移手段とを備える。運転モードデータ書込手段は、コントローラに電源が投入された状態である電源投入モード、コントローラの初期化処理がなされている状態である初期化モード、コントローラが運転を待っている状態である運転待機モード、コントローラが運転を実行している状態である運転実行モード、コントローラが運転を停止している状態である運転停止モード、及びコントローラがエラーにより運転していない状態であるエラーダウンモードを含む運転モードのうち、自己コントローラの現在の運転状態がどの運転モードに属するのかを表す運転モードデータを自己コントローラの記憶手段へ書き込むとともに、他コントローラの記憶手段に書き込まれた他コントローラの運転モードデータを読み取り、読み取った他コントローラの運転モードデータを、自己コントローラの記憶手段に書き込む。運転モード遷移手段は、自己コントローラの記憶手段に書き込まれた自己コントローラの運転モードデータと他コントローラの運転モードデータとの組み合わせと、コントローラの現在の運転モードから次の運転モードへの予め定めた遷移条件とを用いて、自己コントローラが遷移すべき運転モードを選択し、選択した運転モードへと、自己コントローラの運転モードを遷移させる。
【００２１】
従って、請求項１の発明のコントローラシステムにおいては、以上のような手段を講じることにより、各々のコントローラは、自己コントローラが取扱うデータのみならず、他コントローラが取扱うデータをも記憶することができる。更に、記憶した自己コントローラの運転モードデータと他コントローラの運転モードデータとの組み合わせと、コントローラの現在の運転モードから他の運転モードへの予め定めた遷移条件とを用いて、自己コントローラの遷移すべき運転モードを選択し、選択した運転モードへと、自己コントローラの運転モードを遷移させることができる。
【００２６】
請求項２の発明では、請求項１の発明のコントローラシステムにおいて、各コントローラは、自己コントローラの運転モードデータの入力を受け付けるとともに、当該入力された運転モードデータを運転モード遷移手段へ出力する運転モード入力手段を備え、運転モード遷移手段は、運転モード入力手段から運転モードデータが出力された場合には、運転モード入力手段から出力された運転モードデータと自己コントローラの記憶手段に書き込まれた他コントローラの運転モードデータとの組み合わせと、遷移条件とを用いて、自己コントローラが遷移すべき運転モードを選択し、選択した運転モードへと、自己コントローラの運転モードを遷移させる。
【００２７】
従って、請求項２の発明のコントローラシステムにおいては、以上のような手段を講じることにより、運転モードデータの入力を受け付けることが可能であり、運転モードデータが入力された場合には、入力された運転モードデータと自己コントローラの記憶手段に書き込まれた他コントローラの運転モードデータとの組み合わせと、遷移条件とを用いて、自己コントローラが遷移すべき運転モードを選択し、選択した運転モードへと、自己コントローラの運転モードを遷移させることが可能となる。
【００２８】
請求項３の発明では、請求項２の発明のコントローラシステムにおいて、各コントローラは、自己コントローラの異常を検出するとともに、当該検出された異常情報を運転モード遷移手段へ出力する異常検出手段を備え、自己コントローラの記憶手段には、自己コントローラと協調して運転する他コントローラの識別情報が記憶されている。また、遷移条件は、異常検出手段から異常情報が出力された場合には、自己コントローラの現在の運転モードと、自己コントローラと協調して運転する他コントローラの現在の運転モードとを、それぞれエラーダウンモードへと遷移させるように定められている。そして、運転モード遷移手段は、自己コントローラの記憶手段に記憶された識別番号から、自己コントローラと協調して運転する他コントローラを把握し、異常検出手段から異常情報が出力された場合には、遷移条件に基づいて、自己コントローラ、及び把握した他コントローラの運転モードをエラーダウンモードへ遷移させる。
【００２９】
従って、請求項３の発明のコントローラシステムにおいては、以上のような手段を講じることにより、自己コントローラに異常が発生した場合には、自己コントローラ、及び自己コントローラと協調して運転する他コントローラの運転モードを、エラーダウンモードへ遷移させることができる。
【００３０】
請求項４の発明では、請求項２に記載のコントローラシステムにおいて、各コントローラは、自己コントローラに電源が投入された場合に、自己コントローラの動作状態を初期化するとともに、初期化完了時には、自己コントローラの初期化が完了したことを示す初期化完了通知を運転モード遷移手段に出力する初期化手段と、自己コントローラの異常を検出するとともに、当該検出された異常情報を運転モード遷移手段へ出力する異常検出手段とを備えている。自己コントローラの記憶手段には、自己コントローラと協調して運転する他コントローラの識別情報が記憶されている。遷移条件は、初期化手段から初期化完了通知が出力された場合には、自己コントローラの現在の運転モードと、自己コントローラと協調して運転する他コントローラの現在の運転モードとを、それぞれ運転待機モードへと遷移させるように定められ、異常検出手段から異常情報が出力された場合には、自己コントローラの現在の運転モードと、自己コントローラと協調して運転する他コントローラの現在の運転モードとを、それぞれエラーダウンモードへと遷移させるように定められている。そして、運転モード遷移手段は、自己コントローラの記憶手段に記憶された識別番号から、自己コントローラと協調して運転する他コントローラを把握し、初期化手段から初期化完了通知が出力された場合には、遷移条件に基づいて、自己コントローラ、及び把握した他コントローラの運転モードを運転待機モードへ遷移させ、異常検出手段から異常情報が出力された場合には、遷移条件に基づいて、自己コントローラ、及び把握した他コントローラの運転モードをエラーダウンモードへ遷移させる。
【００３１】
従って、請求項４の発明のコントローラシステムにおいては、以上のような手段を講じることにより、自己コントローラの初期化が完了した場合には、自己コントローラ、及び自己コントローラと協調して運転する他コントローラの運転モードを運転待機モードへ遷移させ、自己コントローラに異常が発生した場合には、自己コントローラ、及び自己コントローラと協調して運転する他コントローラの運転モードをエラーダウンモードへ遷移させることができる。
【００３２】
請求項５の発明では、請求項１乃至４のうちいずれか１項の発明のコントローラシステムにおいて、各コントローラは、自己コントローラの運転モードが運転モード遷移手段によって遷移された場合に、当該遷移された運転モード毎に予め定められているアプリケーションプログラムを実行する運転実行手段を備える。
【００３３】
従って、請求項５の発明のコントローラシステムにおいては、以上のような手段を講じることにより、コントローラの運転モードが遷移した場合に、遷移した運転モード毎に予め定められている所定のアプリケーションプログラムを実行することができる。
【００３８】
請求項６の発明では、請求項１乃至５のうちいずれか１項の発明のコントローラシステムを適用する。
【００３９】
従って、請求項６の発明のプラントにおいては、以上のような手段を講じることにより、監視制御の対象とする機器や項目に追加があった場合であっても、それに柔軟に対応することができる。
【００４０】
【発明の実施の形態】
以下に、本発明の実施の形態について図面を参照しながら説明する。
【００４１】
本発明の実施の形態を図１から図１７を用いて説明する。
【００４２】
図１は、本発明の実施の形態に係るコントローラシステムの全体構成例を示すブロック図である。
【００４３】
図２は、ＲＯＭに記憶されたシステムプログラムの全体構成例を示すブロック図である。
【００４４】
すなわち、本実施の形態に係るコントローラシステムは、システムバス９に接続した複数のコントローラ１０（＃ａ〜）からなる。
【００４５】
コントローラ１０は、コントローラ１０全体の実行を司るマイクロプロセッサＣＰＵ１１と、ＲＯＭ１２と、ＲＡＭメモリ１３と、外部インタフェース１４と、システムバス制御回路部１５と、それらを互いに接続する内部バス１８とを備えている。
【００４６】
ＲＯＭ１２は、後述するシステムプログラム３０を内蔵している。また、マイクロプロセッサＣＰＵ１１は、このシステムプログラム３０を実行させる。
【００４７】
ＲＡＭメモリ１３は、システムプログラム３０が取り扱う種々のデータを記憶する。
【００４８】
外部インタフェース１４は、外部Ｉ／Ｏ装置１９と、キースイッチ２０とそれぞれ接続している。これにより、キースイッチ２０から入力される運転指令データの読み出しと、外部Ｉ／Ｏ装置１９とのデータの入出力とを行なう。
【００４９】
システムバス制御回路部１５は、システムバス制御回路１６と共有メモリ１７とを備えている。
【００５０】
システムバス制御回路１６は、システムバス９と内部バス１８とを接続する。
【００５１】
共有メモリ１７は、システムバス制御回路１６を介して送信された、自己のコントローラ１０の取扱うデータや、他のコントローラ１０の取扱うデータを記憶する。
【００５２】
システムプログラム３０は、コントローラ１０を制御するプログラムであり、協調監視部３１と、協調制御部３２と、外部運転指令部３３と、初期化部３４と、運転実行制御部３５と、アプリケーションプログラム３６と、異常検出部３７と、各々のコントローラ１０に固有のデータである運転情報３８、協調情報３９、協調制御スケジュール４０、協調／非協調設定情報４９を備えている。
【００５３】
協調監視部３１は、定周期で起動されるようにしており、自己のコントローラ１０の運転状態を運転情報３８から取得し、自己のコントローラ１０の共有メモリ１７に書き込む。また、他のコントローラ１０（仮に１０（＃ｂ）とする）（＃ｂ）の運転状態を他のコントローラ１０（＃ｂ）の共有メモリ１７（＃ｂ）から読み出して、自己のコントローラ１０の共有メモリ１７に記憶する。
【００５４】
協調制御部３２は、共有メモリ１７に記憶された他のコントローラ１０（＃ｂ）の運転状態と自己のコントローラ１０の運転状態、および後述する協調制御スケジュール４０とを考慮して最適な運転モードを選択する。なお、キースイッチ２０から運転指令が入力され、その運転指令が外部運転指令部３３を介して伝えられた場合には、この運転指令も考慮して最適な運転モードを選択する。
【００５５】
更に、この選択された運転モードを、自己のコントローラ１０の運転情報３８を介して、運転実行制御部３５に通知する。
【００５６】
外部運転指令部３３は、定周期で起動されるようにしており、キースイッチ２０を介して入力される運転指令を受け付ける。更に、受け付けた運転指令を運転情報３８に書き込むとともに、書き込んだ旨を協調制御部３２に通知する。
【００５７】
初期化部３４は、自己のコントローラ１０の電源が投入されると、自己のコントローラ１０の運転状態を初期化する。また、初期化時の自己のコントローラ１０の運転モードと、協調／非協調設定情報３９にて指定されている協調／非協調データと、初期化終了通知とを自己のコントローラ１０の運転情報３８に書き込むとともに、その旨を協調制御部３２に通知する。
【００５８】
運転実行制御部３５は、運転情報３８に書き込まれた運転モードに基づくアプリケーションプログラムをアプリケーションプログラム部３６にて実行させる。
【００５９】
アプリケーションプログラム部３６は、外部Ｉ／Ｏ装置１９から入力される制御データに基づき所定のアプリケーションプログラムを実行するとともに、演算結果を外部Ｉ／Ｏ装置１９に戻す。
【００６０】
異常検出部３７は、自己のコントローラ１０の異常を検出し、その異常情報を自己のコントローラ１０の運転情報３８に書き込み、更にその旨を協調制御部３２に通知する。
【００６１】
本実施の形態に係るコントローラシステムは、このような構成をした複数のコントローラ１０（＃ａ〜）をシステムバス９に接続してなるものである。
【００６２】
これらコントローラ１０（＃ａ〜）は、お互いのシステムバス制御回路１６（＃ａ〜）同士を介して、任意のコントローラ１０（＃ａ〜）互いの共有メモリ１７（＃ａ〜）へのデータ書き込み、および任意のコントローラ１０（＃ａ〜）の共有メモリ１７（＃ａ〜）からのデータ読み出しを可能としている。
【００６３】
協調／非協調設定情報４９は、自己のコントローラ１０の運転条件の指定がなされるようにしている。協調／非協調設定情報４９に、協調モードの指定がなされたコントローラ１０同士は、お互いに協調運転する。一方、協調／非協調設定情報４９に、非協調モードの指定がなされたコントローラ１０は、他のコントローラ１０とは独立して動作する。
【００６４】
図３は、協調モード指定されたコントローラと、非協調モード指定されたコントローラとがシステムバスに接続されている状態を示す概念図である。
【００６５】
図３において、同一のユニット２２を構成しているコントローラ１０（＃ａ）とコントローラ１０（＃ｂ）とは、協調モード指定されたコントローラ１０であり、互いに協調しながら運転する。一方、コントローラ１０（＃ｃ）は、非協調モード指定されたコントローラ１０であり、他のコントローラ１０（＃ａ、＃ｂ）の運転状態と関連することなく、独立して運転する。
【００６６】
次に、協調制御スケジュール４０について図４を用いて説明する。
【００６７】
図４は、協調制御スケジュールの運転モード変更条件の一例を示す条件図である。
【００６８】
協調制御スケジュール４０は、現運転モード４１と、次運転モード４２とに対する、現運転モード４１から次運転モード４２に遷移する条件である遷移条件４３とをまとめたものである。
【００６９】
遷移条件４３は、自己のコントローラ１０の運転状態、他のコントローラ１０（＃ｂ）の運転状態、その他外因内因の状態を考慮して決定するものである。図４の例では、現運転モード４１（Ａ〜Ｄ）のおのおのについて、協調モード指定したコントローラ同士の遷移条件（上段）と、非協調モード指定のコントローラ同士の遷移条件（下段）との２つのケースを示している。
【００７０】
この具体例を、図５と図６とを用いて説明する。
【００７１】
図５は、本発明の実施の形態に係るコントローラシステムの運転モードの相互関係を示す模式図である。
【００７２】
図６は、協調制御スケジュールの運転モード変更条件の別の例を示す条件図である。
【００７３】
すなわち、図５に示すように、本発明の実施の形態に係るコントローラシステムは、その運転モードとして、電源投入モード５１、初期化（ＩＮＺ）モード５２、運転待機（ＲＵＮ−ｗａｉｔ）モード５３、運転実行（ＲＵＮ）モード５４、運転停止（ＨＡＬＴ）モード５５、エラーダウン（ＥＲＲＯＲ）モード５６の６モードから構成しており、各コントローラ１０は、キースイッチ２０を介してモード入力を受付ける。
【００７４】
図７は、キースイッチの構成例を示す外観図である。
【００７５】
各々のコントローラ１０は、このようなキースイッチ２０のキー２３が操作されることによって、所定の運転モードの指定がなされるようにしている。キー２３を回してＨＡＬＴ、ＲＵＮ、ＥＲＲＯＲ−ＲＥＳＥＴを選択することにより、それぞれ運転指令を要求する。
【００７６】
ＨＡＬＴは運転停止（ＨＡＬＴ）モード５５、ＲＵＮは運転実行（ＲＵＮ）モード５４、ＥＲＲＯＲ−ＲＥＳＥＴはエラーダウン（ＥＲＲＯＲ）モード５６にそれぞれ相当する。
【００７７】
キースイッチ２０により入力された運転モード指定入力は、図２に示すように、外部運転指令部３３に入力されるとともに、チェックされ、運転情報３８として書込まれた後に協調制御部３２に通知される。
【００７８】
また、一旦選択された運転モードで運転が開始された後には、運転の状況に応じて、遷移条件４３に従って、他の運転モードへと遷移する。この運転モードの遷移方法の例について以下に記載する。
【００７９】
電源投入モード５１は、電源投入時の状態である。
【００８０】
初期化（ＩＮＺ）モード５２は、自己のコントローラ１０の運転状態を初期化するモードで、電源投入モード５１で電源が投入されると、自動的にこのモードに入る。この初期化（ＩＮＺ）モード５２では、初期化が正常終了したのか、あるいは異常終了したのかを監視する。初期化が正常終了していれば次の運転待機（ＲＵＮ−ｗａｉｔ）モード５３に運転モードを切り換える。異常終了であればエラーダウン（ＥＲＲＯＲ）モード５６へ切り換える。
【００８１】
運転待機（ＲＵＮ−ｗａｉｔ）モード５３は、他のコントローラ１０（＃ｂ〜）の運転開始を監視する運転モードである。他の全てのコントローラ１０（＃ｂ〜）が 運転待機（ＲＵＮ−ｗａｉｔ）モード５３になったら、運転実行（ＲＵＮ）モード５４へ切り換える。一方、監視中に何らかの異常を検出したらエラーダウン（ＥＲＲＯＲ）モード５６へ切り換える。
【００８２】
運転実行（ＲＵＮ）モード５４は、アプリケーションプログラム部３６のアプリケーションを用いて所定のタスクを実行する運転モードである。このモードでは、協調モード指定のコントローラ１０と、非協調モード指定のコントローラ１０とでは、その後の実行方法が異なる。自己のコントローラ１０が協調モード指定の場合には、協調モード指定の他のコントローラ１０（＃ｂ）が運転実行（ＲＵＮ）モード５４以外のモードになったらアプリケーションプログラム部３６のアプリケーションプログラムの実行を停止するとともに、運転待機（ＲＵＮ−ｗａｉｔ）モード５３へ切り換える。
【００８３】
また、外部のキースイッチ２０の操作により、運転停止の要求があった場合には、アプリケーションプログラム部３６のアプリケーションプログラムの実行を停止し、運転停止（ＨＡＬＴ）モード５５へ切り換える。そして、何らかの異常を検出した場合には、エラーダウン（ＥＲＲＯＲ）モード５６へ切り換える。一方、自己のコントローラ１０が非協調モード指定の場合、または外部のキースイッチ２０の操作により運転停止要求があった場合には、アプリケーションプログラム部３６のアプリケーションプログラムを実行停止して、運転停止（ＨＡＬＴ）モード５５へ切り換える。また、何らかの異常を検出した場合には、エラーダウン（ＥＲＲＯＲ）モード５６へ切り換える。
【００８４】
運転停止（ＨＡＬＴ）モード５５は、運転停止を表しアプリケーションプログラム部３６にてなされるアプリケーションプログラムの実行を停止する運転モードである。但し、外部のキースイッチ２０の操作により運転開始要求があった場合には、運転待機（ＲＵＮ−ｗａｉｔ）モード５３へ切り換える。また、何らかの異常を検出した場合には、エラーダウン（ＥＲＲＯＲ）モード５６へ切り換える。
【００８５】
エラーダウン（ＥＲＲＯＲ）モード５６は、異常停止を表しアプリケーションプログラム部３６にてなされるアプリケーションプログラムの実行を停止する運転モードである。但し、外部のキースイッチ２０の操作によりエラーリセット要求があった場合は、初期化（ＩＮＺ）モード５２へ切り換え、最初からコントローラ１０を立ち上げ直す。
【００８６】
このような運転モードの遷移条件をまとめたものが図６に示す協調制御スケジュール４０である。これは、現運転モード４１と、次運転モード４２と、現運転モード４１から次運転モード４２に遷移する場合における遷移条件４３とをまとめたものであり、現運転モード４１を入力情報とし、各運転モードの横方向に運転モードの遷移条件４３を示し、各々の条件により選択された次運転モード４２を出力情報として示したものである。なお、現運転モード４１は、更に自己のコントローラ１０が協調モードか非協調モードかで分類している。すなわち、図６に示す各運転モード４１における上段は、自己のコントローラ１０が協調モード指定の場合であり、下段は自己のコントローラ１０が非協調モード指定の場合である。詳細を以下に説明する。
【００８７】
１）現運転モード４１が初期化（ＩＮＺ）モード５２の場合
ａ）自己のコントローラ１０が協調モード指定の場合
初期化が正常に完了していれば運転待機（ＲＵＮ−ｗａｉｔ）モード５３に遷移する。また、初期化が正常に完了していなければエラーダウン（ＥＲＲＯＲ）モード５６に遷移する。
【００８８】
ｂ）自己のコントローラ１０が非協調モード指定の場合
初期化が正常に完了していれば運転待機（ＲＵＮ−ｗａｉｔ）モード５３に遷移する。また、初期化が正常に完了していなければエラーダウン（ＥＲＲＯＲ）モード５６に遷移する。
【００８９】
以上の条件がいずれも成立しない場合は、現運転モード４１である初期化（ＩＮＺ）モード５２を維持する。
【００９０】
２）現運転モード４１が運転待機（ＲＵＮ−ｗａｉｔ）モード５３の場合
ａ）自己のコントローラ１０が協調モード指定の場合
他の協調モード指定のコントローラ１０が全て運転待機（ＲＵＮ−ｗａｉｔ）モード５３になった場合、運転実行（ＲＵＮ）モード５４に遷移する。また、異常が発生していればエラーダウン（ＥＲＲＯＲ）モード５６に遷移する。
【００９１】
ｂ）自己のコントローラ１０が非協調モード指定の場合
無条件に運転実行（ＲＵＮ）モード５４に遷移する。但し、初期化が正常に完了していなければエラーダウン（ＥＲＲＯＲ）モード５６に遷移する。
【００９２】
以上の条件がいずれも成立しない場合は、現運転モード４１である運転待機（ＲＵＮ−ｗａｉｔ）モード５３を維持する。
【００９３】
３）現運転モード４１が運転実行（ＲＵＮ）モード５４の場合
ａ）自己のコントローラ１０が協調モード指定の場合
他の協調モード指定のコントローラ１０が１台でも運転実行（ＲＵＮ）モード５４以外になっていれば運転待機（ＲＵＮ−ｗａｉｔ）モード５３に遷移する。但し、運転停止要求があれば運転停止（ＨＡＬＴ）モード５５に遷移する。また、異常が発生していればエラーダウン（ＥＲＲＯＲ）モード５６に遷移する。
【００９４】
ｂ）自己のコントローラ１０が非協調モード指定の場合
運転停止要求があれば運転停止（ＨＡＬＴ）モード５５に遷移する。また、異常が発生していればエラーダウン（ＥＲＲＯＲ）モード５６に遷移する。
【００９５】
以上の条件がいずれも成立しない場合は、現運転モード４１である運転実行（ＲＵＮ）モード５４を維持する。
【００９６】
４）現運転モード４１が運転停止（ＨＡＬＴ）モード５５の場合
ａ）自己のコントローラ１０が協調モード指定の場合
運転開始要求があれば運転実行（ＲＵＮ）モード５４に遷移する。また、異常が発生していればエラーダウン（ＥＲＲＯＲ）モード５６に遷移する。
【００９７】
ｂ）自己のコントローラ１０が非協調モード指定の場合
運転開始要求があれば運転実行（ＲＵＮ）モード５４に遷移する。また、異常が発生していればエラーダウン（ＥＲＲＯＲ）モード５６に遷移する。
【００９８】
以上の条件がいずれも成立しない場合は、現運転モード４１である運転停止（ＨＡＬＴ）モード５５を維持する。
【００９９】
５）現運転モード４１がエラーダウン（ＥＲＲＯＲ）モード５６の場合
ａ）自己のコントローラ１０が協調モード指定の場合
エラー解除要求があれば初期化（ＩＮＺ）モード５２に遷移する。
【０１００】
ｂ）自己のコントローラ１０が非協調モード指定の場合
エラー解除要求があれば初期化（ＩＮＺ）モード５２に遷移する。
【０１０１】
以上の条件がいずれも成立しない場合は、現運転モード４１であるエラーダウン（ＥＲＲＯＲ）モード５６を維持する。
【０１０２】
各々のコントローラ１０のＲＡＭメモリ１３は、このような協調制御スケジュール４０を記憶する。
【０１０３】
次に、共有メモリ１７、協調／非協調設定情報４９、運転情報３８に記憶されるデータのデータ構造について説明する。
【０１０４】
図８は、共有メモリに記憶される協調情報データのデータ構造図である。
【０１０５】
すなわち、共有メモリ１７は、協調情報エリア６１を格納する。協調情報エリア６１は、コントローラ１０の運転モード６２と協調／非協調モード６３とを記憶するエリアを備えている。
【０１０６】
図９は、協調／非協調設定情報に記憶される協調情報保存テーブルのデータ構造図である。
【０１０７】
すなわち、協調情報保存テーブル７０は、各コントローラ１０毎の運転モード７１と協調／非協調モード７２とを記憶するエリアを備えている。
【０１０８】
図１０は、運転情報に記憶される運転情報テーブルのデータ構造図である。
【０１０９】
すなわち、運転情報テーブル８０は、自己のコントローラ１０の初期化情報８１と、異常発生情報８２と、外部運転指令要求８３と、運転変更フラグ８４と、運転モード８５と、協調／非協調モード８６とを記憶するエリアを備えている。
【０１１０】
次に、システムプログラム３０の初期化部３４、運転実行制御部３５、外部運転司令部３３、協調監視部３１、協調制御部３２、異常検出部３７の機能構成についてフローチャート等を用いて説明する。
【０１１１】
図１１は、初期化部が行なう初期化ルーチンの流れを示すフローチャートである。
【０１１２】
初期化部３４は、電源投入時に起動され（Ｓ１１）、運転情報テーブル８０の運転モード８５に、初期化（ＩＮＺ）モード５２を登録する。そして、協調／非協調設定情報４９から協調／非協調モード情報を取り出して、運転情報テーブル８０の協調／非協調モード８６に登録する（Ｓ１２）。
【０１１３】
次に、コントローラ１０を初期化し（Ｓ１３）、協調監視部３１と協調制御部３２と外部運転指令部３３とを定周期で起動する（Ｓ１４）。更に、コントローラ１０の各部分を診断し（Ｓ１５）、その診断結果を判定する（Ｓ１６）。
【０１１４】
判定の結果、コントローラ１０の各部分に異常がなければ（Ｓ１６：異常無し）、初期化正常完了情報を運転情報テーブル８０の初期化情報８１に登録し（Ｓ１７）、異常が検出されれば（Ｓ１６：異常有り）、初期化異常終了情報を運転情報テーブル８０の初期化情報８１に登録する（Ｓ１８）。
【０１１５】
次に、運転実行制御部３５を定周期で起動して（Ｓ１９）、初期化部３４による初期化ルーチンを終了する（Ｓ２０）。
【０１１６】
図１２は、外部運転指令部が行なう外部運転指令ルーチンの流れを示すフローチャートである。
【０１１７】
外部運転指令部３３は、電源投入後に初期化部３４から定周期で起動される（Ｓ２１）。そして、キースイッチ２０の状態を入力し（Ｓ２２）、次に、キースイッチ２０の状態が変化しているか判定する（Ｓ２３）。
【０１１８】
キースイッチ２０の状態に変化が無い場合（Ｓ２４：変化無し）には、本処理を終了する（Ｓ２９）。
【０１１９】
一方、キースイッチ２０の状態に変化がある場合（Ｓ２４：変化あり）には、キー２３の位置に応じた処理を実行する（Ｓ２５）。
【０１２０】
キー２３がＨＡＬＴの位置にある場合には、運転停止要求を運転情報テーブル８０の外部運転指令要求８３に登録する（Ｓ２６）。
【０１２１】
キー２３がＲＵＮの位置にある場合には、運転開始要求を運転情報テーブル８０の外部運転指令要求８３に登録する（Ｓ２７）。
【０１２２】
キー２３がＥＲＲＯＲ−ＲＥＳＥＴの位置にある場合には、エラー解除要求を運転情報テーブル８０の外部運転指令要求８３に登録する（Ｓ２８）。
【０１２３】
以上の処理を行なった後に処理を終了する（Ｓ２９）。
【０１２４】
図１３は、運転実行制御部が行なう実行制御ルーチンの流れを示すフローチャートである。
【０１２５】
運転実行制御部３５は、電源投入後に、初期化部３４によって定周期で起動される（Ｓ３１）。その後、運転情報テーブル８０の運転変更フラグ８４を取り出し（Ｓ３２）、運転変更が有るか否かを判定する（Ｓ３３）。
【０１２６】
運転変更が無ければ（Ｓ３３：変更なし）本処理を終了する（Ｓ４０）。一方、運転変更があれば（Ｓ３３：変更あり）、運転情報テーブル８０の運転モード８５を取り出して、この運転モード８５に記載された情報に従って次の処理を実行する（Ｓ３４）。
【０１２７】
運転モード８５が初期化（ＩＮＺ）モード５２の場合、初期化部３４を起動する（Ｓ３５）。この処理によりコントローラ１０は初期化され、電源投入時と同じように最初から動作する。
【０１２８】
運転モード８５が運転待機（ＲＵＮ−ｗａｉｔ）モード５３であればアプリケーションプログラム部３６におけるアプリケーションプログラムの実行を停止する（Ｓ３６）。
【０１２９】
運転モード８５が運転実行（ＲＵＮ）モード５４であればアプリケーションプログラム部３６におけるアプリケーションプログラムを起動する（Ｓ３７）。
【０１３０】
運転モード８５が運転停止（ＨＡＬＴ）モード５５であればアプリケーションプログラム部３６におけるアプリケーションプログラムの実行を停止する（Ｓ３８）。
【０１３１】
運転モード８５がエラーダウン（ＥＲＲＯＲ）モード５６であればアプリケーションプログラム部３６におけるアプリケーションプログラムの実行を停止する（Ｓ３９）。
【０１３２】
このように、運転モード８５にて指定されたいずれか運転モードに従って実行を行なった後に本処理を終了する（Ｓ４０）。
【０１３３】
図１４は、協調監視部が行なう協調監視ルーチンの流れを示すフローチャートである。
【０１３４】
協調監視部３１は、電源投入後に初期化部３４から定周期で起動される（Ｓ４１）。そして、運転情報テーブル８０から自己のコントローラ１０の運転モード８５を取り出すとともに、その情報を自己のコントローラ１０の共有メモリ１７に書き込む（Ｓ４２）。
【０１３５】
次に、他のコントローラ１０の共有メモリ１７（＃ａ）から、他のコントローラ１０（＃ｂ〜）の協調／非協調モード８６を読み出して、自己のコントローラ１０（＃ａ）の協調情報３９（＃ａ）に保存する（Ｓ４３〜Ｓ４７)。
【０１３６】
そして、全てのコントローラ１０の共有メモリ１７から協調／非協調モード８６を読み出し、自己のコントローラ１０（＃ａ）の協調情報３９（＃ａ）への保存が完了すると本処理を終了する（Ｓ４８）。
【０１３７】
図１５は、協調制御部が行なう監視処理ルーチンの流れを示すフローチャートである。
【０１３８】
協調制御部３２は、電源投入後に初期化部３４から定周期で起動される（Ｓ５１）。そして、運転情報テーブル８０から自己のコントローラ１０の運転モード８５の情報を取り出し、その情報に従って監視処理を実行し（Ｓ５３〜Ｓ５７）、処理を終了する（Ｓ５８）。
【０１３９】
運転モード８５が初期化（ＩＮＺ）モード５２であれば初期化（ＩＮＺ）モード５２を監視する（Ｓ５３）。
【０１４０】
運転モード８５が運転待機（ＲＵＮ−ｗａｉｔ）モード５３であれば運転待機（ＲＵＮ−ｗａｉｔ）モード５３を監視する（Ｓ５４）。
【０１４１】
運転モード８５が運転実行（ＲＵＮ）モード５４であれば運転実行（ＲＵＮ）モード５４を監視する（Ｓ５５）。
【０１４２】
運転モード８５が運転停止（ＨＡＬＴ）モード５５であれば運転停止（ＨＡＬＴ）モード５５を監視する（Ｓ５６）。
【０１４３】
運転モード８５がエラーダウン（ＥＲＲＯＲ）モード５６であればエラーダウン（ＥＲＲＯＲ）モード５６を監視する（Ｓ５７）。
【０１４４】
図１６は、協調制御部が行なう協調制御ルーチンの流れを示すフローチャートである。
【０１４５】
協調制御部３２によって行われる協調制御は、電源投入モード５１、初期化（ＩＮＺ）モード５２、運転待機（ＲＵＮ−ｗａｉｔ）モード５３、運転実行（ＲＵＮ）モード５４、運転停止（ＨＡＬＴ）モード５５、エラーダウン（ＥＲＲＯＲ）モード５６の６モード毎に行われる。
【０１４６】
協調制御部３２が起動される（Ｓ６１）と、運転情報テーブル８０と、協調情報保存テーブル７０と、協調制御スケジュール４０とが参照される。そして、運転情報テーブル８０の初期化情報８１、異常発生情報８２、外部運転指令要求８３、現在の運転モード８５と、協調情報保存テーブル７０に記載されている全てのコントローラ１０の運転モード７１、協調／非協調モード７２と、協調制御スケジュール４０の内容とに従って、現運転モード４１の遷移条件４３が検討される（Ｓ６２）。
【０１４７】
そして、いずれかの遷移条件４３が成立している場合（Ｓ６３：成立する）には、運転情報テーブル８０の運転変更フラグ８４と、運転モード８５とに、運転モード遷移の旨と次運転モード４２とを書き込む（Ｓ６４）。
【０１４８】
いずれの遷移条件も成立しない場合（Ｓ６３：成立しない）には、現運転モード４１を維持する（Ｓ６５）。
【０１４９】
このようにして、協調制御部３２における協調制御を終了する（Ｓ６６）。
【０１５０】
図１７は、異常検出部が行なう異常検出ルーチンの流れを示すフローチャートである。
【０１５１】
この異常検出ルーチンは、異常割り込みにより起動される（Ｓ７１）。そして、異常割り込みがあった場合には、異常発生情報を運転情報テーブル８０の異常発生情報８２に登録して（Ｓ７２）、本処理を終了する（Ｓ７３）。
【０１５２】
次に、以上のように構成した本実施の形態に係るコントローラシステムの動作について説明する。
【０１５３】
先ず、電源を投入し、ユニット２２内のコントローラ１０を立ち上げる。このとき、電源を投入された各コントローラ１０は、初期化部３４を起動して、初期化（ＩＮＺ）モード５２に入る。また、同時に協調監視部３１、協調制御部３２、外部運転指令部３３、運転実行制御部３５が定周期で起動される。
【０１５４】
そして、これら各コントローラ１０は、初期化が正常に完了した場合に、協調制御スケジュール４０に従って運転待機（ＲＵＮ−ｗａｉｔ）モード５３に遷移する。
【０１５５】
このようにして、全てのコントローラ１０が運転待機（ＲＵＮ−ｗａｉｔ）モード５３に遷移すると、各コントローラ１０は、協調制御スケジュール４０に従って一斉に運転実行（ＲＵＮ）モード５４に遷移し、運転実行制御部３５によりアプリケーションプログラム部３６のアプリケーションプログラムが起動され、プラントの制御が開始される。
【０１５６】
すなわち、各コントローラ１０は、電源投入後は協調モード指定または非協調モード指定に関係なく、他のコントローラ１０と同期してプラントの制御を開始する。
【０１５７】
また、このように全てのコントローラ１０が、運転実行（ＲＵＮ）モード５４で運転している最中に、協調モード指定のコントローラ１０のうちのいずれかで異常が発生した場合を想定する。この場合には、異常が発生した協調モード指定のコントローラ１０は、自己の異常検出部３７により異常が検知されるとともに、その情報が運転情報３８に記録されるとともに、協調制御部３２に通知され、エラーダウン（ＥＲＲＯＲ）モード５６に自動的に遷移する。
【０１５８】
これにより、正常に運転している協調モード指定のコントローラ１０は、協調制御スケジュール４０に従って一斉に運転待機（ＲＵＮ−ｗａｉｔ）モード５３に遷移するとともに、運転実行制御部３５によってアプリケーションプログラム部３６のアプリケーションプログラムが停止する。
【０１５９】
一方、非協調モード指定のコントローラ１０は、協調制御スケジュール４０に従って現運転モード４１での運転を継続する。
【０１６０】
すなわち、協調モード指定のコントローラ１０に異常が発生した場合には、協調モード指定されたコントローラ１０のみが連動して運転停止する。
【０１６１】
また、全てのコントローラ１０が運転実行（ＲＵＮ）モード５４で運転している場合に、何れかの非協調モード指定のコントローラ１０に異常が発生すると、そのコントローラ１０は自己の異常検出部３７により異常が検出されるとともに、その情報が協調制御部３２に通知される。
【０１６２】
すると、そのコントローラ１０の運転モードが、運転実行（ＲＵＮ）モード５４からエラーダウン（ＥＲＲＯＲ）モード５６へと遷移するとともに、運転実行制御部３５によりアプリケーションプログラム部３６のアプリケーションプログラムが停止され、プラントの制御も停止する。
【０１６３】
一方、それ以外のコントローラ１０は、協調／非協調モード指定に係わらず協調制御スケジュール４０に従って現運転モード４１での運転を維持する。
【０１６４】
このように、非協調モード指定のコントローラ１０に異常が検出されても、他のコントローラ１０はそれに影響を受けること無く運転を継続する。
【０１６５】
また、全てのコントローラ１０が運転実行（ＲＵＮ）モード５４で運転している場合に、何れかの協調モード指定のコントローラ１０に対して、キー２３操作による運転停止要求がなされた場合には、そのコントローラ１０は、自己の外部運転指令部３３から協調制御部３２に運転停止要求が通知されるとともに、運転停止（ＨＡＬＴ）モード５５の運転モードに遷移する。
【０１６６】
すると、協調モード指定のコントローラ１０は、協調制御スケジュール４０に従って一斉に運転待機（ＲＵＮ−ｗａｉｔ）モード５３に遷移し、運転実行制御部３５によりアプリケーションプログラム部３６のアプリケーションプログラムを停止する。
【０１６７】
一方、非協調モード指定のコントローラ１０は、協調制御スケジュール４０に従って現運転モード４１での運転を継続する。
【０１６８】
すなわち、協調モード指定のコントローラ１０に対してキー２３操作により外部から運転停止要求があった場合には、同じく協調モード指定されているコントローラ１０のみが連動して運転を停止する。
【０１６９】
また、全てのコントローラ１０が運転実行（ＲＵＮ）モード５４で運転している場合に、何れかの非協調モード指定のコントローラ１０に対して、キー２３操作による運転停止要求がなされた場合には、そのコントローラ１０は自己の外部運転指令部３３により協調制御部３２に運転停止要求が通知され、運転停止（ＨＡＬＴ）モード５５に遷移する。
【０１７０】
そして、協調モード指定または非協調モード指定されたコントローラ１０は、協調制御スケジュール４０に従って現運転モード４１での運転を継続する。
【０１７１】
すなわち、非協調モード指定のコントローラ１０に対して、キー２３操作により外部から運転停止要求があった場合、他のコントローラ１０は関係なく運転を継続する。
【０１７２】
また、エラーダウン（ＥＲＲＯＲ）モード５６で運転停止している協調モード指定のコントローラ１０に対してキー２３操作によりエラー解除要求を行うと、そのコントローラ１０は、初期化部３４を実行する。そして、正常に初期化を完了すれば運転待機（ＲＵＮ−ｗａｉｔ）モード５３で立ち上がるとともに、協調制御スケジュール４０に従って、協調モード指定されたコントローラ１０は一斉に運転実行（ＲＵＮ）モード５４に遷移する。
【０１７３】
これによって、このコントローラ１０の運転実行制御部３５は、アプリケーションプログラム部３６のアプリケーションプログラムを起動してプラントの制御を開始する。
【０１７４】
一方、非協調モード指定のコントローラ１０は、協調制御スケジュール４０に従って現運転モード４１での運転を継続する。
【０１７５】
すなわち、協調モード指定されたコントローラ１０をエラー解除要求をして運転待機（ＲＵＮ−ｗａｉｔ）モード５３にした場合は、運転待機（ＲＵＮ−ｗａｉｔ）モード５３になっている協調モード指定されたコントローラ１０のみが連動して運転を開始する。
【０１７６】
また、エラーダウン（ＥＲＲＯＲ）モード５６で運転停止している非協調モード指定のコントローラ１０に対してキー２３操作によりエラー解除要求を行った場合、そのコントローラ１０は、初期化部３４を実行し、初期化が正常に完了すれば運転待機（ＲＵＮ−ｗａｉｔ）モード５３で立ち上がる。そして、協調制御スケジュール４０に従って運転実行（ＲＵＮ）モード５４に遷移し、自己の運転実行制御部３５によりアプリケーションプログラム部３６のアプリケーションプログラムを起動してプラントの制御を開始する。
【０１７７】
一方、協調モード指定または非協調モード指定された他のコントローラ１０は、協調制御スケジュール４０に従って現運転モード４１での運転を継続する。
【０１７８】
すなわち、非協調モード指定されたコントローラ１０をエラー解除要求により運転実行（ＲＵＮ）モード５４に立ち上げても、他のコントローラ１０は関係なく現在の運転を維持する。
【０１７９】
また、運転停止（ＨＡＬＴ）モード５５で運転停止している協調モード指定のコントローラ１０に対して、キー２３操作により運転開始要求を行うと、そのコントローラ１０は協調制御スケジュール４０に従って運転待機（ＲＵＮ−ｗａｉｔ）モード５３に立ち上がる。そして、協調制御スケジュール４０に従って、協調モード指定されたコントローラ１０は一斉に運転実行（ＲＵＮ）モード５４に遷移し、運転実行制御部３５によりアプリケーションプログラム部３６のアプリケーションプログラムを起動してプラントの制御を開始する。
【０１８０】
一方、非協調モード指定のコントローラ１０は、協調制御スケジュール４０に従って現運転モード４１での運転を継続する。
【０１８１】
すなわち、運転停止（ＨＡＬＴ）モード５５で運転している協調モード指定されたコントローラ１０を運転開始要求により立ち上げた場合には、運転待機（ＲＵＮ−ｗａｉｔ）モード５３になっている協調モード指定されたコントローラ１０のみが連動して運転を開始する。
【０１８２】
また、運転停止（ＨＡＬＴ）モード５５で運転停止している非協調モード指定のコントローラ１０に対して、キー２３操作により運転開始要求を行うと、そのコントローラ１０は協調制御スケジュール４０に従って運転待機（ＲＵＮ−ｗａｉｔ）モード５３に立ち上がる。
【０１８３】
一方、他のコントローラ１０は、協調制御スケジュール４０に従って、現運転モード４１での運転を継続する。
【０１８４】
すなわち、運転停止（ＨＡＬＴ）モード５５で運転している非協調指定されたコントローラ１０を運転開始要求で立ち上げても、他のコントローラ１０は現運転モード４１での運転を継続する。
【０１８５】
なお、請求項でいう伝送路、記憶手段、データ書込読出手段、運転状態情報書込手段、運転状態遷移計画データ、運転状態遷移手段、運転状態入力手段、異常検出手段、初期化手段、運転実行手段は、本発明の実施の形態においてシステムバス９、共有メモリ１７、協調監視部３１、協調監視部３１、協調制御スケジュール４０、協調制御部３２、外部運転司令部３３、異常検出部３７、初期化部３４、運転実行制御部３５にそれぞれ相当する。
【０１８６】
また、請求項でいう協調運転手段は、本発明の実施の形態では協調制御部３２に相当するが、このように、各々のコントローラ１０に備えなくても、専用のコントローラを設け、それによって各々のコントローラ１０を制御するようにしても良い。
【０１８７】
上述したように、本実施の形態に係るコントローラシステムにおいては、協調モード指定されたコントローラ１０について、運転モードの変更要求があった場合、そのコントローラ１０に協調して運転している他のコントローラ１０も、連動して運転モードが自動的に変更される。
【０１８８】
また、そのコントローラ１０が異常を検出して運転モードを変更した場合であっても、協調して運転している他のコントローラ１０も、連動して運転モードが自動的に変更される。
【０１８９】
このように、協調モード指定されたコントローラ１０の運転モードに変更があった場合、そのコントローラ１０と協調運転しているコントローラ１０の運転モードも自動的に変更されるので、操作員の負荷を低減させるとともに、運転モードの変更時にもプラント等の監視制御を連続的に行なうことができ、監視制御能力の低下することのないコントローラシステムを実現することが可能となる。
【０１９０】
なお、協調運転していないコントローラ１０は、他のコントローラ１０の運転モード変更があった場合であっても、運転モードは変更されず、従前同様にプラントの監視監視等を継続することができる。
【０１９１】
また、このようなコントローラシステムを適用したプラントは、運転モードの変更があった場合においても、運転モードの切り換えが自動的に、かつ、迅速に行なわれるので、不監視時間がなく、より安全性を高めたプラントを実現することができる。
【０１９２】
以上、本発明の好適な実施の形態について、添付図面を参照しながら説明したが、本発明はかかる構成に限定されない。特許請求の範囲に記載された技術的思想の範疇において、当業者であれば、各種の変更例および修正例に想到し得るものであり、それら変更例および修正例についても本発明の技術的範囲に属するものと了解される。
【０１９３】
【発明の効果】
以上説明したように、本発明のコントローラシステムによれば、協調運転しているいずれかのコントローラで運転モードの変更があった場合であっても、そのコントローラと協調運転するコントローラの運転モードも自動的に変更することができる。
【０１９４】
以上により、操作員の負荷を低減させるとともに、運転モードの変更があっても監視制御能力の低下を防止することが可能となる。
【０１９５】
また、本発明のコントローラシステムを適用したプラントは、運転モードの変更があっても、連続的に監視制御がなされるので、より安全性を高めることが可能となる。
【図面の簡単な説明】
【図１】本発明の実施の形態に係るコントローラシステムの全体構成例を示すブロック図。
【図２】ＲＯＭに記憶されたシステムプログラムの全体構成例を示すブロック図。
【図３】協調モード指定されたコントローラと、非協調モード指定されたコントローラとがシステムバスに接続されている状態を示す概念図。
【図４】協調制御スケジュールの運転モード変更条件の一例を示す条件図。
【図５】同実施の形態に係るコントローラシステムの運転モードの相互関係を示す模式図。
【図６】協調制御スケジュールの運転モード変更条件の別の例を示す条件図。
【図７】キースイッチの構成例を示す外観図。
【図８】共有メモリに記憶される協調情報データのデータ構造図。
【図９】協調／非協調設定情報に記憶される協調情報保存テーブルのデータ構造図。
【図１０】運転情報に記憶される運転情報テーブルのデータ構造図。
【図１１】初期化部が行なう初期化ルーチンの流れを示すフローチャート。
【図１２】外部運転指令部が行なう外部運転指令ルーチンの流れを示すフローチャート。
【図１３】運転実行制御部が行なう実行制御ルーチンの流れを示すフローチャート。
【図１４】協調監視部が行なう協調監視ルーチンの流れを示すフローチャート。
【図１５】協調制御部が行なう監視処理ルーチンの流れを示すフローチャート。
【図１６】協調制御部が行なう協調制御ルーチンの流れを示すフローチャート。
【図１７】異常検出部が行なう異常検出ルーチンの流れを示すフローチャート。
【符号の説明】
９…システムバス、
１０…コントローラ、
１１…マイクロプロセッサＣＰＵ、
１２…ＲＯＭ、
１３…ＲＡＭメモリ、
１４…外部インタフェース、
１５…システムバス制御回路部、
１６…システムバス制御回路、
１７…共有メモリ、
１８…内部バス、
１９…外部Ｉ／Ｏ装置、
２０…キースイッチ、
２２…ユニット、
２３…キー、
３０…システムプログラム、
３１…協調監視部、
３２…協調制御部、
３３…外部運転指令部、
３４…初期化部、
３５…運転実行制御部、
３６…アプリケーションプログラム部、
３７…異常検出部、
３８…運転情報、
３９…協調情報、
４０…協調制御スケジュール、
４１…現運転モード、
４２…次運転モード、
４３…遷移条件、
４９…協調／非協調設定情報、
５１…電源投入モード、
５２…初期化モード、
５３…運転待機モード、
５４…運転実行モード、
５５…運転停止モード、
５６…エラーダウンモード、
６１…協調情報エリア、
６２…運転モード、
６３…協調／非協調モード、
７０…協調情報保存テーブル、
７１…運転モード、
７２…協調／非協調モード、
８０…運転情報テーブル、
８１…初期化情報、
８２…異常発生情報、
８３…外部運転指令要求、
８４…運転変更フラグ、
８５…運転モード、
８６…協調／非協調モード。
【図１】
0003810965.tif 000002
【図２】
0003810965.tif 000003
【図３】
0003810965.tif 000004
【図４】
0003810965.tif 000005
【図５】
0003810965.tif 000006
【図６】
0003810965.tif 000007
【図７】
0003810965.tif 000008
【図８】
0003810965.tif 000009
【図９】
0003810965.tif 000010
【図１０】
0003810965.tif 000011
【図１１】
0003810965.tif 000012
【図１２】
0003810965.tif 000013
【図１３】
0003810965.tif 000014
【図１４】
0003810965.tif 000015
【図１５】
0003810965.tif 000016
【図１６】
0003810965.tif 000017
【図１７】
0003810965.tif 000018