(第1の実施形態)
本実施形態では、主として産業プラント(以下、単にプラントという)の制御に用いられるプラント制御装置について説明する。一般に、プラント制御のための技術として、複数のプラント制御装置を接続して制御システムとして構成することが知られている。
図1は、本実施形態に係る複数のプラント制御装置1,2を含む制御システムSの一例を示す図である。
プラント制御装置1、2は、基本ベース10,20に、複数のモジュールが組み合わされている。基本ベース10,20には複数のスロット(Slot)が設けられ、各モジュールはスロットに挿入されている。
プラント制御装置1は、基本ベース10と、インターフェースモジュール110と、複数の入力モジュール120a~120kと、電源モジュール130とを備える。
電源モジュール130は、不図示の電源ケーブルから電力を取得し、取得した電力をインターフェースモジュール110および複数の入力モジュール120a~120kに供給する。
複数の入力モジュール120a~120kは、各種の外部機器からデータの入力を受ける。各種の外部機器は、例えば、センサ、制御装置、PC(Personal Computer)、およびサーバ等である。複数の入力モジュール120a~120kは、各種の外部機器と接続するケーブルを取り付け可能なI/Oポートを有する。複数の入力モジュール120a~120kは、それぞれ異なる通信規格に対応する。通信規格は、例えば、Ethernet(登録商標)等の既存の規格でも良いし、制御システムS用の独自の規格でも良い。以下、個々の入力モジュール120a~120kを区別しない場合、単に入力モジュール120という。なお、入力モジュール120は、データの入力だけではなく、外部機器へデータを出力する機能を備えた入出力モジュールであってもよい。
インターフェースモジュール110は、複数の入力モジュール120a~120kが各種機器から取得した入力データを取得し、取得した入力データをインターフェースモジュール110内のメモリに保存する。インターフェースモジュール110内のメモリは、後述のプラント制御装置2のインターフェースモジュール210から読み取り可能であるため、共有メモリという。共有メモリについては後述の図2に図示する。入力データは、各種機器から入力モジュール120a~120kへ入力されたデータである。本実施形態において単にデータという場合は、当該入力データのことを指すものとする。
また、インターフェースモジュール110は、ケーブル3を接続可能な複数のインターフェースポート111a,111bを備える。図1に示す例では、インターフェースポート111aにはケーブル3の一端が挿入されている。ケーブル3のもう一端は、プラント制御装置2のインターフェースモジュール210のインターフェースポート211aに挿入されている。この場合、インターフェースモジュール110は、ケーブル3を介してプラント制御装置2のインターフェースモジュール210と接続している。なお、インターフェースモジュール110は、インターフェースポート111a,111bを介してプラント制御装置2以外の他のプラント制御装置と接続しても良い。
プラント制御装置2は、基本ベース20と、インターフェースモジュール210と、複数のI/O・伝送モジュール220a~220iと、電源モジュール230と、コントローラ240とを備える。
プラント制御装置2は、例えば、プラント制御装置1の上位装置である。例えば、プラント制御装置2に挿入可能なI/O・伝送モジュール220a~220iの数には限りがあるが、ユーザが制御システムSにさらに他のI/O・伝送モジュールを追加したい場合がある。このような場合、プラント制御装置2にプラント制御装置1を接続することで、複数の入力モジュール120a~120kを追加することができる。なお、入力モジュール120a~120kは、出力機能を有するI/O・伝送モジュールであってもよい。
プラント制御装置2の複数のI/O・伝送モジュール220a~220iは、各種の外部機器との間でデータの入出力、および情報の伝送を行う。
プラント制御装置2の電源モジュール230は、不図示の電源ケーブルから電力を取得し、取得した電力をインターフェースモジュール210、複数のI/O・伝送モジュール220a~220i、およびコントローラ240に供給する。
プラント制御装置2のコントローラ240は、CPU(Central Processing Unit)およびメモリを備え、メモリに保存されたプログラムを実行することにより、I/O・伝送モジュール220a~220iにデータを入出力させる。また、コントローラ240は、インターフェースモジュール210を制御してプラント制御装置1のインターフェースモジュール110の共有メモリに保存された入力データを読み出す。
プラント制御装置2のインターフェースモジュール210は、ケーブル3を接続可能な複数のインターフェースポート211a~211dを備える。図1に示す例では、インターフェースポート211aにはケーブル3の一端が挿入されており、インターフェースモジュール210は、ケーブル3を介してプラント制御装置1のインターフェースモジュール110と接続している。なお、ケーブル3およびインターフェースポート111a,111b,211a~211dが準拠する規格は特に限定されるものではなく、一般的なシリアル通信の規格が採用されても良いし、制御システムS用の独自の規格が用いられても良い。
プラント制御装置2のインターフェースモジュール210は、コントローラ240による制御の下、プラント制御装置1のインターフェースモジュール110の共有メモリから入力データを読み出し、読み出した入力データをコントローラ240のメモリに保存する。インターフェースモジュール210は、本実施形態における他のインターフェース装置の一例である。
次に、本実施形態に係るプラント制御装置1の構成について、より詳細に説明する。
図2は、本実施形態に係るプラント制御装置1の構成の一例を示すブロック図である。図2に示すように、プラント制御装置1のインターフェースモジュール110、複数の入力モジュール120a~120k、および電源モジュール130は、それぞれ、基本ベース10のスロット11a~11mに挿入されている。以下、個々のスロット11a~11mを区別しない場合には、単にスロット11という。
基本ベース10内には、インターフェースモジュール110、複数の入力モジュール120a~120k、および電源モジュール130を接続する電源供給ケーブル91およびバス90が備えられている。
インターフェースモジュール110、複数の入力モジュール120a~120k、および電源モジュール130は、コネクタ112a~112kを備える。コネクタ112a~112kは、基本ベース10の電源供給ケーブル91およびバス90と接続する。
電源モジュール130は、電源供給ケーブル91を介して、スロット11b~11mに挿入されたインターフェースモジュール110、および複数の入力モジュール120a~120kに電力を供給する。
インターフェースモジュール110は、制御回路400、共有メモリ410、およびインターフェースポート111a,111bを備える。
インターフェースポート111a,111bは、図1で説明したように、ケーブル3を挿入可能なポートである。
制御回路400は、プログラミング可能な集積回路であり、例えばFPGA(Field-Programmable Gate Array)である。制御回路400には、各種の処理がハードウェア記述言語により定義されている。制御回路400は、レジスタ41を備える。制御回路400は、アクセス周期テーブル51に登録された入力モジュール120の種別ごとのアクセス周期に応じて、複数の入力モジュール120a~120kから入力データ61a~61kを取得する。制御回路400は、取得した入力データ61a~61kを入力データテーブル52aに保存する。以下、入力データ61a~61kを特に区別しない場合には、単に入力データ61という。
また、制御回路400は、レジスタ41に保存された入力データテーブル52aを、共有メモリ410に転送する。転送とは、例えば、入力データテーブル52aをレジスタ41から共有メモリ410にコピーすることである。
レジスタ41はアクセス周期テーブル51および入力データテーブル52aを記憶する。
アクセス周期テーブル51は、入力モジュール120の種別ごとのアクセス周期が登録されたテーブルである。アクセス周期テーブル51は、プラント制御装置1の出荷前に、予めレジスタ41に保存される。アクセス周期テーブル51の構成例については、図3で後述する。以下、入力モジュール120の種別を「モジュール種別」という。本実施形態における各モジュール種別のアクセス周期は、モジュール種別ごとのデータ更新周期である。データ更新周期は、各入力モジュール120が外部機器から入力データを取得する周期である。各入力モジュール120a~120kのメモリ600a~600kに保存された入力データ61a~61kは、データ更新周期ごとに更新される。
入力データテーブル52aは、複数の入力モジュール120a~120kが挿入されたスロット11c~11mのスロット番号と、複数の入力モジュール120a~120kのモジュール種別と、複数の入力モジュール120a~120kのメモリ600a~600kにから取得された入力データ61a~61kが対応付けられたテーブルである。入力データテーブル52aは、インターフェースモジュール110の初回起動時に、制御回路400によって生成される。入力データテーブル52aの構成例については、図4で後述する。
共有メモリ410は、例えばSRAM(Static Random Access Memory)等の読み書き可能な記憶装置である。共有メモリ410は、制御回路400によってレジスタ41から転送された入力データテーブルを記憶する。図2では、レジスタ41内の入力データテーブルを「入力データテーブル52a」、レジスタ41から共有メモリ410に転送された入力データテーブルを「入力データテーブル52b」と記載する。入力データテーブル52aと入力データテーブル52bとは同じ項目構成である。入力データテーブル52aと入力データテーブル52bとを総称する場合は、「入力データテーブル52」という。
レジスタ41はプラント制御装置2のインターフェースモジュール210からのアクセスは不可であるが、共有メモリ410はインターフェースモジュール210からのアクセスが可能であるものとする。制御回路400がレジスタ41の入力データテーブル52aを共有メモリ410へコピーすることにより、プラント制御装置2のインターフェースモジュール210が共有メモリ410の入力データテーブル52bに保存された入力データを読み出しすることができる。プラント制御装置2のインターフェースモジュール210は、例えばコントローラ240により決定されたタイミングで、プラント制御装置1の共有メモリ410へアクセスする。プラント制御装置1のインターフェースモジュール110が複数の入力モジュール120a~120kからそれぞれのデータ更新周期に応じて入力データを取得しているため、プラント制御装置2側からは、複数の入力モジュール120a~120kのデータ更新周期にアクセスタイミングを合わせなくとも、共有メモリ410から各入力モジュール120a~120kの入力データを取得することができる。
入力モジュール120a~120kは、それぞれ、メモリ600a~600kと、制御回路610a~610kと、I/Oポート121a~121kとを備える。なお、図2では各入力モジュール120a~120kに共通の構成を図示するが、各入力モジュール120a~120kは、さらに、それぞれ固有の構成を備えても良い。以下、個々の制御回路610a~610kを区別しない場合は、単に制御回路610という。また、個々のメモリ600a~600kを区別しない場合は、単にメモリ600という。個々のI/Oポート121a~121kを区別しない場合は、単にI/Oポート121という。
図2に示す例では、I/Oポート121a~121kには、センサ6a~6kが接続する。センサ6a~6kは、入力モジュール120a~120kに入力データを入力する外部機器の一例である。なお、I/Oポート121に接続される外部機器は、センサに限定されるものではない。以下、センサ6a~6kを区別しない場合には、単にセンサ6という。
メモリ600a~600kは、入力データ61a~61kと、モジュール種別62a~62kと、制御回路610a~610kとを記憶する。メモリ600a~600kは、例えば、読み書き可能なSRAM等の記憶装置である。
あるいは、入力モジュール120a~120kは、読み取り専用のメモリと読み書き可能なメモリの両方を備えても良い。この場合、ROM(Read Only Memory)のように読み取り専用のメモリがモジュール種別62a~62kを記憶し、RAM(Random Access Memory)のように読み書き可能なメモリが入力データ61a~61kを記憶する。以下、個々のモジュール種別62a~62kを区別しない場合には、単にモジュール種別62という。
以下、入力モジュール120aを例として入力モジュール120の機能を説明する。入力モジュール120aのI/Oポート121aは、例えばセンサ6aと接続する。
制御回路610aは、I/Oポート121aを介したデータの入出力を制御する。例えば、制御回路610aは、I/Oポート121aがセンサ6aから規定のデータ更新周期で取得した入力データ61aを、メモリ600aに保存する。入力データ61aのデータ更新周期の1周期あたりの時間長は、入力モジュール120aのモジュール種別に依存する。
また、メモリ600aは、入力モジュール120aのモジュール種別62aを記憶する。モジュール種別62aは、入力モジュール120aの出荷前に予めメモリ600aに保存されるものとする。
入力モジュール120b~120kも、入力モジュール120aと同様の構成を備える。
次に、インターフェースモジュール110のレジスタ41に保存されたアクセス周期テーブル51の構成について説明する。
図3は、本実施形態に係るアクセス周期テーブル51の一例を示す図である。図3に示すように、レジスタ41の各アドレスに、モジュール種別とアクセス周期とが対応付けられて記憶されている。レジスタ41の記憶領域のアドレスのうち、アクセス周期テーブル51として使用なアドレスは予め定められているものとする。
モジュール種別は、例えば入力モジュール120の型式を表すコードである。同じモジュール種別の入力モジュール120の制御回路610は、同じデータ更新周期でメモリ600の入力データ61を更新する。たとえば、モジュール種別“GEN610nnn”の入力モジュール120のデータ更新周期は50マイクロ秒である。この場合、アクセス周期テーブル51において、モジュール種別“GEN610nnn”には、アクセス周期“50マイクロ秒”が対応付けられて登録される。また、モジュール種別“GSN620nnn”の入力モジュール120のデータ更新周期は100マイクロ秒、モジュール種別“GPI630nnn”およびモジュール種別“GDI650nnn”の入力モジュール120のデータ更新周期は10マイクロ秒である。この場合、アクセス周期テーブル51において、モジュール種別“GSN620nnn”にはアクセス周期“100マイクロ秒”、モジュール種別“GPI630nnn”および“GDI650nnn”にはアクセス周期“10マイクロ秒”がそれぞれ対応付けられて登録される。
基本ベース10に取り付けられる可能性のある入力モジュール120のモジュール種別は予め定められているため、アクセス周期テーブル51には、基本ベース10に取り付けられる可能性のある入力モジュール120のモジュール種別とアクセス周期とが予め登録される。
次に、インターフェースモジュール110のレジスタ41に保存された入力データテーブル52aの構成について説明する。
図4は、本実施形態に係る入力データテーブル52aの一例を示す図である。図4に示すように、レジスタ41の各アドレスに、スロット番号と、モジュール種別と、入力データとが対応付けられて記憶されている。レジスタ41の記憶領域のアドレスのうち、入力データテーブル52aとして使用なアドレスは予め定められているものとする。
スロット番号は、入力モジュール120a~120kが挿入されているスロット11c~11mを特定する識別情報である。プラント制御装置1では1つのスロット11につき1つの入力モジュール120が挿入されているため、スロット番号により1つの入力モジュール120が特定できる。
一例として、スロット番号“1”はスロット11c、スロット番号“2”はスロット11d、スロット番号“3”はスロット11e、スロット番号“11”はスロット11mを示す。
入力データテーブル52aに格納された入力データは、インターフェースモジュール110の制御回路400により入力モジュール120a~120kのメモリ600a~600kから取得された入力データ61a~61kである。
次に、入力モジュール120a~120kのメモリ600a~600k内の入力データ61a~61kの更新周期と、インターフェースモジュール110の制御回路400による入力データ61a~61kの取得タイミングの関係について説明する。
図5は、本実施形態に係る2つの入力モジュール120a,120cのメモリ600a,600cに格納された入力データ61a,61cのデータ更新周期と、インターフェースモジュール110の制御回路400によるデータ取得のためのアクセスのタイミングの一例を示す図である。
図5は、左から右へ時系列に変化する入力データ61a,61cの値を示す。また、図5の矢印70a~70j,71a,71bは、インターフェースモジュール110の制御回路400によるデータ取得タイミングを示す。
例えば、入力モジュール120cは、図2に示したように、スロット11eに挿入されている。上述のように、スロット11eのスロット番号は“3”である。また、図4に示したように、スロット番号“3”のスロット11eに挿入された入力モジュール120cのモジュール種別は“GPI630nnn”である。そして、図3に示したように、モジュール種別“GPI630nnn”に対応するデータ更新周期は10マイクロ秒である。
つまり、入力モジュール120cは、10マイクロ秒ごとにメモリ600cに格納された入力データ61cを更新する。図5に示す例では、メモリ600cに格納された入力データ61cの値は、10マイクロ秒ごとに“XXXX”、“XXXA”、“XXXB”、“XXXC”、“XXXD”、“XXXE”、“XXXF”、“XXXG”、“XXXH”、“XXXI”の順に変化している。
この場合、インターフェースモジュール110の制御回路400は、入力モジュール120cのデータ更新周期に応じたアクセス周期で入力モジュール120cにアクセスし、メモリ600cから入力データ61cを取得する。より具体的には、制御回路400は、入力モジュール120cのデータ更新周期の1周期に1回ずつ、入力データ61cを読み出す。例えば、制御回路400は、矢印70aに示すタイミングで1回目のデータ取得をしてから10マイクロ秒経過後に、矢印70bに示すタイミングで2回目のデータ取得をする。これにより、制御回路400は、入力データ61cが変化するごとに、入力データ61cを取得できる。また、データ更新周期の1周期に複数回データ取得をしても入力データ61cが変化していないため、データ更新周期の1周期に1回ずつデータ取得をすることで、制御回路400がメモリ600cへ必要以上にアクセスすることを低減できる。
また、入力モジュール120aは、図2に示したように、スロット11cに挿入されている。上述のように、スロット11cのスロット番号は“1”である。また、図4に示したように、スロット番号“1”のスロット11cに挿入された入力モジュール120aのモジュール種別は“GEN610nnn”である。そして、図3に示したように、モジュール種別“GEN610nnn”に対応するアクセス周期は50マイクロ秒である。
つまり、入力モジュール120aは、50マイクロ秒ごとにメモリ600aに格納された入力データ61aを更新する。
この場合、インターフェースモジュール110の制御回路400は、50マイクロ秒ごとのデータ更新周期の1周期に1回ずつ入力モジュール120aにアクセスして、入力データ61aを読み出す。
仮に、制御回路400が入力モジュール120aのデータ更新周期に合わせたタイミングで入力データ61aと入力データ61cを読み出すと、入力データ61cの更新頻度よりも読み出しの頻度の方が低くなる。あるいは、仮に、制御回路400が入力モジュール120cのデータ更新周期に合わせたタイミングで入力データ61aと入力データ61cを読み出すと、入力データ61aが更新される前に複数回の読み出し処理が発生する。本実施形態の制御回路400は、入力モジュール120a,120cのデータ更新周期に応じてメモリ600a,600cから入力データ61a,61cを取得することにより、各入力モジュール120a,120cに合わせた適切なタイミングで入力データ61a,61cを取得することができる。
なお、図5では、メモリ600a,600cに格納された入力データ61a,61cを例示したが、他のメモリ600b,600d~600kに格納された入力データ61b,61d~61kについても同様に、制御回路400は、各入力モジュール120b,120d~120kのデータ更新周期に応じてメモリ600b,600d~600kから入力データ61b,61d~61kを取得する。
次に、以上のように構成されたインターフェースモジュール110の制御回路400によって実行される入力データ61a~61kの取得および保存の処理の流れについて説明する。
図6は、本実施形態に係るインターフェースモジュール110の制御回路400によって実行される初期設定処理の流れの一例を示すフローチャートである。このフローチャートの処理は、プラント制御装置1の起動時に実行される。また、このフローチャートが実行される前提として、インターフェースモジュール110のレジスタ41にはアクセス周期テーブル51が保存されているものとする。
まず、制御回路400は、各入力モジュール120a~120kから、モジュール種別62a~62b、スロット番号、入力データ61a~61bを取得し、レジスタ41に保存する。これにより、図4で説明した入力データテーブル52aが生成される。そして、制御回路400は、レジスタ41の入力データテーブル52aを、共有メモリ410に転送する(S1)。
より具体的には、制御回路400は、スロット11c~11mに挿入された各入力モジュール120a~120kのメモリ600a~600kから、入力データ61a~61kおよびモジュール種別62a~62kを読み出す。制御回路400は、スロット11c~11mに挿入された各入力モジュール120a~120kにアクセスする際、スロット11c~11mのスロット番号を特定できるものとする。
そして、制御回路400は、入力データ61a~61kおよびモジュール種別62a~62kに、各入力モジュール120a~120kが挿入されたスロット11c~11mのスロット番号を対応付けて、レジスタ41の各アドレスにスロット番号順に保存する。
また、レジスタ41の入力データテーブル52aの共有メモリ410への転送は、具体的には、入力データテーブル52aを共有メモリ410にコピーすることである。制御回路400は、レジスタ41の入力データテーブル52aのスロット番号、モジュール種別、および入力データを対応付けた状態で、共有メモリ410にコピーする。当該処理により、共有メモリ410に入力データテーブル52bが生成される。
S1の処理により、プラント制御装置2のインターフェースモジュール210が共有メモリ410の入力データテーブル52bに保存された入力データを読み出しすることができる状態となる。
次に、制御回路400は、取得した各入力モジュール120a~120kのモジュール種別と、アクセス周期テーブル51に保存されたモジュール種別ごとのアクセス周期とに基づいて、各入力モジュール120a~120kのデータ更新周期を特定する(S2)。
そして、制御回路400は、特定したアクセス周期に基づいて、各入力モジュール120a~120kへのアクセス処理を開始する(S3)。
図7は、本実施形態に係るインターフェースモジュール110の制御回路400によって実行される入力モジュールへのアクセス処理の流れの一例を示すフローチャートである。
このフローチャートの処理は、入力モジュール120a~120kごとに個別に実行される。ここでは、例として、入力モジュール120aにおけるアクセス処理の流れとして説明する。
制御回路400は、入力モジュール120aのメモリ600aにアクセスして入力データ61aを取得し、取得した入力データ61aをレジスタ41の入力データテーブル52aへ保存する。保存後、レジスタ41の入力データテーブル52aを共有メモリ410に転送する(S31)。
そして、制御回路400は、S31の処理における入力モジュール120aへのアクセス時刻から、図6のS2の処理で特定した入力モジュール120aのアクセス周期分の時間が経過するまで待機する(S32“No”)。
S31の処理における入力モジュール120aへのアクセス時刻から、入力モジュール120aのアクセス周期分の時間が経過した場合(S32“Yes”)、S31の処理に戻る。プラント制御装置1が稼働している間は、S31~S32の処理が繰り返される。プラント制御装置1の電源がオフ状態になると、このフローチャートの処理は終了する。
制御回路400は、入力モジュール120b~120kについても、図7に示す処理の流れと同様に、各入力モジュール120b~120kのアクセス周期に応じて入力データ61b~61kを取得する。
なお、このフローチャートでは、レジスタ41の入力データテーブル52aの更新処理の度にレジスタ41から共有メモリ410への入力データテーブル52aの転送処理が実行されるものとしたが、転送処理のタイミングはこれに限定されない。例えば、制御回路400は、レジスタ41の入力データテーブル52aの更新処理のタイミングに関わらず、レジスタ41から共有メモリ410への入力データテーブル52aの転送処理を一定の時間ごとに繰り返し実行しても良い。レジスタ41から共有メモリ410への入力データテーブル52aの転送処理の時間間隔は、入力モジュール120a~120kのデータ更新周期のうち、最も短い時間間隔以下の長さとする。
このように、本実施形態のプラント制御装置1は、複数の入力モジュール120b~120kと、インターフェースモジュール110とを備える。インターフェースモジュール110は、複数の入力モジュール120b~120kから複数の入力モジュール120b~120kの各々のモジュール種別を取得し、取得したモジュール種別とレジスタ41に記憶されたアクセス周期テーブル51とを参照して複数の入力モジュール120b~120kの各々のアクセス周期を特定する。インターフェースモジュール110は、特定した複数の入力モジュールの各々のアクセス周期ごとに、複数の入力モジュール120b~120kにアクセスしてデータを取得する。このため、本実施形態のプラント制御装置1によれば、個々の入力モジュール120a~120kのモジュール種別に応じたアクセス周期で、複数の入力モジュール120a~120kから入力データ61a~61kを取得することができる。
また、本実施形態のプラント制御装置1では、複数の入力モジュール120b~120kの各々は、モジュール種別により規定されるデータ更新周期で外部機器からデータの入力を受ける。インターフェースモジュール110のレジスタ41は、モジュール種別ごとのデータ更新周期を、モジュール種別ごとのアクセス周期として記憶する。このため、本実施形態のプラント制御装置1によれば、インターフェースモジュール110は、複数の入力モジュール120b~120kの入力データ61a~61kの更新周期がそれぞれ異なっていても、複数の入力モジュール120b~120kにおいて入力データ61a~61kが更新される毎に、更新された入力データ61a~61kを取得することができる。
また、本実施形態のプラント制御装置1では、インターフェースモジュール110内のレジスタ41が複数の入力モジュール120a~120kごとのデータ更新周期を記憶することにより、インターフェースモジュール110が複数の入力モジュール120a~120kからのデータ収集を集中管理することができる。比較例として、複数の入力モジュールの各々がインターフェースモジュールに個別のタイミングでアクセスした場合、プラント制御装置内のバス間でアクセスの衝突が発生する場合がある。これに対して、本実施形態のプラント制御装置1では、インターフェースモジュール110が複数の入力モジュール120a~120kへのアクセスを集中管理することにより、アクセス時のデータ衝突の発生を低減することができる。
また、本実施形態のインターフェースモジュール110は、プラント制御装置2のインターフェースモジュール210と接続可能なインターフェースポート111a,111bと、インターフェースモジュール210からアクセス可能な共有メモリ410とを備える。制御回路400は、レジスタ41に保存した入力データテーブル52aを、共有メモリ410に転送する。このため、本実施形態のインターフェースモジュール110によれば、複数の入力モジュール120a~120kから取得した入力データ61a~61kを、プラント制御装置2のインターフェースモジュール210から読み出し可能な状態で提供することができる。
また、本実施形態のインターフェースモジュール110と接続する複数の入力モジュール120a~120kの各々は、メモリ600a~600kと、制御回路610a~610kとを備える。制御回路610a~610kは、入力モジュール120a~120kの各々のデータ更新周期で、外部の機器から入力された入力データ61a~61kをメモリ600a~600kに保存する。本実施形態のインターフェースモジュール110の制御回路400は、入力モジュール120a~120kの各々のメモリ600a~600kから、入力データ61a~61kを取得する。
また、本実施形態の入力モジュール120a~120kのデータ更新周期は、モジュール種別ごとに異なる。本実施形態のインターフェースモジュール110のレジスタ41は、モジュール種別とデータ更新周期とを対応付けて記憶する。本実施形態のインターフェースモジュール110の制御回路400は、入力モジュール120a~120kの各々のメモリ600a~600kから、入力モジュール120a~120kの各々のモジュール種別62a~62kを取得する。制御回路400は、レジスタ41にモジュール種別に対応付けて記憶されたデータ更新周期と、メモリ600a~600kの各々から取得した入力モジュール120a~120kのモジュール種別とに基づいて、入力モジュール120a~120kの各々のデータ更新周期を特定する。制御回路400は、特定した入力モジュール120a~120kの各々のデータ更新周期の1周期ごとに1回ずつ、メモリ600a~600kから入力データ61a~61kを取得する。このため、本実施形態のインターフェースモジュール110によれば、入力データ61a~61kが更新される度に入力データ61a~61kを取得することができる。
また、本実施形態の入力モジュール120a~120kは、スロット11c~11mに1つずつ格納される。本実施形態のインターフェースモジュール110の制御回路400は、複数の入力モジュール120a~120kの各々から取得したモジュール種別62a~62kおよび入力データ61a~61kをスロット11c~11mのスロット番号と対応付けてレジスタ41に保存する。本実施形態のインターフェースモジュール110によれば、スロット番号により入力モジュール120a~120kを一意に特定することができるため、各入力モジュール120a~120kから取得した入力データ61a~61kを個別に管理することができる。
なお、本実施形態では、アクセス周期テーブル51をテーブルとして説明したが、データ保持の形式はテーブル形式に限定されるものではなく、モジュール種別とデータ更新周期とが対応付けられたデータ更新周期情報がレジスタ41に記憶されていれば良い。また、入力データテーブル52a,52bについても、データ保持の形式はテーブル形式に限定されるものではなく、スロット番号とモジュール種別と入力データとが対応付けられた入力データ情報がレジスタ41および共有メモリ410に記憶されていれば良い。
なお、本実施形態では、インターフェースモジュール110から入力モジュール120a~120kへのアクセス周期が、入力モジュール120a~120kのデータ更新周期と同期する例を説明したが、入力データの更新の度に当該入力データを取得する必要がない場合は、アクセス周期をデータ更新周期の定数倍に設定してもよい。
なお、本実施形態においてインターフェースモジュール110の記憶装置としてレジスタを例示したが、他の記憶装置が用いられてもよい。
なお、本実施形態のインターフェースモジュール110で実行されるプログラムは、ROM等に予め組み込まれて提供される。本実施形態のインターフェースモジュール110で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD-ROM、フレキシブルディスク(FD)、CD-R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
さらに、本実施形態のインターフェースモジュール110で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態のインターフェースモジュール110で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
本実施形態のインターフェースモジュール110で実行されるプログラムは、上述した制御回路400の機能を実現可能なモジュール構成となっている。
本発明の実施形態を説明したが、当該実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。当該新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。当該実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。