(57)【特許請求の範囲】
【請求項１】
制御対象を監視制御する演算装置と、
前記制御対象と接続され、前記制御対象から入力された状態信号を前記演算装置へ送信し、前記演算装置から送信された制御信号を前記制御対象へ出力する入出力装置と、
当該入出力装置と前記制御対象との間で入出力される前記制御信号又は前記状態信号を取込み、所定の変化をイベントとして検出するとともに、当該イベント検出時の前記制御信号又は前記状態信号をイベントデータとして記録するＳＯＥ装置と、が備えられる制御システムにおいて、
前記演算装置，前記入出力装置及び前記ＳＯＥ装置は、それぞれの装置によって周期的にデータ送信が行われる共通の伝送路を介して接続され、
前記演算装置は、前記入出力装置からの前記制御信号の受信、又は、前記入出力装置への前記状態信号の送信を所定の制御周期で行うとともに、当該制御周期に同期させて前記ＳＯＥ装置から前記イベントデータを受信する
ことを特徴とする制御システム。
【請求項２】
請求項１に記載の制御システムにおいて、
前記ＳＯＥ装置にはさらに、前記イベントデータが記憶されるイベントバッファと、前記イベント検出時に前記イベントデータを前記イベントバッファへ書込み、前記読出要求の受信時に前記イベント記憶部から前記イベントデータを読出すイベントバッファ制御部が備えられ、
前記イベントバッファ制御部は、前記イベント記憶部に未送信の前記イベントデータが無い場合には、未送信の前記イベントデータが無いことを示すダミーデータを読出し、
前記通信制御部は、前記送信周期によって定められた送信のタイミングになると、当該ダミーデータを前記演算装置へ送信することを特徴とする制御システム。
【請求項３】
請求項２に記載の制御システムにおいて、
前記ＳＯＥ装置にはさらに、前記イベント検出毎に前記イベントバッファへの書込みアドレスを更新していく書込ポインタ制御部と、前記読出要求の受信毎に前記イベントバッファからの読出しアドレスを更新していく読出ポインタ制御部と、が備えられ、
前記イベントバッファ制御部は、前記書込ポインタ制御部が示す書込みアドレスと読出ポインタ制御部が示す前記読出しアドレスが同じアドレスを示す場合には、未送信の前記イベントデータが無いと判断することを特徴とする制御システム。
【請求項４】
請求項１に記載の制御システムにおいて、
前記ＳＯＥ装置にはさらに、
取込まれた前記制御信号又は前記状態信号と当該取込み以前に取込まれた前記制御信号又は前記状態信号とを比較する比較部と、
前記比較部による比較結果が所定の変化を示す場合に前記イベントを検出するイベント検出部と、
前記イベントを検出した場合に前記イベントデータ制御部へ前記イベントデータの書込み指示を行うイベント書込み指示部と、
が備えられることを特徴とする制御システム。
【請求項５】
請求項４に記載の制御システムにおいて、
前記ＳＯＥ装置にはさらに、
他装置から自装置の前記受信記憶部へ送信されたデータが前記イベントデータの送信要求であるか否かを判断する受信判別部と、
前記受信判別部が前記送信要求であると判断した場合に前記イベントデータ制御部へ前記イベントデータの読出し指示を行うイベント読出し指示部と、
が備えられることを特徴とする制御システム。
【請求項６】
請求項１において、
前記所定の制御周期には、前記入出力装置へ前記状態信号の読出要求を送信する期間と、前記入出力装置から前記状態信号の読出応答を受信する期間と、前記ＳＯＥ装置へ前記イベントデータの読出要求を送信する期間と、前記ＳＯＥ装置から前記イベントデータの読出応答を受信する期間と、が設けられていることを特徴とする制御システム。
【請求項７】
入出力装置と制御対象との間で入出力される状態信号を定期的に取込み、所定の変化をイベントとして検出するＳＯＥ装置であって、
前記入出力装置、及び、前記制御対象を監視制御している演算装置とは、それぞれの装置によって周期的にデータ送信が行われる共通の伝送路を介して接続され、
前記演算装置への送信データが記憶される送信記憶部と、
前記演算装置からの受信データが記憶される受信記憶部と、
前記イベント検出時の前記状態信号をイベントデータとしてイベント記憶部へ書込み、前記イベント記憶部に書込まれた前記イベントデータを前記送信記憶部へ読出すイベントデータ制御部と、  所定の受信周期で前記演算装置から前記イベントデータの読出要求を受信し前記受信記憶部へ格納するとともに、前記読出要求に対して前記送信記憶部内に読出された前記イベントデータを所定の送信周期で前記演算装置へ送信する通信制御部と、を備え、
前記通信制御部は、前記演算装置と前記入出力装置とが前記状態信号の送受信を行う制御周期と同期させて前記演算装置へ前記イベントデータを送信することを特徴とするＳＯＥ装置。
【請求項８】
請求項７に記載のＳＯＥ装置において、
前記イベントデータ制御部は、前記イベント記憶部に未送信の前記イベントデータが無い場合に、未送信の前記イベントデータが無いことを示すダミーデータを前記送信記憶部へ格納し、
前記通信制御部は、前記所定の送信周期で定められた送信タイミングになると、当該ダミーデータを前記演算装置へ送信することを特徴とするＳＯＥ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御システムおよびＳＯＥ装置に関する。
【背景技術】
【０００２】
一般的なプラント制御システムが取り扱うデータは、制御対象を監視・制御するために演算装置が恒常的に処理する制御用データと、異常発生時の制御対象の振る舞いを解析するために演算装置が一時的に処理するイベントデータがある。
【０００３】
このようなイベントデータの収集・管理方法として例えば特許文献１では、イベント収集機能を取込んだイベント入力モジュールを複数のプロセス入出力装置と同一階層に置き、イベントデータを収集する方法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−１０６０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
例えば発電プラントのような制御システムでは、制御用データは即時性と定周期性が求められるため、周期的なメモリ転写により定量的かつ継続的に演算装置とプロセス入出力装置の間でデータ伝送を行うのが望ましい。一方イベントデータは、イベントデータ収集装置（以下「ＳＯＥ装置」という。）が定められたイベントを検出・記録した時にのみ、割込処理等により一時的に演算装置とＳＯＥ装置の間でデータ伝送を行う必要がある。
【０００６】
ここで例えば特許文献１に記載の技術をＳＯＥ装置に適用すると、ＳＯＥ装置がイベントを検出した際に要する演算装置との伝送を、入出力装置が接続される通信回線と同一の通信回線を用いて行う必要がある。そのためＳＯＥ装置と演算装置との伝送が行われると、入出力装置と演算装置との周期的な伝送に影響を与え制御用データの定周期性が損なわれてしまうという課題がある。また、制御用データの定周期性を確保するために、制御用データとイベントデータを別回線でシステムを構築すると、制御システム全体が大規模になってしまうという課題がある。
【０００７】
本発明は上記課題に鑑み、プロセス入出力装置とＳＯＥ装置を共通の通信回線で接続したシステムにおいて制御用データの定周期性が確保された制御システムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、例えば特許請求の範囲に記載の構成を採用する。
【０００９】
本願は、上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、制御対象を監視制御する演算装置と、前記制御対象と接続され、前記制御対象から入力された状態信号を前記演算装置へ送信し、前記演算装置から送信された制御信号を前記制御対象へ出力する入出力装置と、前記制御信号又は前記状態信号を取込み、所定の変化をイベントとして検出するとともに、当該イベント検出時の前記制御信号又は前記状態信号をイベントデータとして記録するＳＯＥ装置と、が備えられ、前記演算装置，前記入出力装置及び前記ＳＯＥ装置が同一伝送路を介して接続される制御システムにおいて、前記ＳＯＥ装置には、前記演算装置から前記イベントデータの読出要求を所定の受信周期で受信し、前記読出要求に対して自装置に記憶されている前記イベントデータを所定の送信周期で前記演算装置へ送信する通信制御部が備えられることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、プロセス入出力装置とＳＯＥ装置が共通の通信回線によって接続された制御システムにおいて、制御用データの定周期性を損なうことなくデータ伝送を行うことが可能となる。
【図面の簡単な説明】
【００１１】
【図１】制御システムの構成図。
【図２】メモリ転写による定周期制御。
【図３】ＳＯＥ装置のイベントデータ収集動作フロー。
【図４】ＳＯＥ装置のイベントデータ収集ブロック図。
【図５】ＳＯＥ装置の初回状態信号取り込み動作。
【図６】ＳＯＥ装置のイベント検出動作（イベントあり）。
【図７】ＳＯＥ装置のイベント検出動作（イベントなし）。
【図８】イベントデータフォーマット。
【図９】ＳＯＥ装置のイベントwriteとwriteポインタ。
【図１０】ＳＯＥ装置の入力メモリ転写動作フロー。
【図１１】ＳＯＥ装置の入力メモリ転写ブロック図。
【図１２】入力メモリ転写の通信フレームフォーマット。
【図１３】ＳＯＥ装置のイベントreadとreadポインタ。
【図１４】ＳＯＥ装置のイベントバッファ管理方法。
【図１５】ＳＯＥ装置のイベントデータempty判定。
【図１６】ＳＯＥ装置のイベントバッファ初期状態。
【図１７】ＳＯＥ装置のイベント読出応答（パターン１）。
【図１８】ＳＯＥ装置のイベント読出応答（パターン２）。
【図１９】ＳＯＥ装置のイベント読出応答（パターン３）。
【発明を実施するための形態】
【００１２】
本発明を実施するための形態を図面を用いて説明する。
【実施例１】
【００１３】
図１は本発明における実施例の１形態を示す制御システムの構成図である。発電プラントのタービン制御などを行う制御システムにおいて、タービンやセンサ及び補機からなる制御対象６と、常に制御対象６の状態を監視し最適なフィードバック制御を行う演算装置１と、制御対象６の状態を示す信号を演算装置１に伝送するデータに変化する１つ以上のプロセス入力装置２と、演算装置１から伝送されたフィードバックデータを制御対象６に伝達する信号に変換する１つ以上のプロセス出力装置３，制御対象６が特定の制御状態を示した場合にその状態と発生時刻を記録する１つ以上のイベントデータ収集装置（以下ＳＯＥ装置）７が、ＲＳ−４８５ベースのシリアル通信用回線である通信回線４によって接続され、制御対象６とプロセス入出力装置２，３が制御対象６の状態を示す信号及びフィードバックデータを制御対象６に伝達する信号からなる制御信号線路５にて接続される構成となっている。
【００１４】
また、ＳＯＥ装置７はメモリ転写を行うバッファとして受信バッファ７９及び送信バッファ８３を備えており、図示しないが演算装置１，プロセス入力装置２及びプロセス出力装置３にも同様に受信バッファ，送信バッファおよび通信制御機能が備えられている。以下に、受信バッファ７９及び送信バッファ８３を用いたメモリ転写を簡単に説明する。
【００１５】
受信バッファ７９には、演算装置１，プロセス入力装置２及びプロセス出力装置３から通信回線４を介して周期的に受信する送信データが、通信制御機能７８によって格納される。ＳＯＥ装置７は、受信バッファ７９に格納されたデータが自装置宛であるか判断後、自装置宛であった場合には該データにて要求された処理を実行し、要求元の装置の宛先を付した応答データを送信バッファ８３へ格納する。送信バッファ８３に格納されたデータは、通信制御機能７８によって所定の周期で演算装置１，プロセス入力装置２及びプロセス出力装置３へ一斉に送信され、各装置の受信バッファに格納される。要求元の装置では、格納された応答データが自装置宛か確認し、自装置の要求が実行されたことを認識する。
【００１６】
このような処理はプロセス入力装置２及びプロセス出力装置３においても同様に行われ、本実施例においてプロセス入力装置２，プロセス出力装置３及びＳＯＥ装置７へ要求を送信するのは主に演算装置１である。
【００１７】
次に、ＳＯＥ装置７による状態信号５１の処理について説明する。ＳＯＥ装置７は、信号取込機能７１によって制御対象６の制御状態を示す１つ以上の状態信号５１を取り込む。初回のみ状態信号５１の取込値を現在値７２及び前回値７３として保持する。２回目以降は現在値７２に保持されたデータを前回値７３として保持し、取込値を現在値７２として保持する。比較機能７４は、保持した前回値７３と現在値７２を比較し比較結果信号７４１をイベント検出機能７５へ出力する。イベント検出機能７５は、比較結果信号７４１から状態信号５１の値が特定の状態に変化した場合は「イベントあり」、状態信号５１の値が特定の状態に変化しなかった場合は「イベントなし」と判定する。
【００１８】
「イベントあり」と判定された場合は、イベント検出機能７５はイベント検出信号７５１をイベントwrite指示機能７６へ出力する。イベントwrite指示機能７６は、状態信号５１の変化に関する情報（以下「イベントデータ」という。）をイベントwrite指示信号７６１としてイベントバッファ制御機能８１へ出力する。このとき、イベントデータには現在時刻カウンタ７７から出力される現在時刻カウント信号７７１により取得した現在時刻が付されている。イベントwrite指示信号７６１の入力を受けたイベントバッファ制御機能８１はイベントデータをイベントバッファ８２に記録する。
【００１９】
ここで、イベントデータをイベントバッファ８２に記録する際には、writeポインタ制御機能８４及びイベントバッファ管理機能８８によってイベントデータを記録するイベントバッファ８２のアドレスのポインタ制御が行われる。writeポインタ制御機能８４は、イベントwrite指示機能７６から指示信号７６２が入力されると、イベントバッファ８２へ記録するアドレスを更新することを示すwriteポインタ信号８４１をイベントバッファ管理機能８８及びイベントバッファ制御機能８１へ出力する。これにより、イベントを検出する度にwriteポインタ信号８４１を出力し、イベントデータを記録するイベントバッファ８２のアドレスを更新していく。これにより、イベントを検出するごとに逐次イベントバッファ８２へイベントデータを記憶させることができる。
【００２０】
また、イベントバッファ管理機能８８はイベントバッファ８２内のイベントデータの記憶状態，ポインタ位置を管理しており、イベントバッファ８２の状態をイベントバッファ状態信号８８１としてイベントバッファ制御機能８１へ出力する。ここで、例えばイベントバッファ８２に未読のイベントデータが一杯でこれ以上書込みできない場合には、イベントバッファ制御機能８１はイベントバッファ状態信号８８１によってイベントバッファ８２の状態を認識し、イベントバッファ８２への書込みを止める。これによって、未読のイベントデータが上書きされ、イベントデータの連続性が失われることを防ぐことができる。
【００２１】
一方ＳＯＥ装置７は、前述のように一定周期で通信回線４から通信フレームを受信している。ＳＯＥ装置７のメモリ転写ブロックは、通信回線４を流れる通信フレームの受信及び通信回線４への通信フレームの送出を行う通信制御機能７８、通信制御機能７８が受信した通信フレームを保持する受信バッファ７９、受信バッファ７９内の通信フレームの内容を判別する受信判別機能８６、通信フレームの内容が「イベント読出要求」であった場合にイベントデータ読み出しを指示するイベントread指示機能８０、readポインタ制御機能８５へreadポインタの指示を行うreadポインタ指示機能８７、イベントデータを読み出すイベントバッファ８２のアドレスを示すreadポインタ制御機能８５、イベントバッファ８２内のイベントデータの有無を判別するイベントバッファ管理機能８８、イベントread指示信号８０１及びreadポインタ信号８５１に従いイベントバッファ８２からイベントデータを読み出すイベントバッファ制御機能８１、イベントバッファ制御機能８１の指示によりイベントデータを記録または読出できるイベントバッファ８２、イベントバッファ８２から読み出したイベントデータを保持する送信バッファ８３、イベントバッファ８２内にイベントデータが存在しない場合にダミーのイベントデータを送信バッファ８３に格納するダミー応答機能８１０で構成される。このようなメモリ転写ブロックの構成により周期的に演算装置１とイベントデータ読出要求及びイベントデータ読出応答を送受信している。
【００２２】
図２は演算装置１によるメモリ転写による定周期制御を示す。システム定常状態において演算装置１は常に一定の制御周期を繰り返す。また、図に示すように毎回の制御周期は、演算装置１がプロセス入力装置２及びＳＯＥ装置７とのデータ伝送によりデータを取得する入力メモリ転写、演算装置１が取得したデータから制御対象６への最適なフィードバックデータを算出する演算、演算装置１が算出したフィードバックデータをプロセス出力装置３にデータ伝送する出力メモリ転写から構成される。
【００２３】
さらに、毎回の入力メモリ転写の中ではプロセス入力装置２及びＳＯＥ装置７との間で、一定サイズのデータ読出要求送信及び一定サイズのデータ読出応答受信を行う。すなわち、演算装置１はプロセス入力装置２に対してデータ読出要求を送信し、要求に対するデータが付されたデータ読出応答をプロセス入力装置２から受信する。次に、演算装置１はＳＯＥ装置７に対してデータ読出要求を送信し、要求に対するデータが付されたデータ読出応答をＳＯＥ装置７から受信する。また出力メモリ転写の中では、演算装置１はプロセス出力装置３に対してデータ出力要求を送信し、データ出力を実行したことを示すデータ出力応答をプロセス入力装置２から受信する。
【００２４】
このように本実施例では、演算装置１が、制御用データの定周期性を確保するためにプロセス入力装置２及びプロセス出力装置３との間で行っているメモリ転写の制御周期の中にＳＯＥ装置７とのデータ送受信も組み込む。これによって、プロセス入力装置２及びプロセス出力装置３とＳＯＥ装置７が同一の通信回線によって接続された制御システムにおいても、制御用データの定周期性を損なうことなくデータ伝送を行うことが可能となる。
【００２５】
図３はＳＯＥ装置７のイベントデータ収集動作フローを示す。信号取込機能７１は制御対象６の制御状態を示す１つ以上の状態信号５１を取り込む（Ｓ３０）。現在値保持機能７２および前回値保持機能７３は、初回のみ状態信号５１の取込値を現在値及び前回値として保持する（Ｓ３１）。２回目の状態信号５１取込以降は（Ｓ３２）、現在値を前回値として保持し、取込値を現在値として保持する（Ｓ３３）。比較機能７４は、保持した前回値と現在値を比較し（Ｓ３４）、イベント検出機能は、比較結果から状態信号５１の値が特定の状態に変化したかどうかを検出し（Ｓ３５）、特定の状態に変化した場合は「イベントあり」、状態信号５１の値が特定の状態に変化しなかった場合は「イベントなし」と判定する（Ｓ３６）。「イベントなし」と判定した場合は状態信号５１の取込に戻る。「イベントあり」と判定した場合は、イベントバッファ制御機能８１によりイベントデータをイベントバッファ８２に記録する（Ｓ３７）。イベントバッファ８２へのイベントデータの記録は検出した全てのイベントデータを記録するまで繰り返す（Ｓ３８）。
【００２６】
図４はＳＯＥ装置７のイベントデータ収集ブロック図を示す。ＳＯＥ装置７のイベント収集ブロックは、状態信号５１を取り込む信号取込機能７１、状態信号５１の取込値を現在値として保持する現在値保持機能７２、状態信号５１の取込値または現在値を前回値として保持する前回値保持機能７３、現在値と前回値を比較する比較機能７４、比較結果から「イベントあり」「イベントなし」を判定するイベント検出機能７５、現在時刻をカウントし続ける現在時刻カウンタ７７、「イベントあり」と判定した場合にイベントデータをイベントバッファ８２に記録するイベントwrite指示機能７６で構成されている。
【００２７】
次に図５〜図７を用いて、状態信号５１の取込によるイベント検出について説明する。図５はＳＯＥ装置７の初回の状態信号５１取込動作を示す。信号取込機能７１は、所定の周期で状態信号５１を取込んでおり、初回の状態信号５１取込時は取込値を現在値及び前回値として保持するのみで、次の状態信号５１の取込を行う。すなわち、状態信号取込（１）では、状態信号５１としてｃｈ０〜ｃｈ３はそれぞれ“１，０，１，０”であるのでこれらを現在値及び前回値として保持する。
【００２８】
図６はＳＯＥ装置の２回目以降の状態信号５１取り込みにおけるイベントが発生していないときのイベント検出動作を示す。ＳＯＥ装置７は、状態信号取込（２）によって状態信号５１を取り込み、現在値を前回値として、取込値を現在値として保持する。取り込んだ現在値と前回値を比較機能７４によりｃｈ０〜ｃｈ３の各チャネル毎の値を比較する。当該比較は、例えば現在値と前回値の排他的論理和を取ることによって行われる。この場合、ｃｈ０〜ｃｈ３はそれぞれ“１，０，１，０”でありｃｈ０〜ｃｈ３の何れにも前回値と現在値に差異がないので「イベントなし」と判断する。「イベントなし」と判断した後は次の状態信号５１の取り込みを行う。
【００２９】
図７はＳＯＥ装置７の２回目以降の状態信号５１取り込みにおけるイベント発生時のイベント検出動作を示す。図６に示した前記イベント検出動作と同様に、ＳＯＥ装置７は状態信号取込（３）により状態信号５１を取り込み、現在値を前回値として、取込値を現在値として保持する。取り込んだ現在値と前回値を比較機能７４によりｃｈ０〜ｃｈ３の各チャネル毎の値を比較する。本例では、ｃｈ０〜ｃｈ３はそれぞれ“１，１，０，０”でありｃｈ１が前回値“０”から現在値“１”へ、ｃｈ２が前回値“１”から現在値“０”へ変化しているので、ｃｈ１及びｃｈ２に計２件の「イベントあり」と判断する。「イベントあり」と判断した後はｃｈ１及びｃｈ２のイベントデータをイベントバッファ８２に記録する。また、図に示すその後のｃｈ３の“０”から“１”への変化は、次回の状態信号５１の取込時にイベントとして検出される。
【００３０】
これによって、例えば状態信号ｃｈ３が何らかの警報の有無を示す信号であった場合には、ｃｈ０〜ｃｈ２に示す状態信号５１がどのような変化を経て警報が発生したか解析することができる。また、図５〜図７に示したように、本実施例ではディジタル信号の変化を監視してイベントを検出したが、例えば、状態信号５１としてアナログ信号を監視し、現在値と前回値の差が所定の閾値を超えた場合にイベントを検出するように構成してもよい。
【００３１】
図８はイベントデータのフォーマットを示す。１件分のイベントデータは、前述のイベント検出により「イベントあり」と判断したチャネルのｃｈ番号と、その状態信号５１の現在値と、前述のイベント検出により「イベントあり」と判断した時点で現在時刻カウンタ７７が示す値であるイベント検出時刻からなる。本実施例では「イベントあり」と判断した時点で現在時刻カウンタ７７が“０ｘ１１”を示していた場合、ｃｈ１のイベントデータはｃｈ番号／現在値／イベント検出時刻がそれぞれ“１／１／０ｘ１１”となる。同様にｃｈ２のイベントデータは“２／０／０ｘ１１”となる。
【００３２】
図９はＳＯＥ装置７のイベントwriteとwriteポインタ制御の様子を示す。イベントデータをイベントバッファ８２に記録（以下、「イベントwrite」という。）する際には、writeポインタ制御機能８４によるwriteポインタ信号８４１によって行われる。writeポインタ信号８４１はイベントデータを記録するイベントバッファ８２のアドレスであり、イベントwrite指示信号７６１が入力される度にwriteポインタ信号８４１を更新し、writeポインタ信号８４１は常に次にイベントデータを記録するイベントバッファ８２のアドレスを指し示す。イベントデータが２件以上の場合は、イベントデータの件数分だけイベントwrite指示機能７６とwriteポインタ信号８４１の更新を繰り返す。
【００３３】
本実施例ではｃｈ１とｃｈ２の２件分のイベントwriteにより、イベントバッファ８２のアドレス“３”及びアドレス“４”にイベントデータを格納し、writeポインタ信号８４１を“４”から“５”、“５”から“６”へ更新する。ここでイベントバッファ８２は、例えばリングバッファにより構成され、writeポインタがイベントバッファ８２のアドレスの終点まできたら、アドレス“１”から再度更新される。但し、アドレスを更新すると未読イベントデータを上書きしなければいけない状態の場合には、イベントバッファ制御機能８１はイベントバッファ管理機能８８からのイベントバッファ状態信号８８１によって該状態を認識し、イベントバッファ８２への書込みを止める。これによって、未読のイベントデータが上書きされ、イベントデータの連続性が失われることを防ぐことができる。
【００３４】
図１０はＳＯＥ装置７の入力メモリ転写動作フローを示す。ＳＯＥ装置７は、常に通信回線４から通信制御機能７８によって通信フレームを受信し、受信バッファ７９へ格納している（Ｓ１００）。受信判別機能８６は、演算装置１からの通信フレームを受信するとその受信内容を判別する（Ｓ１０１）。さらに受信判別機能８６は、受信した通信フレームが「自ノード宛」であるか判別する（Ｓ１０２）。受信内容の判別結果が「他ノード宛」であった場合にはその通信フレームは破棄又は無視し、Ｓ１００へ戻る。受信内容の判別結果が「自ノード宛」であった場合には、受信判別機能８６は、受信した通信フレームが「イベント読出要求」であるか判別する（１０３）。「イベント読出要求」で無い場合には、ＳＯＥ装置７は、該通信フレームにて要求されたイベント読出し以外の処理を実行し、Ｓ１００へ戻る。「イベント読出要求」であったならば、イベントバッファ８２からイベントデータの読み出しを行い、イベントデータを全件読み出すまで繰り返す（Ｓ１０５）。イベントデータを全件読出し終了したら、演算装置１宛にイベント読出応答としてイベントバッファ８２から読み出したイベントデータを含む通信フレームを送信する（Ｓ１０６）。イベント読出応答を送信した後は再び演算装置１からの通信フレームの受信を待つ。
【００３５】
図１１はＳＯＥ装置７のメモリ転写ブロックを示す。通信制御機能７８は、常に通信回線４から通信フレームを受信し、受信経路７８１を介して受信バッファ７９へ格納している。受信判別機能８６は、受信バッファに通信フレームが格納される毎に、該通信フレームが「自ノード宛」であるか否か、「イベント読出要求」であるか否かを判別する。受信判別機能８６は、通信フレームの内容が「自ノード宛」かつ「イベント読出要求」である場合には、readポインタ指示機能８７及びイベントread指示機能８０へ受信判別結果信号８６１を出力する。受信判別結果信号８６１が入力されたイベントread指示機能８０は、readポインタ制御機能８５及びイベントバッファ制御機能８１に対してイベントread指示信号８０１を出力する。イベントread指示信号８０１が入力されたイベントバッファ制御機能８１は、イベントバッファ８２からイベントデータを読出し、送信バッファ８３へ格納する。
【００３６】
ここで、イベントデータをイベントバッファ８２から読出す際には、readポインタ制御機能８５及びイベントバッファ管理機能８８によってイベントデータを読出すイベントバッファ８２のアドレスのポインタ制御が行われる。readポインタ制御機能８５は、イベントread指示機能８０からイベントread指示信号８０１が入力されると、イベントバッファ８２から読出すアドレスを更新することを示すreadポインタ信号８５１をイベントバッファ管理機能８８及びイベントバッファ制御機能８１へ出力する。すなわちreadポインタ制御機能８５は、ＳＯＥ装置７が「イベント読出要求」を受け取る度にreadポインタ信号８５１を出力し、イベントデータを読出すイベントバッファ８２のアドレスを更新していく。
【００３７】
また、readポインタ指示機能８７は、例えば演算装置１がイベントデータの受信に失敗した場合等に、再度既読のイベントデータを読出すようreadポインタ指示信号８７１をreadポインタ制御機能８５へ出力する。すなわち、演算装置１からの「イベント読出要求」の内容が、既に読出したイベントデータを再度読出す要求で有った場合には、readポインタ指示信号８７１によりreadポインタを既読のアドレスに設定するようreadポインタ制御機能８５へ出力し、読出しアドレスの更新を止める。これにより、「イベント読出要求」を受け取る度に逐次イベントデータの読出しアドレスを更新していく処理において、イベントデータの送受信の失敗等に対しても対応できる。
【００３８】
また、イベントバッファ管理機能８８はイベントバッファ８２内のイベントデータの記憶状態，ポインタ位置を管理しており、イベントバッファ８２の状態をイベントバッファ状態信号８８１としてイベントバッファ制御機能８１へ出力する。ここで、イベントバッファ状態信号８８１が、readポインタとwriteポインタが同じアドレスであることを示す場合には、それ以上アドレスを更新しても未読イベントデータはないことがわかる。そこで、イベントバッファ管理機能８８は読出すアドレスを更新せず、イベントバッファ管理機能８８内のダミー応答機能８１０によりダミーのイベントデータを送信バッファ８３に格納する。送信バッファ８３に格納されたダミーのイベントデータは、ＳＯＥ装置７の転写タイミングで演算装置１へ送信され、演算装置１は受信したイベントデータがダミーであると判別することで、未読イベントデータが無いことを認識する。
【００３９】
前述のように演算装置１はメモリ転写によってプロセス入力装置２等との通信を行っており、ＳＯＥ装置７との通信も演算装置１の所定の制御周期の中で定められている。ここで、上記のように未読イベントデータが無い場合にはダミーのイベントデータを送信することで、演算装置１との周期的な伝送を乱すことなく制御システムを構築できる。
【００４０】
図１２は入力メモリ転写の通信フレームフォーマットを示す。（ａ）上段は演算装置１からの入力メモリ転写で通信フレームが受信バッファ７９に格納されるときの通信フレームのフォーマットを示す。入力メモリ転写において演算装置１からＳＯＥ装置７宛の通信フレームのタイプはイベント読出要求であり、「要求／応答」「リード／ライト」「宛先ノードアドレス」「イベント読出サイズ」の各エリアの内容で判別する。本実施例において「要求／応答」は１bitで通信フレームが演算装置１からの要求“１”であるか応答“０”であるかを示し、「リード／ライト」は１bitで通信フレームが演算装置１からのリード“１”であるかライト“０”であるかを示し、「宛先ノードアドレス」は１０bitで通信フレームの宛先がノードアドレス０〜１０２３の何れであるかを示す。また、「イベント読出サイズ」は５bitで演算装置１からの要求データサイズが１〜３２イベントまで設定可能であり、システム構築時に設定される。本実施例では、以下読出サイズは４と設定されているものとして説明する。
【００４１】
例えば、図１２の（ａ）下段に示すようなイベント読出要求フレームを受信した場合、受信判別機能８６は受信バッファ７９内の通信フレームの「要求／応答」エリアの値が要求“１”であり、「リード／ライト」エリアの値がリード“１”であり、「宛先ノードアドレス」エリアの値がＳＯＥ装置７の自ノードアドレスと一致しているか判別し、受信した通信フレームが自ノード宛の「イベント読出要求」であると判断する。
【００４２】
受信判別機能８６が自ノード宛の「イベント読出要求」であると判断するとイベントread指示機能８０がイベントバッファ制御機能８１にイベントバッファ８２からイベントデータを読み出すようイベントread指示信号８０１を出力する。イベントバッファ制御機能８１はイベントread指示信号８０１に従いイベントバッファ８２のreadポインタ信号８５１が示すエリアから１件分の未読イベントデータを読み出し、読み出したイベントデータを送信バッファ８３に格納する。
【００４３】
イベントread指示機能８０はイベントread指示信号８０１によるイベントバッファ８２からのイベントデータ読み出しを前述の「読出サイズ」エリアの要求データサイズだけ繰り返し、送信バッファ８３に要求データサイズ分のイベントデータを格納する。
【００４４】
ここで、図１２の（ｂ）上段は、イベント読出応答の通信フレームフォーマットを示す。
【００４５】
入力メモリ転写においてＳＯＥ装置７から演算装置１宛の通信フレームのタイプはイベント読出応答であり、「要求／応答」「リード／ライト」「宛先ノードアドレス」「イベント読出サイズ」の各エリアの内容で判別される。本実施例の場合、図１２の（ｂ）下段に示すようなイベント読出応答フレームを送信バッファ８３に格納される。送信バッファ８３に要求データサイズ分のイベントデータが格納されると、通信制御機能７８は送信バッファ内のイベントデータを演算装置１への「イベント読出応答」として送信する。
【００４６】
図１３はＳＯＥ装置７のイベントreadによるイベントバッファ８２とreadポインタ制御機能８５の動作を示す。イベントバッファ内においてreadポインタは、次の要求時に読み出すイベントデータが格納されているアドレスを示す。読出要求が来ると、イベントデータを読み出した後にreadポインタを更新する。イベントバッファ管理機能８８とイベントバッファ制御機能８１は要求されたイベントデータの数だけこのサイクルを繰り返す。本実施例では、イベント読出サイズは４であるため、４回読出しサイクルを繰り返し、図示のようにreadポインタは４つ更新される。
【００４７】
図１４はイベントバッファの管理方法を示す。readポインタとwriteポインタはそれぞれ、次の読出または書込み要求時に読み出すまたは書き込むアドレスを示している。従って、readポインタとwriteポインタが同じアドレスを示している場合、「次に読み出すアドレス」と「次に書き込むアドレス（＝現在は空白）」が等しいことを示し、それはイベントバッファ内に未読イベントデータがない（イベントデータempty）であることを表す。
【００４８】
図１５はイベントデータemptyの判定方法を表す。前記の通り、readポインタとwriteポインタが示すアドレスが等しければイベントデータemptyとなるので、それぞれのアドレスをポインタアドレス比較器９で比較することでイベントデータemptyの判定を行う。このポインタアドレス比較器９は、イベントバッファ管理機能８８内に設けても、イベントバッファ制御機能８１内に設けてもよい。
【００４９】
図１６はイベントバッファの初期状態を示す。リセット直後のイベントバッファ８２はデータがまったく入っていない空の状態であるので、readポインタとwriteポインタは同じアドレスを示すイベントデータemptyの状態である。
【００５０】
図１７はイベントバッファ８２に読出サイズ以上の未読イベントデータがある場合のＳＯＥ装置７の読出応答を示す。イベントバッファ８２に読出サイズ以上の未読イベントデータがある場合、イベント読出応答フレームの全てのデータエリアにイベントデータを格納して応答する。すなわち本実施例では、読出サイズは４であるのに対し、未読イベントデータは５であるためイベント読出応答フレームの４つ全てのデータエリアにイベントデータを格納する。残り１つの未読イベントデータは、次回のイベント読出要求の際に送信される。
【００５１】
図１８はイベントバッファ８２に未読イベントデータが無い（イベントデータempty）場合のＳＯＥ装置７の読出応答を示す。この場合、イベントバッファ管理機能８８は、イベントバッファ状態信号８８１によりreadポインタとwriteポインタが同じアドレスを示していること、すなわち、未読イベントデータはないことをイベントバッファ制御機能８１へ知らせる。これにより、イベントバッファ管理機能８８は読出しアドレスを更新せず、イベント読出応答フレームの全てのデータエリアにダミーの応答データ（イベントデータのイベント検出時刻エリアに無効な値を格納、イベント検出ｃｈ番号および状態信号現在値のエリアはdon’t care）を格納して応答する。
【００５２】
図１９はイベントバッファ８２に１つ以上かつ読出サイズ未満の未読イベントデータがある場合のＳＯＥ装置７の読出応答を示す。イベントバッファ８２に１つ以上かつ読出サイズ未満の未読イベントデータがある場合、読出応答フレームの一部のデータエリアにダミーの応答データ（イベントデータのイベント検出時刻エリアに無効な値を格納、他のエリアはdon’t care）を格納して応答する。本実施例では、読出サイズが４であるのに対し、未読イベントデータは２であるので、２件のイベントデータと２件のダミーの応答データが送信バッファ８３へ格納される。
【００５３】
以上、図１８，図１９に示すようにreadポインタを制御することにより、readポインタのアドレスがwriteポインタのアドレスより先に更新されることがないため、未読イベントデータの読出し漏れを防止することができる。また、未読イベントデータが無い場合には、ダミーのイベントデータを送信するため、演算装置１との周期的な伝送を乱すことなく制御システムを構築できる。
【００５４】
以上本発明によれば、プロセス入出力装置とＳＯＥ装置が同一の通信回線によって接続された制御システムにおいて、演算装置は所定の制御周期でメモリ転写によってプロセス入出力装置と周期的に制御用データの伝送を行う。そして、演算装置１の制御周期内に、本来所定のイベントを検出した時にのみ必要なＳＯＥ装置７とのデータ送受信期間を、演算装置１の制御周期内に定める。これによって、制御用データの定周期性を損なうことなくイベントデータ伝送を行うことが可能となる。
【００５５】
また、送信するイベントデータが無い場合にはＳＯＥ装置はダミーの応答データを送信する。これによって、演算装置１との周期的な伝送を保てるため、演算装置の制御周期を乱すことなくシステムを構築できる。
【００５６】
また、制御用データの通信路とイベントベータの通信路を別回線で構成せずとも、制御用データの定周期性を確保できるため一般的なプラント制御システムとしての機能を備えたままシステムを小規模化することができる。
【００５７】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。また、上記の各構成，機能，処理部，処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成，機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。
【００５８】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【００５９】
１  演算装置
２  プロセス入力装置
３  プロセス出力装置
４  通信回線
５  制御信号線路
６  制御対象
７  イベントデータ収集装置（ＳＯＥ装置）
９  ポインタアドレス比較器
５１  状態信号
７１  信号取込機能
７２  現在値保持機能
７３  前回値保持機能
７４  比較機能
７５  イベント検出機能
７６  イベントwrite指示機能
７７  現在時刻カウンタ
７８  通信制御機能
７９  受信バッファ
８０  イベントread指示機能
８１  イベントバッファ制御機能
８２  イベントバッファ
８３  送信バッファ
８４  writeポインタ制御機能
８５  readポインタ制御機能
８６  受信判別機能
８７  readポインタ指示機能
８８  イベントバッファ管理機能
７１１  取込値信号
７２１  現在値信号
７３１  前回値信号
７４１  比較結果信号
７５１  イベント検出信号
７６１  イベントwrite指示信号
７７１  現在時刻カウント信号
７８１  受信経路
７９１  受信内容
８０１  イベントread指示信号
８１０  ダミー応答機能
８１１  イベントデータ信号
８２１  イベントデータ読出経路
８２２  イベントデータ書込経路
８３１  送信経路
８４１  writeポインタ信号
８５１  readポインタ信号
８６１  受信判別結果信号
８７１  readポインタ指示信号
８８１  イベントバッファ状態信号
【図１】
0005401479.tif 000002
【図２】
0005401479.tif 000003
【図３】
0005401479.tif 000004
【図４】
0005401479.tif 000005
【図５】
0005401479.tif 000006
【図６】
0005401479.tif 000007
【図７】
0005401479.tif 000008
【図８】
0005401479.tif 000009
【図９】
0005401479.tif 000010
【図１０】
0005401479.tif 000011
【図１１】
0005401479.tif 000012
【図１２】
0005401479.tif 000013
【図１３】
0005401479.tif 000014
【図１４】
0005401479.tif 000015
【図１５】
0005401479.tif 000016
【図１６】
0005401479.tif 000017
【図１７】
0005401479.tif 000018
【図１８】
0005401479.tif 000019
【図１９】
0005401479.tif 000020