(57)【特許請求の範囲】
【請求項１】
互いの間にコネクションを確立しデータ転送を行う２つのノードであるコンピュータとＰＬＣのうちの一方のノードであるコンピュータが、
前記２つのノードの間の接続状態を確認する監視処理を所定の時間毎に実行するステップを有しており、
前記所定の時間毎に実行される監視処理は、
前記２つのノードの間のコネクションの有無を判定する処理と、
コネクションが存在する場合に、現在のコネクションのＩＤを記憶装置に記憶されているコネクションのＩＤと比較する処理と、
前記現在のコネクションのＩＤと前記記憶装置に記憶されているコネクションのＩＤとが一致しない場合に、前回の監視処理と今回の監視処理の間にコネクションの切断が発生したと判定する処理と、
前記現在のコネクションのＩＤを前記記憶装置に格納する処理と、
を含むことを特徴とする接続監視方法。
【請求項２】
互いの間にコネクションを確立しデータ転送を行う２つのノードである２つのＰＬＣのうちの一方のノードであるＰＬＣが、
前記２つのノードの間の接続状態を確認する監視処理を所定の時間毎に実行するステップを有しており、
前記所定の時間毎に実行される監視処理は、
前記２つのノードの間のコネクションの有無を判定する処理と、
コネクションが存在する場合に、現在のコネクションのＩＤを記憶装置に記憶されているコネクションのＩＤと比較する処理と、
前記現在のコネクションのＩＤと前記記憶装置に記憶されているコネクションのＩＤとが一致しない場合に、前回の監視処理と今回の監視処理の間にコネクションの切断が発生したと判定する処理と、
前記現在のコネクションのＩＤを前記記憶装置に格納する処理と、
を含むことを特徴とする接続監視方法。
【請求項３】
互いの間にコネクションを確立しデータ転送を行う２つのノードである、２つのＰＬＣ、又は、コンピュータとＰＬＣに対し、ネットワークを介して接続された接続監視装置が
、
前記２つのノードの間の接続状態を確認する監視処理を所定の時間毎に実行するステップを有しており、
前記所定の時間毎に実行される監視処理は、
前記２つのノードの間のコネクションの有無を判定する処理と、
コネクションが存在する場合に、現在のコネクションのＩＤを記憶装置に記憶されているコネクションのＩＤと比較する処理と、
前記現在のコネクションのＩＤと前記記憶装置に記憶されているコネクションのＩＤとが一致しない場合に、前回の監視処理と今回の監視処理の間にコネクションの切断が発生したと判定する処理と、
前記現在のコネクションのＩＤを前記記憶装置に格納する処理と、
を含むことを特徴とする接続監視方法。
【請求項４】
前記監視処理の結果に基づいて前記２つのノードの間の接続状態を表すステイタス情報を表示装置に表示する出力ステップをさらに有する
ことを特徴とする請求項１〜３のうちいずれか１項に記載の接続監視方法。
【請求項５】
前記出力ステップでは、
前記２つのノードの間のコネクションが存在しない場合と、
コネクションが存在し、且つ、前記現在のコネクションのＩＤと前記記憶装置に記憶されているコネクションのＩＤとが一致する場合と、
コネクションが存在し、且つ、前記現在のコネクションのＩＤと前記記憶装置に記憶されているコネクションのＩＤとが一致しない場合とで、
前記ステイタス情報の表示を異ならせる
ことを特徴とする請求項４に記載の接続監視方法。
【請求項６】
前記出力ステップでは、前記監視処理が実行される毎に、前記監視処理が実行された時刻とともに前記ステイタス情報を表示する
ことを特徴とする請求項４又は５に記載の接続監視方法。
【請求項７】
前記監視処理は、ｐｉｎｇコマンドによって前記２つのノードの間の接続状態を確認する処理も含み、
前記出力ステップでは、ｐｉｎｇコマンドの結果を表す情報も前記表示装置に表示することを特徴とする請求項４〜６のうちいずれか１項に記載の接続監視方法。
【請求項８】
前記２つのノードの間のデータ転送のプロトコルは、データパケットの到達保証がないプロトコルである
ことを特徴とする請求項１〜７のうちいずれか１項に記載の接続監視方法。
【請求項９】
請求項１又は２に記載の接続監視方法の各処理を、コンピュータ又はＰＬＣのＣＰＵに実行させることを特徴とするプログラム。
【請求項１０】
請求項９に記載のプログラムを記憶していることを特徴とするコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータとＰＬＣの間のネットワークの接続状態を監視するための技術に関する。
【背景技術】
【０００２】
ＦＡ（Factory Automation）においては、生産ラインに設置される生産設備（モータ、ロボット、センサなど）のデータ収集及び制御を行う各種のスレーブ装置と、複数のスレーブ装置を集中管理するマスター装置（ＰＬＣ：Programmable Logic Controller）など
から構成される産業用ネットワークシステムにより生産設備の制御が行われる。また、各生産ラインあるいは生産拠点に設置された産業用ネットワークシステムは情報系ネットワークを介して上位のコンピュータに接続されており、システム管理者やエンジニアはこのコンピュータを用いて各々の産業用ネットワークシステムの状態監視やメンテナンスなどを行うことが可能になっている。
【０００３】
ＰＬＣとスレーブ装置の間を接続する制御系ネットワークとしては、ＤｅｖｉｃｅＮｅｔ、ＣｏｍｐｏＮｅｔ、ＥｔｈｅｒＣＡＴ（登録商標）などの規格が知られている。一方、ＰＬＣと上位のコンピュータの間を接続する情報系ネットワークとしては、ＥｔｈｅｒＮｅｔ／ＩＰなどの規格が知られている。ＥｔｈｅｒＮｅｔ／ＩＰは、ＯＤＶＡ（Open DeviceNet Vendor Association, Inc.）が推進する産業用イーサネットの標準規格であり
、広く普及しているイーサネット（登録商標）の技術やデバイスをベースにしている。ＥｔｈｅｒＮｅｔ／ＩＰでは、標準プロトコルであるＴＣＰ／ＩＰなどに加え、産業用に特化したプロトコルであるＣＩＰ（Common Industrial Protocol）が利用される。ＣＩＰはＯＳＩ参照モデルのアプリケーション層での通信手順を規定する規格であり、ＣＩＰによる通信を利用することで、上位のコンピュータで動作するアプリケーションプログラムはＰＬＣから各種情報を収集したり、ＰＬＣに対して命令を送信したりすることができる。
【０００４】
図５は、コンピュータ１００とＰＬＣ２００の間でＣＩＰのデータリンク通信を行う際のシーケンスを示している。コンピュータ１００がＰＬＣ２００からデータを取得する場合、コンピュータ１００がオリジネータ（データを要求するノード）となり、ターゲット（データを返送するノード）であるＰＬＣ２００に対してＦｏｒｗａｒｄＯｐｅｎコマンドを送出する。これに応答してターゲットがＳｕｃｃｅｓｓを返すと、オリジネータとターゲットの間のコネクションが確立する。この後は、ターゲットからオリジネータに対し、データパケットの送信が定周期に行われる。このようなデータリンク通信は、送達確認（Ａｃｋ）やパケット再送等を行わないシンプルなデータ転送方式であり、データ転送の速度や効率が必要なアプリケーションプログラムで利用される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平８−１２３７４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記のような産業用ネットワークシステムにおいては、コンピュータ１００とＰＬＣ２００との間の接続状態をモニタするユーティリティツールが用意されていることが多い。この種のツールは、システムの状態監視、生産ラインで異常が発生した場合の原因究明、あるいは、ＰＬＣ２００で動作するラダープログラムやコンピュータ１００で動作するアプリケーションプログラムのデバッグなどに利用される。
【０００７】
図６に、従来のツールによる接続状態監視処理の一例を示す。このツールはコンピュータ１００上で動作するプログラムであり、所定のモニタ周期（例えば数秒に１回）で図６の監視処理を実行するものとする。まずツールは、コンピュータ１００に接続されているＰＬＣ２００に対してｐｉｎｇコマンドを実行する（ステップＳ１００）。ＰＬＣ２００から応答がなければ、コンピュータ１００とＰＬＣ２００との間のネットワークに異常があることがわかり、その旨のエラーメッセージを出力する（ステップＳ１０１、Ｓ１０２）。一方、ｐｉｎｇで異常が検出されなかった場合は、ステップＳ１０３に進み、コンピュータ１００とＰＬＣ２００の間のデータリンクの状態をチェックする。このとき、ツールは、オリジネータのＥｔｈｅｒＮｅｔ／ＩＰスタック内に格納されているステイタスフラグを参照することで、オリジネータとＰＬＣ２００のターゲットの間のコネクションが現在接続状態にあるか切断状態にあるかを確認できる。そして、ステイタスフラグが接続状態を示しているときは、ツールは「データリンク：接続」という結果を出力し（ステップＳ１０４）、それ以外の場合は、「データリンク：切断」という結果を出力する（ステップＳ１０５）。
【０００８】
図６で示した方法によれば、ＩＰネットワークの異常とデータリンクの接続／切断状態とをモニタすることができる。しかしながら、このような従来方法にあっては、図６の処理が実行されたその時点での瞬時値的なネットワーク状態しかモニタすることができず、モニタ周期の間に発生したネットワーク異常を検知することができない、という課題がある。
【０００９】
図７を参照して詳しく説明する。コンピュータ１００上のアプリケーションプログラムが、データリンク通信によりＰＬＣ２００から継続的にデータを収集するケースを想定する。時刻ｔ０に、コンピュータ１００のオリジネータがＰＬＣ２００のターゲットとの間でコネクションを張りデータリンク通信を開始したが、時刻ｔ１において、ネットワークに何らかの異常が発生し、ターゲットからのデータパケットが途絶えたと仮定する。オリジネータはターゲットからデータパケットを一定時間受け取らないと（タイムアウトの発生）、ターゲットが停止したと解釈し、コネクションを自動的に切断する（時刻ｔ２）。その後、オリジネータは、時刻ｔ３に、ターゲットとの間のコネクションを自動的に確立し、データリンク通信を再開している。
【００１０】
このような状況において、図７に示すように、モニタ周期τで時刻Ｔ０、Ｔ１、Ｔ２、Ｔ３に図６の監視処理が実行されたとする。時刻Ｔ０の時点では、オリジネータのステイタスフラグが「切断」状態を示しているため、「データリンク：切断」というモニタ結果が出力される。その後、時刻Ｔ１、Ｔ２、Ｔ３の時点においては、ステイタスフラグは「接続」状態を示しているため、「データリンク：接続」というモニタ結果が出力され続けることになる。そうすると、このモニタ結果を見ているユーザ（又はプログラム）には、時刻Ｔ１以降、コンピュータ１００とＰＬＣ２００のデータリンク状態がずっと良好であるようにしか見えず、時刻Ｔ１とＴ２の間に発生したネットワークの瞬断（時刻ｔ１からｔ３の不通状態）に気づくことができない。
【００１１】
例えば、ユーザがコンピュータ１００上のシミュレータプログラムやデバッグプログラムを使ってＰＬＣ２００やスレーブ装置の動作をテストしているときに、上記のようなネットワークの瞬断が発生すると、その間のデータパケットの欠落に起因して、シミュレーションやデバッグの結果に異常が現れる。ユーザとしては把握可能な情報を元に原因を究明することになるが、このときにモニタ結果を見てもネットワークやデータリンクの異常が発見できないとなると、異常個所の切り分けが困難となり、原因の発見に相当の時間を費やすことになる。ＰＬＣ２００は生産設備の近くに配置されるため、モータノイズなどの影響でネットワークが不安定になり易い。もし上記のようなネットワークの瞬断が頻発
していることがわかれば、ケーブルやネットワーク機器の交換といったノイズ対策を講じることで問題が解決する可能性もある。
【００１２】
もちろん、モニタ周期τを非常に短い時間に設定すれば、ネットワークの瞬断の「見逃し」のリスクを低減することはできる。しかしながら、監視処理の回数が増えるとコンピュータ１００の処理負荷が増大するため、好ましくない。また、モニタ周期τを十分短くしたとしても「見逃し」を１００％防止できるわけではなく、課題の根本的な解決にはならない。
【００１３】
なお、上述した課題は、ＣＩＰのデータリンク通信が非常にシンプルなデータ転送プロトコルであり、到達確認や再送といったデータパケットの到達保証の仕組みをもたないために生じるものともいえる。換言すれば、ＣＩＰのデータリンク通信の他にも、産業用ネットワークのプロトコルで且つ到達保証の仕組みをもたないシンプルなデータ転送プロトコルであれば、同様の課題が発生する。
【００１４】
本発明は上記課題を解決するためになされたものであって、コンピュータとＰＬＣとの間のネットワークの瞬断を検知するための技術を提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明者は、コンピュータとＰＬＣとの間でコネクションを確立するときに、当該コネクションに対し一意にＩＤ（識別子）が割り振られることに着目し、このＩＤの変化を監視することでネットワークの瞬断の発生を検知するという着想を得た。
【００１６】
具体的には、本発明に係る接続監視装置は、ネットワークを介して接続されたＰＬＣとの間にコネクションを確立しデータ転送を行うコンピュータにおいて、前記コンピュータと前記ＰＬＣとの間の接続状態を監視する接続監視装置であって、コネクションのＩＤを一時的に記憶するために用いられる記憶手段と、前記コンピュータと前記ＰＬＣとの間の接続状態を確認する監視処理を所定の時間毎に実行する接続状態確認手段と、を有しており、前記接続状態確認手段により前記所定の時間毎に実行される監視処理は、前記コンピュータと前記ＰＬＣとの間のコネクションの有無を判定する処理と、コネクションが存在する場合に、現在のコネクションのＩＤを前記記憶手段に記憶されているコネクションのＩＤと比較する処理と、前記現在のコネクションのＩＤと前記記憶手段に記憶されているコネクションのＩＤとが一致しない場合に、前回の監視処理と今回の監視処理の間にコネクションの切断が発生したと判定する処理と、前記現在のコネクションのＩＤを前記記憶手段に格納する処理と、を含むことを特徴とする。
【００１７】
この構成によれば、監視処理の実行時点におけるコネクションの有無の検知に加え、前回の監視処理と今回の監視処理の間に発生したコネクションの一時的な切断（ネットワークの瞬断）をも検知することができる。また、監視処理の実行間隔をそれほど短く設定する必要はないのでコンピュータ等に処理負荷をかけることがない。しかも、特別なハードウェアの追加やネットワークプロトコルの改変・拡張などの必要がないので、実装が容易であるという利点もある。
【００１８】
接続監視装置が、前記接続状態確認手段の判定結果に基づいて前記コンピュータと前記ＰＬＣとの間の接続状態を表すステイタス情報を表示装置に表示する出力手段をさらに有することが好ましい。ユーザは、表示装置に表示されるステイタス情報を見ることで、コンピュータとＰＬＣとの間のコネクションの状態を容易に監視することができる。
【００１９】
前記出力手段は、前記コンピュータと前記ＰＬＣの間のコネクションが存在しない場合と、コネクションが存在し、且つ、前記現在のコネクションのＩＤと前記記憶手段に記憶
されているコネクションのＩＤとが一致する場合と、コネクションが存在し、且つ、前記現在のコネクションのＩＤと前記記憶手段に記憶されているコネクションのＩＤとが一致しない場合とで、前記ステイタス情報の表示を異ならせることが好ましい。これにより、ユーザは、コンピュータとＰＬＣが「切断状態」にあるのか、「接続状態」が維持されているのか、「瞬断が発生」したのか、を容易に知ることができる。このようにコネクションの状態を適切に把握できることで、例えばコンピュータやＰＬＣの動作に異常がみられたときにその原因箇所の究明が容易になる。
【００２０】
前記出力手段は、前記接続状態確認手段により監視処理が実行される毎に、前記監視処理が実行された時刻とともに前記ステイタス情報を表示することが好ましい。これにより、「瞬断が発生」した時刻を絞り込むことができるため、例えばコンピュータやＰＬＣの動作に異常がみられたときに、その異常動作が起きた時刻と瞬断が発生した時刻とを比較し因果関係を確認できるので、原因究明が一層容易になる。
【００２１】
また、前記接続状態確認手段により実行される監視処理は、ｐｉｎｇコマンドによって前記コンピュータと前記ＰＬＣとの間の接続状態を確認する処理も含み、前記出力手段は、ｐｉｎｇコマンドの結果を表す情報も前記表示装置に表示することが好ましい。この結果をみることで、ユーザは、コンピュータとＰＬＣの間のネットワーク不調の原因が、物理層やネットワーク層などの下位層にあるのか、それともアプリケーション層などの上位層にあるのかを判断することができる。
【００２２】
本発明は、データパケットの到達保証がないプロトコルにおけるコネクションの監視に適用することが好適である。
【００２３】
なお、本発明は、上記手段の少なくとも一部を含む接続監視装置として特定することもできるし、上記処理の少なくとも一部を含む接続監視方法として特定することもできる。また、上記処理の少なくとも一部をコンピュータに実行させるプログラムや、そのプログラムを記録したコンピュータ読取可能な記憶媒体として特定することもできる。上記処理や手段の各々は、技術的な矛盾が生じない限りにおいて、自由に組み合わせることが可能である。
【００２４】
例えば、本発明に係る接続監視方法は、互いの間にコネクションを確立しデータ転送を行う２つのノードであるコンピュータとＰＬＣのうちの一方のノードであるコンピュータが、前記２つのノードの間の接続状態を確認する監視処理を所定の時間毎に実行するステップを有しており、前記所定の時間毎に実行される監視処理は、前記２つのノードの間のコネクションの有無を判定する処理と、コネクションが存在する場合に、現在のコネクションのＩＤを記憶装置に記憶されているコネクションのＩＤと比較する処理と、前記現在のコネクションのＩＤと前記記憶装置に記憶されているコネクションのＩＤとが一致しない場合に、前回の監視処理と今回の監視処理の間にコネクションの切断が発生したと判定する処理と、前記現在のコネクションのＩＤを前記記憶装置に格納する処理と、を含むことを特徴とする。
また、本発明に係る他の接続監視方法は、互いの間にコネクションを確立しデータ転送を行う２つのノードである２つのＰＬＣのうちの一方のノードであるＰＬＣが、前記２つのノードの間の接続状態を確認する監視処理を所定の時間毎に実行するステップを有しており、前記所定の時間毎に実行される監視処理は、前記２つのノードの間のコネクションの有無を判定する処理と、コネクションが存在する場合に、現在のコネクションのＩＤを記憶装置に記憶されているコネクションのＩＤと比較する処理と、前記現在のコネクションのＩＤと前記記憶装置に記憶されているコネクションのＩＤとが一致しない場合に、前回の監視処理と今回の監視処理の間にコネクションの切断が発生したと判定する処理と、
前記現在のコネクションのＩＤを前記記憶装置に格納する処理と、を含むことを特徴とする。
また、本発明に係る他の接続監視方法は、互いの間にコネクションを確立しデータ転送を行う２つのノードである、２つのＰＬＣ、又は、コンピュータとＰＬＣに対し、ネットワークを介して接続された接続監視装置が、前記２つのノードの間の接続状態を確認する監視処理を所定の時間毎に実行するステップを有しており、前記所定の時間毎に実行される監視処理は、前記２つのノードの間のコネクションの有無を判定する処理と、コネクションが存在する場合に、現在のコネクションのＩＤを記憶装置に記憶されているコネクションのＩＤと比較する処理と、前記現在のコネクションのＩＤと前記記憶装置に記憶されているコネクションのＩＤとが一致しない場合に、前回の監視処理と今回の監視処理の間にコネクションの切断が発生したと判定する処理と、前記現在のコネクションのＩＤを前記記憶装置に格納する処理と、を含むことを特徴とする。
【００２５】
また、本発明に係るプログラムは、上記した本発明に係る接続監視方法の各処理を、コンピュータ又はＰＬＣのＣＰＵに実行させることを特徴とする。
【発明の効果】
【００２６】
本発明によれば、コンピュータとＰＬＣとの間のネットワークの瞬断を検知することができる。
【図面の簡単な説明】
【００２７】
【図１】産業用ネットワークシステムの構成例を説明するブロック図。
【図２】本実施形態の接続状態監視処理の流れを示すフローチャート。
【図３】接続状態監視機能の動作例を示す図。
【図４】監視結果出力機能の表示例を示す図。
【図５】コンピュータとＰＬＣの間でＣＩＰのデータリンク通信を行う際のシーケンスを示す図。
【図６】従来の接続状態監視処理の一例を示すフローチャート。
【図７】従来の課題であるネットワークの瞬断の見逃しについて説明する図。
【図８】接続監視装置の他の構成例を説明する図。
【発明を実施するための形態】
【００２８】
以下、図面を参照しつつ、本発明の好適な実施の形態を説明する。以下の実施形態では、ＥｔｈｅｒＮｅｔ／ＩＰで接続されたコンピュータとＰＬＣの間でＣＩＰのデータリンク通信を行う例を挙げるが、本発明の適用範囲はこれに限られない。産業用ネットワークのプロトコルで、且つ、到達保証の仕組みをもたないシンプルなデータ転送プロトコルを用いて、コンピュータとＰＬＣの間のデータ転送を行う構成であれば、本発明を好ましく適用することができる。
【００２９】
（システムの構成）
まず、図１（Ａ）及び図１（Ｂ）を用いて、産業用ネットワークシステムの構成例を説明する。
【００３０】
図１（Ａ）において、産業用ネットワークシステムＩＮＳは、ＰＬＣ（Programmable Logic Controller）２００と複数のスレーブ装置３００とから構成されている。ＰＬＣ２
００とスレーブ装置３００の間は、制御系ネットワークＮＷ２または内部バスにより接続されている。スレーブ装置３００には、電源ユニット，モータユニット，カウンタユニット，画像ユニット，通信ユニット，Ｉ／Ｏユニット等がある。このような産業用ネットワークシステムＩＮＳは、工場の生産ライン等において、各種の生産設備（モータ、ロボット、センサなど）の制御やデータ収集などを行うために用いられる。
【００３１】
産業用ネットワークシステムＩＮＳは、情報系ネットワークＮＷ１を介してコンピュータ１００に接続されている。このコンピュータ１００は、例えばシステム管理者が各拠点の産業用ネットワークシステムＩＮＳの状態を監視したり、エンジニアが産業用ネットワークシステムＩＮＳを構成する各機器のメンテナンスを行うためなどに用いられる。コンピュータ１００としては、表示装置１０１、入力装置１０２などを具備する汎用のパーソナルコンピュータを用いることができ、後述する接続状態監視機能及び監視結果出力機能は、コンピュータ１００内の記憶装置に格納されたプログラムをＣＰＵが実行することにより実現される。
【００３２】
図１（Ｂ）は別の構成例であり、図１（Ａ）のコンピュータ１００の機能をＰＬＣ２００に実装した例である。すなわち、ＰＬＣ２００自体もＣＰＵや記憶装置を備えたコンピュータであるため、接続状態監視機能及び監視結果出力機能に係るプログラムをＰＬＣ２００にインストールし、ＰＬＣ２００のＣＰＵで実行させることができる。この場合は、図１（Ｂ）の左側のＰＬＣ２００内のコンピュータ１００と右側のＰＬＣ２００との間の接続状態の監視に本発明の手法が適用される。
【００３３】
（接続状態の監視処理）
図２のフローチャートを参照して、コンピュータ１００に実装される接続状態監視機能及び監視結果出力機能の処理の流れを説明する。これらの機能はコンピュータ１００上で動作するプログラムにより提供される機能であり、図２に示される一連の監視処理は所定の時間（モニタ周期τと呼ぶ）毎に繰り返し実行される。モニタ周期τの値はユーザが任意に設定することができる。例えば、τは１秒〜６０秒程度に設定すればよい。
【００３４】
まず、接続状態監視機能は、データ転送の相手先ノードであるＰＬＣ２００に対してｐｉｎｇコマンドを実行する（ステップＳ２００）。ＰＬＣ２００から応答がなければ、コンピュータ１００とＰＬＣ２００との間のネットワークに異常があることがわかる（ステップＳ２０１）。ｐｉｎｇの応答がなければ、監視結果出力機能は、ネットワークに異常がある旨のエラーメッセージを表示装置１０１に出力する（ステップＳ２０２）。
【００３５】
一方、ｐｉｎｇで異常が検出されなかった場合は、ステップＳ２０３に進み、接続状態監視機能がコンピュータ１００とＰＬＣ２００の間のデータリンクの状態をチェックする。まずは、オリジネータのＥｔｈｅｒＮｅｔ／ＩＰスタック内に格納されているステイタスフラグを参照することで、オリジネータとＰＬＣ２００のターゲットの間のコネクションの有無を確認する。ステイタスフラグが「切断」状態を示す場合は、このオリジネータとターゲットの間にコネクションは張られていない。そのため、監視結果出力機能は、「データリンク：切断」という結果を表示装置１０１に出力する（ステップＳ２０４）。
【００３６】
ステップＳ２０３において、ステイタスフラグが「接続」状態を示していた場合、接続状態監視機能は、オリジネータのＥｔｈｅｒＮｅｔ／ＩＰスタックから現在のコネクションＩＤを取得し、コンピュータ１００のメモリ（記憶手段）に記憶されているコネクションＩＤの値と比較する（ステップＳ２０５）。コネクションＩＤとは、ＣＩＰのデータリンク通信において、オリジネータとターゲットの間でコネクションを確立するときに、当該コネクションに対し一意に割り振られるＩＤ（識別子）である。メモリには前回の監視処理の際に取得したコネクションＩＤの値が記録されている。すなわち、ステップＳ２０５の比較処理は、前回の監視処理の時点（時間τ前）と今回の監視処理の時点とでコネクションＩＤに変化があったか否か、言い換えると、前回の監視処理の時点から現時点まで同じコネクションが継続しているのか否かをチェックする処理である。
【００３７】
コネクションＩＤが同じである場合は、前回の監視処理の時点からコネクションが張られた状態が安定的に続いているということなので、監視結果出力機能は「データリンク：接続」という結果を表示装置１０１に出力する（ステップＳ２０６）。一方、コネクションＩＤが異なっていた場合は、前回の監視処理と今回の監視処理の間で少なくとも１回はコネクションの切断・再開があったということなので、監視結果出力機能は「データリンク：エラー」という結果を表示装置１０１に出力する（ステップＳ２０７）。なお、メモリ内にコネクションＩＤが記録されていなかった場合は、コネクションＩＤの比較は行わず、コネクションＩＤは同じであるとみなせばよい。
【００３８】
そして、接続状態監視機能は、現在のコネクションＩＤをメモリに記録し（ステップＳ２０９）、監視処理を終了する。なお、ｐｉｎｇで異常が検出された場合（ステップＳ２
０１のＮＯ）、及び、コネクションが張られていなかった場合（ステップＳ２０３のＮＯ）には、メモリ内のコネクションＩＤを消去する（ステップＳ２０８）。
【００３９】
（動作例）
次に、図３及び図４を参照して、接続状態監視処理の具体的な動作例を説明する。図３は接続状態監視機能の動作例を示す図であり、図４は監視結果出力機能の表示例を示す図である。
【００４０】
図３は、前述した図７と同じ事例を示している。すなわち、時刻ｔ０に、コンピュータ１００のオリジネータがＰＬＣ２００のターゲットとの間でコネクションを張りデータリンク通信を開始したが、時刻ｔ１において、ネットワークに何らかの異常が発生し、ターゲットからのデータパケットが途絶えたため、時刻ｔ２にコネクションが切れ、時刻ｔ３にコネクションが再開した例である。時刻ｔ０に張られたコネクションのＩＤは「１」、時刻ｔ３に張られたコネクションのＩＤは「２」と仮定する。
【００４１】
このとき、時刻Ｔ０の監視処理では、ステイタスフラグが「切断」状態を示しているので（ステップＳ２０３のＮＯ）、「データリンク：切断」という結果が出力される（ステップＳ２０４）。時刻Ｔ１の監視処理では、ステイタスフラグが「接続」状態を示しており（ステップＳ２０３のＹＥＳ）、（メモリ内のコネクションＩＤが空のため）コネクションＩＤは同じとみなされるので（ステップＳ２０５のＹＥＳ）、「データリンク：接続」という結果が出力される（ステップＳ２０６）。この後、メモリ内にコネクションＩＤ「１」が記録される（ステップＳ２０９）。次の時刻Ｔ２の監視処理では、ステイタスフラグが「接続」状態を示しているが（ステップＳ２０３のＹＥＳ）、現在のコネクションＩＤ「２」とメモリ内のコネクションＩＤ「１」とが異なるため（ステップＳ２０５のＮＯ）、「データリンク：エラー」という結果が出力される（ステップＳ２０７）。この後、メモリ内のコネクションＩＤが「２」に上書きされる（ステップＳ２０９）。時刻Ｔ３の監視処理では、ステイタスフラグが「接続」状態を示し（ステップＳ２０３のＹＥＳ）、且つ、現在のコネクションＩＤとメモリ内のコネクションＩＤがともに「２」であるため（ステップＳ２０５のＹＥＳ）、「データリンク：接続」という結果が出力される（ステップＳ２０６）。
【００４２】
図４は、表示装置１０１に出力される画面例である。表示画面の各行が、各回の監視処理の判定結果に基づくステイタス情報を示している。この例では、監視処理を実行した日時、カテゴリ（データリンクの判定結果かｐｉｎｇの判定結果か）、イベント（コンピュータとＰＬＣの接続状態）、及び詳細（ＩＰアドレスやコネクションＩＤなど）が表示されている。このようなステイタスの履歴（ログ）を見れば、１１時２８分４５秒〜５０秒の間でコネクションの瞬断が発生していたことが容易にわかる。また、データリンクの接続状態とｐｉｎｇの判定結果の両方が表示されるので、コンピュータ１００とＰＬＣ２００の間のネットワーク不調の原因が、物理層やネットワーク層などの下位層にあるのか、それともアプリケーション層などの上位層にあるのかを判断することも容易である。
【００４３】
なお、上記動作例では、コンピュータ１００がオリジネータ、ＰＬＣ２００がターゲットとなる場合についてのみ説明したが、逆の場合、つまりコンピュータ１００がターゲット、ＰＬＣ２００がオリジネータとなる場合についても同じ処理でデータリンクの状態を監視することができる。この場合は、図４のステイタス情報画面では、イベントの部分に「ターゲット切断」「ターゲット接続」「ターゲットエラー」のように表示すればよい。
【００４４】
（本実施形態の利点）
以上述べた本実施形態の構成によれば、監視処理の実行時点におけるコネクションの有無の検知に加え、前回の監視処理と今回の監視処理の間に発生したコネクションの一時的
な切断（ネットワークの瞬断）をも検知することができる。また、監視処理の実行間隔τをそれほど短く設定する必要はないのでコンピュータ１００等に処理負荷をかけることがない。しかも、特別なハードウェアの追加やネットワークプロトコルの改変・拡張などの必要がないので、実装が容易であるという利点もある。
【００４５】
また、表示装置に表示されるステイタス情報を見ることで、ユーザは、コンピュータ１００とＰＬＣ２００の間のデータリンクが「切断状態」にあるのか、「接続状態」が維持されているのか、「瞬断が発生」したのか、を容易に知ることができる。このようにコネクションの状態を適切に把握できることで、例えばコンピュータ１００やＰＬＣ２００の動作に異常がみられたときにその原因箇所の究明が容易になる。しかも、各回のステイタス情報をその時刻とともに表示するので、「瞬断が発生」した時刻を絞り込むことができる。これにより、例えばコンピュータ１００やＰＬＣ２００の動作に異常がみられたときに、その異常動作が起きた時刻と瞬断が発生した時刻とを比較し因果関係を確認できるので、原因究明が一層容易になる。
【００４６】
なお、上記実施形態ではＣＩＰのデータリンク通信を例に挙げたが、本発明は他の通信プロトコルにも適用することができる。また、上記実施形態では、ｐｉｎｇの判定とデータリンクの判定とを一連の処理フローの中で実行したが、各々の判定を別の処理フローで行ってもよい。別の処理フローで行う場合には、ｐｉｎｇの判定を行うモニタ周期と、データリンクの判定を行うモニタ周期とを別々に設定してもよい。
【００４７】
上記実施形態では、図１（Ａ）、（Ｂ）に示すように、データリンク通信の一方のノードであるコンピュータ１００自体に接続監視装置としての機能をもたせたが、接続監視装置の機能を別のコンピュータに実装することも可能である。図８（Ａ）、（Ｂ）に接続監視装置の他の構成例を示す。図８（Ａ）は、ＰＬＣ２０１とＰＬＣ２０２の間のデータリンク通信をコンピュータ４００から監視する例を、図８（Ｂ）は、コンピュータ５００とＰＬＣ２０１の間のデータリンク通信を別のコンピュータ４００から監視する例を示している。このように接続監視装置として機能するコンピュータ４００が、データリンク通信を行っているノードからステイタスフラグやコネクションＩＤなどの必要な情報を取得することにより、リモートでデータリンク通信の接続状態を監視することができる。
【符号の説明】
【００４８】
１００：コンピュータ
１０１：表示装置
１０２：入力装置
２００：ＰＬＣ
２０１：ＰＬＣ
３００：スレーブ装置
４００：コンピュータ
５００：コンピュータ
ＩＮＳ：産業用ネットワークシステム
ＮＷ１：情報系ネットワーク
ＮＷ２：制御系ネットワーク
【図１】
0005817658.tif 000002
【図２】
0005817658.tif 000003
【図３】
0005817658.tif 000004
【図４】
0005817658.tif 000005
【図５】
0005817658.tif 000006
【図６】
0005817658.tif 000007
【図７】
0005817658.tif 000008
【図８】
0005817658.tif 000009