(57)【要約】【課題】共有メモリに記憶されていない制御データを取得する際の処理負担を軽減する。【解決手段】実施形態による監視制御システムは、コントローラ装置と、監視制御装置とを備える。コントローラ装置および監視制御装置の各々は、ネットワーク内で周期的にサイクリック伝送を行うように構成されている。監視制御装置の検索処理部は、コントローラ装置を制御するための制御データに対応付けられたタグ情報をコントローラ装置に送信することにより制御データを検索する。コントローラ装置の記憶処理部は、監視制御装置から受信したタグ情報に対応する制御データが第２共有メモリに記憶されていない場合に、第２内部メモリから読み出した制御データを共有データとして第２共有メモリに記憶させる。【選択図】図１
2015207170.tif 000002
【特許請求の範囲】
【請求項１】
外部設備を制御するコントローラ装置と、前記コントローラ装置をネットワーク経由で監視するとともに制御する監視制御装置とを備え、前記コントローラ装置および前記監視制御装置の各々は、前記ネットワーク内で周期的にサイクリック伝送を行うように構成された監視制御システムであって、
前記監視制御装置は、前記サイクリック伝送により周期的に送受信される共有データを記憶するための第１共有メモリと、前記共有データ以外のデータを記憶するための第１内部メモリと、前記コントローラ装置を制御するための制御データに対応付けられたタグ情報を前記コントローラ装置に送信することにより前記制御データを検索する検索処理部とを備え、
前記コントローラ装置は、前記共有データを記憶するための第２共有メモリと、前記共有データ以外のデータを記憶するための第２内部メモリと、前記監視制御装置から受信した前記タグ情報に対応する前記制御データが前記第２共有メモリに記憶されていない場合に、前記第２内部メモリから読み出した前記制御データを前記共有データとして前記第２共有メモリに記憶させる記憶処理部とを備える、監視制御システム。
【請求項２】
前記記憶処理部は、前記制御データのサイズが所定値よりも大きい場合に、前記制御データを前記所定値以下のサイズの複数の分割データに分割し、前記複数の分割データの各々のヘッダ部分に互いに異なるヘッダ情報を付加し、前記ヘッダ情報を付加した前記複数の分割データの各々を１つずつ所定の時間間隔で前記第２共有メモリに順次記憶させるように構成されている、請求項１に記載の監視制御システム。
【請求項３】
前記ヘッダ情報は、前記複数の分割データの各々が前記制御データのどの部分に相当するデータであるかを示すインデックス情報を含む、請求項２に記載の監視制御システム。
【請求項４】
前記ヘッダ情報は、前記複数の分割データの各々が前記第２共有メモリに記憶される毎に順次変化するシーケンス情報を含む、請求項２または３に記載の監視制御システム。
【請求項５】
前記監視制御装置は、前記第１共有メモリに前記共有データとして記憶された前記複数の分割データの各々の前記ヘッダ情報が変化する毎に前記第１共有メモリから前記複数の分割データの各々を取得し、取得した前記複数の分割データの各々を前記第１内部メモリに順次記憶させる取得処理部をさらに備える、請求項２〜４のいずれか１項に記載の監視制御システム。
【請求項６】
前記記憶処理部は、前記複数の分割データの各々のフッタ部分に前記ヘッダ情報に対応するフッタ情報を付加し、前記ヘッダ情報および前記フッタ情報の両方を付加した前記複数の分割データの各々を前記所定の時間間隔で順次前記第２共有メモリに記憶させるように構成されている、請求項２〜４のいずれか１項に記載の監視制御システム。
【請求項７】
前記監視制御装置は、前記第１共有メモリに前記共有データとして記憶された前記複数の分割データの各々の前記ヘッダ情報および前記フッタ情報の両方が変化する毎に前記第１共有メモリから前記複数の分割データの各々を取得し、取得した前記複数の分割データの各々を前記第１内部メモリに順次記憶させる取得処理部をさらに備える、請求項６に記載の監視制御システム。
【請求項８】
前記所定の時間間隔は、前記サイクリック伝送による前記共有データの送受信の周期の３倍以上の長さに設定されている、請求項２〜７のいずれか１項に記載の監視制御システム。
【請求項９】
外部設備を制御するコントローラ装置をネットワーク経由で監視するとともに制御し、前記ネットワーク内で周期的にサイクリック伝送を行うように構成された監視制御装置であって、
前記サイクリック伝送により周期的に送受信される共有データを記憶するための第１共有メモリと、
前記共有データ以外のデータを記憶するための第１内部メモリと、
前記コントローラ装置を制御するための制御データに対応付けられたタグ情報を前記コントローラ装置に送信することにより前記制御データを検索する検索処理部とを備える、監視制御装置。
【請求項１０】
外部設備を制御し、ネットワーク内で周期的にサイクリック伝送を行うように構成されたコントローラ装置であって、
前記サイクリック伝送により周期的に送受信される共有データを記憶するための第２共有メモリと、
前記共有データ以外のデータを記憶するための第２内部メモリと、
前記コントローラ装置を前記ネットワーク経由で監視するとともに制御する監視制御装置から受信したタグ情報に対応する制御データが前記第２共有メモリに記憶されていない場合に、前記第２内部メモリから読み出した前記制御データを前記共有データとして前記第２共有メモリに記憶させる記憶処理部とを備える、コントローラ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、監視制御システム、監視制御装置、およびコントローラ装置に関する。
【背景技術】
【０００２】
従来、プラントなどの設備を制御するコントローラ装置と、コントローラ装置をネットワーク経由で監視するとともに制御する監視制御装置とを備えた監視制御システムが知られている。このような監視制御システムは、ネットワーク上の各装置が周期的にサイクリック伝送を行うように構成されている場合がある。サイクリック伝送とは、ネットワーク上の各装置に備えられた共有メモリの内容を同一化するためのデータ伝送方式である。サイクリック伝送では、ネットワーク上の各装置は、自身の共有メモリに記憶された共有データを他の装置との間で周期的に送受信することにより、自身の共有メモリの内容を周期的に更新するように構成されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−１９９５２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記のような従来の監視制御システムでは、所望の制御データが共有メモリに記憶されていない場合に、サイクリック伝送によるデータ通信とは別個に１対１のデータ通信を行うことにより所望の制御データを取得することが一般的であった。このため、共有メモリに記憶されていない制御データを取得する際の処理負担が増大しやすかった。
【課題を解決するための手段】
【０００５】
実施形態による監視制御システムは、コントローラ装置と、監視制御装置とを備える。コントローラ装置は、外部設備を制御する。監視制御装置は、コントローラ装置をネットワーク経由で監視するとともに制御する。コントローラ装置および監視制御装置の各々は、ネットワーク内で周期的にサイクリック伝送を行うように構成されている。監視制御装置は、第１共有メモリと、第１内部メモリと、検索処理部とを備える。第１共有メモリは、サイクリック伝送により周期的に送受信される共有データを記憶するために設けられている。第１内部メモリは、共有データ以外のデータを記憶するために設けられている。検索処理部は、コントローラ装置を制御するための制御データに対応付けられたタグ情報をコントローラ装置に送信することにより制御データを検索する。コントローラ装置は、第２共有メモリと、第２内部メモリと、記憶処理部とを備える。第２共有メモリは、共有データを記憶するために設けられている。第２内部メモリは、共有データ以外のデータを記憶するために設けられている。記憶処理部は、監視制御装置から受信したタグ情報に対応する制御データが第２共有メモリに記憶されていない場合に、第２内部メモリから読み出した制御データを共有データとして第２共有メモリに記憶させる。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１実施形態による監視制御システムのネットワーク構成および機能的構成の一例を示したブロック図である。
【図２】図２は、第１実施形態による共有メモリの構成の一例を示した図である。
【図３】図３は、第１実施形態による監視制御システムにおいて行われるサイクリック伝送の概念を説明するための例示図である。
【図４】図４は、第１実施形態によるコントローラ装置の内部メモリに記憶された制御データ（分割データ）をサイクリック伝送により送受信する方法の一例を説明するための図である。
【図５】図５は、第１実施形態による監視制御装置およびコントローラ装置として用いられるコンピュータのハードウェア構成の一例を示したブロック図である。
【図６】図６は、第１実施形態による監視制御装置が制御データを取得する際における制御動作の一例を示したフローチャートである。
【図７】図７は、第１実施形態によるコントローラ装置が監視制御装置からタグ情報を受信した際における制御動作の一例を示したフローチャートである。
【図８】図８は、第１実施形態による監視制御装置が共有メモリから分割データを読み出す際に実行する処理の具体的な内容の一例を示したフローチャートである。
【図９】図９は、第１実施形態によるコントローラ装置が内部メモリの分割データを共有メモリにコピーする際に実行する処理の具体的な内容の一例を示したフローチャートである。
【図１０】図１０は、第２実施形態によるコントローラ装置の内部メモリに記憶された制御データ（分割データ）をサイクリック伝送により送受信する方法の一例を説明するための図である。
【図１１】図１１は、第２実施形態による監視制御装置が共有メモリから分割データを読み出す際に実行する処理の具体的な内容の一例を示したフローチャートである。
【図１２】図１２は、第２実施形態によるコントローラ装置が内部メモリの分割データを共有メモリにコピーする際に実行する処理の具体的な内容の一例を示したフローチャートである。
【発明を実施するための形態】
【０００７】
以下、実施形態を図面に基づいて説明する。
【０００８】
（第１実施形態）
まず、図１を参照して、第１実施形態による監視制御システム１０００のネットワーク構成および機能的構成の一例について説明する。
【０００９】
図１に示すように、監視制御システム１０００は、ＨＭＩ（ヒューマンマシンインタフェース）１００と、コントローラ装置２００と、エンジニアリングツール３００とを備える。これらＨＭＩ１００、コントローラ装置２００、およびエンジニアリングツール３００は、ネットワーク４００を介して互いに接続されている。図１には、ＨＭＩ１００およびコントローラ装置２００が１個ずつ設けられた例を示したが、ＨＭＩ１００およびコントローラ装置２００の個数はそれぞれ２個以上であってもよい。なお、ＨＭＩ１００は、「監視制御装置」の一例である。
【００１０】
コントローラ装置２００は、上下水道処理設備や、焼却設備や、海水淡水化設備や、水処理設備などの各種外部設備（プラント設備）を制御するＰＬＣ（プログラマブルロジックコントローラ）などのコンピュータである。また、ＨＭＩ１００は、コントローラ装置２００をネットワーク４００経由で監視および制御するコンピュータである。
【００１１】
ＨＭＩ１００は、ＨＭＩ機能部１０１と、ネットワークＩ／Ｆ１０２と、サイクリック伝送機能部１０３と、共有メモリ１０４と、内部メモリ１０５と、検索処理部１０６と、取得処理部１０７とを備える。また、コントローラ装置２００は、コントローラ機能部２０１と、ネットワークＩ／Ｆ２０２と、サイクリック伝送機能部２０３と、共有メモリ２０４と、内部メモリ２０５と、記憶処理部２０６とを備える。
【００１２】
ＨＭＩ機能部１０１は、コントローラ装置２００の制御に用いられる各種制御データを処理するソフトウェアアプリケーションなどにより構成されている。また、コントローラ機能部２０１は、コントローラ装置２００に接続される外部設備（上記のような各種プラント設備）を制御するためのソフトウェアアプリケーションなどにより構成されている。
【００１３】
ネットワークＩ／Ｆ１０２は、ＨＭＩ１００をネットワーク４００に接続するためのインタフェースであり、たとえばイーサネット（登録商標）アダプタなどにより構成されている。同様に、ネットワークＩ／Ｆ２０２は、コントローラ装置２００をネットワーク接続するためのインタフェースであり、たとえばイーサネット（登録商標）アダプタなどにより構成されている。
【００１４】
ここで、第１実施形態では、ＨＭＩ１００およびコントローラ装置２００は、ネットワーク４００内で周期的にサイクリック伝送（スキャン伝送）を行うように構成されている。これにより、以下に説明するように、ＨＭＩ１００およびコントローラ装置２００は、互いに同一内容の制御データを参照することが可能である。
【００１５】
サイクリック伝送とは、ＴＣｎｅｔに対応したネットワーク上の複数の装置（ステーション）の各々が同一内容のデータ（共有データ）を有するように、複数の装置が一定周期で互いにデータ伝送を行うデータ伝送方式である。サイクリック伝送で用いられる通信プロトコルとしては、たとえばＴＣｎｅｔが挙げられる。ＴＣｎｅｔとは、リアルタイム通信プロトコルであり、上記のような通信機能をイーサネット（登録商標）上で実現するネットワーク技術である。
【００１６】
図２に示すように、サイクリック伝送では、ネットワーク上のいずれのステーションＳ１〜ＳＮも、同一容量の共有メモリＭ１〜ＭＮを備えており、共有メモリＭ１〜ＭＮに記憶されている共有データ（スキャンデータ）Ｄ１〜ＤＮは、マルチキャストまたはブロードキャストによる同報通信によって一定周期で送受信される。
【００１７】
より具体的には、サイクリック伝送では、データの送信権を伴うトークンが複数のステーションＳ１〜ＳＮ間で順に送信される。トークンを受信したステーションＳ１〜ＳＮは、トーカとなり、一定周期でそのステーションＳ１〜ＳＮの共有メモリＭ１〜ＭＮ内の共有データＤ１〜ＤＮを他のステーションＳ１〜ＳＮに送信する。共有データＤ１〜ＤＮを受信したリスナとなるステーションＳ１〜ＳＮは、その共有メモリＭ１〜ＭＮ内に記憶された、該当のステーション（トーカ）Ｓ１〜ＳＮに対応する共有データＤ１〜ＤＮを更新する。
【００１８】
なお、共有データは、共有メモリＭ１〜ＭＮの所定エリアＡ１〜ＡＮ内に記憶される。各ステーションＳ１〜ＳＮの共有データＤ１〜ＤＮを共有メモリＭ１〜ＭＮのどのエリアＡ１〜ＡＮに記憶するかの割り当ては、ネットワーク上の装置（たとえば、図１に示した例では、ネットワーク４００上のエンジニアリングツール３００）によって任意に設定可能である。
【００１９】
サイクリック伝送機能部１０３および２０３（図１参照）は、上記のようなサイクリック伝送を実現するソフトウェアアプリケーションなどにより構成されている。また、共有メモリ１０４および２０４は、上記のようなサイクリック伝送により周期的に送受信される共有データを記憶するために設けられている。また、内部メモリ１０５および２０５は、共有データ以外のデータを記憶するために設けられている。
【００２０】
図３に示すように、共有メモリ１０４および共有メモリ２０４は、互いに同一サイズに設定された複数のブロックにより構成されている。図３は、一例として、共有メモリ１０４および共有メモリ２０４が４０９６個のブロックＢ１〜Ｂ４０９６により構成されており、各ブロックＢ１〜Ｂ４０９６のサイズが６４ワードに設定された例を示している。
【００２１】
検索処理部１０６（図１参照）は、コントローラ装置２００を制御するための制御データに対応付けられたタグ情報（識別情報）をコントローラ装置２００に送信することにより制御データを検索するように構成されている。コントローラ装置２００がネットワーク４００上に複数存在する場合には、検索処理部１０６は、タグ情報を全てのコントローラ装置２００に同報送信するように構成されている。
【００２２】
記憶処理部２０６は、ＨＭＩ１００からタグ情報を受信した場合に、そのタグ情報に対応する制御データが自装置（ＨＭＩ１００）の共有メモリ２０４に記憶されているか否かを判断するように構成されている。そして、記憶処理部２０６は、ＨＭＩ１００から受信したタグ情報に対応する制御データが共有メモリ２０４に記憶されている場合に、その制御データが共有メモリ２０４のどのエリア（ブロックＢ１〜Ｂ４０９６：図３参照）に記憶されているかを示すアドレス情報をＨＭＩ１００に送信（応答）するように構成されている。これにより、取得処理部１０７は、コントローラ装置２００から受信したアドレス情報に基づいて自装置（ＨＭＩ１００）の共有メモリ１０４を参照することにより、所望の制御データを取得することが可能である。
【００２３】
ここで、上記のように、共有メモリ２０４を構成するブロックＢ１〜Ｂ４０９６（図３参照）の個数には上限があるため、コントローラ装置２００が持っている制御データの全てを共有メモリ２０４に記憶させることは不可能である。したがって、共有メモリ２０４に共有データとして記憶させる制御データは、頻繁に値が変化するような制御データのみとなり、これ以外の値がほとんど変化しない制御データは、共有メモリ２０４に常に記憶させておくことが困難である。値がほとんど変化しない制御データとは、たとえばレンジや、上下限値や、工業単位や、折れ線パラメータなどであり、データ量としては大量に存在することが多い。したがって、記憶処理部２０６は、ＨＭＩ１００からタグ情報を受信しても、そのタグ情報に対応する制御データのサイズが共有メモリ２０４のうち自装置（コントローラ装置２００）に割り当てられたエリアのサイズよりも大きい場合には、その制御データの記憶場所（アドレス情報）を常にＨＭＩ１００に返信できるとは限らない。
【００２４】
そこで、記憶処理部２０６は、ＨＭＩ１００から受信したタグ情報に対応する制御データが共有メモリ２０４に記憶されていない場合に、その制御データが共有メモリ２０４に記憶されていない旨をＨＭＩ１００に通知するように構成されている。そして、記憶処理部２０６は、ＨＭＩ１００から受信したタグ情報に対応する制御データを内部メモリ２０５から読み出し、読み出した制御データを共有データとして共有メモリ２０４に記憶させるように構成されている。以下では、ＨＭＩ１００から受信したタグ情報に対応する制御データが共有メモリ２０４に記憶されていない場合、その制御データのサイズは、共有メモリ２０４のうちコントローラ装置２００に割り当てられたエリアのサイズよりも大きいものとする。
【００２５】
具体的には、図４に示すように、記憶処理部２０６は、ＨＭＩ１００から受信したタグ情報に対応する制御データが共有メモリ２０４に記憶されていない場合に、その制御データを共有メモリ２０４のうちコントローラ装置２００に割り当てられたエリアのサイズに合わせて分割することにより、複数の分割データを生成するように構成されている。第１実施形態では、各分割データのサイズは、コントローラ装置２００に割り当てられたエリアのサイズ以下であれば、どのようなサイズであってもよい。そして、記憶処理部２０６は、上記のように生成した各分割データのヘッダ部分に互いに異なるヘッダ情報を付加し、ヘッダ情報を付加した各分割データを、１つずつ、所定の時間間隔で、共有メモリ２０４のうちコントローラ装置２００に割り当てられたエリアに順次記憶させる（コピーする）ように構成されている。なお、図４は、一例として、６２０ワードの制御データを６２ワードずつ分割することにより１０個の分割データ１〜１０を生成する例を示している。
【００２６】
ここで、ヘッダ情報は、次に説明するようなインデックス番号およびシーケンス番号を含む。
【００２７】
インデックス番号とは、各分割データが制御データ全体のうちのどの部分のデータに相当するかを示す情報である。たとえば、図４に示した例では、インデックス番号は、１〜１０の１０通りの値をとりうる。
【００２８】
シーケンス番号とは、ある１つの分割データが全分割データのうちの何番目に共有メモリ２０４にコピーされた分割データであるかを示す情報であり、各分割データが共有メモリ２０４にコピーされる毎に更新される値である。たとえば、図４に示した例において、分割データＮが共有メモリ２０４にＮ番目にコピーされるものとすると、分割データＮに付加されるシーケンス番号は「Ｎ」となる。
【００２９】
ここで、上記のような複数の分割データの各々を共有メモリ２０４に順次コピーする際の時間間隔は、サイクリック伝送による共有データの送受信の周期の３倍以上の長さに設定されている。これにより、共有メモリ２０４にコピーされた各分割データは、サイクリック伝送によって少なくとも２回以上共有データとして送受信される。
【００３０】
取得処理部２０６（図１参照）は、検索処理部１０６が送信したタグ情報に対応する制御データが共有メモリ２０４に記憶されていない旨の通知をコントローラ装置２００から受信した場合に、上記のようにコントローラ装置２００の共有メモリ２０４に記憶された分割データがサイクリック伝送によりＨＭＩ１００の共有メモリ１０４に共有データとして記憶されるまで待機するように構成されている。そして、取得処理部１０７は、共有メモリ１０４に共有データとして記憶された各分割データのヘッダ情報を監視し、シーケンス番号が更新される毎に、共有メモリ１０４から各分割データを取得し、取得した各分割データを、インデックス番号に従って内部メモリ１０５に順次記憶させる（コピーする）ように構成されている。これにより、複数の分割データにより構成される１つの制御データが内部メモリ１０５上で生成される。
【００３１】
なお、第１実施形態では、図５に示すように、サイクリック伝送を行うための専用のハードウェア構成を有することなく、通常のコンピュータ５００を利用した一般的なハードウェア構成を有する。すなわち、ＨＭＩ１００およびコントローラ装置２００は、ハードウェア構成として、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）５０１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）５０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）５０３と、ネットワークＩ／Ｆ５０４と、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）５０５と、キーボードやマウスなどの入力デバイス５０６と、ディスプレイ装置などの出力デバイス５０７とを備える。これらのハードウェアは、バス５１０に接続されている。
【００３２】
次に、図６を参照して、第１実施形態によるＨＭＩ１００が制御データを取得する際における制御動作の一例について説明する。
【００３３】
図６に示すように、ＨＭＩ１００（検索処理部１０６）は、まず、ステップＳ１において、コントローラ装置２００にタグ情報を送信する。そして、ステップＳ２に処理が進む。ここで、タグ情報とは、ＨＭＩ１００がコントローラ装置２００の監視および制御を行うための制御データに対応付けられた識別情報のことである。
【００３４】
ステップＳ２において、ＨＭＩ１００は、コントローラ装置２００からの応答を受け付ける。そして、ステップＳ３に処理が進む。
【００３５】
ステップＳ３において、ＨＭＩ１００は、コントローラ装置２００からの応答を受信したか否かを判断する。ステップＳ３において、コントローラ装置２００からの応答が受信されていないと判断された場合には、ステップＳ２に処理が戻る。また、ステップＳ３において、コントローラ装置２００からの応答が受信されたと判断された場合には、ステップＳ４に処理が進む。
【００３６】
ステップＳ４において、ＨＭＩ１００（取得処理部１０７）は、コントローラ装置２００からの応答が、タグ情報に対応する制御データの記憶場所を示すアドレス情報を含むか否かを判断する。
【００３７】
ステップＳ４において、コントローラ装置２００からの応答がアドレス情報を含むと判断された場合には、ステップＳ５に処理が進む。そして、ステップＳ５において、ＨＭＩ１００は、コントローラ装置２００からの応答に含まれるアドレス情報に従って共有メモリ１０４から制御データを読み出す。そして、処理が終了する。
【００３８】
一方、ステップＳ４において、コントローラ装置２００からの応答がアドレス情報を含まないと判断された場合には、ステップＳ６に処理が進む。そして、ステップＳ６において、ＨＭＩ１００は、タグ情報に対応する制御データに基づく分割データ（後述する図９のステップＳ３１参照）が自身の共有メモリ１０４に記憶されるまで待機する。具体的には、ＨＭＩ１００は、分割データがサイクリック伝送によりコントローラ装置２００からＨＭＩ１００に伝送されるまで待機する。そして、ステップＳ７に処理が進む。
【００３９】
ステップＳ７において、ＨＭＩ１００は、分割データが共有メモリ１０４に記憶されたか否かを判断する。ステップＳ７において、分割データが共有メモリ１０４にまだ記憶されていないと判断された場合には、ステップＳ６に処理が戻る。また、ステップＳ７において、分割データが共有メモリ１０４に記憶されたと判断された場合には、ステップＳ８に処理が進む。
【００４０】
ステップＳ８において、ＨＭＩ１００は、分割データを共有メモリ１０４から読み出し、読み出した分割データを内部メモリ１０５にコピーする。このステップＳ８の処理の具体的な内容については、後で図８を参照して説明する。そして、処理が終了する。
【００４１】
次に、図７を参照して、第１実施形態によるコントローラ装置２００がＨＭＩ１００からタグ情報を受信した際における制御動作の一例について説明する。
【００４２】
図７に示すように、コントローラ装置２００（記憶処理部２０６）は、まず、ステップＳ１１において、ＨＭＩ１００からのタグ情報（上記図６のステップＳ１参照）を受け付ける。そして、ステップＳ１２に処理が進む。
【００４３】
ステップＳ１２において、コントローラ装置２００は、ＨＭＩ１００からのタグ情報を受信したか否かを判断する。ステップＳ１２において、ＨＭＩ１００からのタグ情報がまだ受信されていないと判断された場合には、ステップＳ１１に処理が戻る。また、ステップＳ１２において、ＨＭＩ１００からのタグ情報が受信されたと判断された場合には、ステップＳ１３に処理が進む。
【００４４】
ステップＳ１３において、コントローラ装置２００は、ＨＭＩ１００から受信したタグ情報に対応する制御データが、自身の共有メモリ２０４に記憶されているか否かを判断する。
【００４５】
ステップＳ１３において、タグ情報に対応する制御データが共有メモリ２０４に記憶されていると判断された場合には、ステップＳ１４に処理が進む。そして、ステップＳ１４において、コントローラ装置２００は、タグ情報に対応する制御データが共有メモリ２０４内のどのエリアに記憶されているかを示すアドレス情報をＨＭＩ１００に送信する。そして、処理が終了する。
【００４６】
一方、ステップＳ１３において、タグ情報に対応する制御データが共有メモリ２０４に記憶されていないと判断された場合には、ステップＳ１５に処理が進む。そして、ステップＳ１５において、コントローラ装置２００は、共有メモリ２０４に制御データが記憶されていない旨をＨＭＩ１００に通知する。そして、ステップＳ１６に処理が進む。
【００４７】
ステップＳ１６において、コントローラ装置２００は、タグ情報に対応する制御データに基づく分割データ（後述する図９のステップＳ３１参照）を内部メモリ２０５から読み出し、読み出した分割データを共有メモリ２０４にコピーする。このステップＳ１６の処理の具体的な内容については、後で図９を参照して説明する。そして、処理が終了する。
【００４８】
次に、図８を参照して、第１実施形態によるＨＭＩ１００が共有メモリ１０４から分割データを読み出す際に実行する処理（図６のステップＳ８の処理）の具体的な内容の一例について説明する。
【００４９】
図８に示すように、ＨＭＩ１００（取得処理部１０７）は、まず、ステップＳ２１において、タグ情報に対応する制御データに基づく分割データ（後述する図９のステップＳ３１参照）を共有メモリ１０４から読み出し、読み出した分割データを内部メモリ１０５にコピーする。このとき、ＨＭＩ１００は、読み出した分割データを内部メモリ１０５のどこにコピーするかを、分割データに付されたヘッダ情報のうちのインデックス番号に基づいて決定する。そして、ステップＳ２２に処理が進む。
【００５０】
ステップＳ２２において、ＨＭＩ１００は、タグ情報に対応する制御データを構成する全ての分割データを取得したか否かを判断する。すなわち、ＨＭＩ１００は、ステップＳ２１の繰り返し（後述）によってインデックス番号順に内部メモリ１０５にコピーされた複数の分割データによって制御データが構成されたか否かを判断する。
【００５１】
ステップＳ２２において、全ての分割データが取得されたと判断された場合には、処理が終了する。一方、ステップＳ２２において、全ての分割データが取得されていないと判断された場合、すなわち、まだ取得されていない分割データが存在すると判断された場合には、ステップＳ２３に処理が進む。
【００５２】
ステップＳ２３において、ＨＭＩ１００は、共有メモリ１０４に記憶された分割データに付されたヘッダ情報が更新されたか否かを判断する。具体的には、ＨＭＩ１００は、分割データに付されたヘッダ情報のうちのシーケンス番号が更新されたか否かを判断する。
【００５３】
ステップＳ２３の処理は、ヘッダ情報が更新されたと判断されるまで繰り返される。そして、ステップＳ２３において、ヘッダ情報が更新されたと判断された場合には、ステップＳ２１に処理が戻る。
【００５４】
次に、図９を参照して、第１実施形態によるコントローラ装置２００が内部メモリ２０５の分割データを共有メモリ２０４にコピーする際に実行する処理（図７のステップＳ１６の処理）の具体的な内容の一例について説明する。
【００５５】
図９に示すように、コントローラ装置２００（記憶処理部２０６）は、まず、ステップＳ３１において、内部メモリ２０５に記憶された制御データを共有メモリ２０４の所定エリア（コントローラ装置２００用に割り当てられたブロック）のサイズに合わせて分割することにより、分割データを生成する。そして、ステップＳ３２に処理が進む。
【００５６】
ステップＳ３２において、コントローラ装置２００は、ステップＳ３１において生成した分割データを、ヘッダ情報を付した状態で、共有メモリ２０４内の所定エリアにコピーする。なお、ヘッダ情報に含まれるインデックス番号およびシーケンス番号の初期値は、それぞれ１である。そして、ステップＳ３３に処理が進む。
【００５７】
ステップＳ３３において、コントローラ装置２００は、タグ情報に対応する制御データを構成する全ての分割データを共有メモリ２０４にコピーしたか否かを判断する。すなわち、コントローラ装置２００は、ステップＳ３２の処理の繰り返し（後述）によって、制御データを構成する複数の分割データをインデックス番号順に１つずつ最後まで共有メモリ２０４にコピーしたか否かを判断する。
【００５８】
ステップＳ３３において、全ての分割データが共有メモリ２０４にコピーされたと判断された場合には、処理が終了する。一方、ステップＳ３３において、全ての分割データが共有メモリ２０４にコピーされていないと判断された場合、すなわち、まだ共有メモリ２０４にコピーされていない分割データが存在すると判断された場合には、ステップＳ３４に処理が進む。
【００５９】
ステップＳ３４において、コントローラ装置２００は、前回分割データを共有メモリ２０４にコピーした時から所定時間が経過したか否かを判断する。なお、所定時間は、サイクリック伝送による共有データ（共有メモリ２０４内のデータ）の送受信の周期の３倍以上の長さに設定されている。
【００６０】
ステップＳ３４の処理は、前回分割データを共有メモリ２０４にコピーした時から所定時間が経過したと判断されるまで繰り返される。そして、ステップＳ３４において、前回分割データを共有メモリ２０４にコピーした時から所定時間が経過したと判断された場合には、ステップＳ３５に処理が進む。
【００６１】
ステップＳ３５において、コントローラ装置２００は、前回共有メモリ２０４にコピーした分割データの次の分割データを、新たなヘッダ情報を付した状態で、共有メモリ２０４にコピーする。具体的には、コントローラ装置２００は、前回よりもインデックス番号が１大きい分割データを、前回よりもインデックス番号およびシーケンス番号がそれぞれ１ずつ大きいヘッダ情報を付した状態で、共有メモリ２０４にコピーする。そして、ステップＳ３３に処理が戻る。
【００６２】
以上説明したように、第１実施形態では、コントローラ装置２００の記憶処理部２０６は、ＨＭＩ１００から受信したタグ情報に対応する制御データが共有メモリ２０４に記憶されていない場合に、その制御データを内部メモリ２０５から読み出し、読み出した制御データを共有データとして共有メモリ２０４に記憶させるように構成されている。これにより、所望の制御データ（タグ情報に対応する制御データ）が共有メモリに記憶されていない場合でも、サイクリック伝送により所望の制御データを取得することができる。すなわち、共有メモリに記憶されていない制御データを取得する際に、サイクリック伝送によるデータ通信とは別個に１対１のデータ通信を行う必要がないので、処理負担を軽減することができる。
【００６３】
また、第１実施形態では、上記のように、記憶処理部２０６は、ＨＭＩ１００から受信したタグ情報に対応する制御データのサイズが、共有メモリ２０４のうちコントローラ装置２００に割り当てられたエリアのサイズよりも大きい場合に、その制御データを複数の分割データに分割するように構成されている。なお、各分割データのサイズは、共有メモリ２０４のうちコントローラ装置２００に割り当てられたエリアのサイズ以下である。記憶処理部２０６は、上記のように生成した各分割データのヘッダ部分に互いに異なるヘッダ情報を付加し、ヘッダ情報を付加した各分割データを、１つずつ、所定の時間間隔で、共有メモリ２０４のうちコントローラ装置２００に割り当てられたエリアに順次記憶させるように構成されている。これにより、制御データのサイズがコントローラ装置２００に割り当てられたエリアのサイズよりも大きい場合でも、制御データに基づいて生成した複数の分割データをサイクリック伝送により共有メモリ２０４を介して１つずつ送受信することにより、容易に、所望の制御データを送受信することができる。また、各分割データに互いに異なるヘッダ情報を付加することにより、ヘッダ情報に基づいて、各分割データを容易に識別することができる。
【００６４】
また、第１実施形態では、上記のように、ヘッダ情報は、そのヘッダ情報が付加される複数の分割データの各々が１つの制御データのうちどの部分に相当するデータであるかを示すインデックス番号を含む。これにより、インデックス番号を確認することにより、各分割データが１つの制御データのうちのどの部分に相当するデータであるか否かを容易に判断することができる。
【００６５】
また、第１実施形態では、上記のように、ヘッダ情報は、内部メモリ２０５に記憶された複数の分割データの各々が１つずつ共有メモリ２０４にコピーされる毎に順次更新されるシーケンス番号を含む。これにより、ＨＭＩ１００は、シーケンス番号を監視することにより、共有メモリ１０４に記憶された１つの分割データがサイクリック伝送により更新されたか否かを容易に確認することができる。
【００６６】
また、第１実施形態では、上記のように、ＨＭＩ１００の取得処理部１０７は、共有メモリ１０４に共有データとして記憶された各分割データのシーケンス番号が更新される毎に共有メモリ１０４から各分割データを取得し、取得した各分割データをインデックス番号に従って内部メモリ１０５に順次コピーするように構成されている。これにより、ＨＭＩ１００は、共有メモリ１０４から取得される複数の分割データに基づいて、所望の制御データを容易に取得することができる。
【００６７】
また、第１実施形態では、上記のように、複数の分割データの各々を共有メモリ２０４に順次コピーする際の時間間隔は、サイクリック伝送による共有データの送受信の周期の３倍以上の長さに設定されている。これにより、同一内容の分割データがサイクリック伝送によって少なくとも２回以上送受信されるので、より確実に分割データを送受信することができる。
【００６８】
（第２実施形態）
次に、図１、図６、図７、および図１０〜図１２を参照して、第２実施形態による監視制御システムについて説明する。第２実施形態では、上記第１実施形態と異なり、サイクリック伝送により送受信される分割データにヘッダ情報のみならずフッタ情報も付加される。
【００６９】
まず、図１および図１０を参照して、第２実施形態による監視制御システム１０００ａの構成について説明する。
【００７０】
図１に示すように、監視制御システム１０００ａは、ＨＭＩ１００ａと、コントローラ装置２００ａと、エンジニアリングツール３００とを備える。これらＨＭＩ１００ａ、コントローラ装置２００ａ、およびエンジニアリングツール３００は、ネットワーク４００を介して互いに接続されている。なお、ＨＭＩ１００ａは、「監視制御装置」の一例である。
【００７１】
ここで、第２実施形態では、コントローラ装置２００ａの記憶処理部２０６ａは、複数の分割データ（図１０参照）の各々を共有メモリ２０４に順次コピーする際に、各分割データのヘッダ部分にヘッダ情報を付加するのに加えて、各分割データのフッタ部分にヘッダ情報に対応するフッタ情報（図１０参照）を付加するように構成されている。なお、図１０は、一例として、６００ワードの制御データを６０ワードずつ分割することにより１０個の分割データ１〜１０を生成する例を示している。
【００７２】
図１０に示すように、フッタ情報は、ヘッダ情報と同様のデータ構造を有する。すなわち、フッタ情報は、各分割データが制御データ全体のうちのどの部分のデータに相当するかを示すインデックス番号と、ある１つの分割データが全分割データのうちの何番目に共有メモリ２０４にコピーされた分割データであるかを示すシーケンス番号とを含む。
【００７３】
ＨＭＩ１００ａの取得処理部１０７ａ（図１参照）は、共有メモリ１０４に共有データとして記憶された分割データのヘッダ情報およびフッタ情報の両方を監視し、ヘッダ情報およびフッタ情報の両方のシーケンス番号が変化する毎に共有メモリ１０４から分割データを取得し、取得した分割データを内部メモリ１０５に順次コピーするように構成されている。
【００７４】
なお、第２実施形態のその他の構成は、第１実施形態と同様であるため、ここでは説明を省略する。
【００７５】
次に、図６、図７、図１１、および図１２を参照して、第２実施形態によるＨＭＩ１００ａおよびコントローラ装置２００ａの制御動作について説明する。
【００７６】
図６に示すように、第２実施形態によるＨＭＩ１００ａが制御データを取得する際における制御動作は、ＨＭＩ１００ａが共有メモリ１０４から分割データを読み出す際に実行する処理（ステップＳ８ａの処理）以外は、第１実施形態と同様である。また、図７に示すように、第２実施形態によるコントローラ装置２００ａがＨＭＩ１００ａからタグ情報を受信した際における制御動作も、コントローラ装置２００ａが内部メモリ２０５の分割データを共有メモリ２０４にコピーする際に実行する処理（ステップＳ１６ａの処理）の具体的な内容以外は、第１実施形態と同様である。以下では、図１１および図１２を参照して、第２実施形態による制御動作のうちの第１実施形態とは異なる部分について説明する。
【００７７】
まず、図１１を参照して、第２実施形態によるＨＭＩ１００ａが共有メモリ１０４から分割データを読み出す際に実行する処理（図６のステップＳ８ａの処理）の具体的な内容の一例について説明する。
【００７８】
図１１に示すように、ＨＭＩ１００ａ（取得処理部１０７ａ）は、まず、ステップＳ４１において、タグ情報に対応する制御データに基づく分割データ（後述する図１２のステップＳ５１参照）を共有メモリ１０４から読み出し、読み出した分割データを内部メモリ１０５にコピーする。このとき、ＨＭＩ１００ａは、読み出した分割データを内部メモリ１０５のどこにコピーするかを、分割データに付されたヘッダ情報のうちのインデックス番号に基づいて決定する。そして、ステップＳ４２に処理が進む。
【００７９】
ステップＳ４２において、ＨＭＩ１００ａは、タグ情報に対応する制御データを構成する全ての分割データを取得したか否かを判断する。具体的には、ＨＭＩ１００ａは、ステップＳ４１の繰り返し（後述）によってインデックス番号順に内部メモリ１０５にコピーされた複数の分割データによって制御データが構成されたか否かを判断する。
【００８０】
ステップＳ４２において、全ての分割データが取得されたと判断された場合には、処理が終了する。一方、ステップＳ４２において、全ての分割データが取得されていないと判断された場合、すなわち、まだ取得されていない分割データが存在すると判断された場合には、ステップＳ４３に処理が進む。
【００８１】
ステップＳ４３において、ＨＭＩ１００ａは、共有メモリ１０４に記憶された分割データに付されたヘッダ情報およびフッタ情報が更新されたか否かを判断する。具体的には、ＨＭＩ１００ａは、分割データに付されたヘッダ情報に含まれるシーケンス番号と、フッタ情報に含まれるシーケンス番号との両方が更新されたか否かを判断する。
【００８２】
ステップＳ４３の処理は、ヘッダ情報およびフッタ情報の両方が更新されたと判断されるまで繰り返される。そして、ステップＳ４３において、ヘッダ情報およびフッタ情報の両方が更新されたと判断された場合には、ステップＳ４１に処理が戻る。
【００８３】
次に、図１２を参照して、第２実施形態によるコントローラ装置２００ａが内部メモリ２０５の分割データを共有メモリ２０４にコピーする際に実行する処理（図７のステップＳ１６ａの処理）の具体的な内容の一例について説明する。
【００８４】
図１２に示すように、コントローラ装置２００ａ（記憶処理部２０６ａ）は、まず、ステップＳ５１において、内部メモリ２０５に記憶された制御データを共有メモリ２０４の所定エリア（コントローラ装置２００ａ用に割り当てられたブロック）のサイズに合わせて分割することにより、分割データを生成する。そして、ステップＳ５２に処理が進む。
【００８５】
ステップＳ５２において、コントローラ装置２００ａは、ステップＳ５１において生成した分割データを、ヘッダ情報およびフッタ情報を付した状態で、共有メモリ２０４内の所定エリアにコピーする。なお、ヘッダ情報およびフッタ情報の各々に含まれるインデックス番号およびシーケンス番号の初期値は、それぞれ１である。そして、ステップＳ５３に処理が進む。
【００８６】
ステップＳ５３において、コントローラ装置２００ａは、タグ情報に対応する制御データを構成する全ての分割データを共有メモリ２０４にコピーしたか否かを判断する。具体的には、コントローラ装置２００ａは、ステップＳ５２の処理の繰り返し（後述）によって、制御データを構成する複数の分割データをインデックス番号順に１つずつ最後まで共有メモリ２０４にコピーしたか否かを判断する。
【００８７】
ステップＳ５３において、全ての分割データが共有メモリ２０４にコピーされたと判断された場合には、処理が終了する。一方、ステップＳ５３において、全ての分割データが共有メモリ２０４にコピーされていないと判断された場合、すなわち、まだ共有メモリ２０４にコピーされていない分割データが存在すると判断された場合には、ステップＳ５４に処理が進む。
【００８８】
ステップＳ５４において、コントローラ装置２００ａは、前回分割データを共有メモリ２０４にコピーした時から所定時間が経過したか否かを判断する。なお、所定時間は、サイクリック伝送による共有データ（共有メモリ２０４内のデータ）の送受信の周期の３倍以上の長さに設定されている。
【００８９】
ステップＳ５４の処理は、前回分割データを共有メモリ２０４にコピーした時から所定時間が経過したと判断されるまで繰り返される。そして、ステップＳ５４において、前回分割データを共有メモリ２０４にコピーした時から所定時間が経過したと判断された場合には、ステップＳ５５に処理が進む。
【００９０】
ステップＳ５５において、コントローラ装置２００ａは、前回共有メモリ２０４にコピーした分割データの次の分割データを、新たなヘッダ情報およびフッタ情報を付した状態（インデックス番号およびシーケンス番号がそれぞれ１ずつ増えた状態）で、共有メモリ２０４にコピーする。具体的には、コントローラ装置２００ａは、前回よりもインデックス番号が１大きい分割データを、前回よりもインデックス番号およびシーケンス番号がそれぞれ１ずつ大きいヘッダ情報およびフッタ情報を付した状態で、共有メモリ２０４にコピーする。そして、ステップＳ５３に処理が戻る。
【００９１】
以上説明したように、第２実施形態では、上記のように、コントローラ装置２００ａの記憶処理部２０６ａは、各分割データのヘッダ部分にヘッダ情報を付加するのに加えて、各分割データのフッタ部分にヘッダ情報に対応するフッタ情報を付加するように構成されている。そして、記憶処理部２０６ａは、ヘッダ情報およびフッタ情報の両方を付加した各分割データを所定の時間間隔で共有メモリ２０４に順次コピーするように構成されている。これにより、各分割データに付加される情報がヘッダ情報とフッタ情報との２種類になるので、これら２種類の情報に基づいて、より確実に各分割データを識別することができる。
【００９２】
また、第２実施形態では、上記のように、ＨＭＩ１００ａの取得処理部１０７ａは、共有メモリ１０４の各分割データに付加されたヘッダ情報およびフッタ情報の両方のシーケンス番号が更新される毎に共有メモリ１０４から各分割データを取得し、取得した各分割データを内部メモリ１０５に順次コピーするように構成されている。これにより、ＨＭＩ１００ａは、ヘッダ情報およびフッタ情報の両方のシーケンス番号が更新されたか否かを監視することにより、共有メモリ１０４に新たな分割データが記憶されたか否かを確実に判断することができる。すなわち、コントローラ装置２００ａの共有メモリ２０４に新たな分割データが記憶される前のヘッダ情報のみが更新されたタイミングでサイクリック伝送が行われた場合でも、ＨＭＩ１００ａは、共有メモリ１０４の分割データに付されたフッタ情報がヘッダ情報と同様に更新されているか否かを確認することにより、共有メモリ１０４に新たな分割データが記憶されたか否かを確実に判断することができる。
【００９３】
なお、第２実施形態のその他の効果は、第１実施形態と同様である。
【００９４】
以上、本発明の実施形態を説明したが、上記実施形態はあくまで一例であって、発明の範囲を限定することは意図していない。上記実施形態は、様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。上記実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００９５】
１００、１００ａ  ＨＭＩ（監視制御装置）
１０４  共有メモリ（第１共有メモリ）
１０５  内部メモリ（第１内部メモリ）
１０６  検索処理部
１０７、１０７ａ  取得処理部
２００、２００ａ  コントローラ装置
２０４  共有メモリ（第２共有メモリ）
２０５  内部メモリ（第２内部メモリ）
２０６、２０６ａ  記憶処理部
１０００、１０００ａ  監視制御システム
【図１】
2015207170.tif 000003
【図２】
2015207170.tif 000004
【図３】
2015207170.tif 000005
【図４】
2015207170.tif 000006
【図５】
2015207170.tif 000007
【図６】
2015207170.tif 000008
【図７】
2015207170.tif 000009
【図８】
2015207170.tif 000010
【図９】
2015207170.tif 000011
【図１０】
2015207170.tif 000012
【図１１】
2015207170.tif 000013
【図１２】
2015207170.tif 000014