(57)【要約】【課題】通信の異常停止原因の究明作業負荷の軽減及び作業時間の短縮と異常検出の精度向上を実現するプログラマブルコントローラを提供する。【解決手段】プログラマブルコントローラ１は、通信部２を介して送受信される通信パケットのヘッダ部とデータ部とのすべてを保存する第一の記憶部３と異常発生時にその記憶部３のデータを解析して原因を究明する解析部４を有する。異常発生時の直近の所定数の通信パケットの情報が記憶されるので、その記憶された情報に基づいて、解析部４が異常原因を究明する。【選択図】図１
2011134061.tif 000002
【特許請求の範囲】
【請求項１】
周辺機器を制御するための信号を含む通信パケットを送受信しながら前記周辺機器の制御を行うプログラマブルコントローラにおいて、
前記通信パケットを保存する記憶部と、通信の異常停止時に前記記憶部に保存されている前記通信パケットを解析し、解析結果を基に異常停止原因を究明する解析部とを備えること、
を特徴とするプログラマブルコントローラ。
【請求項２】
前記記憶部は、前記通信パケットのログ解析に際してのログデータとして、異常停止直前の所定数の前記通信パケットのヘッダ部の情報、又はヘッダ部とデータ部の情報を保存することを特徴とする請求項１に記載のプログラマブルコントローラ。
【請求項３】
前記通信パケットを送受信する通信部を備えており、
前記通信部は、前記通信の前記異常停止時に、前記記憶部３への前記通信パケットの保存を停止するとともに、前記解析部へ解析処理の開始要求を自動的に行うことを特徴とする請求項１又は２に記載のプログラマブルコントローラ。
【請求項４】
前記解析部で行われる解析の項目及び深さについてレベルが変更可能であることを特徴とする請求項１〜３のいずれか一項に記載のプログラマブルコントローラ。
【請求項５】
前記解析の前記レベルは、前記通信パケットのうち古いものから順にシーケンス番号と確認応答番号が正常な関係であるか否かを判定していくことにより、前記通信パケットの欠落の有無を解析する第１のレベルを含んでいることを特徴とする請求項４に記載のプログラマブルコントローラ。
【請求項６】
前記解析の前記レベルは、前記第一のレベルよりもレベルが高く、通信の強制切断の有無に設定された第２レベルとを含むことを特徴とする請求項５に記載のプログラマブルコントローラ。
【請求項７】
前記解析部がした解析結果を記憶する別の記憶部を備えていることを特徴とする請求項１〜６のいずれか一項に記載のプログラマブルコントローラ。
【請求項８】
前記解析部がした解析結果を表示する表示部を備えていることを特徴とする請求項１〜７のいずれか一項に記載のプログラマブルコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルコントローラ（以下、「ＰＬＣ」という）と、イーサネット（登録商標）ＬＡＮで接続されたＰＬＣ周辺の機器との間で生じた異常停止の原因を自動的に究明するＰＬＣに関する。
【背景技術】
【０００２】
図６（ａ）はアプリケーションプロトコルで遣り取りされる通信パケットの構成を示す概略図であり、制御情報によって構成されるヘッダ部１１と、それに続くデータ部１２とで構成される。ＰＬＣとＰＬＣ周辺の機器との間のデータ送受信において、ユーザが必要とする情報はデータ部１２のみであるため、ヘッダ部１１の情報は送信完了とともに破棄される。
【０００３】
図６（ｂ）は通信パケットのヘッダ部１１の構成の一例を示す図である。ヘッダ部１１には、パケット長１３と、送信元アドレス１４と、宛先アドレス１５と、送信元ポート番号１６と、宛先ポート番号１７と、通信の通番であるシーケンス番号１８と、受信したデータに対してどこまで受信できたのかを表す確認応答番号１９と、パケット内のデータ部１２の開始位置を表すヘッダ長２０と、パケットの種別を表すコードビット２１と、パケットの整合性を検査するためのチェックサム２２との情報が含まれている。通信の異常停止が発生した場合には、異常停止直前に遣り取りされた通信パケットのヘッダ部１１の情報を解析することが通信異常の原因究明に寄与する。
【０００４】
図７は通信の異常停止原因を究明するための従来の方法を示す概略図である。従来、通信の異常停止が発生した場合には、その原因を究明するために、ＰＬＣ８とイーサネットＬＡＮ７で接続されたＰＬＣの周辺機器９との間で遣り取りされる通信パケットを通信パケット取込装置１０を使用して取り込み、異常停止時にその直前に遣り取りされたパケットのヘッダ部１１の情報をユーザが解析を行っていた。通信パケット取込装置１０はユーザが構成するシステムには含まれないことが多いため、異常停止発生後にその原因究明のためにシステム内に追加し、異常停止の再現を待ち、再現後に異常停止の原因となる要因が取り除かれるまでの間接続し続けることとなる。
【０００５】
複数台のＰＬＣを含むネットワークと１台の開発支援装置で構成されており、通信障害時に開発支援装置が通信異常の原因究明を行うＰＬＣシステムが提案されている（特許文献１、２）。開発支援装置は、区間分割による要因の絞り込み、又はルーティングテーブル解析による要因の絞り込みを行い、通信が正常な範囲と異常な範囲とを明確化した上でユーザに通知を行い、ユーザは絞り込まれた範囲で、通信経路の状態を確認することで、原因の究明に要する時間の短縮化を図っている。また、通信機器の運転状態等を示す多種類のデータを収集するＰＬＣと、収集データを解析して基地局内機器の状態を診断する診断装置から成る通信施設の管理システムが提案されている（特許文献３）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−１８１５７２号公報
【特許文献２】特開２００６−２７７７２８号公報
【特許文献３】特開２００２−１３２９９５号公報
【非特許文献】
【０００７】
【非特許文献１】Ｗ・リチャード・スティーヴンス『詳解ＴＣＰ／ＩＰ  Ｖｏｌ．１プロトコル』、ピアソンエデュケーション、橘康雄、井上尚司訳、２０００年
【発明の概要】
【発明が解決しようとする課題】
【０００８】
このような従来のやり方では、以下のような問題があった。即ち、異常発生後にシステム構成内に通信パケット取込装置を新たに追加し、異常再現時に原因の究明を行うことから即時性がない。異常現象の再現を待ってその原因の究明作業を実施するため、最初の異常現象発生時から原因究明作業開始までのタイムラグが生じてしまう。再現性の低い現象であった場合には、このタイムラグは１ヶ月以上に及ぶこともある。また、異常原因が究明され、その要因が取り除かれるまで、本来、システムには必要のない通信パケット取込装置などの通信監視装置を接続し続ける必要がある。
【０００９】
ユーザが自分で通信パケットを解析するため、ユーザはアプリケーションプロトコルで遣り取りされる通信パケットの構成を理解していなければ判断できない。通信パケットの構成を理解していても、異常原因の解明のために多くの時間と手間を必要とする。また、通信異常の形態が多岐にわたるため、ノウハウを持ったユーザでないと異常原因の究明が難しい。
【００１０】
本発明はこのような問題点を解決するためになされたものであり、原因究明のための作業負荷の軽減及び作業時間の短縮と通信パケットの欠落などによる通信順序の異常を自動的に検出することによる異常検出の精度向上を目的としている。
【課題を解決するための手段】
【００１１】
この発明によるプログラマブルコントローラは、周辺機器を制御するための信号を含む通信パケットを送受信しながら前記周辺機器の制御を行うプログラマブルコントローラであって、前記通信パケットを保存する記憶部と、通信の異常停止時に前記記憶部に保存されている前記通信パケットを解析し、解析結果を基に異常停止原因を究明する解析部とを備えることを特徴としている。
【００１２】
このプログラマブルコントローラによれば、通信の異常停止時には前記記憶部に保存されている前記通信パケットを解析部で解析するので、異常停止の再現を待つ必要がなく、解析結果を基に異常停止原因を究明することができる。
【００１３】
このプログラマブルコントローラにおいて、前記記憶部は、前記通信パケットのログ解析に際してのログデータとして、異常停止直前の所定数の前記通信パケットのヘッダ部の情報、又はヘッダ部とデータ部の情報を保存することができる。異常停止の原因は異常停止直前の通信パケットの情報に隠れていると予想されるので、異常停止直前の所定数の前記通信パケットのヘッダ部の情報、又はヘッダ部とデータ部の情報を保存することで、異常停止の原因を十分な確度で究明可能と推測される。
【００１４】
このプログラマブルコントローラにおいて、前記通信パケットを送受信する通信部を備えており、前記通信部は、前記通信の前記異常停止時に、前記記憶部３への前記通信パケットの保存を停止するとともに、前記解析部へ解析処理の開始要求を自動的に行うことができる。このように通信部の機能を備えることにより、通信の異常停止時には異常停止の原因究明を自動的に行うことができる。
【００１５】
このプログラマブルコントローラにおいて、前記解析部で行われる解析の項目及び深さについてレベルが変更可能である。前記解析の前記レベルは、前記通信パケットのうち古いものから順にシーケンス番号と確認応答番号が正常な関係であるか否かを判定していくことにより、前記通信パケットの欠落の有無を解析する第１のレベルを含むことができる。また、前記解析の前記レベルは、前記第一のレベルよりもレベルが高く、通信の強制切断の有無に設定された第２レベルを含むことができる。
【００１６】
このプログラマブルコントローラにおいて、前記解析部がした解析結果を記憶する別の記憶部を備えることができる。また、前記解析部がした解析結果を表示する表示部を備えることができる。このような別の記憶部、表示部を備えることにより、ユーザに対して、通信パケットの異常や通信順序の異常等の異常停止の原因を、エラーコード等で容易に判断できるように資することができる。
【発明の効果】
【００１７】
本発明によれば、通信パケットを記憶部に保存しておき、通信の異常停止時に記憶部に保存されている前記通信パケットを解析部で解析して解析結果を基に異常停止原因を自動的に究明するので、異常原因究明のための作業負荷の軽減及び通信パケットの欠落などによる通信順序の異常検出の精度向上を見込むことができる。
【図面の簡単な説明】
【００１８】
【図１】図１は、本発明の実施例１におけるプログラマブルコントローラの内部構成図である。
【図２】図２は、本発明の実施例１にしたがって、解析部が実行する処理を示すフローチャートである。
【図３】図３は、本発明の実施例１のレベル１において解析部が参照するパケットデータの構成図である。
【図４】図４は、本発明の実施例１にしたがって、解析部が実行する処理を示すフローチャートである。
【図５】図５は、本発明の実施例１のレベル２において解析部が参照するパケットデータの構成図である。
【図６】図６は、アプリケーションプロトコルで遣り取りされる通信パケットの構成図である。
【図７】図７は、通信の異常停止原因を究明するための従来方法を示す概略図である。
【発明を実施するための形態】
【００１９】
以下、本発明を実施するための形態について図１〜図５の図面を基に説明する。なお、これらの図面と実施例は本発明の一実施形態を説明するための図面と実施例であって、これらの図面と実施例によって本発明が限定されるものではない。
【実施例１】
【００２０】
図１は、本発明の実施例１におけるプログラマブルコントローラ（ＰＬＣ）の内部構成図である。図１において、本発明によるＰＬＣ１は、ＰＬＣ１がイーサネットＬＡＮ７を介して図示しない他の装置と通信をする通信部２、通信パケットのヘッダ部１１とデータ部１２とのすべてを保存する第一の記憶部３、第一の記憶部３に格納されたパケットデータを用いて通信の停止原因を解析する解析部４を備えている。また、ＰＬＣ１は、第一の記憶部３に格納されたパケットデータや解析部４において得られた解析結果などを表示する表示部５、解析部４において得られた解析結果をコード化して格納する第二の記憶部６を備えている。なお、第一の記憶部３と第二の記憶部６は、図１では異なるメモリ上に配置されているが、同一メモリ上に配置されていてもよい。
【００２１】
解析部４で実行される解析処理に対して、ユーザは解析レベルを設定することができる。解析レベルとしてはレベル０〜５のような表現が考えられる。レベルの数字が大きくなるにしたがって解析項目数が多くなり、又は解析の深さを深くしたよりきめの細かい解析が実行されることになる。
【００２２】
このような特徴を備えた本発明の実施例において、解析レベルがレベル２であり、その解析項目は通信パケットの欠落（レベル１）と強制切断の有無（レベル２）である例としてＰＬＣの作動について、図２及び図４のフローチャートを用いて詳細を説明する。
【００２３】
まず、ＰＬＣと周辺機器とが通信している間、その通信パケットのヘッダ部１１及びデータ部１２を第一の記憶部３へ保存していく。このとき第一の記憶部３には直近の所定数の前記通信パケットが保存される（Ｓ１）。通信が停止すると、通信部２から第一の記憶部３への前記通信パケットの保存を停止し、通信部２は解析部４へ解析処理の開始要求を発行する。また、解析処理の開始要求はユーザが直接入力してもよい。前記開始要求を受けた解析部４は第一の記憶部３に保存された通信パケットデータを用いて解析処理を実行する。
【００２４】
解析処理の開始要求がある（Ｓ２）と、解析部４は、レベル１としてＳ３の処理を実行する。Ｓ３は第一の記憶部３に保存された通信パケットのうち古いものから順にシーケンス番号１８と確認応答番号１９が正常な関係であるか否かを判定していく処理である。
【００２５】
この判定処理について図３を参照して説明する。図３はレベル１において解析部４が参照するパケットデータの構成図の例であり、ここで注目した例は、第一の記憶部３に保存された通信パケットデータにおいて、Ｓ３で判定するシーケンス番号１８及び確認応答番号１９の関係を表すために必要となる通信順序２３と、送信元アドレス１４と、送信元ポート番号１６と、宛先アドレス１５と、宛先ポート番号１７と、コードビット２１（図６（ｂ））から得られるパケット種別２４と、シーケンス番号１８と、確認応答番号１９と、パケット長１３とヘッダ長２０（図６（ｂ））とから算出できるデータサイズ２５とから成っている。
【００２６】
通信順序２３が１番である通信パケット（以下、「１番」という）に注目すると、シーケンス番号１８は「５」であり、確認応答番号１９は「１」である。また、１番のパケット種別２４は「送信」であり、そのデータサイズ２５は「１０」となっている。１番に対する応答は、通信順序２３が２番の通信パケット（以下、「２番」という）である。１番の応答であることを示すために、２番のシーケンス番号１８は１番の確認応答番号１９と同じ「１」となる。さらに１番のデータを正常に受信したことを示すために、２番の確認応答番号１９は、１番のシーケンス番号１８である「５」にデータサイズ２５である「１０」を足した「１５」となる。前述したＳ２では、このようなシーケンス番号１８と確認応答番号１９とデータサイズ２５との関係が一意であることを利用して、パケットの欠落が発生していたか否かを判定する（Ｓ４）。
【００２７】
Ｓ４でパケットの欠落が認められた場合には所定のエラーコードを第二の記憶部６に保存する（Ｓ５）と共に表示部５に前記エラーコードを表示して（Ｓ６）解析を終了する。Ｓ４でパケットの欠落が認められなかった場合には、未実行の項目の有無を判定し（Ｓ７）、未実行の項目がなければ終了し、未実行の項目があれば、次にレベル２として通信の強制切断が発生していたか否かの判定処理Ａ（図４）を実行する。
【００２８】
図５はレベル２において解析部４が参照するパケットデータの構成図であり、ここで注目した例は、第一の記憶部３に保存された通信パケットデータにおいて、通信順序２３と、送信元アドレス１４と、送信元ポート番号１６と、宛先アドレス１５と、宛先ポート番号１７と、パケット種別２４と、シーケンス番号１８と、確認応答番号１９と、データサイズ２５とから成っている。
【００２９】
通信順序２３が２５番である通信パケット（以下、「２５番」という）に注目すると、パケット種別２４が「強制切断」である。この場合２５番の宛先アドレス１５が「１９２．１６８．０．１」である機器が通信不能状態に陥ったと考えることができ、これによって異常停止箇所の絞込みが可能となる。
【００３０】
図４に示す処理Ａにおいては、Ｓ１０に示すように、通信の停止直前に第一の記憶手段に保存されていた通信パケットにて強制切断が発生していたか否かを判定する。即ち、Ｓ１１の強制切断ありか否かの判定（Ｓ１１）において、通信の強制切断が認められた場合には所定のエラーコードを第二の記憶部６に保存する（Ｓ１２）と共に表示部５に前記エラーコードを表示して（Ｓ１３）、解析を終了する。Ｓ１１で通信の強制切断が認められなかった場合にも、処理Ａとしては終了するが、引き続きチェックサム２２の値が正常であるか否かなどの項目についてチェック処理を実行することが考えられる。
【００３１】
以上のように各解析項目に対してパケットデータの解析を実行し、異常停止と判断した場合には該当項目に対応したエラーコードを第二の記憶部６に保存すると共に表示部５に前記エラーコードを表示するため、ユーザは表示部５に表示されたエラーコードを見て、通信パケットの異常や通信順序の異常を容易に判断することができる。
【実施例２】
【００３２】
実施例１において解析部４で実行する解析手法の一端を示した。しかし、ユーザが通信パケットの解析において独自のノウハウを持っている場合も考えられる。そこで解析部４に保持された解析プログラムの項目にない解析をユーザが行いたい場合にも、表示部５から直接第一の記憶部３に格納されたデータを参照することによって外部機器を接続することなくユーザ独自のノウハウを生かした解析作業を実施することが可能となる。
【符号の説明】
【００３３】
１  本発明のプログラマブルコントローラ（ＰＬＣ）      ２  通信部
３  第一の記憶部                      ４  解析部
５  表示部                            ６  第二の記憶部
７  イーサネットＬＡＮ                ８  ＰＬＣ
９  周辺機器                        １０  監視手段
１１  ヘッダ部                        １２  データ部
１３  パケット長                      １４  送信元アドレス
１５  宛先アドレス                    １６  送信元ポート番号
１７  宛先ポート番号                  １８  シーケンス番号
１９  確認応答番号                    ２０  ヘッダ長
２１  コードビット                    ２２  チェックサム
２３  通信順序                        ２４  パケット種別
２５  データサイズ
【図１】
2011134061.tif 000003
【図２】
2011134061.tif 000004
【図３】
2011134061.tif 000005
【図４】
2011134061.tif 000006
【図５】
2011134061.tif 000007
【図６】
2011134061.tif 000008
【図７】
2011134061.tif 000009