(57)【特許請求の範囲】
【請求項１】
制御対象を監視制御する中央制御装置と、前記制御対象から入力されたデータを前記中央制御装置へ送信するか、または、前記中央制御装置から受信したデータを前記制御対象へ出力する複数の入出力装置と、を備え、前記複数の入出力装置それぞれは、複数のレジスタから成り、前記制御対象から入力されたデータ、または、前記制御対象へ出力するデータを一時記憶する一時記憶手段を有する制御システムにおいて、
前記複数の入出力装置は、各々の前記一次記憶手段に離散的に存在するレジスタであって、前記制御対象との間で入力または出力に使用する所定のレジスタを選択するための構成情報を記憶する構成情報記憶手段をそれぞれ備え、
前記中央制御装置は、前記入出力装置ごとに前記構成情報が示す前記所定のレジスタに対応する領域を連続して割り当てた主メモリを備え、
前記複数の入出力装置は、
前記中央制御装置へのデータ送信時は、
各々の前記構成情報記憶手段に記憶された前記構成情報が示す離散的に存在する前記所定のレジスタ内のデータを読み出し、当該読み出したデータを連続配置した前記中央制御装置宛のフレームを作成し前記中央制御装置へバースト転送し、
前記中央制御装置からのデータ受信時は、
前記中央制御装置から前記制御対象へ出力するデータが連続配置されたフレームをバースト転送により受信し、各々の前記構成情報記憶手段に記憶された前記構成情報が示す離散的に存在する前記所定のレジスタを選択して当該受信したデータを書き出すことを特徴とするプラント制御システム。
【請求項２】
請求項１に記載のプラント制御システムにおいて、
前記主メモリには、前記所定レジスタから読み出したデータ、または、前記所定のレジスタへ書き出すデータが記憶される当該主メモリ内のアドレスを前記複数の入出力装置ごとに定める構成情報テーブルが記憶され、
前記中央制御装置は、
通信対象となる前記入出力装置が読み出したデータを受信し、前記構成情報テーブルを参照して当該入出力装置に定められた前記主メモリのアドレスへ当該読み出したデータを格納するか、または、
前記構成情報テーブルを参照して、通信対象となる前記入出力装置に定められた前記主メモリのアドレスから、前記一時記憶部へ書き出すデータを取出して当該入手出力装置へ書き出し命令を送信することを特徴とするプラント制御システム。
【請求項３】
請求項２に記載のプラント制御システムにおいて、
前記中央制御装置は、論理アドレスに変換された前記主メモリ内のアドレスを用いてソフトウェア処理を行うＣＰＵと、
前記ＣＰＵから前記主メモリへのアクセス要求を受付けると、前記構成情報テーブルを参照して前記論理アドレスが示す前記主メモリ内のアドレスを求めて当該アドレスへアクセスするアドレス変換手段と、を有するプラント制御システム。
【請求項４】
請求項２に記載のプラント制御システムにおいて、
前記中央制御装置は、前記構成情報テーブルを定める際に、前記複数の入出力装置へ各々の前記構成情報を要求する構成情報要求フレームを送信し、
前記複数の入出力装置は、前記構成情報要求フレームを受信すると、各々の前記構成情報記憶手段から前記構成情報を読み出し、当該読み出した構成情報を含む構成情報応答フレームを前記中央制御装置へ送信し、
前記構成情報応答フレームを受信した前記中央制御装置は、前記複数の入出力装置の前記構成情報に基づいて前記構成情報テーブルを定めることを特徴とするプラント制御システム。
【請求項５】
請求項４に記載のプラント制御システムにおいて、
前記複数の入出力装置は、各々の前記構成情報記憶手段から前記構成情報を読み出して前記中央制御装置へ送信する前に、前記中央制御装置から前記一時記憶手段からの読み出し要求、または、前記一時記憶手段への書き出し要求を受信した場合には、エラー応答を前記中央制御装置へ送信することを特徴とするプラント制御システム。
【請求項６】
請求項１に記載のプラント制御システムにおいて、
前記複数の入出力装置のうち少なくとも１つには、前記一次記憶手段のうち前記構成情報が示す領域のデータを逐次選択して取り出すマルチプレクサを有することを特徴とするプラント制御システム。
【請求項７】
請求項１に記載のプラント制御システムにおいて、
前記中央制御装置は、前記複数の入出力装置へ、前記一時記憶手段からの読み出し、または、前記一時記憶手段への書き出しを要求する要求フレームを送信し、
前記要求フレームには通信を行うごとに、前記読み出し、または、書き出しを行う前記一時記憶手段の領域のサイズおよび順番が任意に設定されることを特徴とするプラント制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御システムおよび制御システムのメモリ制御方法に関する。
【背景技術】
【０００２】
プラント制御システムでは、プログラマブルロジックコントローラ（以降、ＰＬＣ：Programmable Logic Controller）や、分散制御システム（以降、ＤＣＳ：Distributed Control System）を用いて、デジタル入力／出力装置，アナログ入力／出力装置、及びさらに特殊な入出力装置を用いて、プラントを制御する。
【０００３】
プラントは、発電機制御，鉄鋼制御，水道監視等、多種多様であり、ＰＬＣ，ＤＣＳの中央制御装置には、その様々な用途に応じた入出力装置が接続される。そして、その接続形態や入出力装置の種別、及び転送データ自体の種別は、構成情報として、システム立上や運用時において最も重要な情報の１つとして扱われ、中央制御装置は、当該構成情報を基に、各入出力装置との制御通信を実施する。
【０００４】
ここで、上記のような制御システムにおいて、入出力装置と中央制御装置との間でデータ通信を行う技術として、例えば特許文献１に記載の技術がある。この特許文献１では、マスタユニットに設けられた通信用バッファに入出力装置等の各特殊機能ユニットを割付ける際に、特殊ユニットのバッファメモリ構成をマスタユニットに写像して割付け、特殊機能ユニットごとに割付けられたバッファメモリ内の領域を使って制御通信を行う技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平９−３１９４１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
前述のような制御システムにおいて、各中央制御装置が入出力装置と制御通信を行うためには、前記入出力装置内に例えばモデム等の通信末端機能を実装する必要がある。しかしながら、各入出力装置の種別ごとに通信末端機能を個別に用意することは、コスト増大につながるため、通信末端機能を含んだ入出力装置のコア部分を、ＬＳＩ等で集積し、この集積回路を、各入出力装置に共通する部品とすることで、入出力装置のコストを抑えることが考えられる。
【０００７】
しかし、複数種の入出力装置でレジスタ等の集積回路を共通化した場合には、入出力に必要なレジスタが入出力装置の種類ごとに異なるため、特許文献１のように入出力装置のレジスタ構成をそのまま中央制御装置へ割付けると、実際には使用しない入出力に使用しないレジスタも割付けられてしまい、メモリの使用効率が悪くなるという課題がある。また、入出力装置との通信の際は、入出力には使用しない冗長なレジスタ領域も含めてバースト転送をしなければならず、この冗長なデータ転送によって転送効率が悪くなるという課題がある。
【０００８】
本発明は上記課題に鑑み、中央制御装置に複数種類の入出力装置が接続される場合において、入出力装置と中央制御装置間の通信を効率的に行い、制御速度等の運用効率を向上させる制御システムおよび制御システムのメモリ制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、例えば特許請求の範囲に記載の構成を採用する。本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、制御対象を監視制御する中央制御装置と、前記制御対象から入力されたデータを前記中央制御装置へ送信するか、または、前記中央制御装置から受信したデータを前記制御対象へ出力する複数の入出力装置と、を備え、前記複数の入出力装置それぞれは、前記制御対象から入力されたデータ、または、前記制御対象へ出力するデータを一時記憶する一時記憶手段を有する制御システムにおいて、前記複数の入出力装置は、各々の前記一次記憶手段のうち、前記制御対象との間で入力または出力を行うための所定の領域を示す構成情報を記憶する構成情報記憶手段をそれぞれ備え、前記複数の入出力装置は、各々の前記構成情報記憶手段に記憶された前記構成情報が示す領域を選択してデータを読み出すとともに、当該読み出したデータを前記中央制御装置へ送信するか、または、前記中央制御装置からデータを受信するとともに、各々の前記構成情報記憶手段に記憶された前記構成情報が示す領域を選択して当該受信したデータを書き出すことを特徴とする。
【発明の効果】
【００１０】
本発明によれば、中央制御装置に複数種類の入出力装置が接続される場合であっても、冗長な処理による制御速度の低下を改善し、プラント等の制御システムの運用の高速化に寄与することができる。
【図面の簡単な説明】
【００１１】
【図１】入出力装置と中央制御装置の構成を示す全体図。
【図２】初期設定時における入出力装置のシーケンサ動作。
【図３】初期設定時における中央制御装置のシーケンサ動作。
【図４】制御運転における中央制御装置のシーケンサ動作（読み出し／書き出し）。
【図５】制御運転における入出力装置のシーケンサ動作（読み出し）。
【図６】制御運転における入出力装置のシーケンサ動作（書き出し）。
【図７】入出力装置シーケンサの入出力制御情報ＭＵＸ／ＤＥＭＵＸ切替え状態遷移と周辺回路。
【図８】構成情報テーブル。
【図９】ノード別入出力制御エリアアクセスにおける論理アドレスフォーマット。
【図１０】構成情報問合わせ要求フレーム。
【図１１】構成情報問合わせ応答フレーム。
【図１２】制御情報読み出し要求フレーム。
【図１３】制御情報読み出し応答フレーム。
【図１４】制御情報書き出し要求フレーム。
【図１５】制御情報書き出し応答フレーム。
【発明を実施するための形態】
【００１２】
以下、図面を用いて本発明を実施するための形態について説明する。
【００１３】
図１は、本発明の実施例であるプラント制御システムである。図１では、Ｎ台の入出力装置（ノード＃０）１００ａ，入出力装置（ノード＃１）１００ｂ・・・入出力装置（ノード＃Ｎ）１００ｎと、１台の中央制御装置２００があり、当該装置間は、通信回線路００１を介して接続されている。また、各入出力装置１００ａ，入出力装置１００ｂ・・・入出力装置１００ｎは、それぞれの目的に応じたセンサ，アクチュエータ等といった制御対象３００に接続されている。
【００１４】
入出力装置１００ａは、制御対象３００からデータを入力するｎ個の入出力部（１〜ｎ）１０９ａと、入出力部１０９ａから入力した情報を一時記憶するレジスタ空間１１０ａと、レジスタ空間１１０ａから入出力装置１００ａの入出力に必要なレジスタを選択してデータを出力するマルチプレクサ１０４ａと、マルチプレクサ１０４ａが出力したデータに付するヘッダが格納される応答フレームヘッダバッファ１１２ａと、マルチプレクサ１０４ａが出力したデータにヘッダが付された通信フレームを格納して通信回線路００１へ送信するＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）１０５ａと、ＦＩＦＯ１０５ａから通信回線路００１へのデータ送信の開閉を行う送信ポート１０８ａと、中央制御装置２００から通信回線路００１を介して受信した通信フレームが格納されるＦＩＦＯ１０６ａと、受信した通信フレームから抽出されたヘッダが格納される要求フレームヘッダバッファ１１１ａと、通信フレームから抽出された制御コードが格納される制御コードバッファ１０７ａと、受信した通信フレームのヘッダおよび制御コード等に応じて各部を動作させるシーケンサ１０２ａと、入出力装置１００ａの構成情報が記憶されるＲＯＭ１０１ａと、入出力装置１００ａの物理ノード番号を示す例えばロータリスイッチ等のノードＳＷ１０３ａと、から構成される。また、図１中のＡ０，Ｂ０は、Ａ０からＡ０へ信号が経由することを示し、Ｂ０からＢ０へ信号が経由することを示す。
【００１５】
また、入出力装置１００ｂは、中央制御装置２００から通信回線路００１を介して受信した通信フレームが格納されるＦＩＦＯ１０６ｂと、受信した通信フレームから抽出されたヘッダが格納される要求フレームヘッダバッファ１１１ｂと、通信フレームから抽出された制御コードが格納される制御コードバッファ１０７ｂと、受信した通信フレーム内のデータを入力し振り分けて出力するデマルチプレクサ１０４ｂと、デマルチプレクサ１０４ｂによって選択して振り分けられたデータが一時記憶するレジスタ空間１１０ｂと、レジスタ空間１１０ｂに一時記憶されたデータを入力し制御対象３００へ出力するｎ個の入出力部（１〜ｎ）１０９ｂと、中央制御装置２００への通信フレームを格納して通信回線路００１へ送信するＦＩＦＯ１０５ｂと、ＦＩＦＯ１０６ｂから通信回線路００１へのデータ送信の開閉を行う送信ポート１０８ｂと、中央制御装置２００へ送信する通信フレームのヘッダが格納される応答フレームヘッダバッファ１１２ａと、受信した通信フレームのヘッダおよび制御コード等に応じて各部を動作させるシーケンサ１０２ｂと、入出力装置１００ｂの構成情報が格納されるＲＯＭ１０１ｂと、入出力装置１００ｂの物理ノード番号を示す例えばロータリスイッチ等のノードＳＷ１０３ｂと、から構成される。また、図１中のＡ１，Ｂ１は、Ａ１からＡ１へ信号が経由することを示し、Ｂ１からＢ１へ信号が経由することを示す。
【００１６】
また、中央制御装置２００は、プラント制御システムの制御ソフトウェアを動作させるＣＰＵ２２０と、ＣＰＵ２２０が認識するアドレスを実際の主メモリアドレスへ変化するアドレス変換回路２０９と、入出力装置１００ａ〜１００ｎの構成情報を示す構成情報テーブルおよび入出力装置１００ａ〜１００ｎのレジスタとの入力または出力データが記憶される主メモリ２１０と、主メモリ２１０にアクセスするメモリアクセスコントローラ２０１と、入出力装置１００ａ〜１００ｎへの通信フレームを格納して通信回線路００１へ送信するＦＩＦＯ２０６と、ＦＩＦＯ２０６から通信回線路００１へのデータ送信の開閉を行う送信ポート２０８と、送信する通信フレームのヘッダが格納される要求フレームヘッダバッファ２０３と、送信する通信フレームの制御コードが格納される制御コードバッファ２０７と、入出力装置１００ａ〜１００ｎから通信回線路００１を介して受信した通信フレームが格納されるＦＩＦＯ２０５と、受信した通信フレームから抽出されたヘッダが格納される応答フレームヘッダバッファ２０４と、各部を動作させるシーケンサ２０２と、から構成される。ここで、主メモリ２１０は中央制御装置２００の内部に設けられても、外部に設けられてもよい。
【００１７】
このように本実施例では、入出力装置１００ａは制御対象３００の運用状況等を示す監視データが入力される装置として、入出力装置１００ｂは制御対象３００を制御する制御データを出力する装置として用いられる。そのため、入出力装置１００ａと入出力装置１００ｂとは、その機能の差から、レジスタ空間１１０ａ，１１０ｂのうち必要な領域の割付けられ方やマルチプレクサ１０４ａ，デマルチプレクサ１０４ｂの動作等が異なっている。また、入出力装置１００ｎは、入出力装置１００ａまたは入出力装置１００ｂと同様に構成される。
【００１８】
また、他の入出力装置の構成として、入出力装置がデータ入力とデータ出力との両方を兼ねるよう設定することもできる。この場合は、レジスタ空間には入力用レジスタと出力用レジスタ両方が定められ、中央制御装置２００の構成情報テーブルには、１つの入出力装置に入力用と出力用の２種類の構成情報が設定される。
【００１９】
次に、まず入出力装置１００ａに注目して、プラント制御システムの初期設定について説明する。
【００２０】
図２は、電源投入後の入手力装置の初期設定を示すフローチャートである。入出力装置１００ａでは、電源投入されると（Ｓ１０１）、シーケンサ１０２ａが自律的にＲＯＭ１０１ａの内容を読み込む（Ｓ１０２）。ＲＯＭ１０１ａには、入出力装置１００ａの制御に関わる構成情報が登録されており、その中に、レジスタ空間１１０ａのうち入出力装置１００ａが使用するものがレジスタＢ，Ｅ，Ｗであるというレジスタ情報も含まれる。シーケンサ１０２ａは、当該レジスタ情報を、前記入出力装置１００ａにおける必要なレジスタとして認識する（Ｓ１０３）。次に、前記シーケンサ１０２は、前記入出力装置１００の物理ノード番号を識別するため、ノードＳＷ１０３ａから、当該番号情報を読み込み（Ｓ１０４）、自己の初期設定を終了する（Ｓ１０５）。
【００２１】
同様の初期設定は、入出力装置１００ｂでも行われ、シーケンサ１１２ｂは、レジスタＣ，Ｙを、前記入出力装置１１０ｂにおける必要なレジスタとして認識する。そして、ノードＳＷ１０３ｂから物理ノード番号を取得する。以上の処理は、入出力装置１００ａ，１１０ｂに限らず、Ｎ台すべての入出力装置で同様の処理が行われることは言うまでもない。
【００２２】
続いて、中央制御装置２００の初期設定について説明する。
【００２３】
図３は、電源投入後の中央制御装置２００の初期設定を示すフローチャートである。中央制御装置２００では、電源投入されると（Ｓ２０１）、接続されている入出力装置の探索を開始する。本例での探索は、ノード番号＃０から順番に＋１ずつ昇順・総当たりで行い、応答のあったノード番号の入出力装置から構成情報を取得することを想定している。しかし、総当りの探索を使用せず、あらかじめ中央制御装置２００で記憶しているノードのみに限定探索をかけ、構成情報を取得する等といった手法もある。探索では、シーケンサ２００が図１０にて後述する構成情報問合せ要求フレームを通信回線路００１上に送出する（Ｓ２０２）。前記シーケンサ２００は、入出力装置からの応答フレームの受信を確認するとともに（Ｓ２０３）、タイムアウト検出を行う（Ｓ２０４）。タイムアウト規定内に、応答フレームを受信できなければ、エラー処理を行うとともに（Ｓ２０５）、探索を打ち切り、全ノードへの問合せが完了したか判断する（Ｓ２１１）。全ノードへの問合せが終っていなければ、探索するノード番号である構成情報インデックスを１つ増加し、次ノードの探索を続行する（Ｓ２１２）。
【００２４】
一方、入出力装置側では、自ノード番号と問い合わせフレームにある宛先ノード番号が一致したら、自身のＲＯＭ情報を応答フレームに載せて中央制御装置２００に送出する。
【００２５】
具体的に、入出力装置１００ａを例にすると、シーケンサ１０２ａは、受信した構成情報問合せ要求フレーム内の宛先ノード番号と、自身がノードＳＷ１０３ａから読み込んだノード番号情報を照合し、一致であることを確認したら、ＲＯＭ１０１ａの内容を、マルチプレクサ１０４ａを介して、応答フレームヘッダの後に続いてＦＩＦＯ１０５ａにセットする。セット完了したら、送信ポート１０８ａを開放し、図１１にて後述する構成情報問合せ応答フレームを中央制御装置２００ａへ送信する、という流れである。問合せ応答フレームでは、問合せ要求フレームに随伴された処理識別番号をそのままループバックする。これは、要求フレームと応答フレームのひもづけを保証するためである。これにより、要求フレームに対応しないエラー応答を検知して、誤設定を防ぐことができる。
【００２６】
中央制御装置２００は、タイムアウト規定内に入出力装置からの応答フレームを受信したら、シーケンサ２０２が直ちに、フレーム内容から当該フレームの送信元ノード番号と問合せフレーム発行時の宛先ノード番号とが一致していることを確認する（Ｓ２０６）。さらに、処理識別番号についても同様に一致であることを確認する（Ｓ２０７）。一致していたならば、シーケンサ２０２は、当該ノード番号の入出力装置の構成情報の解析、及び構成制御処理を実施し（Ｓ２０８）、一致していなければエラー処理を行う（Ｓ２０５）。
【００２７】
ここで、応答フレームの具体例として、入出力装置１００ａから応答があった場合を例にして説明する。応答フレーム内には、前記入出力装置１００ａにおける制御に関わる構成情報の１つに、転送するＢ，Ｅ，Ｗのレジスタの数（サイズ）が“３”という情報が格納されている。この情報を基にし、シーケンサ２０２は、前記入出力装置１００ａのノード専用にレジスタサイズ分の主メモリ２１０のメモリエリアを確保するため、当該主メモリ２１０のヘッダアドレスとエンドアドレスを設定する。
【００２８】
本例において、前記入出力装置１００ａは探索対象の最初ノードであるため、ヘッダアドレスは主メモリ２１０内のノード別入出力制御エリア２１２の先頭アドレスである０ｘ００５８とする。エンドアドレスは、前記構成情報内の転送サイズからレジスタ３つ分のエリアを確保しなくてはならないので、０ｘ００６０となる。尚、本例では、メモリアドレスをバイト換算し、レジスタ一個あたりは、４バイト使用するものとする。
【００２９】
シーケンサ２０２は、後述する図８の通り、主メモリ２１０の構成情報テーブルの記憶領域に当該ヘッダアドレス，エンドアドレスを、構成情報テーブル２１１のノード別に割り当てられたアドレスにセットし（Ｓ２０９）、応答フレームで転送された構成情報と合わせて０ｘ００００〜０ｘ０００Ｆに登録、更新する（Ｓ２１０）。
【００３０】
また、例えばノードの入出力装置１００ｂから応答があった場合には、転送に必要なレジスタが、Ｃ，Ｙの２個であるため、応答フレーム内の構成情報には、レジスタサイズが“２”で格納されている。シーケンサ２０２は、前ノードの入出力装置１００ａのエンドアドレスの次のアドレス０ｘ００６４を、前記入出力装置１１０のヘッダアドレスとして設定する（Ｓ２０９）。エンドアドレスは、先述の前記入出力装置１００と同様に、レジスタ２つ分のエリアを確保するため、０ｘ００６８となる。そして、シーケンサ２０２は、前記入出力装置１００ａと同様に、これらヘッダアドレスとエンドアドレス、及び応答フレーム内の構成情報を、構成情報テーブル２１１のノード別に割り当てられたアドレス０ｘ００１０〜０ｘ００１Ｆに登録、更新する（Ｓ２１０）。
【００３１】
尚、本例における構成情報テーブル２１１のノード別に割り当てられたアドレスとは、主メモリ２１０のアドレス＝ノード番号×８と定型化し、ノード１つあたりの構成情報は、８バイトとしているが、本発明では、当該テーブルの割当て方法，サイズ等については特に制限はない。
【００３２】
シーケンサ２０２は、全ノードへの問い合わせが完了したか判断し（Ｓ２１１）、完了していなければ、構成情報インデックス（＝ノード番号）を１つ増加して（Ｓ２１２）、構成情報問合せフレームを送出する（Ｓ２０２）。全ノードへの問合せが完了していれば、初期設定を終了する（Ｓ２１３）。
【００３３】
このように、シーケンサ２０２は、入出力装置の探索と、探索の結果、得られた構成情報から構成情報テーブルを生成するまでの処理を、全ノード数分実施し、当該プラント制御システムにおけるシステム初期設定を完了する。
【００３４】
続いて、入力制御情報読み出しにおける中央制御装置２００の制御運転について説明する。
【００３５】
図４は、入力制御情報読み出しにおける制御運転について、中央制御装置２００から入出力制御装置１００ａに対する一連の処理を示す図である。中央制御装置２００のシーケンサ２０２は、ＣＰＵ２２０（制御ソフトウェア）の制御通信起動指示を受けて（Ｓ３０１）、制御運転を開始する。
【００３６】
まず、シーケンサ２０２は、主メモリ２１０の構成情報テーブル２１１をノード番号の若い順番（＃０〜）から探索、読み出し（Ｓ３０２），入出力装置の有無の確認処理を行う（Ｓ３０３）。当該ノード番号が存在しなかったら、シーケンサ２０２は、構成情報テーブルのインデックス番号を１つ増加し（Ｓ３２２）、次ノードの構成情報テーブル読み出しを実施する。存在しなかった場合は、制御通信停止の指示があるまで前記処理を繰り返し実施する（Ｓ３２３）。
【００３７】
当該ノード番号が存在したら、シーケンサ２０２は、要求フレームヘッダバッファ２０３を介して、要求フレームヘッダの内容を、ＦＩＦＯ２０６にセットする（Ｓ３０４）。尚、要求フレームヘッダには、送信元ノード番号（中央制御装置２００のノード番号）、現時点で構成情報テーブル探索下にある送信先ノード番号（ここでは、入出力装置１００ａのノード番号）、及び、フレームを送信する毎に１つ増加する処理識別番号（初期値は０）が格納されている。
【００３８】
続いて、シーケンサ２０２は、指示の種類（読み出し／書き出し。ここで述べる入出力装置１００ａに対しては読み出し指示、入出力装置１００ｂに対しては書き出し指示とする）、転送対象レジスタの先頭呼出し番号（構成情報テーブル上では、常に１（＝先頭）であるが、ＣＰＵ２２０が任意の番号をセットすることも可能）、転送するレジスタのサイズ，転送順番（読み出し指示時のみ。こちらも呼出し番号同様、ＣＰＵ２２０によって、任意の順番をセットすることが可だが、本例における構成情報テーブルとしての初期値は“昇順”とする）といった制御コードを生成し、それらをＦＩＦＯ２０６にセットする（Ｓ３０５）。
【００３９】
続いて、要求が読み出しであるか書き出しであるか判断する（Ｓ３０６）。シーケンサ２０２は、入出力装置１００ａに対しての指示が読み出しであるので、送信ポート２０８を開放し、ＦＩＦＯ２０６にセットされた情報を要求フレームとして通信回線路００１上に送出する（Ｓ３１１）。尚、前記読み出し要求フレームのフォーマットを後述する図１２に示す。
【００４０】
続いて、入出力装置１００ａの制御運転における応答処理について、図５のフローチャートを用いて説明する。入出力装置１００ａでは、先述の要求フレームを受信したら（Ｓ４０１）、初期設定時と同様、シーケンサ１０２ａが、要求フレーム内の送信先ノード番号と、ノードＳＷ１０３から読み込んだ自ノード番号の照合を行う（Ｓ４０２）。照合した結果、一致が確認できたら、要求フレーム内の制御コードを読み込み、処理を継続する。尚、一致しなかった場合は、当該フレームを破棄し、引き続き新たなフレームを監視する。
【００４１】
ノード番号が一致した場合の説明を続ける。シーケンサ１０２ａは、応答フレームヘッダに、送信元ノード番号（ここでは、入出力装置１００ａのノード番号）と、送信先ノード番号（中央制御装置２００のノード番号）、及び要求フレームに随伴していた処理識別番号（ループバック）をセットする。その後、応答フレームヘッダの内容をＦＩＦＯ１０５にセットする（Ｓ４０３）。
【００４２】
続いて、シーケンサ１０２ａは、ＲＯＭ１０１ａを読み込み済（初期設定完了済）であるか判断する（Ｓ４０４）。読み込み済みであれば、シーケンサ１０２ａは、制御コードを解析し（Ｓ４０５）、その結果、先頭呼出し番号に該当するレジスタパスをマルチプレクサ１０４ａで切替え、転送が必要なレジスタをＦＩＦＯ１０５ａにセットする（Ｓ４０６）。本例では、当該先頭呼出し番号を、初期値である“１”とし、転送サイズ“＝３”個分のレジスタパスをマルチプレクサ１０４ａで順番に切替えながら、ＦＩＦＯ１０５ａにレジスタの内容をセットする。この結果、ＦＩＦＯ１０５ａには、Ｂ，Ｅ，Ｗの順番でレジスタの内容がセットされる。
【００４３】
当該マルチプレクス動作の一連の流れは、シーケンサ１０２ａ内における図７のマルチプレクス制御動作によって実現される。マルチプレクサ１０４ａは、自ノード宛要求フレームを受信し、応答フレームヘッダをセットすると、アイドルステートからレジスタ選択ステートへ遷移する。各選択ステートでは、クロック単位で次のステートへ遷移する。ここで遷移の方向は、制御コードの転送順番指定で決まる。
【００４４】
次に、先頭呼出し番号監視回路は、各レジスタ選択ステートの選択ステート活性信号をカウントし、カウント数が制御コード内の先頭呼出し番号ならば一次ゲートを開放（イネーブル）する。これによって、任意に最初に読み出すレジスタを選択することができる。
【００４５】
次に、レジスタごとに設けられる二次ゲートでは、各レジスタが転送対象であれば１が、非対称であれば０が設定されている。すなわち、ＲＯＭ１０１ａから設定される転送対象のレジスタのものだけが１に設定され、一次ゲートの開放（イネーブル）による開放信号とのアンド条件によって、各レジスタへのアクセスが可能となる。ここで、マルチプレクサ切替え回数カウンタでは、切替えを検知すると１つカウントアップし、応答フレーム処理を完了するとカウントをリセットする。そして、レジスタ選択ステートでは、制御コード内の転送サイズがマルチプレクサの切替え回数と等しくなるとアイドルステートへ遷移する。また、ここでは、入出力装置１００ａのマルチプレクサ１０４ａを例にマルチプレクス動作を説明したが入出力装置１００ｂのデマルチプレクサ１０４ｂにおいても同様の処理を行う。
【００４６】
このように、シーケンサ１０２ａは、ＲＯＭ１０１ａで有効設定されたＢ，Ｅ，Ｗのステートにいるときだけ、マルチプレクサを動作させて、当該レジスタの内容をＦＩＦＯ１０５ａにセットするよう動作する（Ｓ４０６）。図７のステートマシンはループ構造になっているため、もし、先頭呼出し番号が“１”以外、例えば、“３”で、かつ転送サイズが“２”であると、Ｂ，Ｅのマルチプレクス制御を２つ分スキップし、ＷをＦＩＦＯ１０５ａにセットする。続いて、ループの結果、ＢをＦＩＦＯ１０５ａにセットするので、格納順番がＷ，Ｂとなる。
【００４７】
次にＦＩＦＯセット完了数が転送サイズと等しくないか判断し（Ｓ４０７）、等しくなければ呼出し番号を順番指示に応じて１つ増加または１つ減少させる（Ｓ４０８）。そして、該呼出し番号における転送対象レジスタあるか判断し（Ｓ４０９）、転送対象レジスタがあればＳ４０６へ戻る。転送対象レジスタが無い場合には、シーケンサ１０２ａが認識しているレジスタ数よりも多くの転送サイズが設定された要求フレームを前記シーケンサ１０２ａが受信したと考えられるため、シーケンサ１０２ａは、応答フレームに随伴させる処理識別番号（ループバック）を「応答失敗コード」に変換する（Ｓ４１０）。
【００４８】
一連の応答フレーム生成とＦＩＦＯ１０５ａへのセット処理が完了し（Ｓ４０６）、ＦＩＦＯセット完了数が転送サイズと等しくなると（Ｓ４０７）、シーケンサ１０２は最後に、送信ポート１０８ａを開放し、応答フレームを通信回線路００１上に送出する（Ｓ４１１）。尚、前記読み出し応答フレームのフォーマットは、図１３（Ａ），（Ｂ）の通り、レジスタの内容によらず、連続に配置されている。このように必要なデータを連続配置することでバースト転送が可能になり、結果的にフレーム通信の転送効率を向上させることができる。
【００４９】
続いて、図４の中央制御装置２００の制御運転についての説明に戻る。中央制御装置２００は入出力装置１００ａからの応答フレームの受信があるか判断し（Ｓ３１２）、要求フレーム送信後、シーケンサ２０２は、タイムアウト規定内に、入出力装置１００ａからの応答フレームを受信できなければ、直ちにエラー処理を実施する（Ｓ３１３，Ｓ３２１）。エラー処理については、例えば緊急停止や、制御を安全側に移行する処理等がある。
【００５０】
シーケンサ２０２は、タイムアウト規定内に応答フレームを受信すると、処理識別番が要求フレーム発行時と一致であることを確認する（Ｓ３１４）。さらには、フレーム内容から当該フレームの送信元ノード番号と要求フレーム発行時の宛先ノード番号とが一致していることも同様に確認する（Ｓ３１５）。一致を確認したら、もともと要求フレームヘッダに格納されていた制御コードから、読み出し指示，先頭呼出し番号，転送サイズを解析し（Ｓ３１６）、その結果、ＦＩＦＯ２０５からの入力制御情報として、レジスタＢ，Ｅ，Ｗを読み込み（Ｓ３１７）、構成情報テーブル２１１で設定された主メモリ２１０のヘッダアドレス０ｘ００５８を先頭に、順番にセットする（Ｓ３１９）。すなわち、シーケンサ２０２は、書き出し完了数が転送サイズと等しいかどうか判断し（Ｓ３１９）、転送サイズと等しくなるまで指示アドレスを増加させて（Ｓ３２０）、Ｓ３１７へ戻ることで、レジスタＢ，Ｅ，Ｗを主メモリ２１０へセットする。一連の応答受信処理が完了したら、構成情報テーブルへの読み出しインデックス番号を１つ増加させ、次ノードに対する処理を同様に行う（Ｓ３２２）。
【００５１】
シーケンサ２０２は、制御通信停止指示を受けつけるまで、これらの処理を繰り返し実施する（Ｓ３２３）。インデックス番号が、最終ノード番号までに達した場合は、最初のインデックス番号（＃０）に戻し、処理をサイクリックに継続する。もし、応答フレームの処理識別番号から一致が確認できなかった場合は、エラー処理を実施する。以上が、入出力装置からの入力制御情報を中央制御装置に転送するまでの流れである。
【００５２】
続いて、出力制御情報書き出しにおける制御運転について、中央制御装置２００から入出力制御装置１００ｂに対する一連の処理を、入出力制御装置１００ａに対する処理と同様に図４を用いて説明する。中央制御装置２００のシーケンサ２０２は、図４フローチャートにて、構成情報テーブル２１１から読み出した入出力装置１００ｂへの要求フレームヘッダにおける指示の種類を判断し（Ｓ３０６）、指示が書き出し指示であるので前記構成情報テーブル２１１に設定されたヘッダアドレス０ｘ００６４を先頭に、転送サイズ＝“２”個分の出力制御情報Ｃ，Ｙを主メモリ２１０から順番に読み出し（Ｓ３０７）、ＦＩＦＯ２０６にセットする（Ｓ３０８）。そして、読み込み完了数が転送サイズに等しくなったか判断し（Ｓ３０９）、等しくなければ指示アドレスを増加させて（Ｓ３１０）、Ｓ３０７へ戻る。読み込み完了数が転送サイズに等しくなったら、送信ポート２０８を開放し、要求フレームを通信回線路００１上に送出する（Ｓ３１１）。尚、前記書き出し要求フレームのフォーマットを図１４に示す。前記読み出し応答フレームのフォーマット同様、バースト転送によりフレーム通信の転送効率が向上する。
【００５３】
続いて、入出力装置１００ｂの制御運転における応答処理について、図６のフローチャートを用いて説明する。入出力装置１００ｂは、先述の要求フレームを受信したら（Ｓ５０１）、初期設定時と同様にシーケンサ１０２ｂが、要求フレーム内の送信先ノード番号と、ノードＳＷ１１３から読み込んだ自ノード番号の照合を行う（Ｓ５０２）。ノード番号が一致したら、シーケンサ１０２ｂは、応答フレームヘッダに、送信元ノード番号（ここでは、入出力装置１００ｂのノード番号）と、送信先ノード番号（中央制御装置２００のノード番号）、及び要求フレームに随伴していた処理識別番号（ループバック）をセットする。その後、応答フレームヘッダの内容をＦＩＦＯ１０５ｂにセットする（Ｓ５０３）。尚、一致しなかった場合は、当該フレームを破棄し、引き続き新たなフレームを監視する。
【００５４】
続いて、シーケンサ１０２ｂは、ＲＯＭ１０１ｂを読み込み済（初期設定完了済）であるか判断する（Ｓ５０４）。初期設定完了済みであれば、要求フレーム内の制御コードを読み込み（Ｓ５０５）、処理を継続する。次に、シーケンサ１０２ｂは、要求フレーム内の制御コードを解析し、先頭呼出し番号“１”に該当するレジスタパスをデマルチプレクサ１１４で切替えてＦＩＦＯ１１６の制御出力情報ＣをレジスタＣにセットする（Ｓ５０６）。そして、２番目の呼出し番号に該当するレジスタパスをデマルチプレクサ１１４で切替えてＦＩＦＯ１１６の制御出力情報ＹをレジスタＹにセットする。すなわちレジスタセット完了数が転送サイズと等しくないか判断し、等しくなければ呼出し番号を１つ増加し（Ｓ５０８）、該呼出し番号における転送対象のレジスタがあるか判断し（Ｓ５０９）、レジスタがあればＳ５０６へ戻ることでレジスタＣ、Ｙが順にセットされる。
【００５５】
尚、呼出し番号が“１”以外におけるシーケンサ１０２ｂのデマルチプレクサ制御は、先述の読み出し制御と同様に、転送レジスタ切替えのスキップや、ループを行う。また、Ｓ５０９で該呼出し番号における転送対象のレジスタが無い場合には、シーケンサ１０２ｂは、ＲＯＭ１０１ｂで取得した転送サイズよりも大きい転送サイズの制御コードを受信したと判断して、先述の読み出し制御時と同様に「応答失敗コード」を生成する（Ｓ５１０）。
【００５６】
一連のレジスタセット、及び応答フレームの生成処理が完了したら、最後にシーケンサ１０２ｂは、送信ポート１１０８ｂを開放し、応答フレームを通信回線路００１上に送出し（Ｓ５１１）、処理を終了する（Ｓ５１２）。
【００５７】
続いて、図４の中央制御装置２００の制御運転についての説明に戻る。中央制御装置２００は入出力装置１００ｂからの応答フレームの受信があるか判断し（Ｓ３１２）、要求フレーム送信後、シーケンサ２０２は、タイムアウト規定内に、入出力装置１００ａからの応答フレームを受信できなければ、直ちにエラー処理を実施する（Ｓ３１３，Ｓ３２１）。
【００５８】
シーケンサ２０２は、タイムアウト規定内に応答フレームを受信すると、処理識別番が要求フレーム発行時と一致であることを確認する（Ｓ３１４）。さらには、フレーム内容から当該フレームの送信元ノード番号と要求フレーム発行時の宛先ノード番号とが一致していることも同様に確認する（Ｓ３１５）。一致を確認したら、そのまま処理を完了するが、一致を確認できなかったらエラー処理を実施する（Ｓ３２１）。その後、構成情報テーブルへの読み出しインデックス番号を１つ増加させ、以降は読み出し制御時と同等となる。以上が、中央制御装置から出力制御情報を入出力装置に転送するまでの流れである。
【００５９】
ここまでは、中央制御装置と入出力装置間のレジスタ転送効率化と、使用メモリの最適化に関する説明である。もし、入出力装置１００ａ，１００ｂが、ＲＯＭ１０１ａ，１０１ｂからの初期設定を完了しないうちに、中央制御装置からの入出力制御情報の要求フレームを受信した場合は、各入出力装置１００ａ，１００ｂは、転送データ無効として、「応答失敗コード」で応答する。
【００６０】
ここで図８，図１０〜図１５に示すように、前述の主メモリ２１０内の構成情報テーブルの詳細と、前述の要求，応答フレームについて説明する。
【００６１】
図８は、主メモリ２１０に記憶される構成情報テーブルを示す図である。図のように主メモリ２１０には各入出力装置に対応して、ノード別の入出力制御エリアのヘッダアドレス及びエンドアドレスと、入出力装置の詳細構成情報と、読み出し又は書き出しを示す指示種と、呼出し番号とが記憶されている。ここで詳細構成情報の例としては、入出力装置の形式や、入出力の点数などがある。
【００６２】
図１０，図１１は、それぞれ構成情報問合せ要求フレームと、構成情報問合せ応答フレームを示す図である。それぞれのフレームのヘッダは、送信元ノード番号と、送信先ノード番号と、処理識別番号とから構成される。また、構成情報問合せ要求フレームは、制御コードとして構成情報取得指示がセットされ、その応答として構成情報問合せ応答フレームは、構成情報（ＲＯＭの内容）がセットされる。ここで、構成情報問合せ応答フレームは、応答失敗時には応答失敗コードも示す。
【００６３】
図１２，図１３はそれぞれ制御情報読み出し要求フレームと、制御情報読み出し応答フレームを示す図である。それぞれのフレームのヘッダは、送信元ノード番号と、送信先ノード番号と、処理識別番号とから構成される。また、制御情報読み出し要求フレームは、制御コードとして読み出し指示と、転送対象のレジスタの先頭呼出し番号と、転送サイズと、転送するレジスタの順番と、がセットされる。その応答として図１３（Ａ）の制御情報読み出し応答フレームのように、レジスタＢ，Ｅ，Ｗのデータが順にセットされる。また、制御コードが変更されレジスタＷから２つのレジスタを読み出す指示の場合には、図１３（Ｂ）の制御情報読み出し応答フレームのようにレジスタＷ，Ｂのデータが順にセットされる。
【００６４】
図１４，図１５は、それぞれ制御情報書き出し要求フレームと、制御情報書き出し応答フレームを示す図である。それぞれのフレームのヘッダは、送信元ノード番号と、送信先ノード番号と、処理識別番号とから構成される。また、制御情報書き出し要求フレームは、制御コードとして書き出し指示と、転送対象のレジスタの先頭呼出し番号と、転送サイズと、がセットされ、さらに、レジスタＣ，Ｙへ書き出すデータが順にセットされる。また、制御情報書き出し応答フレームでは、書き出したことを示す応答をすればよいのでヘッダのみで構成されるが、付加情報を加えてもよい。
【００６５】
以上が、中央制御装置から出力制御情報を入出力装置に転送するまでの流れであるが、次に、ＣＰＵ２２０から主メモリ２１０内ノード別入出力制御エリア２１２に対するソフトアクセス容易化について説明する。
【００６６】
先述のとおり、各ノードの入出力装置の入出力制御情報は、主メモリ２１０におけるアドレス配置が各ノードの転送サイズによって固定ではないため、ソフトウェアからのアクセスアドレスが分かりにくいという欠点がある。この欠点を解消するために、ＣＰＵ２２０とメモリアクセスコントローラ２０１の間に、アドレス変換回路２０９を具備する。
【００６７】
前記アドレス変換回路２０９は、ＣＰＵ２２０から、ノード別入出力制御エリアへのアクセス要求があると、当該要求時に随伴される論理アドレスに該当するノードの構成情報の読み出しをシーケンサ２０２に依頼する。ここで論理アドレスとは、ＣＰＵ２２０が管理しやすいように設定された仮想的なアドレスを示し、主メモリ２１０の実際のアドレスとは異なるものである。シーケンサ２０２は、同依頼から主メモリ２１０内の構成情報テーブルを読み出し、アクセス対象の制御情報が格納されているヘッダアドレスとエンドアドレスを取得し、ＣＰＵ２２０からの論理アドレスを主メモリ２１０の実体アドレスに変換し、最後にノード別入出力制御エリア２１２にアクセスする。アクセスが読み出しならば、当該実体アドレスのメモリ内に格納されている制御情報を読み出し、アクセスが書き出しならば、当該実体アドレス内のメモリを書き換える。
【００６８】
一般的にソフトウェアがアクセスしやすい論理アドレスサイズは、２のべき乗倍であると言われる。その理由は、図９の通り、論理アドレスが、あるビット位置を境に、左がノード番号、右が当該ノード内におけるレジスタの呼出し番号というように、機能的に分類できるからである。これにより、ソフトウェアでは、ビットマスク等の処理が容易にできるようなり、ソフトの処理効率が向上する。
【００６９】
以上のように本発明は、入出力装置の構成情報の複雑度に依らずに、フィールド通信を行う特に大規模なプラント制御システムの運用を最大限高速化することが可能となり、さらには中央制御装置のメモリサイズを冗長なく最適化することが可能となる。
【００７０】
すなわち従来は、中央制御装置が複数の入出力機能を持った入出力装置との通信を行う場合に、転送の必要なレジスタアドレス配置が離散することがあるため、転送を２回以上に分けるか、あるいは冗長なレジスタも含めて１回のバースト転送をしなければならず、制御通信の性能に影響を与えていた。これに対し本発明では、入出力装置各々が中央制御装置へ転送したいレジスタ領域を通知し、中央制御装置ではこれらレジスタを連続アドレスに自己配置変換することで、転送効率を向上させることができ、例えば複数の入出力装置のレジスタ等を共通のＬＳＩとして共通部品化した場合であっても、各入出力装置のＲＯＭに構成情報を設定すれば中央制御装置のメモリ領域を最適化できるので、複数種の入出力装置を備える制御システムの運用を高速化することができる。
【００７１】
さらには、本発明では転送サイズやアドレスの異なる各々の入出力装置が、中央制御装置に対して自身のレジスタ領域を転送する機構を、ハードウェアで構成するために、ソフトウェアで当該手段を実現するよりも、プラント制御システムの立上げ時の処理負担を軽減することができる。
【００７２】
さらには、中央制御装置は、複数の入出力装置ごとに設定されたレジスタ領域をソフトウェアがアクセスしやすい形態でアドレス変換することで、ソフトウェアの処理負担を低減するとともに、制御全体の高速化を図ることができる。
【符号の説明】
【００７３】
００１  通信回線路
１００  入出力装置（ノード＃０）
１００ｂ  入出力装置（ノード＃１）
１０１ａ  ノード＃０のＲＯＭ（構成情報（入力制御用途：転送レジスタＢ，Ｅ，Ｗ等）を格納）
１０１ｂ  ノード＃１のＲＯＭ（構成情報（出力制御用途：転送レジスタＣ，Ｙ等）を格納）
１０２ａ  ノード＃０のシーケンサ
１０２ｂ  ノード＃１のシーケンサ
１０３ａ  ノード＃０のノードＳＷ（スイッチ）
１０３ｂ  ノード＃１のノードＳＷ（スイッチ）
１０４ａ  ノード＃０のレジスタパスセレクト用マルチプレクサ／デマルチプレクサ
１０４ｂ  ノード＃１のレジスタパスセレクト用マルチプレクサ／デマルチプレクサ
１０５ａ  ノード＃０の送信フレーム格納ＦＩＦＯ
１０５ｂ  ノード＃１の送信フレーム格納ＦＩＦＯ
１０６ａ  ノード＃０の受信フレーム格納ＦＩＦＯ
１０６ｂ  ノード＃１の受信フレーム格納ＦＩＦＯ
１０７ａ  ノード＃０の受信フレーム制御コード用バッファ
１０７ｂ  ノード＃１の受信フレーム制御コード用バッファ
１０８ａ  ノード＃０の送信ポート
１０８ｂ  ノード＃１の送信ポート
２００  中央制御装置
２０１  メモリアクセスコントローラ
２０２  シーケンサ
２０３  要求フレームヘッダバッファ
２０４  応答フレームヘッダバッファ
２０５  中央制御装置の受信（応答）フレーム格納ＦＩＦＯ
２０６  中央制御装置の送信（要求）フレーム格納ＦＩＦＯ
２０７  中央制御装置の制御コード用バッファ
２０８  中央制御装置の送信ポート
２０９  中央制御装置のアドレス変換回路
２１０  中央制御装置の主メモリ
２１１  主メモリの構成情報テーブル
２１２  主メモリのノード別入出力制御エリア
２２０  中央制御装置のＣＰＵ（制御ソフトウェア）
【図１】
0005663418.tif 000002
【図２】
0005663418.tif 000003
【図３】
0005663418.tif 000004
【図４】
0005663418.tif 000005
【図５】
0005663418.tif 000006
【図６】
0005663418.tif 000007
【図７】
0005663418.tif 000008
【図８】
0005663418.tif 000009
【図９】
0005663418.tif 000010
【図１０】
0005663418.tif 000011
【図１１】
0005663418.tif 000012
【図１２】
0005663418.tif 000013
【図１３】
0005663418.tif 000014
【図１４】
0005663418.tif 000015
【図１５】
0005663418.tif 000016