(57)【要約】【課題】パケットの有効性判定の信頼性を向上し得るパケット処理方法及びパケット処理装置を提供する。【解決手段】パケット処理装置は、第１ＣＰＵ及び第２ＣＰＵを備え、前記第１ＣＰＵが、前記パケットを受信し、前記第２ＣＰＵに前記パケットを転送し、前記受信した前記パケットのデータ本体又は反転データの一方を少なくとも含む第１データを解析し、前記解析結果と前記第２ＣＰＵから転送された解析結果とを比較し、前記比較結果に基づいて、前記パケットの有効性を判定するように構成され、前記第２ＣＰＵが、前記第１ＣＰＵから受け取った前記パケットの前記データ本体又は前記反転データの他方を少なくとも含む第２データを解析し、前記第１ＣＰＵから転送された解析結果と前記解析結果を比較し、前記比較結果に基づいて、前記パケットの有効性を判定するように構成される。【選択図】  図４
2015065581.tif 000002
【特許請求の範囲】
【請求項１】
データ本体と前記データ本体を反転させた反転データとを含むパケットを、第１ＣＰＵ及び第２ＣＰＵを有するパケット処理装置を用いて処理するパケット処理方法であって、
外部装置からネットワーク経由で前記パケットを前記第１ＣＰＵに受信する受信ステップと、
前記第１ＣＰＵから前記第２ＣＰＵに前記パケットを転送するパケット転送ステップと、
前記第１ＣＰＵを用いて、前記受信ステップで受信された前記パケットの前記データ本体又は前記反転データの一方を少なくとも含む第１データを解析して第１データ解析結果を取得する第１解析ステップと、
前記第２ＣＰＵを用いて、前記パケット転送ステップで前記第２ＣＰＵに転送された前記パケットの前記データ本体又は前記反転データの他方を少なくとも含む第２データを解析して第２データ解析結果を取得する第２解析ステップと、
前記第１ＣＰＵから前記第１データ解析結果を前記第２ＣＰＵに転送する第１解析結果転送ステップと、
前記第２ＣＰＵから前記第２データ解析結果を前記第１ＣＰＵに転送する第２解析結果転送ステップと、
前記第１ＣＰＵを用いて、前記第１解析ステップで取得した前記第１データ解析結果と前記第２解析結果転送ステップで前記第２ＣＰＵから転送された前記第２データ解析結果とを比較し、第１データ解析比較結果を取得する第１解析結果比較ステップと、
前記第２ＣＰＵを用いて、前記第１解析結果転送ステップで前記第１ＣＰＵから転送された前記第１データ解析結果と前記第２解析ステップで取得した前記第２データ解析結果とを比較し、第２データ解析比較結果を取得する第２解析結果比較ステップと、
前記第１ＣＰＵ及び前記第２ＣＰＵによってそれぞれ得られた前記第１データ解析比較結果及び前記第２データ解析比較結果に基づいて、前記パケットの有効性を判定する有効性判定ステップと、を備えるパケット処理方法。
【請求項２】
前記パケットは、前記外部装置が前記パケットを送信した時刻ｔｓを示すタイムスタンプをさらに含み、
前記受信ステップにおいて前記パケットが前記第１ＣＰＵによって受信された時刻ｔ１を示す受信時刻情報を前記第１ＣＰＵで生成する生成ステップをさらに備え、
前記パケット転送ステップでは、前記パケットに加えて前記受信時刻情報を前記第１ＣＰＵから前記第２ＣＰＵに転送し、
前記第１解析ステップでは、前記受信ステップで受信された前記パケットの前記タイムスタンプ、および、前記生成ステップで生成された前記受信時刻情報を前記第１ＣＰＵにより解析し、第１通信時間解析結果をさらに取得し、
前記第２解析ステップでは、前記パケット転送ステップで前記第２ＣＰＵに転送された前記パケットの前記タイムスタンプ、および、前記パケット転送ステップで前記第２ＣＰＵに転送された前記受信時刻情報を解析し、第２通信時間解析結果をさらに取得し、
前記第１解析結果転送ステップでは、前記第１データ解析結果とともに前記第１通信時間解析結果を前記第１ＣＰＵから前記第２ＣＰＵに転送し、
前記第２解析結果転送ステップでは、前記第２データ解析結果とともに前記第２通信時間解析結果を前記第２ＣＰＵから前記第１ＣＰＵに転送し、
前記第１解析結果比較ステップでは、前記第１ＣＰＵを用いて、前記第１解析ステップで前記第１ＣＰＵによって取得された前記第１通信時間解析結果と、前記第２解析結果転送ステップで前記第２ＣＰＵから転送された前記第２通信時間解析結果とを比較して、第１通信時間解析比較結果をさらに取得し、
前記第２解析結果比較ステップでは、前記第２ＣＰＵを用いて、前記第１解析結果転送ステップで前記第１ＣＰＵから転送された前記第１通信時間解析結果と、前記第２解析ステップで前記第２ＣＰＵによって取得された前記第２通信時間解析結果とを比較して、第２通信時間解析比較結果をさらに取得し、
前記有効性判定ステップでは、前記第１ＣＰＵ及び前記第２ＣＰＵによってそれぞれ得られた前記第１データ解析比較結果、第２データ解析比較結果、第１通信時間解析比較結果及び第２通信時間解析比較結果に基づいて、前記パケットの有効性を判定する請求項１に記載のパケット処理方法。
【請求項３】
前記第１解析ステップでは、
前記受信ステップで受信された前記パケットの前記タイムスタンプが示す前記時刻ｔｓと、前記生成ステップで生成された前記受信時刻情報が示す前記時刻ｔ１とからパケット通信時間を算出し、
前記パケット通信時間が設定範囲内に含まれるか否かに基づき、前記第１通信時間解析結果を取得し、
前記第２解析ステップでは、
前記パケット転送ステップで前記第１ＣＰＵから前記第２ＣＰＵに転送された前記パケットの前記タイムスタンプが示す前記時刻ｔｓと、前記パケット転送ステップで前記第１ＣＰＵから前記第２ＣＰＵに転送された前記受信時刻情報が示す前記時刻ｔ１とからパケット通信時間を算出し、
前記パケット通信時間が設定範囲内に含まれるか否かに基づき、前記第２通信時間解析結果を取得する請求項２に記載のパケット処理方法。
【請求項４】
前記第１解析ステップにおける前記第１データが、前記受信ステップで受信された前記パケットの前記データ本体又は前記反転データの一方であり、
前記第２解析ステップにおける前記第２データが、前記パケット転送ステップで前記第１ＣＰＵから前記第２ＣＰＵに転送された前記パケットの前記データ本体又は前記反転データの他方である請求項１乃至３の何れか一項に記載のパケット処理方法。
【請求項５】
データ本体と前記データ本体を反転させた反転データとを含むパケットを処理するための第１ＣＰＵ及び第２ＣＰＵを備えるパケット処理装置であって、
前記第１ＣＰＵが、
外部装置からネットワーク経由で前記パケットを受信し、
前記第２ＣＰＵに前記パケットを転送し、
前記受信した前記パケットの前記データ本体又は前記反転データの一方を少なくとも含む第１データを解析して第１データ解析結果を取得し、
前記第１データ解析結果を前記第２ＣＰＵに転送し、
前記第１データ解析結果と前記第２ＣＰＵから転送された前記第２データ解析結果とを比較し、第１データ解析比較結果を取得し、
前記第１データ解析比較結果に基づいて、前記パケットの有効性を判定するように構成され、
前記第２ＣＰＵが、
前記第１ＣＰＵから受け取った前記パケットの前記データ本体又は前記反転データの他方を少なくとも含む第２データを解析して第２データ解析結果を取得し、
前記第２データ解析結果を前記第１ＣＰＵに転送し、
前記第１ＣＰＵから転送された前記第１データ解析結果と前記第２データ解析結果を比較し、第２データ解析比較結果を取得し、
前記第２データ解析比較結果に基づいて、前記パケットの有効性を判定するように構成されたパケット処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、パケット処理方法及びパケット処理装置に関する。
【背景技術】
【０００２】
ネットワークを介してパケットを伝送する場合、パケットが確実に伝送されるためには、パケットの送信装置及び受信装置において適切にパケットを処理することが必要である。
発電プラント等の産業設備においては、安全制御を実現するための制御装置等についてはネットワーク化が進み、制御演算装置（ロジックソルバ）及びＩＯ装置を用いてプラント機器を制御するための安全ネットワークが構築されている。産業設備では、安全制御に失敗すると重大な事故を招く恐れがある。したがって、上述のような安全制御を目的としたネットワークにおいては、安全制御の信頼性を維持するために、制御装置と被制御装置との間でセンサ情報や制御信号を含むパケットを適切に送受信し、各装置により適切にパケットを処理することが重要である。
【０００３】
安全ネットワークにおけるパケットの処理については、例えば、特許文献１（段落０００３参照）に、安全ネットワーク上の機器の間で伝送される安全メッセージの正確さを確実にするために、安全データとして、通常データと反転データをそれぞれ１回ずつ、合計２回送信する、データ冗長性が組み込まれたネットワークプロトコルであるCIP Safetyが用いられることがが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１７８７３０
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、パケットの正常な送受信のためには、通信プロトコル仕様にもよるが、一般的には、メッセージ部（データ本体）のＣＲＣチェック、またはサムチェックといったメッセージの健全性と、シーケンス番号等により、メッセージの二重受信、損失等をチェックするといった手法が挙げられる。
例えば、上述のＣＩＰ  Ｓａｆｅｔｙの規約の場合、データ本体を含むパケットが欠損することなく正常に送受信され、ＩＯ装置等で正常に処理されることを担保するために、データ本体と、データ本体を反転させた反転データを含む、二重化されたパケットを送受信することが定められている。このため、例えばＩＯ装置で受信したパケットのデータ本体及び反転データの双方の整合性のチェックを行うことにより、受信したパケットが正常であるかどうかの判断、すなわちパケットの有効性の判断を行うことで、受信したパケットの有効性判定の信頼性を確保する。
しかし、例えばプラント機器等の安全制御システムのように、より高レベルの信頼性が要求される場合には、さらに信頼性の高い有効性判断を行うことが望まれる。
【０００６】
本発明の少なくとも一実施形態の目的は、パケットの有効性判定の信頼性を向上し得るパケット処理方法及びパケット処理装置を提供することである。
【課題を解決するための手段】
【０００７】
本発明の少なくとも一実施形態に係るパケット処理方法は、
データ本体と前記データ本体を反転させた反転データとを含むパケットを、第１ＣＰＵ及び第２ＣＰＵを有するパケット処理装置を用いて処理するパケット処理方法であって、
外部装置からネットワーク経由で前記パケットを前記第１ＣＰＵに受信する受信ステップと、
前記第１ＣＰＵから前記第２ＣＰＵに前記パケットを転送するパケット転送ステップと、
前記第１ＣＰＵを用いて、前記受信ステップで受信された前記パケットの前記データ本体又は前記反転データの一方を少なくとも含む第１データを解析して第１データ解析結果を取得する第１解析ステップと、
前記第２ＣＰＵを用いて、前記パケット転送ステップで前記第２ＣＰＵに転送された前記パケットの前記データ本体又は前記反転データの他方を少なくとも含む第２データを解析して第２データ解析結果を取得する第２解析ステップと、
前記第１ＣＰＵから前記第１データ解析結果を前記第２ＣＰＵに転送する第１解析結果転送ステップと、
前記第２ＣＰＵから前記第２データ解析結果を前記第１ＣＰＵに転送する第２解析結果転送ステップと、
前記第１ＣＰＵを用いて、前記第１解析ステップで取得した前記第１データ解析結果と前記第２解析結果転送ステップで前記第２ＣＰＵから転送された前記第２データ解析結果とを比較し、第１データ解析比較結果を取得する第１解析結果比較ステップと、
前記第２ＣＰＵを用いて、前記第１解析結果転送ステップで前記第１ＣＰＵから転送された前記第１データ解析結果と前記第２解析ステップで取得した前記第２データ解析結果とを比較し、第２データ解析比較結果を取得する第２解析結果比較ステップと、
前記第１ＣＰＵ及び前記第２ＣＰＵによってそれぞれ得られた前記第１データ解析比較結果及び前記第２データ解析比較結果に基づいて、前記パケットの有効性を判定する有効性判定ステップと、を備える。
【０００８】
上記パケット処理方法によれば、外部装置から受信したパケットについて、２つの異なるＣＰＵである第１ＣＰＵ及び第２ＣＰＵを用いてパケットに含まれるデータ本体及び反転データの解析を行い、第１ＣＰＵ及び第２ＣＰＵそれぞれの解析結果を他方のＣＰＵに転送し、第１ＣＰＵ及び第２ＣＰＵを用いて双方のＣＰＵでの解析結果をそれぞれ比較する。つまり、パケットに含まれるデータ本体及び反転データを含む二重化されたデータの解析とデータ解析結果の比較とを２つのＣＰＵを用いてハードウェアレベルで二重化して行う。このため、単一のＣＰＵでデータ本体及び反転データの解析を行い、それらの解析結果を比較してパケットの有効性の判定を行うのに比べ、パケットの有効性の判定の信頼性が向上する。
【０００９】
幾つかの実施形態では、前記パケットは、前記外部装置が前記パケットを送信した時刻ｔｓを示すタイムスタンプをさらに含み、
前記受信ステップにおいて前記パケットが前記第１ＣＰＵによって受信された時刻ｔ１を示す受信時刻情報を前記第１ＣＰＵで生成する生成ステップをさらに備え、
前記パケット転送ステップでは、前記パケットに加えて前記受信時刻情報を前記第１ＣＰＵから前記第２ＣＰＵに転送し、
前記第１解析ステップでは、前記受信ステップで受信された前記パケットの前記タイムスタンプ、および、前記生成ステップで生成された前記受信時刻情報を前記第１ＣＰＵにより解析し、第１通信時間解析結果をさらに取得し、
前記第２解析ステップでは、前記パケット転送ステップで前記第２ＣＰＵに転送された前記パケットの前記タイムスタンプ、および、前記パケット転送ステップで前記第２ＣＰＵに転送された前記受信時刻情報を解析し、第２通信時間解析結果をさらに取得し、
前記第１解析結果転送ステップでは、前記第１データ解析結果とともに前記第１通信時間解析結果を前記第１ＣＰＵから前記第２ＣＰＵに転送し、
前記第２解析結果転送ステップでは、前記第２データ解析結果とともに前記第２通信時間解析結果を前記第２ＣＰＵから前記第１ＣＰＵに転送し、
前記第１解析結果比較ステップでは、前記第１ＣＰＵを用いて、前記第１解析ステップで前記第１ＣＰＵによって取得された前記第１通信時間解析結果と、前記第２解析結果転送ステップで前記第２ＣＰＵから転送された前記第２通信時間解析結果とを比較して、第１通信時間解析比較結果をさらに取得し、
前記第２解析結果比較ステップでは、前記第２ＣＰＵを用いて、前記第１解析結果転送ステップで前記第１ＣＰＵから転送された前記第１通信時間解析結果と、前記第２解析ステップで前記第２ＣＰＵによって取得された前記第２通信時間解析結果とを比較して、第２通信時間解析比較結果をさらに取得し、
前記有効性判定ステップでは、前記第１ＣＰＵ及び前記第２ＣＰＵによってそれぞれ得られた前記第１データ解析比較結果、第２データ解析比較結果、第１通信時間解析比較結果及び第２通信時間解析比較結果に基づいて、前記パケットの有効性を判定する。
【００１０】
この場合、パケット送信元である外部装置によりパケットが送信された時刻を示すタイムスタンプと、パケット処理装置の第１ＣＰＵが該パケットを受信した時刻ｔ１を示す受信時刻情報とを第１ＣＰＵ及び第２ＣＰＵを用いて解析する。そして、それぞれ解析結果を第１ＣＰＵ及び第２ＣＰＵを用いて比較し、この比較結果に基づいてパケットの有効性判定する。このように通信時間もパケット有効性の判定基準に加えることで、パケットに含まれるデータの解析結果だけに基づいてパケットの有効性を判定する場合に比べて、パケット有効性判定の信頼性がさらに高まる。
【００１１】
幾つかの実施形態では、前記第１解析ステップでは、
前記受信ステップで受信された前記パケットの前記タイムスタンプが示す前記時刻ｔｓと、前記生成ステップで生成された前記受信時刻情報が示す前記時刻ｔ１とからパケット通信時間を算出し、
前記パケット通信時間が設定範囲内に含まれるか否かに基づき、前記第１通信時間解析結果を取得し、
前記第２解析ステップでは、
前記パケット転送ステップで前記第１ＣＰＵから前記第２ＣＰＵに転送された前記パケットの前記タイムスタンプが示す前記時刻ｔｓと、前記パケット転送ステップで前記第１ＣＰＵから前記第２ＣＰＵに転送された前記受信時刻情報が示す前記時刻ｔ１とからパケット通信時間を算出し、
前記パケット通信時間が設定範囲内に含まれるか否かに基づき、前記第２通信時間解析結果を取得する。
【００１２】
この場合、パケットの送信から受信までに要した通信時間が設定範囲内に含まれるか否かに基づいてパケットの有効性判定をする。これにより、パケットに含まれるデータの解析結果のみならず、パケットの配送遅れを考慮したパケット有効性判定が可能となる。
【００１３】
幾つかの実施形態では、前記第１解析ステップにおける前記第１データが、前記受信ステップで受信された前記パケットの前記データ本体又は前記反転データの一方であり、
前記第２解析ステップにおける前記第２データが、前記パケット転送ステップで前記第１ＣＰＵから前記第２ＣＰＵに転送された前記パケットの前記データ本体又は前記反転データの他方である。
この場合、一つのパケットに含まれる二重化されたデータ（データ本体と反転データ）の解析を、その片方については第１ＣＰＵで、他方については第２ＣＰＵで行う。このため、第１ＣＰＵと第２ＣＰＵのいずれもがデータ本体と反転データの両方を解析するのに比べ、処理速度が速い。したがって、単一のＣＰＵで一つのパケットに含まれる二重化されたデータ（データ本体と反転データ）の解析を行う場合に比べて、処理時間の短縮とパケット有効性判定の信頼性向上を両立することができる。
【００１４】
本発明の少なくとも一実施形態に係るパケット処理装置は、
データ本体と前記データ本体を反転させた反転データとを含むパケットを処理するための第１ＣＰＵ及び第２ＣＰＵを備え、
前記第１ＣＰＵが、
外部装置からネットワーク経由で前記パケットを受信し、
前記第２ＣＰＵに前記パケットを転送し、
前記受信した前記パケットの前記データ本体又は前記反転データの一方を少なくとも含む第１データを解析して第１データ解析結果を取得し、
前記第１データ解析結果を前記第２ＣＰＵに転送し、
前記第１データ解析結果と前記第２ＣＰＵから転送された前記第２データ解析結果とを比較し、第１データ解析比較結果を取得し、
前記第１データ解析比較結果に基づいて、前記パケットの有効性を判定するように構成され、
前記第２ＣＰＵが、
前記第１ＣＰＵから受け取った前記パケットの前記データ本体又は前記反転データの他方を少なくとも含む第２データを解析して第２データ解析結果を取得し、
前記第２データ解析結果を前記第１ＣＰＵに転送し、
前記第１ＣＰＵから転送された前記第１データ解析結果と前記第２データ解析結果を比較し、第２データ解析比較結果を取得し、
前記第２データ解析比較結果に基づいて、前記パケットの有効性を判定するように構成される。
【００１５】
上記パケット処理装置によれば、外部装置から受信したパケットについて、２つの異なるＣＰＵである第１ＣＰＵ及び第２ＣＰＵを用いてパケットに含まれるデータ本体及び反転データの解析を行い、第１ＣＰＵ及び第２ＣＰＵそれぞれの解析結果を他方のＣＰＵに転送し、第１ＣＰＵ及び第２ＣＰＵを用いて双方のＣＰＵでの解析結果をそれぞれ比較する。つまり、パケットに含まれるデータ本体及び反転データを含む二重化されたデータの解析とデータ解析結果の比較とを２つのＣＰＵを用いてハードウェアレベルで二重化して行う。このため、単一のＣＰＵでデータ本体及び反転データの解析を行い、それらの解析結果を比較してパケットの有効性の判定を行うのに比べ、パケットの有効性の判定の信頼性が向上する。
【発明の効果】
【００１６】
本発明の少なくとも一実施形態によれば、パケットの有効性判定の信頼性を向上し得る。
【図面の簡単な説明】
【００１７】
【図１】一実施形態に係るパケット処理方法の適用対象である安全ネットワークの構成例を示す図である。
【図２】一実施形態に係るパケット処理方法における処理対象のパケットのフォーマットを示す図である。
【図３】一実施形態に係るパケット処理装置の構成の概略を示す図である。
【図４】一実施形態に係るパケット処理方法のシーケンス図である。
【図５】一実施形態に係るパケット処理方法のシーケンス図である。
【図６】一実施形態に係るパケット処理方法のシーケンス図である。
【図７】パケットのタイムスタンプを生成する処理を示すシーケンス図である。
【発明を実施するための形態】
【００１８】
以下、添付図面に従って本発明の実施形態について説明する。ただし、この実施形態に記載されている構成部品の寸法、材質、形状、その相対的配置等は、本発明の範囲をこれに限定する趣旨ではなく、単なる説明例にすぎない。  
【００１９】
まず、実施形態に係るパケット処理方法の適用対象の一例として安全ネットワークの構成例について説明する。ただし、後述の実施形態に係るパケット処理方法の適用対象は、安全ネットワークに限定されない。
図１に、制御演算装置及びＩＯ装置を用いた安全ネットワークの例を示す。図１に示す安全ネットワークでは、制御演算装置２０とＩＯ装置１０が二重化された通信経路を介して接続される。そして、ＩＯ装置１０には、センサ３１等の安全入力機器や、バルブ３２やアクチュエータ３３等の安全制御の対象となる機器が通信経路を介して接続される。
このような安全ネットワークにおける安全制御の流れとしては、およそ次のようになる。まず、安全入力機器であるセンサ３１は、通信経路を経由してセンサ情報をＩＯ装置１０に送信する。ＩＯ装置１０は、安全入力機器から受け取ったセンサ情報を、通信経路を経由して制御演算装置２０に送信する。制御演算装置２０には予め複数のロジックが定義されており、制御演算装置２０は、ＩＯ装置１０から受け取ったセンサ情報と、そのセンサ情報に対応するロジックに基づいて、バルブ３２等の制御対象に対する制御命令信号を出力情報として生成し、ＩＯ装置１０に送信する。ＩＯ装置１０は、受け取った制御命令を制御対象の機器に送信し、制御対象の機器は受け取った制御命令信号に基づいて作動する。
例えば、プラント内で安全確保のために侵入が禁止されている場所に何らかの異物が侵入した際には、センサが異常を検知し、センサ異常信号であるセンサ情報が上記のようにＩＯ装置１０を経由して制御演算装置２０に送信される。制御演算装置２０は、センサ異常信号を受け取ると、定義されたロジックに基づいて、制御対象の機器を安全側に制御（例えばバルブを閉じる等）するための制御信号を生成し、ＩＯ装置１０に送信する。制御信号は、ＩＯ装置１０から制御対象の機器（例えばバルブ３２）に送られ、制御対象機器は、受け取った制御信号に従って安全側に作動する（例えばバルブ３２を閉じる）。
【００２０】
このような安全ネットワークにおいて、安全制御の信頼性を維持するために、ＩＯ装置と制御演算装置との間でセンサ情報や制御信号を含むパケットを確実に送受信し、ＩＯ装置や制御演算装置により確実にパケットを処理するためのパケット処理方法の実施形態を以下において説明する。
【００２１】
ここでは、図２〜図６を用いて、幾つかの実施形態に係るパケット制御方法及びパケット処理装置について説明する。
図２は一実施形態に係るパケット処理方法における処理対象のパケットのフォーマットを示す図であり、図３は一実施形態に係るパケット処理装置の構成の概略を示す図であり、図４〜図６はそれぞれ一実施形態に係るパケット処理方法のシーケンス図である。  
【００２２】
図２に示すように、実施形態に係る処理対象のパケットは、送信データ（以下においてデータ本体とも称する）と、反転データを含む。データ本体は、安全メッセージ本体であり、反転データはデータ本体をビット反転させたデータである。上述のＣＩＰ  Ｓａｆｅｔｙの規約では、一つのメッセージ（パケット）の中にＡｃｔｕａｌ  ｄａｔａ（実データ）とＣｏｍｐｌｅｍｅｎｔ  Ｄａｔａ（反転データ）をもたせて、メッセージを冗長化（二重化）させることとなっている。幾つかの実施形態に係る処理対象のパケットは、ＣＩＰ  Ｓａｆｅｔｙの規約をベースとしたパケットであり、二重化（冗長化）された形態の安全メッセージを有している。
この場合、前記パケットは、データ本体のＣＲＣ（エラー検出符号）であるＣＲＣＡと、反転データのＣＲＣであるＣＲＣＢも含んでもよい。
また、幾つかの実施形態に係るパケットは、さらにタイムスタンプを含む。タイムスタンプは、パケットを送信する装置がパケットを送信した時刻を示す情報である。この場合、前記パケットは、タイムスタンプのＣＲＣであるＣＲＣＴをさらに含んでもよい。
幾つかの実施形態に係るパケットは、さらに他の情報を含んでいてもよく、例えば、送信データの有効性を示すフラグ等を含むＭｏｄｅ  Ｂｙｔｅを含んでもよい。
【００２３】
実施形態に係るパケット処理方法では、第１ＣＰＵ及び第２ＣＰＵを含む２つのＣＰＵを有するパケット処理装置が用いられる。
図３に示す例示的な実施形態にかかるパケット処理装置１０はＩＯ装置である。このパケット処理装置１０は、ネットワークを介した外部装置との通信を制御するための経路制御部１１と、機器制御ネットワークに配置された安全入力機器や制御対象の機器との信号のやり取りを制御するためのＩＯ制御部１２を備える。経路制御部１１は第１ＣＰＵ１４及び第２ＣＰＵ１６の２つのＣＰＵを有する。第１ＣＰＵ１４と第２ＣＰＵ１６は、同期通信線１８を介して相互に接続される。また、第１ＣＰＵ１４は、外部装置からパケットを受信可能に構成される。図３に示す例示的な実施形態では、第１ＣＰＵ１４は、パケット処理装置１０（ＩＯ装置）に設けられたネットワークインタフェース７を介して外部通信経路と接続されることにより、外部装置からパケットを受信することが可能である。
なお、ＩＯ制御部１２は、ネットワークインタフェース９を介して機器制御ネットワークに接続されてもよい。
【００２４】
幾つかの実施形態では、図４〜図６に示すように、パケット処理方法は、パケットを第１ＣＰＵ１４で受信する受信ステップＳ１１と、第１ＣＰＵ１４から第２ＣＰＵ１６にパケットを転送するパケット転送ステップＳ１３と、第１ＣＰＵ１４及び第２ＣＰＵ１６を用いて、それぞれデータ解析を行う第１解析ステップＳ１４及び第２解析ステップＳ２４と、第１及び第２解析ステップで第１ＣＰＵ１４及び第２ＣＰＵ１６により得られた解析結果をそれぞれ他方のＣＰＵに転送する第１解析結果転送ステップＳ１６及び第２解析結果転送ステップＳ２６と、第１ＣＰＵ１４及び第２ＣＰＵ１６を用いて、それぞれ、自ら取得した解析結果と他方のＣＰＵから転送された解析結果を比較する第１解析結果比較ステップＳ１７及び第２解析結果比較ステップＳ２７と、得られた解析比較結果に基づいてパケットの有効性を判定する有効性判定ステップＳ１００と、を備える。
【００２５】
図４〜６に示すように、受信ステップＳ１１では、外部装置からネットワーク経由でパケットを第１ＣＰＵ１４に受信する。外部装置としては、例えば、図１に示す制御演算装置２０が挙げられる。受信するパケットは、上述したような、データ本体と反転データとを含むパケットであり、例えば図２に示すフォーマットを有するパケットであってもよい。
【００２６】
幾つかの実施形態に係るパケット処理方法は、図６に示すように、受信ステップＳ１１の後に、受信ステップにＳ１１おいてパケットが第１ＣＰＵ１４によって受信された時刻ｔ１を示す受信時刻情報を第１ＣＰＵ１４で生成する生成ステップＳ１２を含んでもよい。幾つかの実施形態では、この受信時刻情報は、パケットが送信装置により送信されてから第１ＣＰＵ１４に受信されるまでに要した通信時間を算出するために用いられる。
【００２７】
幾つかの実施形態では、図４〜６に示すように、パケット転送ステップＳ１３では、第１ＣＰＵ１４で受信したパケットを第２ＣＰＵ１６に転送する。幾つかの実施形態では、第１ＣＰＵ１４と第２ＣＰＵ１６は、図３に示すように同期通信線１８を介して接続されており、この場合、パケット転送ステップＳ１３では、この同期通信線１８を経由して第１ＣＰＵ１４と第２ＣＰＵ１６との間のパケット転送が行われる。
【００２８】
幾つかの実施形態では、図６に示すように、パケット転送ステップＳ１３において、第１ＣＰＵ１４で受信したパケットとともに、第１ＣＰＵ１４で生成した受信時刻情報を第２ＣＰＵ１６に転送する。
【００２９】
幾つかの実施形態では、図４〜６に示すように、第１解析ステップＳ１４は、第１ＣＰＵ１４を用いて、受信ステップＳ１１で受信されたパケットのデータ本体又は反転データの一方を少なくとも含む第１データを解析して第１データ解析結果を取得する。また、第２解析ステップＳ２４では、第２ＣＰＵ１６を用いて、パケット転送ステップＳ１３で第２ＣＰＵ１６に転送されたパケットのデータ本体又は反転データの他方を少なくとも含む第２データを解析して第２データ解析結果を取得する。  図４及び図６に示す例示的な実施形態では、第１解析ステップＳ１４ではデータ本体を含む第１データを第１ＣＰＵ１４を用いて解析し、第２解析ステップ２４では反転データを含む第２データを第２ＣＰＵ１６を用いて解析する。
図５に示す例示的な実施形態では、第１解析ステップＳ１４ではデータ本体及び反転データを含む第１データを第１ＣＰＵ１４を用いて解析し、第２解析ステップ２４ではデータ本体及び反転データを含む第２データを第２ＣＰＵ１６を用いて解析する。つまり、第１ＣＰＵ１４と第２ＣＰＵ１６の双方において、データ本体及び反転データを含むデータの解析を行う。
幾つかの実施形態では、図４〜６に示すように、第１データ及び第２データの解析では、パケットに含まれるＣＲＣＡ及びＣＲＣＢを用いてエラー検出を行う。例えば、第１ＣＰＵ１４においてＣＲＣＡを用いたエラー検出でエラーが検出された場合には、第１ＣＰＵ１４で処理したパケットのうちのデータ本体にエラーが含まれていることを意味する。データ本体に含まれるエラーとは、例えば、通信経路中で何らかの原因によりデータに欠損が生じた場合が挙げられる。この場合、第１データ解析結果及び第２データ解析結果には、ＣＲＣＡ及びＣＲＣＢを用いたエラー検出の結果であるＣＲＣエラー検出結果が含まれる。
【００３０】
幾つかの実施形態では、図６に示すように、第１解析ステップＳ１４では、第１データを解析して第１データ解析結果を取得するとともに（Ｓ１４１）、受信ステップＳ１１で受信されたパケットのタイムスタンプ、および、生成ステップＳ１２で生成された受信時刻情報を第１ＣＰＵ１４により解析し、第１通信時間解析結果をさらに取得し（Ｓ１４２）、第２解析ステップＳ２４では、第２データを解析して第２データ解析結果を取得するとともに（Ｓ２４１）、パケット転送ステップ１３で第２ＣＰＵ１６に転送されたパケットのタイムスタンプ、および、パケット転送ステップ１３で第２ＣＰＵ１６に転送された受信時刻情報を解析し、第２通信時間解析結果をさらに取得してもよい（Ｓ２４２）。
また、幾つかの実施形態では、図６に示すように、第１解析ステップＳ１４において、第１データ解析結果を取得するとともに（Ｓ１４１）、パケットに含まれるＣＲＣＴを用いてタイムスタンプのＣＲＣチェックを行い、受信ステップＳ１１で受信された前記パケットのタイムスタンプが示す時刻ｔｓと、生成ステップＳ１２で生成された受信時刻情報が示す時刻ｔ１とからパケット通信時間を算出し、パケット通信時間が設定範囲内に含まれるか否かをチェックして、これらの結果に基づき第１通信時間解析結果を取得する（Ｓ１４２）。また、幾つかの実施形態では、図６に示すように、第２解析ステップＳ２４において、第２データ解析結果を取得するとともに（Ｓ２４１）、パケットに含まれるＣＲＣＴを用いてタイムスタンプのＣＲＣチェックを行い、パケット転送ステップＳ１３で第１ＣＰＵ１４から第２ＣＰＵ１６に転送されたパケットのタイムスタンプが示す時刻ｔｓと、パケット転送ステップＳ１３で第１ＣＰＵ１４から第２ＣＰＵ１６に転送された受信時刻情報が示す時刻ｔ１とからパケット通信時間を算出し、パケット通信時間が設定範囲内に含まれるか否をチェックして、これらの結果に基づき第２通信時間解析結果を取得する（Ｓ２４２）。
【００３１】
幾つかの実施形態では、図４〜６に示すように、第１解析結果転送ステップＳ１６では、第１ＣＰＵ１４から第１データ解析結果を前記第２ＣＰＵ１６に転送する。また、第２解析結果転送ステップＳ２６では、第２ＣＰＵ１６から第２データ解析結果を第１ＣＰＵ１４に転送する。
幾つかの実施形態では、第１解析結果転送ステップＳ１６及び第２解析結果転送ステップＳ２６では、第１ＣＰＵ１４と第２ＣＰＵ１６を接続する同期通信線１８を経由して、第１ＣＰＵ１４と第２ＣＰＵ１６との間で第１解析結果及び第２解析結果の転送が行われる。
幾つかの実施形態では、図６に示すように、第１解析結果転送ステップＳ１６では、第１データ解析結果とともに第１通信時間解析結果を第１ＣＰＵ１４から第２ＣＰＵ１６に転送し、第２解析結果転送ステップでは、第２データ解析結果とともに第２通信時間解析結果を第２ＣＰＵ１６から第１ＣＰＵ１４に転送する。
【００３２】
幾つかの実施形態では、図４〜６に示すように、第１解析結果比較ステップＳ１７では、第１ＣＰＵ１４を用いて、第１解析ステップＳ１４で取得した第１データ解析結果と第２解析結果転送ステップＳ２６で第２ＣＰＵ１６から転送された第２データ解析結果とを比較し、第１データ解析比較結果を取得する。また、第２解析結果比較ステップＳ２７では、第２ＣＰＵ１６を用いて、第１解析結果転送ステップＳ１６で第１ＣＰＵ１４から転送された第１データ解析結果と第２解析ステップＳ２４で取得した第２データ解析結果とを比較し、第２データ解析比較結果を取得する。
幾つかの実施形態では、第１解析結果比較ステップＳ１７及び第２解析結果比較ステップＳ２７のそれぞれにおいて、第１データ解析結果に含まれるＣＲＣエラー検出結果と、第２データ解析結果に含まれるＣＲＣエラー検出結果を比較して、これらの検出結果の整合性の有無を第１データ解析比較結果及び第２データ解析比較結果として取得する。
幾つかの実施形態では、図６に示すように、第１解析結果比較ステップＳ１７では、第１ＣＰＵ１４を用いて、上記のように第１データ解析比較結果を取得するとともに（Ｓ１７１）、第１解析ステップＳ１４０で第１ＣＰＵ１４によって取得された第１通信時間解析結果と、第２解析結果転送ステップＳ２６で第２ＣＰＵ１６から転送された第２通信時間解析結果とを比較して、第１通信時間解析比較結果をさらに取得し（Ｓ１７２）、第２解析結果比較ステップＳ２７では、第２ＣＰＵ１６を用いて、上記のように第２データ解析比較結果を取得するとともに（Ｓ２７１）、第１解析結果転送ステップＳ１６で第１ＣＰＵ１４から転送された第１通信時間解析結果と、第２解析ステップＳ２４０で第２ＣＰＵ１６によって取得された第２通信時間解析結果とを比較して、第２通信時間解析比較結果をさらに取得してもよい（Ｓ２７２）。
【００３３】
幾つかの実施形態では、有効性判定ステップＳ１００では、第１ＣＰＵ１４及び第２ＣＰＵ１６によってそれぞれ得られた第１データ解析比較結果及び第２データ解析比較結果に基づいて、パケットの有効性を判定する。
幾つかの実施形態では、第１解析結果比較ステップＳ１７で取得したＣＲＣエラー検出結果（第１データ解析比較結果）及び第２解析結果比較ステップＳ２７で取得したＣＲＣエラー検出結果（第２データ解析比較結果）に基づいて、パケットの有効性を判定する。この際、第１解析結果比較ステップＳ１７において、第１データ解析結果及び第2データ解析結果がともにＣＲＣエラーを検出せず、“データ本体に欠損などのエラーが見つからない”との比較結果確定が得られ、かつ、第２解析結果比較ステップＳ２７０において、第１データ解析結果及び第２データ解析結果がともに、ＣＲＣエラーを検出せず、“データ本体に欠損などのエラーが見つからない”との比較結果確定が得られた場合のみ、受信パケットを“有効である”と判断してもよい。
幾つかの実施形態では、第１ＣＰＵ１４及び第２ＣＰＵ１６によってそれぞれ得られた第１データ解析比較結果、第２データ解析比較結果、第１通信時間解析比較結果及び第２通信時間解析比較結果に基づいて、パケットの有効性を判定してもよい。
幾つかの実施形態では、第１データ解析比較結果、第２データ解析比較結果において、ＣＲＣによってデータ本体及び反転データにエラーは全く見つからず、第１通信時間解析結果及び第２通信時間解析比較結果において、パケットの通信時間が設定範囲で有る場合にのみ、パケットが“有効である”と判断してもよい。
幾つかの実施形態では、有効性判定ステップＳ１００は、第１ＣＰＵ１４及び第２ＣＰＵ１６を用いて、外部装置から二重の通信経路（チャネルＡ，チャネルＢとする）を経由して受信した同一内容の２つのパケット（パケットＡ，パケットＢとする）についての第１データ解析比較結果及び第２データ解析比較結果のそれぞれについて、整合性の有無を確定する第１解析比較結果確定ステップＳ１９及び第２解析比較結果確定ステップＳ２９を含んでいてもよい。
【００３４】
幾つかの実施形態に係るパケット有効性判断ステップＳ１００の後のパケット処理装置の処理の流れは、例えば以下のようになる。
パケット処理装置であるＩＯ装置において、受信したパケットが“有効”であると判断されたときは、受信結果を「正常」としてその後の制御に入る。一方、例えば、受信データに欠損があるなど、受信側でパケットに含まれるデータの異常が検知された場合には、受信したパケットが“無効”である旨受信側で判断を行い、受信結果を「異常」として、その後の制御に入る。すなわち、欠陥を含む可能性があるデータについては機器制御のために使用することを控えて、制御対象の機器を安全側に制御する。
【００３５】
以上のように説明した実施形態に係るパケット処理方法及び処理装置によれば、外部装置から受信したパケットについて、パケットに含まれるデータ本体及び反転データを含む二重化されたデータの解析とデータ解析結果の比較とを２つのＣＰＵを用いてハードウェアレベルで二重化して行う。このため、単一のＣＰＵでデータ本体及び反転データの解析を行い、それらの解析結果を比較してパケットの有効性の判定を行うのに比べ、パケットの有効性の判定の信頼性が向上し、安全制御のためのネットワークにおいてパケットの有効性判定の信頼性を向上し得る。
【００３６】
図７は、幾つかの実施形態に係る処理対象のパケットのタイムスタンプを生成する処理を示すシーケンス図であり、パケット送信装置がパケットを送信する際にパケットに付加するタイムスタンプの生成手順を説明するための参考図である。
【００３７】
図７に示す例では、パケット送信装置である制御演算装置と、パケット受信装置であるＩＯ装置との間で、両者の内部時間の差（オフセット）を用いて共通の時間基準を定めることで、一方の装置が他方の装置の内部時間を知ることができる。
以下では、制御演算装置においてタイムスタンプを生成する手順の一例を説明する。
図７に示すタイムスタンプの生成手順においては、まず、オフセット計算を行う。
図７において、まずＩＯ装置から制御演算装置へＩＯ装置時間パケット（T2_io）を定期的に送信する（Ｓ６１）。なお、このＩＯ装置時間パケットは、本発明の実施形態に係るパケット処理方法の処理対象のパケットとは異なるパケットである。
次に、制御演算装置は、ＩＯ装置時間パケット（T2_io）を受信した受信時間（T2_ls）を保存する（Ｓ６２）。
そして、受信したＩＯ装置時間パケット（Ｔ２_ｉｏ）と、受信時間（Ｔ２_ｌｓ）との差分（Ｔ２_ｌｓ−Ｔ２_ｉｏ；オフセット）を計算し、Ｔ_ｏｆｆ_ｉｏとして保存する（Ｓ６３）。
制御演算装置は、ＩＯ装置に対してパケットを送信する際、Ｓ６３で保存したオフセット時間（Ｔ_ｏｆｆ_ｉｏ）を用いて、制御演算装置がパケットを送信する際の時刻にオフセット時間（Ｔ_ｏｆｆ_ｉｏ）を加算して、ＩＯ装置時間基準のタイムスタンプを生成する（Ｓ６４）。
【符号の説明】
【００３８】
１０          ＩＯ装置（パケット処理装置）
１１          経路制御部
１２          ＩＯ装置制御部
１４          第１ＣＰＵ
１６          第２ＣＰＵ
１８          同期通信線
２０          制御演算装置
２１          経路制御部
２２          演算制御部
２３          インタフェース制御部
【図１】
2015065581.tif 000003
【図２】
2015065581.tif 000004
【図３】
2015065581.tif 000005
【図４】
2015065581.tif 000006
【図５】
2015065581.tif 000007
【図６】
2015065581.tif 000008
【図７】
2015065581.tif 000009