(58)【調査した分野】(Int.Cl.,DB名)
制御対象を監視制御する中央制御装置と、前記制御対象から入力されたデータを前記中央制御装置へ送信するか、または、前記中央制御装置から受信したデータを前記制御対象へ出力する複数の入出力装置と、を備え、前記複数の入出力装置それぞれは、複数のレジスタから成り、前記制御対象から入力されたデータ、または、前記制御対象へ出力するデータを一時記憶する一時記憶手段を有する制御システムにおいて、
前記複数の入出力装置は、各々の前記一次記憶手段に離散的に存在するレジスタであって、前記制御対象との間で入力または出力に使用する所定のレジスタを選択するための構成情報を記憶する構成情報記憶手段をそれぞれ備え、
前記中央制御装置は、前記入出力装置ごとに前記構成情報が示す前記所定のレジスタに対応する領域を連続して割り当てた主メモリを備え、
前記複数の入出力装置は、
前記中央制御装置へのデータ送信時は、
各々の前記構成情報記憶手段に記憶された前記構成情報が示す離散的に存在する前記所定のレジスタ内のデータを読み出し、当該読み出したデータを連続配置した前記中央制御装置宛のフレームを作成し前記中央制御装置へバースト転送し、
前記中央制御装置からのデータ受信時は、
前記中央制御装置から前記制御対象へ出力するデータが連続配置されたフレームをバースト転送により受信し、各々の前記構成情報記憶手段に記憶された前記構成情報が示す離散的に存在する前記所定のレジスタを選択して当該受信したデータを書き出すことを特徴とするプラント制御システム。
【発明を実施するための形態】
【0012】
以下、図面を用いて本発明を実施するための形態について説明する。
【0013】
図1は、本発明の実施例であるプラント制御システムである。
図1では、N台の入出力装置(ノード#0)100a,入出力装置(ノード#1)100b・・・入出力装置(ノード#N)100nと、1台の中央制御装置200があり、当該装置間は、通信回線路001を介して接続されている。また、各入出力装置100a,入出力装置100b・・・入出力装置100nは、それぞれの目的に応じたセンサ,アクチュエータ等といった制御対象300に接続されている。
【0014】
入出力装置100aは、制御対象300からデータを入力するn個の入出力部(1〜n)109aと、入出力部109aから入力した情報を一時記憶するレジスタ空間110aと、レジスタ空間110aから入出力装置100aの入出力に必要なレジスタを選択してデータを出力するマルチプレクサ104aと、マルチプレクサ104aが出力したデータに付するヘッダが格納される応答フレームヘッダバッファ112aと、マルチプレクサ104aが出力したデータにヘッダが付された通信フレームを格納して通信回線路001へ送信するFIFO(First−In First−Out)105aと、FIFO105aから通信回線路001へのデータ送信の開閉を行う送信ポート108aと、中央制御装置200から通信回線路001を介して受信した通信フレームが格納されるFIFO106aと、受信した通信フレームから抽出されたヘッダが格納される要求フレームヘッダバッファ111aと、通信フレームから抽出された制御コードが格納される制御コードバッファ107aと、受信した通信フレームのヘッダおよび制御コード等に応じて各部を動作させるシーケンサ102aと、入出力装置100aの構成情報が記憶されるROM101aと、入出力装置100aの物理ノード番号を示す例えばロータリスイッチ等のノードSW103aと、から構成される。また、
図1中のA0,B0は、A0からA0へ信号が経由することを示し、B0からB0へ信号が経由することを示す。
【0015】
また、入出力装置100bは、中央制御装置200から通信回線路001を介して受信した通信フレームが格納されるFIFO106bと、受信した通信フレームから抽出されたヘッダが格納される要求フレームヘッダバッファ111bと、通信フレームから抽出された制御コードが格納される制御コードバッファ107bと、受信した通信フレーム内のデータを入力し振り分けて出力するデマルチプレクサ104bと、デマルチプレクサ104bによって選択して振り分けられたデータが一時記憶するレジスタ空間110bと、レジスタ空間110bに一時記憶されたデータを入力し制御対象300へ出力するn個の入出力部(1〜n)109bと、中央制御装置200への通信フレームを格納して通信回線路001へ送信するFIFO105bと、FIFO106bから通信回線路001へのデータ送信の開閉を行う送信ポート108bと、中央制御装置200へ送信する通信フレームのヘッダが格納される応答フレームヘッダバッファ112aと、受信した通信フレームのヘッダおよび制御コード等に応じて各部を動作させるシーケンサ102bと、入出力装置100bの構成情報が格納されるROM101bと、入出力装置100bの物理ノード番号を示す例えばロータリスイッチ等のノードSW103bと、から構成される。また、
図1中のA1,B1は、A1からA1へ信号が経由することを示し、B1からB1へ信号が経由することを示す。
【0016】
また、中央制御装置200は、プラント制御システムの制御ソフトウェアを動作させるCPU220と、CPU220が認識するアドレスを実際の主メモリアドレスへ変化するアドレス変換回路209と、入出力装置100a〜100nの構成情報を示す構成情報テーブルおよび入出力装置100a〜100nのレジスタとの入力または出力データが記憶される主メモリ210と、主メモリ210にアクセスするメモリアクセスコントローラ201と、入出力装置100a〜100nへの通信フレームを格納して通信回線路001へ送信するFIFO206と、FIFO206から通信回線路001へのデータ送信の開閉を行う送信ポート208と、送信する通信フレームのヘッダが格納される要求フレームヘッダバッファ203と、送信する通信フレームの制御コードが格納される制御コードバッファ207と、入出力装置100a〜100nから通信回線路001を介して受信した通信フレームが格納されるFIFO205と、受信した通信フレームから抽出されたヘッダが格納される応答フレームヘッダバッファ204と、各部を動作させるシーケンサ202と、から構成される。ここで、主メモリ210は中央制御装置200の内部に設けられても、外部に設けられてもよい。
【0017】
このように本実施例では、入出力装置100aは制御対象300の運用状況等を示す監視データが入力される装置として、入出力装置100bは制御対象300を制御する制御データを出力する装置として用いられる。そのため、入出力装置100aと入出力装置100bとは、その機能の差から、レジスタ空間110a,110bのうち必要な領域の割付けられ方やマルチプレクサ104a,デマルチプレクサ104bの動作等が異なっている。また、入出力装置100nは、入出力装置100aまたは入出力装置100bと同様に構成される。
【0018】
また、他の入出力装置の構成として、入出力装置がデータ入力とデータ出力との両方を兼ねるよう設定することもできる。この場合は、レジスタ空間には入力用レジスタと出力用レジスタ両方が定められ、中央制御装置200の構成情報テーブルには、1つの入出力装置に入力用と出力用の2種類の構成情報が設定される。
【0019】
次に、まず入出力装置100aに注目して、プラント制御システムの初期設定について説明する。
【0020】
図2は、電源投入後の入手力装置の初期設定を示すフローチャートである。入出力装置100aでは、電源投入されると(S101)、シーケンサ102aが自律的にROM101aの内容を読み込む(S102)。ROM101aには、入出力装置100aの制御に関わる構成情報が登録されており、その中に、レジスタ空間110aのうち入出力装置100aが使用するものがレジスタB,E,Wであるというレジスタ情報も含まれる。シーケンサ102aは、当該レジスタ情報を、前記入出力装置100aにおける必要なレジスタとして認識する(S103)。次に、前記シーケンサ102は、前記入出力装置100の物理ノード番号を識別するため、ノードSW103aから、当該番号情報を読み込み(S104)、自己の初期設定を終了する(S105)。
【0021】
同様の初期設定は、入出力装置100bでも行われ、シーケンサ112bは、レジスタC,Yを、前記入出力装置110bにおける必要なレジスタとして認識する。そして、ノードSW103bから物理ノード番号を取得する。以上の処理は、入出力装置100a,110bに限らず、N台すべての入出力装置で同様の処理が行われることは言うまでもない。
【0022】
続いて、中央制御装置200の初期設定について説明する。
【0023】
図3は、電源投入後の中央制御装置200の初期設定を示すフローチャートである。中央制御装置200では、電源投入されると(S201)、接続されている入出力装置の探索を開始する。本例での探索は、ノード番号#0から順番に+1ずつ昇順・総当たりで行い、応答のあったノード番号の入出力装置から構成情報を取得することを想定している。しかし、総当りの探索を使用せず、あらかじめ中央制御装置200で記憶しているノードのみに限定探索をかけ、構成情報を取得する等といった手法もある。探索では、シーケンサ200が
図10にて後述する構成情報問合せ要求フレームを通信回線路001上に送出する(S202)。前記シーケンサ200は、入出力装置からの応答フレームの受信を確認するとともに(S203)、タイムアウト検出を行う(S204)。タイムアウト規定内に、応答フレームを受信できなければ、エラー処理を行うとともに(S205)、探索を打ち切り、全ノードへの問合せが完了したか判断する(S211)。全ノードへの問合せが終っていなければ、探索するノード番号である構成情報インデックスを1つ増加し、次ノードの探索を続行する(S212)。
【0024】
一方、入出力装置側では、自ノード番号と問い合わせフレームにある宛先ノード番号が一致したら、自身のROM情報を応答フレームに載せて中央制御装置200に送出する。
【0025】
具体的に、入出力装置100aを例にすると、シーケンサ102aは、受信した構成情報問合せ要求フレーム内の宛先ノード番号と、自身がノードSW103aから読み込んだノード番号情報を照合し、一致であることを確認したら、ROM101aの内容を、マルチプレクサ104aを介して、応答フレームヘッダの後に続いてFIFO105aにセットする。セット完了したら、送信ポート108aを開放し、
図11にて後述する構成情報問合せ応答フレームを中央制御装置200aへ送信する、という流れである。問合せ応答フレームでは、問合せ要求フレームに随伴された処理識別番号をそのままループバックする。これは、要求フレームと応答フレームのひもづけを保証するためである。これにより、要求フレームに対応しないエラー応答を検知して、誤設定を防ぐことができる。
【0026】
中央制御装置200は、タイムアウト規定内に入出力装置からの応答フレームを受信したら、シーケンサ202が直ちに、フレーム内容から当該フレームの送信元ノード番号と問合せフレーム発行時の宛先ノード番号とが一致していることを確認する(S206)。さらに、処理識別番号についても同様に一致であることを確認する(S207)。一致していたならば、シーケンサ202は、当該ノード番号の入出力装置の構成情報の解析、及び構成制御処理を実施し(S208)、一致していなければエラー処理を行う(S205)。
【0027】
ここで、応答フレームの具体例として、入出力装置100aから応答があった場合を例にして説明する。応答フレーム内には、前記入出力装置100aにおける制御に関わる構成情報の1つに、転送するB,E,Wのレジスタの数(サイズ)が“3”という情報が格納されている。この情報を基にし、シーケンサ202は、前記入出力装置100aのノード専用にレジスタサイズ分の主メモリ210のメモリエリアを確保するため、当該主メモリ210のヘッダアドレスとエンドアドレスを設定する。
【0028】
本例において、前記入出力装置100aは探索対象の最初ノードであるため、ヘッダアドレスは主メモリ210内のノード別入出力制御エリア212の先頭アドレスである0x0058とする。エンドアドレスは、前記構成情報内の転送サイズからレジスタ3つ分のエリアを確保しなくてはならないので、0x0060となる。尚、本例では、メモリアドレスをバイト換算し、レジスタ一個あたりは、4バイト使用するものとする。
【0029】
シーケンサ202は、後述する
図8の通り、主メモリ210の構成情報テーブルの記憶領域に当該ヘッダアドレス,エンドアドレスを、構成情報テーブル211のノード別に割り当てられたアドレスにセットし(S209)、応答フレームで転送された構成情報と合わせて0x0000〜0x000Fに登録、更新する(S210)。
【0030】
また、例えばノードの入出力装置100bから応答があった場合には、転送に必要なレジスタが、C,Yの2個であるため、応答フレーム内の構成情報には、レジスタサイズが“2”で格納されている。シーケンサ202は、前ノードの入出力装置100aのエンドアドレスの次のアドレス0x0064を、前記入出力装置110のヘッダアドレスとして設定する(S209)。エンドアドレスは、先述の前記入出力装置100と同様に、レジスタ2つ分のエリアを確保するため、0x0068となる。そして、シーケンサ202は、前記入出力装置100aと同様に、これらヘッダアドレスとエンドアドレス、及び応答フレーム内の構成情報を、構成情報テーブル211のノード別に割り当てられたアドレス0x0010〜0x001Fに登録、更新する(S210)。
【0031】
尚、本例における構成情報テーブル211のノード別に割り当てられたアドレスとは、主メモリ210のアドレス=ノード番号×8と定型化し、ノード1つあたりの構成情報は、8バイトとしているが、本発明では、当該テーブルの割当て方法,サイズ等については特に制限はない。
【0032】
シーケンサ202は、全ノードへの問い合わせが完了したか判断し(S211)、完了していなければ、構成情報インデックス(=ノード番号)を1つ増加して(S212)、構成情報問合せフレームを送出する(S202)。全ノードへの問合せが完了していれば、初期設定を終了する(S213)。
【0033】
このように、シーケンサ202は、入出力装置の探索と、探索の結果、得られた構成情報から構成情報テーブルを生成するまでの処理を、全ノード数分実施し、当該プラント制御システムにおけるシステム初期設定を完了する。
【0034】
続いて、入力制御情報読み出しにおける中央制御装置200の制御運転について説明する。
【0035】
図4は、入力制御情報読み出しにおける制御運転について、中央制御装置200から入出力制御装置100aに対する一連の処理を示す図である。中央制御装置200のシーケンサ202は、CPU220(制御ソフトウェア)の制御通信起動指示を受けて(S301)、制御運転を開始する。
【0036】
まず、シーケンサ202は、主メモリ210の構成情報テーブル211をノード番号の若い順番(#0〜)から探索、読み出し(S302),入出力装置の有無の確認処理を行う(S303)。当該ノード番号が存在しなかったら、シーケンサ202は、構成情報テーブルのインデックス番号を1つ増加し(S322)、次ノードの構成情報テーブル読み出しを実施する。存在しなかった場合は、制御通信停止の指示があるまで前記処理を繰り返し実施する(S323)。
【0037】
当該ノード番号が存在したら、シーケンサ202は、要求フレームヘッダバッファ203を介して、要求フレームヘッダの内容を、FIFO206にセットする(S304)。尚、要求フレームヘッダには、送信元ノード番号(中央制御装置200のノード番号)、現時点で構成情報テーブル探索下にある送信先ノード番号(ここでは、入出力装置100aのノード番号)、及び、フレームを送信する毎に1つ増加する処理識別番号(初期値は0)が格納されている。
【0038】
続いて、シーケンサ202は、指示の種類(読み出し/書き出し。ここで述べる入出力装置100aに対しては読み出し指示、入出力装置100bに対しては書き出し指示とする)、転送対象レジスタの先頭呼出し番号(構成情報テーブル上では、常に1(=先頭)であるが、CPU220が任意の番号をセットすることも可能)、転送するレジスタのサイズ,転送順番(読み出し指示時のみ。こちらも呼出し番号同様、CPU220によって、任意の順番をセットすることが可だが、本例における構成情報テーブルとしての初期値は“昇順”とする)といった制御コードを生成し、それらをFIFO206にセットする(S305)。
【0039】
続いて、要求が読み出しであるか書き出しであるか判断する(S306)。シーケンサ202は、入出力装置100aに対しての指示が読み出しであるので、送信ポート208を開放し、FIFO206にセットされた情報を要求フレームとして通信回線路001上に送出する(S311)。尚、前記読み出し要求フレームのフォーマットを後述する
図12に示す。
【0040】
続いて、入出力装置100aの制御運転における応答処理について、
図5のフローチャートを用いて説明する。入出力装置100aでは、先述の要求フレームを受信したら(S401)、初期設定時と同様、シーケンサ102aが、要求フレーム内の送信先ノード番号と、ノードSW103から読み込んだ自ノード番号の照合を行う(S402)。照合した結果、一致が確認できたら、要求フレーム内の制御コードを読み込み、処理を継続する。尚、一致しなかった場合は、当該フレームを破棄し、引き続き新たなフレームを監視する。
【0041】
ノード番号が一致した場合の説明を続ける。シーケンサ102aは、応答フレームヘッダに、送信元ノード番号(ここでは、入出力装置100aのノード番号)と、送信先ノード番号(中央制御装置200のノード番号)、及び要求フレームに随伴していた処理識別番号(ループバック)をセットする。その後、応答フレームヘッダの内容をFIFO105にセットする(S403)。
【0042】
続いて、シーケンサ102aは、ROM101aを読み込み済(初期設定完了済)であるか判断する(S404)。読み込み済みであれば、シーケンサ102aは、制御コードを解析し(S405)、その結果、先頭呼出し番号に該当するレジスタパスをマルチプレクサ104aで切替え、転送が必要なレジスタをFIFO105aにセットする(S406)。本例では、当該先頭呼出し番号を、初期値である“1”とし、転送サイズ“=3”個分のレジスタパスをマルチプレクサ104aで順番に切替えながら、FIFO105aにレジスタの内容をセットする。この結果、FIFO105aには、B,E,Wの順番でレジスタの内容がセットされる。
【0043】
当該マルチプレクス動作の一連の流れは、シーケンサ102a内における
図7のマルチプレクス制御動作によって実現される。マルチプレクサ104aは、自ノード宛要求フレームを受信し、応答フレームヘッダをセットすると、アイドルステートからレジスタ選択ステートへ遷移する。各選択ステートでは、クロック単位で次のステートへ遷移する。ここで遷移の方向は、制御コードの転送順番指定で決まる。
【0044】
次に、先頭呼出し番号監視回路は、各レジスタ選択ステートの選択ステート活性信号をカウントし、カウント数が制御コード内の先頭呼出し番号ならば一次ゲートを開放(イネーブル)する。これによって、任意に最初に読み出すレジスタを選択することができる。
【0045】
次に、レジスタごとに設けられる二次ゲートでは、各レジスタが転送対象であれば1が、非対称であれば0が設定されている。すなわち、ROM101aから設定される転送対象のレジスタのものだけが1に設定され、一次ゲートの開放(イネーブル)による開放信号とのアンド条件によって、各レジスタへのアクセスが可能となる。ここで、マルチプレクサ切替え回数カウンタでは、切替えを検知すると1つカウントアップし、応答フレーム処理を完了するとカウントをリセットする。そして、レジスタ選択ステートでは、制御コード内の転送サイズがマルチプレクサの切替え回数と等しくなるとアイドルステートへ遷移する。また、ここでは、入出力装置100aのマルチプレクサ104aを例にマルチプレクス動作を説明したが入出力装置100bのデマルチプレクサ104bにおいても同様の処理を行う。
【0046】
このように、シーケンサ102aは、ROM101aで有効設定されたB,E,Wのステートにいるときだけ、マルチプレクサを動作させて、当該レジスタの内容をFIFO105aにセットするよう動作する(S406)。
図7のステートマシンはループ構造になっているため、もし、先頭呼出し番号が“1”以外、例えば、“3”で、かつ転送サイズが“2”であると、B,Eのマルチプレクス制御を2つ分スキップし、WをFIFO105aにセットする。続いて、ループの結果、BをFIFO105aにセットするので、格納順番がW,Bとなる。
【0047】
次にFIFOセット完了数が転送サイズと等しくないか判断し(S407)、等しくなければ呼出し番号を順番指示に応じて1つ増加または1つ減少させる(S408)。そして、該呼出し番号における転送対象レジスタあるか判断し(S409)、転送対象レジスタがあればS406へ戻る。転送対象レジスタが無い場合には、シーケンサ102aが認識しているレジスタ数よりも多くの転送サイズが設定された要求フレームを前記シーケンサ102aが受信したと考えられるため、シーケンサ102aは、応答フレームに随伴させる処理識別番号(ループバック)を「応答失敗コード」に変換する(S410)。
【0048】
一連の応答フレーム生成とFIFO105aへのセット処理が完了し(S406)、FIFOセット完了数が転送サイズと等しくなると(S407)、シーケンサ102は最後に、送信ポート108aを開放し、応答フレームを通信回線路001上に送出する(S411)。尚、前記読み出し応答フレームのフォーマットは、
図13(A),(B)の通り、レジスタの内容によらず、連続に配置されている。このように必要なデータを連続配置することでバースト転送が可能になり、結果的にフレーム通信の転送効率を向上させることができる。
【0049】
続いて、
図4の中央制御装置200の制御運転についての説明に戻る。中央制御装置200は入出力装置100aからの応答フレームの受信があるか判断し(S312)、要求フレーム送信後、シーケンサ202は、タイムアウト規定内に、入出力装置100aからの応答フレームを受信できなければ、直ちにエラー処理を実施する(S313,S321)。エラー処理については、例えば緊急停止や、制御を安全側に移行する処理等がある。
【0050】
シーケンサ202は、タイムアウト規定内に応答フレームを受信すると、処理識別番が要求フレーム発行時と一致であることを確認する(S314)。さらには、フレーム内容から当該フレームの送信元ノード番号と要求フレーム発行時の宛先ノード番号とが一致していることも同様に確認する(S315)。一致を確認したら、もともと要求フレームヘッダに格納されていた制御コードから、読み出し指示,先頭呼出し番号,転送サイズを解析し(S316)、その結果、FIFO205からの入力制御情報として、レジスタB,E,Wを読み込み(S317)、構成情報テーブル211で設定された主メモリ210のヘッダアドレス0x0058を先頭に、順番にセットする(S319)。すなわち、シーケンサ202は、書き出し完了数が転送サイズと等しいかどうか判断し(S319)、転送サイズと等しくなるまで指示アドレスを増加させて(S320)、S317へ戻ることで、レジスタB,E,Wを主メモリ210へセットする。一連の応答受信処理が完了したら、構成情報テーブルへの読み出しインデックス番号を1つ増加させ、次ノードに対する処理を同様に行う(S322)。
【0051】
シーケンサ202は、制御通信停止指示を受けつけるまで、これらの処理を繰り返し実施する(S323)。インデックス番号が、最終ノード番号までに達した場合は、最初のインデックス番号(#0)に戻し、処理をサイクリックに継続する。もし、応答フレームの処理識別番号から一致が確認できなかった場合は、エラー処理を実施する。以上が、入出力装置からの入力制御情報を中央制御装置に転送するまでの流れである。
【0052】
続いて、出力制御情報書き出しにおける制御運転について、中央制御装置200から入出力制御装置100bに対する一連の処理を、入出力制御装置100aに対する処理と同様に
図4を用いて説明する。中央制御装置200のシーケンサ202は、
図4フローチャートにて、構成情報テーブル211から読み出した入出力装置100bへの要求フレームヘッダにおける指示の種類を判断し(S306)、指示が書き出し指示であるので前記構成情報テーブル211に設定されたヘッダアドレス0x0064を先頭に、転送サイズ=“2”個分の出力制御情報C,Yを主メモリ210から順番に読み出し(S307)、FIFO206にセットする(S308)。そして、読み込み完了数が転送サイズに等しくなったか判断し(S309)、等しくなければ指示アドレスを増加させて(S310)、S307へ戻る。読み込み完了数が転送サイズに等しくなったら、送信ポート208を開放し、要求フレームを通信回線路001上に送出する(S311)。尚、前記書き出し要求フレームのフォーマットを
図14に示す。前記読み出し応答フレームのフォーマット同様、バースト転送によりフレーム通信の転送効率が向上する。
【0053】
続いて、入出力装置100bの制御運転における応答処理について、
図6のフローチャートを用いて説明する。入出力装置100bは、先述の要求フレームを受信したら(S501)、初期設定時と同様にシーケンサ102bが、要求フレーム内の送信先ノード番号と、ノードSW113から読み込んだ自ノード番号の照合を行う(S502)。ノード番号が一致したら、シーケンサ102bは、応答フレームヘッダに、送信元ノード番号(ここでは、入出力装置100bのノード番号)と、送信先ノード番号(中央制御装置200のノード番号)、及び要求フレームに随伴していた処理識別番号(ループバック)をセットする。その後、応答フレームヘッダの内容をFIFO105bにセットする(S503)。尚、一致しなかった場合は、当該フレームを破棄し、引き続き新たなフレームを監視する。
【0054】
続いて、シーケンサ102bは、ROM101bを読み込み済(初期設定完了済)であるか判断する(S504)。初期設定完了済みであれば、要求フレーム内の制御コードを読み込み(S505)、処理を継続する。次に、シーケンサ102bは、要求フレーム内の制御コードを解析し、先頭呼出し番号“1”に該当するレジスタパスをデマルチプレクサ114で切替えてFIFO116の制御出力情報CをレジスタCにセットする(S506)。そして、2番目の呼出し番号に該当するレジスタパスをデマルチプレクサ114で切替えてFIFO116の制御出力情報YをレジスタYにセットする。すなわちレジスタセット完了数が転送サイズと等しくないか判断し、等しくなければ呼出し番号を1つ増加し(S508)、該呼出し番号における転送対象のレジスタがあるか判断し(S509)、レジスタがあればS506へ戻ることでレジスタC、Yが順にセットされる。
【0055】
尚、呼出し番号が“1”以外におけるシーケンサ102bのデマルチプレクサ制御は、先述の読み出し制御と同様に、転送レジスタ切替えのスキップや、ループを行う。また、S509で該呼出し番号における転送対象のレジスタが無い場合には、シーケンサ102bは、ROM101bで取得した転送サイズよりも大きい転送サイズの制御コードを受信したと判断して、先述の読み出し制御時と同様に「応答失敗コード」を生成する(S510)。
【0056】
一連のレジスタセット、及び応答フレームの生成処理が完了したら、最後にシーケンサ102bは、送信ポート1108bを開放し、応答フレームを通信回線路001上に送出し(S511)、処理を終了する(S512)。
【0057】
続いて、
図4の中央制御装置200の制御運転についての説明に戻る。中央制御装置200は入出力装置100bからの応答フレームの受信があるか判断し(S312)、要求フレーム送信後、シーケンサ202は、タイムアウト規定内に、入出力装置100aからの応答フレームを受信できなければ、直ちにエラー処理を実施する(S313,S321)。
【0058】
シーケンサ202は、タイムアウト規定内に応答フレームを受信すると、処理識別番が要求フレーム発行時と一致であることを確認する(S314)。さらには、フレーム内容から当該フレームの送信元ノード番号と要求フレーム発行時の宛先ノード番号とが一致していることも同様に確認する(S315)。一致を確認したら、そのまま処理を完了するが、一致を確認できなかったらエラー処理を実施する(S321)。その後、構成情報テーブルへの読み出しインデックス番号を1つ増加させ、以降は読み出し制御時と同等となる。以上が、中央制御装置から出力制御情報を入出力装置に転送するまでの流れである。
【0059】
ここまでは、中央制御装置と入出力装置間のレジスタ転送効率化と、使用メモリの最適化に関する説明である。もし、入出力装置100a,100bが、ROM101a,101bからの初期設定を完了しないうちに、中央制御装置からの入出力制御情報の要求フレームを受信した場合は、各入出力装置100a,100bは、転送データ無効として、「応答失敗コード」で応答する。
【0060】
ここで
図8,
図10〜
図15に示すように、前述の主メモリ210内の構成情報テーブルの詳細と、前述の要求,応答フレームについて説明する。
【0061】
図8は、主メモリ210に記憶される構成情報テーブルを示す図である。図のように主メモリ210には各入出力装置に対応して、ノード別の入出力制御エリアのヘッダアドレス及びエンドアドレスと、入出力装置の詳細構成情報と、読み出し又は書き出しを示す指示種と、呼出し番号とが記憶されている。ここで詳細構成情報の例としては、入出力装置の形式や、入出力の点数などがある。
【0062】
図10,
図11は、それぞれ構成情報問合せ要求フレームと、構成情報問合せ応答フレームを示す図である。それぞれのフレームのヘッダは、送信元ノード番号と、送信先ノード番号と、処理識別番号とから構成される。また、構成情報問合せ要求フレームは、制御コードとして構成情報取得指示がセットされ、その応答として構成情報問合せ応答フレームは、構成情報(ROMの内容)がセットされる。ここで、構成情報問合せ応答フレームは、応答失敗時には応答失敗コードも示す。
【0063】
図12,
図13はそれぞれ制御情報読み出し要求フレームと、制御情報読み出し応答フレームを示す図である。それぞれのフレームのヘッダは、送信元ノード番号と、送信先ノード番号と、処理識別番号とから構成される。また、制御情報読み出し要求フレームは、制御コードとして読み出し指示と、転送対象のレジスタの先頭呼出し番号と、転送サイズと、転送するレジスタの順番と、がセットされる。その応答として
図13(A)の制御情報読み出し応答フレームのように、レジスタB,E,Wのデータが順にセットされる。また、制御コードが変更されレジスタWから2つのレジスタを読み出す指示の場合には、
図13(B)の制御情報読み出し応答フレームのようにレジスタW,Bのデータが順にセットされる。
【0064】
図14,
図15は、それぞれ制御情報書き出し要求フレームと、制御情報書き出し応答フレームを示す図である。それぞれのフレームのヘッダは、送信元ノード番号と、送信先ノード番号と、処理識別番号とから構成される。また、制御情報書き出し要求フレームは、制御コードとして書き出し指示と、転送対象のレジスタの先頭呼出し番号と、転送サイズと、がセットされ、さらに、レジスタC,Yへ書き出すデータが順にセットされる。また、制御情報書き出し応答フレームでは、書き出したことを示す応答をすればよいのでヘッダのみで構成されるが、付加情報を加えてもよい。
【0065】
以上が、中央制御装置から出力制御情報を入出力装置に転送するまでの流れであるが、次に、CPU220から主メモリ210内ノード別入出力制御エリア212に対するソフトアクセス容易化について説明する。
【0066】
先述のとおり、各ノードの入出力装置の入出力制御情報は、主メモリ210におけるアドレス配置が各ノードの転送サイズによって固定ではないため、ソフトウェアからのアクセスアドレスが分かりにくいという欠点がある。この欠点を解消するために、CPU220とメモリアクセスコントローラ201の間に、アドレス変換回路209を具備する。
【0067】
前記アドレス変換回路209は、CPU220から、ノード別入出力制御エリアへのアクセス要求があると、当該要求時に随伴される論理アドレスに該当するノードの構成情報の読み出しをシーケンサ202に依頼する。ここで論理アドレスとは、CPU220が管理しやすいように設定された仮想的なアドレスを示し、主メモリ210の実際のアドレスとは異なるものである。シーケンサ202は、同依頼から主メモリ210内の構成情報テーブルを読み出し、アクセス対象の制御情報が格納されているヘッダアドレスとエンドアドレスを取得し、CPU220からの論理アドレスを主メモリ210の実体アドレスに変換し、最後にノード別入出力制御エリア212にアクセスする。アクセスが読み出しならば、当該実体アドレスのメモリ内に格納されている制御情報を読み出し、アクセスが書き出しならば、当該実体アドレス内のメモリを書き換える。
【0068】
一般的にソフトウェアがアクセスしやすい論理アドレスサイズは、2のべき乗倍であると言われる。その理由は、
図9の通り、論理アドレスが、あるビット位置を境に、左がノード番号、右が当該ノード内におけるレジスタの呼出し番号というように、機能的に分類できるからである。これにより、ソフトウェアでは、ビットマスク等の処理が容易にできるようなり、ソフトの処理効率が向上する。
【0069】
以上のように本発明は、入出力装置の構成情報の複雑度に依らずに、フィールド通信を行う特に大規模なプラント制御システムの運用を最大限高速化することが可能となり、さらには中央制御装置のメモリサイズを冗長なく最適化することが可能となる。
【0070】
すなわち従来は、中央制御装置が複数の入出力機能を持った入出力装置との通信を行う場合に、転送の必要なレジスタアドレス配置が離散することがあるため、転送を2回以上に分けるか、あるいは冗長なレジスタも含めて1回のバースト転送をしなければならず、制御通信の性能に影響を与えていた。これに対し本発明では、入出力装置各々が中央制御装置へ転送したいレジスタ領域を通知し、中央制御装置ではこれらレジスタを連続アドレスに自己配置変換することで、転送効率を向上させることができ、例えば複数の入出力装置のレジスタ等を共通のLSIとして共通部品化した場合であっても、各入出力装置のROMに構成情報を設定すれば中央制御装置のメモリ領域を最適化できるので、複数種の入出力装置を備える制御システムの運用を高速化することができる。
【0071】
さらには、本発明では転送サイズやアドレスの異なる各々の入出力装置が、中央制御装置に対して自身のレジスタ領域を転送する機構を、ハードウェアで構成するために、ソフトウェアで当該手段を実現するよりも、プラント制御システムの立上げ時の処理負担を軽減することができる。
【0072】
さらには、中央制御装置は、複数の入出力装置ごとに設定されたレジスタ領域をソフトウェアがアクセスしやすい形態でアドレス変換することで、ソフトウェアの処理負担を低減するとともに、制御全体の高速化を図ることができる。