(57)【特許請求の範囲】
【請求項１】
ネットワークを介して受信し暗号化されたフィールド機器用のソフトウェアのうち、正当性が担保されたソフトウェアをフィールドバスを介して前記フィールド機器に送信する検証装置であって、
復号化鍵を予め記憶する記憶手段と、
この復号化鍵に基づいて前記ソフトウェアを復号化できると、前記ソフトウェアが正当であると判定する正当性判定手段と、
前記正当であると判定されたソフトウェアを復号化された状態で前記フィールド機器に前記フィールドバスを介して送信するソフトウェア送信手段を備え、
前記検証装置は前記フィールドバスに接続され、
前記正当性判定手段は、前記フィールドバスを介して送信されてきた前記ソフトウェアの正当性を判定することを特徴とする検証装置。
【請求項２】
フィールドバスを介して受信したホスト機器により暗号化されたフィールド機器用のソフトウェアのうち、正当性が担保されたソフトウェアを前記フィールドバスを介して前記フィールド機器に送信する検証装置であって、
前記検証装置は前記フィールドバスに接続され、
前記検証装置に向けて、暗号化された前記ソフトウェアを前記フィールドバスを介して送信するホスト機器が保持する暗号化鍵に対応した復号化鍵を予め記憶する記憶手段と、
この復号化鍵に基づいて、前記ホスト機器から送信されてきた前記ソフトウェアを復号化できると、前記ソフトウェアが正当であると判定する正当性判定手段と、
前記正当であると判定されたソフトウェアを復号化された状態で前記フィールド機器に前記フィールドバスを介して送信するソフトウェア送信手段を備えることを特徴とする検証装置。
【請求項３】
前記正当であると判定されたソフトウェアが正常であるか否かを判定する正常判定手段を備え、
前記ソフトウェア送信手段は、前記正常判定手段により正常であると判定されたソフトウェアを前記フィールド機器に前記フィールドバスを介して送信することを特徴とする請求項１または２記載の検証装置。
【請求項４】
前記正常判定手段が、
前記正当であると判定されたソフトウェアの形式が予め記憶されているソフトウェアの仕様情報に基づいたものであると、このソフトウェアは正常であると判定することを特徴とする請求項３記載の検証装置。
【請求項５】
暗号化されたソフトウェアを受信する外部通信インタフェースを備えることを特徴とする請求項１〜４いずれかに記載の検証装置。
【請求項６】
請求項１〜５いずれかに記載の検証装置と、
前記フィールドバスを介してソフトウェアを取得し、実行するソフトウェアを更新するフィールド機器と、
前記フィールドバスを介して前記フィールド機器および前記検証装置と接続され、前記ソフトウェアを暗号化して前記検証装置に送信するホスト機器と、
を備えたことを特徴とするフィールド機器ソフトウェア更新システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フィールドバスを介して入れ替えが行われるフィールド機器のソフトウェアを検証する検証装置とこれを用いたフィールド機器ソフトウェア更新システムに関する。
【背景技術】
【０００２】
従来のフィールド機器は、浄水場やプラント等に設置され、物理量（例えば、流量、水位、圧力、温度等）を計測し、その計測結果に応じた電気信号を出力するものであり、圧力／差圧伝送器、各種流量計、温度計、バルブ・ポジショナ等である。たとえばフィールド機器は、オートメーション及びプロセス制御の技術において、センサとしてプロセス変数を測定し、アクチュエータとして制御変数を制御するためにしばしば用いられている。
【０００３】
また、たとえばインダストリアルオートメーションにおけるプロセス制御システムとして、フィードバック制御などの制御ループを構成する流量計や温度計などのセンサ、アクチュエータ、コントローラを含むフィールド機器を、プラント等に敷設されたFoundation Fieldbus FF-H1（登録商標）、PROFIBUS-PA（登録商標）などの２線式バス給電型のフィールドバス等のネットワークにより相互に接続し、フィールド制御システムとして構築することが提案されている。
【０００４】
フィールド制御システムは、フィールド機器の動作スケジュールが設定され、フィールド機器で構成される制御ループが計画通りに動作するように構成されている。このときフィールド機器は、あらかじめ設定される製品仕様のファンクションブロック実行時間（ＦＢ実行時間）に基づき所定のファンクションブロック（アナログインプットファンクションブロックＡＩ、ＰＩＤファンクションブロックＰＩＤ等）に応じた動作を行う。
【０００５】
このようなフィールド制御システムにおいて、プロセスの改善等を目的とした機能分散を進める上で、フィードバック制御などの制御ループを構成する流量計や温度計などのセンサ、アクチュエータ、コントローラを含むフィールド機器にも自己診断機能などの拡張目的や、機能が豊富になったために発生する可能性も大きくなったバグを修正する目的でフィールドバスの通信機能を用いてフィールド機器に実装されるソフトウェアまたはソフトウェアを入れ替える（更新する）フィールド機器ソフトウェア更新システムが検討されている。
【０００６】
図５は従来のフィールド機器ソフトウェア更新システムの構成図であり、図５において、従来のフィールド機器ソフトウェア更新システムは、ＦＦ−Ｈ１バスに接続している機器間の通信を統括する機器でリンクマスタの役割を担うホスト機器１と、ＦＦ−Ｈ１バス １００に接続しＦＦ−Ｈ１バス１００を介してホスト機器１および他のフィールド機器と通信可能なフィールド機器２、３とから構成される。
【０００７】
ここで、フィールド機器２、３は、たとえばプロセス量を測定するセンサと、ＦＦ−Ｈ１バス１００を介して他のフィールド機器またはその他の機器とデータ通信する通信手段と、フィールド機器２、３の各機能を制御しソフトウェアの入れ替えを行なうソフトウェアダウンロード機能（ＳｏｆｔＤＬ機能）を実行する演算制御手段と、ソフトウェアまたはソフトウェア、センサからの測定信号を出力信号に変換するための演算部分のプログラムなどを格納する複数のプログラム格納領域を有する記憶手段とから構成される。
【０００８】
フィールド機器２、３の演算制御手段が実行するＳｏｆｔＤＬ機能は、自機器（通常はフィールド機器）のソフトウェアをＦＦ−Ｈ１通信を介して他機器（通常はホスト機器）から受信し、更新する機能である。本機能により、フィールド機器のソフトウェアをプラントに設置したまま更新することが可能となる。
【０００９】
このような構成で従来のソフトウェア更新システムは、以下の（１）〜（３）のようにフィールド機器のソフトウェアを更新する。以下、説明を簡単にするために、フィールド機器２をソフトウェア更新する対象機器（ターゲット機器）として説明する。
【００１０】
（１）ホスト機器１はフィールド機器２に対して、ソフトウェアを送信する。
（２）フィールド機器２は、ホスト機器１から新規ソフトウェアのデータをＦＦ−Ｈ１バス１００を介して受信し、記憶手段中の動作中のソフトウェアが格納されていない記憶領域に受信した新規ソフトウェアを記憶する。
（３）ターゲット機器２は、ソフトウェアを全て受信して機器に保存し終わると、受信したソフトウェアで動作開始する。具体的にはフィールド機器２は、ダウンロード後に再起動し、プログラム記憶領域に格納された新規ソフトウェアを動作する。つまりフィールド機器２では、動作中のソフトウェアの書き換えが行われることになる。
【００１１】
このように、従来のフィールド機器は、フィールドバスの通信機能を用いてフィールド
機器に実装されるソフトウェアまたはソフトウェアを入れ替えることができる。
【００１２】
従来のフィールド機器のソフトウェア・ソフトウェアを更新するフィールド機器ソフトウェア更新システムに関連する先行技術文献として、下記の特許文献１がある。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２００５−１７３７４７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
しかしながら、従来のフィールド機器ソフトウェア更新システムでは、ＦＦ−Ｈ１プロトコルに則った通信が可能であれば作業者が把握していない未確認機器がＦＦ−Ｈ１バスに参加することが可能であるので、未確認機器がＳｏｆｔＤＬ機能を有する場合、ＳｏｆｔＤＬ機能に対応しているフィールド機器であればいずれに対してもソフトウェアを送信することができてしまい、作業者の意図しないソフトウェア送信が実行されてしまうという問題点があった。
【００１５】
図６は、従来のフィールド機器ソフトウェア更新システムの問題点を説明する説明図であり、図６において、図５のソフトウェア更新システムのＦＦ−Ｈ１バス１００にＦＦ−Ｈ１プロトコルに則った通信が可能であり作業者が把握していない未確認機器５０が接続される。
【００１６】
ホスト機器１、フィールド機器２、３は、ＦＦ−Ｈ１バス１００を介して通信する。また未確認機器５０はＦＦ−Ｈ１バス１００に接続され、ホスト機器１、フィールド機器２、３と通信する。
【００１７】
この場合（図６）、未確認機器５０は、動作保証がなされていないソフトウェアをフィールド機器２に送信するケースがある。このような場合の従来のフィールド機器ソフトウェア更新システムの動作を以下に示す。
【００１８】
（１）未確認機器５０は、フィールド機器２に対してソフトウェアを送信する（ソフトウェアダウンロードを開始する）。
（２）フィールド機器２は、未確認機器５０が仕様に則って処理を実行しているので送信されたソフトウェアを受信する（ダウンロードする）。
（３）フィールド機器２は、ホスト機器１から新規ソフトウェアのデータをＦＦ−Ｈ１バス１００を介して受信し、記憶手段中の動作中のソフトウェアが格納されていない記憶領域に受信した新規ソフトウェアを記憶する。
（４）ターゲット機器２は、ソフトウェアを全て受信して機器に保存し終わると、未確認機器５０から受信したソフトウェアで動作開始する。具体的にはフィールド機器２は、ダウンロード後に再起動しプログラム記憶領域に格納された新規ソフトウェアを動作する。つまりフィールド機器２では動作中のソフトウェアの書き換えが行われることになる。
【００１９】
このように、フィールド機器２は、ＦＦ−Ｈ１プロトコルに則った通信が可能な未確認機器５０から動作保証されていないソフトウェアをダウンロードしてソフトウェアの書き換えを行なってしまうことにより、フィールド機器２が正常に動作しない可能性がある点で問題である。具体的には以下の点で問題となる。
【００２０】
（Ａ）作業者が意図しないソフトウェア（ファームウェア）が書き込まれてしまう
未確認機器５０により、既設置のフィールド機器２、３に作業者が意図しないソフトウェア（ファームウェア）を書き込むことが可能となってしまうという問題点があった。
たとえば、加害目的を有する第三者がＦＦ−Ｈ１バス１００に接続した他のフィールド機器（図示せず）の動作を妨害するような振る舞いをするソフトウェアを提供する未確認機器５０をＦＦ−Ｈ１バス１００に接続させてフィールド機器２、３にダウンロードさせることにより、ＦＦ−Ｈ１バス１００に接続した機器同士の通信が正常に行えず、系を混乱してしまうという問題点があった。
【００２１】
（Ｂ）ソフトウェア（ファームウェア）が消去されてしまう
未確認機器５０により、既設置のフィールド機器２、３にダウンロードするソフトウェア（ファームウェア）を空データとすることで、ソフトウェア（ファームウェア）を送信した機器を動作不能にすることが可能となってしまうという問題点がある。この場合、復旧するためには、各フィールド機器を制御系（ＦＦ−Ｈ１バス）から取り外し、内部の基板を交換する作業が必要となり、膨大な損害が発生してしまうという問題点があった。
【００２２】
また、複数台のフィールド機器にソフトウェアを送信する場合では、従来技術ではホスト機器１に負荷がかかってしまい、（メインとなる）制御系の動作に支障が出る可能性があるという問題点、また、確実にソフトウェアの更新ができなくなってしまうという問題点もあった。
【００２３】
本発明は上述の問題点を解決するものであり、その目的は、作業者が意図しないソフトウェア更新を防ぐ（検証済みのソフトウェアのみをフィールド機器にダウンロードさせる）ことが可能な検証装置およびこれを備えたフィールド機器ソフトウェア更新システムを実現することにある。
【課題を解決するための手段】
【００２４】
このような課題を達成するために、本発明のうち請求項１記載の発明は、
ネットワークを介して受信し暗号化されたフィールド機器用のソフトウェアのうち、正当性が担保されたソフトウェアをフィールドバスを介して前記フィールド機器に送信する検証装置であって、
復号化鍵を予め記憶する記憶手段と、
この復号化鍵に基づいて前記ソフトウェアを復号化できると、前記ソフトウェアが正当であると判定する正当性判定手段と、
前記正当であると判定されたソフトウェアを復号化された状態で前記フィールド機器に前記フィールドバスを介して送信するソフトウェア送信手段を備え、
前記検証装置は前記フィールドバスに接続され、
前記正当性判定手段は、前記フィールドバスを介して送信されてきた前記ソフトウェアの正当性を判定することを特徴とする検証装置である。
【００２５】
請求項２記載の発明は、
フィールドバスを介して受信したホスト機器により暗号化されたフィールド機器用のソフトウェアのうち、正当性が担保されたソフトウェアを前記フィールドバスを介して前記フィールド機器に送信する検証装置であって、
前記検証装置は前記フィールドバスに接続され、
前記検証装置に向けて、複合化された前記ソフトウェアを前記フィールドバスを介して送信するホスト機器が保持する暗号化鍵に対応した復号化鍵を予め記憶する記憶手段と、
この復号化鍵に基づいて、前記ホスト機器から送信されてきた前記ソフトウェアを復号化できると、前記ソフトウェアが正当であると判定する正当性判定手段と、
前記正当であると判定されたソフトウェアを復号化された状態で前記フィールド機器に前記フィールドバスを介して送信するソフトウェア送信手段を備えることを特徴とする検証装置である。
【００２６】
請求項３記載の発明は、請求項１または２記載の検証装置であって、
前記正当であると判定されたソフトウェアが正常であるか否かを判定する正常判定手段と、
前記正常判定手段により正常であると判定されたソフトウェアを前記フィールド機器に前記フィールドバスを介して送信する前記ソフトウェア送信手段を備えることを特徴とする。
【００２７】
請求項４記載の発明は、請求項３記載の検証装置であって、
前記正常判定手段が、
前記正当であると判定されたソフトウェアの形式が予め記憶されているソフトウェアの仕様情報に基づいたものであると、このソフトウェアは正常であると判定することを特徴とする。
【００２８】
請求項５記載の発明は、請求項１〜４いずれかに記載の検証装置であって、
暗号化されたソフトウェアを受信する外部通信インタフェースを備えることを特徴とする。
【００２９】
請求項６記載の発明は、
請求項１〜５いずれかに記載の検証装置と、
前記フィールドバスを介してソフトウェアを取得し、実行するソフトウェアを更新するフィールド機器と、
前記フィールドバスを介して前記フィールド機器および前記検証装置と接続され、前記ソフトウェアを暗号化して前記検証装置に送信するホスト機器と、
を備えたことを特徴とするフィールド機器ソフトウェア更新システム。
【発明の効果】
【００３０】
このように、本発明の検証装置およびこれを用いたフィールド機器ソフトウェア更新システムによれば、検証装置の正当性判定手段がネットワークを介して受信した暗号化されたフィールド機器用のソフトウェアのうち、記憶手段に予め記憶される復号化鍵に基づいてソフトウェアを復号化できるとこのソフトウェアが正当であると判定し、検証装置のソフトウェア送信手段が正当であると判定されたソフトウェアを復号化された状態でフィールド機器にフィールドバスを介して送信することにより、正当性が担保されたソフトウェアのみを更新することができる。
このため、フィールド機器がソフトウェアの更新を原因とする異常な動作をすることがなくなるため、制御系全体（ＦＦ−Ｈ１バス）の安定性を向上させることができる。
【００３１】
また、本発明に係る検証装置はフィールド機器ソフトウェア更新システムに係る専用装置であるため、検証装置内部のプログラムの入れ替えを容易に行うことができる。これにより、検証装置が受け持つ機能（ソフトウェアの検証機能）の機能向上が容易に行える。
【００３２】
また、本発明に係る検証装置は、ホスト機器から受信し正当性が担保されたソフトウェアをターゲットとなるフィールド機器に送信するため、従来技術のようにホスト機器が直接フィールド機器にソフトウェアを送信することがなくなる。このため本発明によれば、複数台のフィールド機器にソフトウェアを送信する場合でも、ホスト機器は検証装置への１回分のソフトウェアの送信処理だけでよく、ホスト機器の負荷を下げることができる。
【図面の簡単な説明】
【００３３】
【図１】本発明の検証装置およびこれを用いたフィールド機器ソフトウェア更新システムの一実施例の構成図である。
【図２】図１の検証装置およびこれを備えたフィールド機器ソフトウェア更新システムの動作説明図である。
【図３】図１の検証装置とこれを用いたフィールド機器ソフトウェア更新システムの他の動作説明図である。
【図４】図１に係る検証装置に別のネットワークインタフェースを付加した場合のフィールド機器ソフトウェア更新システムの構成図である。
【図５】従来のフィールド機器ソフトウェア更新システムの構成図である。
【図６】従来のフィールド機器ソフトウェア更新システムの問題点を説明する説明図である。
【発明を実施するための形態】
【００３４】
＜実施例１＞
図１は、本発明の検証装置およびこれを用いたフィールド機器ソフトウェア更新システムの一実施例の構成図であり、図５と共通する部分には同一の符号を付けて適宜説明を省略する。図１と図５との相違点は、ネットワークを介して受信した暗号化されたフィールド機器用のソフトウェアデータ（フィールド機器用のソフトウェアを含むデータ。以下、ソフトウェアという）のうち、正当性が担保されたソフトウェアをフィールドバスを介してフィールド機器に送信する検証装置を備える点で異なる。
【００３５】
（フィールド機器ソフトウェア更新システムの構成）
図１において、本発明のフィールド機器ソフトウェア更新システムは、ＦＦ−Ｈ１バス１００に接続している機器間の通信を統括する機器でリンクマスタの役割を担うホスト機器１と、ＦＦ−Ｈ１バス １００に接続しＦＦ−Ｈ１バス１００を介してホスト機器１および他のフィールド機器、検証装置４と通信可能なフィールド機器２、３と、ネットワークを介して受信した暗号化されたフィールド機器２、３用のソフトウェアのうち正当性が担保されたソフトウェアをフィールドバス１００を介してフィールド機器２、３に送信する検証装置４とから構成される。
【００３６】
なお、本発明の検証装置とこれを用いたフィールド機器ソフトウェア更新システムが検証・更新するフィールド機器用のソフトウェアは、ファームウェアも対象とし、フィールド機器用のプログラム・アプリケーションであればどのようなファームウェアまたはソフトウェアであってもよい。
【００３７】
ホスト機器１、フィールド機器２、３および検証装置４は、それぞれＦＦ−Ｈ１バス１００に接続され、ＦＦ−Ｈ１バス１００を介してデータ通信を行う。
【００３８】
なおホスト機器１、フィールド機器２、３および検証装置４は、それぞれＦＦ−Ｈ１バス１００に接続されるとあるが、特に限定されるものではなく、フィールド制御に係るデータ通信が可能なものであればどのようなフィールドバスやＩＰ（internet protocol）を用いたネットワークに接続されるものであっても構わない。
【００３９】
（ホスト機器１の構成）
ホスト機器１は、特に図示しないが、ＦＦ−Ｈ１バス１００を介してフィールド機器２または３用のソフトウェアを暗号化して検証装置４に送信する演算制御手段と、検証装置４が有する復号化鍵に対応する（共通の）暗号化鍵を記憶する記憶手段と、ＦＦ−Ｈ１バス１００などのフィールドバスを介して検証装置４、フィールド機器２、３とデータ通信をする通信手段とを備える。
具体的には、ホスト機器１の演算制御手段は、記憶手段に記憶されている暗号化鍵に基づきフィールド機器２または３用のソフトウェアを暗号化し、通信手段を制御してＦＦ−Ｈ１バス１００を介して検証装置４に送信する。
【００４０】
（フィールド機器２、３の構成）
フィールド機器２、３は、検証装置４のみからしかソフトウェアを受信（ダウンロード）できない設定になっており、その判別に必要な情報を保持している。たとえばフィールド機器２、３の演算制御手段は、記憶手段に記憶されている検証装置のアドレス（ネットワークアドレス）からのデータ（ソフトウェア）のみを受信する。
【００４１】
具体的にはフィールド機器２、３は、特に図示しないが、たとえばプロセス量を測定するセンサと、ＦＦ−Ｈ１バス１００を介して他のフィールド機器またはその他の機器とデータ通信する通信手段と、フィールド機器２、３の各機能（機能ブロックの実行機能）を制御するとともに検証装置４からのソフトウェアのみを受信してソフトウェアの入れ替えを行なうソフトウェアダウンロード機能（ＳｏｆｔＤＬ機能）を実行する演算制御手段と、ソフトウェア、センサからの測定信号を出力信号に変換するための演算部分のプログラムなどを格納する複数のプログラム格納領域を有する記憶手段を備える。
【００４２】
フィールド機器２、３の演算制御手段が実行するＳｏｆｔＤＬ機能は、自機器（通常はフィールド機器）のソフトウェアをＦＦ−Ｈ１通信を介して検証装置４から受信し、更新する機能である。本機能により、フィールド機器のソフトウェアをプラントに設置したまま更新することが可能となる。また検証装置４からのソフトウェアのみを受信して入れ替えを行なうことにより、作業者が意図しないソフトウェア更新を防ぐことができる（いいかえれば検証済みのソフトウェアのみをダウンロードすることができる）。
【００４３】
（検証装置４の構成）
検証装置４は、フィールド機器２または３がダウンロードするソフトウェアの検証と、ターゲットとなるフィールド機器２または３へのソフトウェアの送信を実行する。
またすべての機器は、検証装置４へソフトウェアデータの送信が可能である。検証装置４は、受信したデータ（ソフトウェア）の検証を行い、検証に合格したソフトウェアのみをターゲットとなるフィールド機器２または３へ送信する。
【００４４】
検証装置４が受信するデータ（ソフトウェア）は、暗号化されている。検証装置４は、あらかじめホスト機器１が保持する暗号化鍵に対応した、共通の復号用鍵を保持する。この復号用鍵を用いてホスト機器１から受信したデータ（ソフトウェア）を復号し、復号後のソフトウェアを照合することにより、ソフトウェアのダウンロードが、作業者の意図するものであるかが判定できる。
【００４５】
具体的には検証装置４は、主に記憶手段４３に記憶されるソフトウェアの正当性を判定する正当性判定手段４１と、記憶手段４３に記憶されるソフトウェアが正常であるか否かを判定する正常判定手段４２、通信手段４４を介して受信したソフトウェアを記憶する記憶手段４３と、ＦＦ−Ｈ１バス１００を介してホスト機器１からソフトウェアを受信する通信手段４４と、通信手段４４を制御してソフトウェアを更新させるターゲット機器であるフィールド機器２または３にＦＦ−Ｈ１バス１００を介して送信するソフトウェア送信手段４５と、各手段の動作を制御する演算制御手段から構成される。
【００４６】
通信手段４４はＦＦ−Ｈ１バス（図示せず）と相互に接続されると共に演算制御手段に相互に接続され、記憶手段４３も演算制御手段に相互に接続される。正当性判定手段４１、正常判定手段４２、ソフトウェア送信手段４５もまた相互に接続され、通信手段４４、記憶手段４３、演算制御手段と接続される。
【００４７】
なお正当性判定手段４１、正常判定手段４２、ソフトウェア送信手段４５は、演算処理手段が記憶手段４３に格納されているＯＳなどを起動して、このＯＳ上で記憶手段に格納されたプログラムを読み出して実行することにより記憶手段に展開された機能ブロックでもよく、図１ではこれらを機能ブロックとして表現している。
【００４８】
正当性判定手段４１は、記憶手段４２に記憶されている復号化鍵に基づいて、ネットワークを介して受信した暗号化されたフィールド機器用のソフトウェアを復号化できると、ソフトウェアが正当であると判定する。
【００４９】
正常判定手段４２は、正当性判定手段４１により正当であると判定されたソフトウェアが正常であるか否かを判定する。具体的には、正常判定手段４２は、正当性判定手段４１により正当であると判定されたソフトウェアの形式が予め記憶手段４２に記憶されているソフトウェアの仕様情報に基づいたものに一致すると、このソフトウェアは正常であると判定する。
【００５０】
記憶手段４３は、検証装置４として動作するためのプログラムやアプリケーションなどを記憶するハードディスク、ＲＡＭ、ＲＯＭなどからなる。記憶手段４３は、ホスト装置１が保持する暗号化鍵に対応した復号化鍵またはユーザが予め用意した暗号化鍵に対応した復号化鍵を記憶する。また記憶手段４３は、ＦＦ−Ｈ１バス１００を介して取得した（ダウンロードした）ソフトウェアを記憶する。
【００５１】
通信手段４４は、ＦＦ−Ｈ１バス１００を介してホスト機器１およびフィールド機器２、３または他の機器と通信するためのインタフェースの役割を担う。
【００５２】
ソフトウェア送信手段４５は、通信手段４４を制御して、正当であると判定されたソフトウェアを復号化された状態でフィールド機器２、３にＦＦ−Ｈ１バス１００を介して送信する。
【００５３】
図示しない演算制御手段は、各手段の動作を制御するＣＰＵ（Central Processing Unit）などからなるものでもよく、具体的には、演算制御手段は記憶手段４３に格納されているＯＳなどを起動して、このＯＳ上で記憶手段に格納されたプログラムを読み出して実行することにより検証装置４全体を制御し、ネットワークを介して受信した暗号化されたフィールド機器用のソフトウェアのうち、正当性が担保されたソフトウェアをフィールドバスを介してフィールド機器に送信する。
【００５４】
また演算制御手段は、通信手段４４がホスト機器１から暗号化されたソフトウェアを受信すると正当性判定手段４１を制御してこのソフトウェアの正当性を判定させる。演算制御手段は、判定の結果として正当性が担保されたソフトウェアをソフトウェア送信手段４５を制御してフィールド機器２または３に送信させる。
【００５５】
このような構成で本発明に係る検証装置およびこれを備えたフィールド機器ソフトウェア更新システムは、たとえば以下（１−１）〜（１−７）の動作を行なう。図２は図１の検証装置およびこれを備えたフィールド機器ソフトウェア更新システムの動作説明図であり、図２中（１−１）〜（１−７）は以下の動作説明と対応するものである。
【００５６】
（１−１）ホスト機器１はソフトウェアを更新するターゲット機器（対象機器）となるフィールド機器のアドレスを検証装置４に通知するために、フィールド機器２のアドレス情報を含むデータ（以下、ターゲット機器情報という）を送信する。
【００５７】
（１−２）ホスト機器１は、記憶手段に記憶している暗号化鍵に基づき暗号化したフィールド機器２用のソフトウェアを検証装置４に送信する。
【００５８】
なおホスト機器１は、暗号化したソフトウェアとともにターゲット機器情報を検証装置４に送信するものでもよいし、暗号化したソフトウェアおよびターゲット機器情報を送信するのであれば送信順（（１−１）、（１−２））の先後は限定するものではない。
【００５９】
（１−３）検証装置４は、ホスト機器１から暗号化されたソフトウェアのデータをＦＦ−Ｈ１バス１００を介して受信し、記憶手段に記憶する。
具体的には検証装置４の演算制御手段はホスト機器１から受信した暗号化したソフトウェアを記憶手段に記憶する。
【００６０】
（１−４）検証装置４の正当性判定手段４１は、受信したデータを復号し、復号後のソフトウェアを検証する。作業者の意図する正しいソフトウェアと判定されれば、（１−５）の動作に移行する。正しくないと判定されれば、以降の処理は実行しない。
具体的には、検証装置４の正当性判定手段４１は、記憶手段４２に記憶されている復号化鍵に基づいて、ネットワークを介して受信した暗号化されたフィールド機器用のソフトウェアを復号化できると、ソフトウェアが正当であると判定する。これにより、作業者が意図したソフトウェアを受信したことを把握できる。
【００６１】
（１−５）検証装置４のソフトウェア送信手段４５は、検証装置４に送信されたソフトウェアを、ホスト機器１から通知されたターゲット機器情報に基づきこのソフトウェアのターゲットであるフィールド機器２に送信する。
具体的には、検証装置４のソフトウェア送信手段４５は、通信手段４４を制御して、正当性判定手段４１により正当である（または正常判定手段４２により正常である（後述））と判定されたソフトウェアを復号化された状態でターゲット機器であるフィールド機器２にＦＦ−Ｈ１バス１００を介して送信する。
また、検証装置４のソフトウェア送信手段４５は、ソフトウェアに検証装置４のアドレスまたは検証装置固有ＩＤを付加してターゲットであるフィールド機器に送信する。
【００６２】
（１−６）フィールド機器２は、アドレスまたは機器固有ＩＤにより検証装置４を判別し、検証装置４から送信されたソフトウェアのみを受け付けて記憶手段に記憶する。この時、送信するソフトウェアは、暗号化されていないものである。
具体的には、フィールド機器２の演算制御手段は検証装置４からソフトウェアを受信すると、受信したデータに付加されているアドレスまたは機器固有ＩＤが、記憶手段に記憶されている検証装置４のアドレスまたは検証装置４の機器固有ＩＤに一致する場合は検証装置４から送信されたソフトウェアのみを受け付けて記憶手段に記憶する。
なおフィールド機器は、ソフトウェアを受信するときは検証装置４からのデータのみを受信するが、フィールド制御通信に係るデータ受信では他のフィールド機器からのデータも受け付ける。
【００６３】
（１−７）フィールド機器２は、ソフトウェアを全て受信して機器に保存し終わると、受信したソフトウェアで動作開始する。具体的にはフィールド機器２は、ダウンロード後に再起動し、プログラム記憶領域に格納された新規ソフトウェアを動作する。つまりフィールド機器２では、動作中のソフトウェアの書き換えが行われることになる。
【００６４】
なお本発明の検証装置とこれを用いたフィールド機器ソフトウェア更新システムは、ホスト機器から受信したフィールド機器用のソフトウェアのうち、正当性が担保され、正常であるソフトウェアのみをターゲットであるフィールド機器に送信するものでもよい。
【００６５】
具体的には上述の（１−４）と（１−５）の動作処理の間に以下の動作（Ａ）を行なうものでもよい。
（Ａ）検証装置４の正常判定手段４２は、正当性判定手段４１により正当であると判定されたソフトウェアが正常であるか否かを判定する。（作業者の意図する）正常なソフトウェアと判定されれば、（１−５）の動作に移行する。）正常なソフトウェアと判定されれば、以降の処理は実行しない。
具体的には正常判定手段４２は、正当性判定手段４１により正当であると判定されたソフトウェアの形式が予め記憶手段４２に記憶されているソフトウェアの仕様情報に基づいたものに一致すると、このソフトウェアは正常であると判定する。
【００６６】
また正常判定手段４２は、ソフトウェア内の特定の場所に予め定められたデータがあると、このソフトウェアは正常であると判定するものでもよい。
たとえば検証装置４は、あらかじめユーザが定義した正常なソフトウェアとして判定するための基準となる情報（定義情報）を記憶手段に記憶し、正常判定手段４２はこの定義情報に基づき、ユーザが定義した方法で、ターゲット機器に送信するソフトウェアをチェックするものでもよい。また検証装置４の正常判定手段４２は、定義情報に基づきホスト機器１からの受信し復号化できたソフトウェア内の特定の場所にある特定のデータがあるかどうかをチェックして、ソフトウェア内の特定の場所に予め定められたデータがあると、このソフトウェアは正常であると判定する。これにより、本発明の検証装置４はユーザの定義情報から外れユーザの意図していないようなソフトウェアの更新を防ぐ（フィールド機器が検証済みのソフトウェアのみをダウンロードさせる）ことができる。
【００６７】
さらに正常判定手段４２は、暗号化されたソフトウェアに基づき算出したハッシュ値が、暗号化されたソフトウェアとともに受信したこのソフトウェアのハッシュ値と一致すると、このソフトウェアは正常であると判定するものでもよい。
たとえばホスト機器１がソフトウェアを暗号化する際にハッシュを計算しておき、暗号化データと共にハッシュ値を検証装置４に送信する。正常判定手段４２は、これらのハッシュ値を照合して一致するソフトウェアを正常であるものとして判定する。これにより、本発明の検証装置４は通信路等でのデータ化け等の通信エラーをチェックでき、フィールド機器がデータ化け等を含むソフトウェアに更新することを防ぐことができる。
【００６８】
このように、本発明の検証装置およびこれを用いたフィールド機器ソフトウェア更新システムは、検証装置の正当性判定手段がネットワークを介して受信した暗号化されたフィールド機器用のソフトウェアのうち、記憶手段に予め記憶される復号化鍵に基づいてソフトウェアを復号化できるとこのソフトウェアが正当であると判定し、検証装置のソフトウェア送信手段が正当であると判定されたソフトウェアを復号化された状態でフィールド機器にフィールドバスを介して送信することにより、作業者が意図しないソフトウェア更新を防ぐことができる。
【００６９】
また、本発明の検証装置とこれを用いたフィールド機器ソフトウェア更新システムは、作業者が把握していない未確認機器がＦＦ−Ｈ１バス１００に参加する場合でも、未確認機器による作業者が意図しないソフトウェア更新を防ぐことができる。図３は図１の検証装置とこれを用いたフィールド機器ソフトウェア更新システムの他の動作説明図であり、図３中（ケースＡ）〜（ケースＣ）のケースごとに以下の動作説明をする。
【００７０】
（ケースＡ）：未確認機器からフィールド機器２（ターゲット）へソフトウェアを送信する（SoftDLを実行する）場合
フィールド機器２は、検証装置４からのみ、ソフトウェアのダウンロード（受信）を受け付ける設定になっている。この場合フィールド機器２では、ソフトウェアの送信元がアドレス等から未確認機器であると判別できるため、フィールド機器２はダウンロード要求（受信要求）を拒否する。
【００７１】
具体的には、フィールド機器２の演算制御手段は未確認機器からソフトウェアを受信すると、受信したデータに付加されているアドレスまたは機器固有ＩＤが、記憶手段に記憶されている検証装置４のアドレスまたは検証装置４の機器固有ＩＤに一致しないので未確認機器から送信されたソフトウェアのダウンロード要求（受信要求）を拒否する。
【００７２】
（ケースＢ）：ホスト機器１からフィールド機器２（ターゲット）へソフトウェアを送信する（SoftDLを実行する）場合
フィールド機器２は検証装置４以外からのソフトウェアのダウンロード要求（受信）は受け付けないため、ケースＡと同様に、フィールド機器２はホスト機器１からのソフトウェアのダウンロード要求（受信要求）を拒否する。
【００７３】
具体的には、フィールド機器２の演算制御手段はホスト機器１からソフトウェアを受信すると、受信したデータに付加されているアドレスまたは機器固有ＩＤが、記憶手段に記憶されている検証装置４のアドレスまたは検証装置４の機器固有ＩＤに一致しないのでホスト機器１から送信されたソフトウェアのダウンロード要求（受信要求）を拒否する。
【００７４】
（ケースＣ）：未確認機器から検証装置４を介してフィールド機器２（ターゲット）に送信（SoftDLを実行）するソフトウェアが正常でない場合
未確認機器は、検証装置４にデータ送信を実行する。検証装置４は、未確認機器からのソフトウェアを受信する。検証装置４は、全てのソフトウェアを受信し終えると、正当性判定手段４１によりソフトウェアを復号化して送信の正当性の検証を実行する。
正当であると判定されると（正当性が担保されると）、検証装置４の正常判定手段４２は、ダウンロードされたソフトウェアの正常判定を実行する。このソフトウェアは、検証装置４の正常判定手段４１により正常ではないと判定されるので、検証がパスせず、上述の（１−５）のソフトウェア送信処理に移行しないことになる。
【００７５】
このように、本発明の検証装置とこれを用いたフィールド機器ソフトウェア更新システムは、作業者が把握していない未確認機器がＦＦ−Ｈ１バス１００に参加する場合でも、未確認機器による作業者が意図しないソフトウェア更新を防ぐことができる。
【００７６】
この結果、本発明の検証装置およびこれを用いたフィールド機器ソフトウェア更新システムは、検証装置の正当性判定手段がネットワークを介して受信した暗号化されたフィールド機器用のソフトウェアのうち、記憶手段に予め記憶される復号化鍵に基づいてソフトウェアを復号化できるとこのソフトウェアが正当であると判定し、検証装置のソフトウェア送信手段が正当であると判定されたソフトウェアを復号化された状態でフィールド機器にフィールドバスを介して送信することにより、正当性が担保され、正常なソフトウェアのみを更新することができる。
このためフィールド機器がソフトウェアの更新を原因とする異常な動作をすることがなくなるため、制御系全体（ＦＦ−Ｈ１バス１００）の安定性を向上させることができる。
【００７７】
また、本発明に係る検証装置はフィールド機器ソフトウェア更新システムに係る専用装置であるため、検証装置内部のプログラムの入れ替えを容易に行うことができる。これにより、検証装置が受け持つ機能（ソフトウェアの検証機能）の機能向上が容易に行える点で有効である。
【００７８】
また、本発明に係る検証装置は、ホスト機器から受信し正当性が担保されたソフトウェアをターゲットとなるフィールド機器に送信するため、従来技術のようにホスト機器が直接フィールド機器にソフトウェアが行うことがなくなる。このため本発明によれば、複数台のフィールド機器にソフトウェアを送信する場合でも、ホスト機器は検証装置への１回分のソフトウェアの送信処理だけでよく、ホスト機器の負荷を下げることができる点で有効である。
【００７９】
＜その他の実施例１＞
なお、本発明の検証装置は、検証処理が通信処理の影響（処理遅延など）を受けないようにするため、通信用の演算制御手段（通信用ＣＰＵ）と検証用の演算制御手段（検証用ＣＰＵ）の２個備えるものであってもよい。
【００８０】
この場合、通信用ＣＰＵは、通信手段４４、ソフトウェア送信手段４５を制御して、ＦＦ−Ｈ１バス１００を介しホスト機器１・フィールド機器２、３との通信を制御するＣＰＵである。具体的には通信用ＣＰＵは、ホスト機器１から検証装置４に送信されたソフトウェアの受信と、検証済みのソフトウェアをターゲット機器であるフィールド機器２または３へ送信する処理を各手段を制御して実行する。
また、検証用ＣＰＵは、正当性判定手段４１と正常判定手段４２を制御して記憶手段４３にダウンロードして記憶したソフトウェアの検証を実行する。
【００８１】
＜その他の実施例２＞
なお、本発明に係る検証装置およびこれを用いたフィールド機器ソフトウェア更新システムは、ホスト機器１が暗号化したソフトウェアを検証装置４に送信するとあるが、特にこれに限定するものではなく、別途作業者が管理・保持している暗号化鍵に基づき別途端末装置などで暗号化されたターゲット機器（フィールド機器２または３）のソフトウェアを、検証装置４に図示しない入力手段（専用インタフェースなど）を介して入力するものでもよい。この方法によればＦＦ−Ｈ１バス１００による通信路の障害による影響を排除できるため、より確実に正常なソフトウェアを検証装置に入力できる点で有効である。
【００８２】
＜その他の実施例３＞
なお、本発明に係る検証装置およびこれを用いたフィールド機器ソフトウェア更新システムは、暗号化鍵と復号化鍵を用いてソフトウェアの正当性を検証しているが、たとえば秘密鍵暗号方式を導入することで、実現するものでもよい。
具体的には、あらかじめ検証装置４の記憶手段およびホスト機器１の記憶手段は共通の暗号化鍵（秘密鍵）を記憶する。
【００８３】
ホスト機器１はこの共通の暗号化鍵に基づきフィールド機器２または３用のソフトウェアを暗号化して送信する。検証装置４の正当性判定手段４１は、ホスト機器１からの暗号化されたソフトウェアを共通の暗号化鍵を用いて復号化し正当性の判定を行なう。
【００８４】
検証装置４およびホスト機器１に記憶されている共通の暗号化鍵は公開されていないため、未確認機器はこの暗号化鍵に基づきソフトウェアを暗号化できない。よって、第三者が未確認機器を使用して何らかのデータを検証装置４に対して送信しても、検証装置４は送信されたデータが暗号化されていないため、作業者が意図しないデータ送信であるとして正当性はないものと判定する。
このため、本発明の検証装置およびこれを用いたフィールド機器ソフトウェア更新システムは、未確認機器による作業者が意図しないソフトウェア更新を防ぐことができる。
【００８５】
＜その他の実施例４＞
また本発明に係る検証装置およびこれを用いたフィールド機器ソフトウェア更新システムは、検証装置４に、インターネットなどの汎用的なネットワークに接続可能なネットワークインタフェースを追加することにより、インターネットサイトを用いたソフトウェアの検証を可能とするものでもよい。
【００８６】
図４は図１に係る検証装置に別のネットワークインタフェースを付加した場合のフィールド機器ソフトウェア更新システムの構成図であり図１と共通する部分には同一の符号を付けて適宜説明を省略する。
【００８７】
図４において、検証装置４はネットワークインタフェース４６を備え、ネットワークインタフェース４６を介してインターネット等の汎用的なネットワーク２００に接続し、ネットワーク２００を介して検証情報管理サーバと接続する。
【００８８】
検証情報管理サーバは、予め計算された更新予定のソフトウェアを検証するための検証情報（ＣＲＣ、ハッシュなど）を記憶する記憶手段と、ネットワークを介して入力されたソフトウェアの情報（ＩＤ、リビジョンなど）に応じ検証情報を含むデータを図示しない通信手段を介して検証装置４に送信する演算制御手段を備える。
【００８９】
なお検証情報管理サーバの演算制御手段は、これらの検証情報をソフトウェアの情報(ＩＤ、リビジョンなど)から生成できる一意のアドレスによりアクセス可能であって、このアドレスに応じた検証情報をネットワークを介して提供するインターネットサイトを提供するものでもよい。
【００９０】
検証装置４の正常判定手段４２は、ホスト機器１からのソフトウェアの情報（ＩＤ、リビジョンなど）を含むデータをネットワークを介して検証情報管理サーバに送信し、検証情報管理サーバから取得したソフトウェアの検証情報に基づきソフトウェアの正常・異常を判定する。
【００９１】
検証装置４の正常判定手段４２はソフトウェアの情報（ＩＤ、リビジョンなど）からアドレス等を生成し、通信手段を制御してこのアドレスに基づきネットワークを介してソフトウェアの検証情報を取得してソフトウェアの正常・異常を判定するものでもよい。
【００９２】
このような構成で、本発明の検証装置およびこれを用いたフィールド機器ソフトウェア更新システムは、ネットワークを介してソフトウェアの検証情報を取得してソフトウェアの正常・異常を判定する。たとえば以下の（２−１）〜（２−６）の動作を行なう。
【００９３】
（２−１）ホスト機器１は、記憶手段に記憶している暗号化鍵に基づき暗号化したフィールド機器２用のソフトウェアを検証装置４に送信する。
（２−２）検証装置４は、ホスト機器１から暗号化されたソフトウェアのデータをＦＦ−Ｈ１バス１００を介して受信し、記憶手段に記憶する。
【００９４】
（２−３）検証装置４の正当性判定手段４１は、受信したデータを復号し、復号後のソフトウェアを検証する。作業者の意図する正しいソフトウェアと判定されれば、（３−４）の動作に移行する。正しくないと判定されれば、以降の処理は実行しない。
【００９５】
（２−４）認証装置４の正常判定手段４２は、受信したソフトウェアの情報（ＩＤ、リビジョンなど）を含むデータをネットワークを介し検証情報管理サーバに送信する。
【００９６】
（２−５）検証情報管理サーバは、記憶手段に記憶されているネットワークを介して受信したソフトウェアの情報（ＩＤ、リビジョン）と一致するソフトウェアの検証情報を含むデータを図示しない通信手段を介して検証装置４に送信する。
なお、認証装置４は、受信したソフトウェアの情報（ＩＤ、リビジョンなど）から、インターネットサイトのアドレスを生成し、この生成したアドレスに基づき検証情報管理サーバが提供するインターネットサイトにアクセスし、そこに掲載してある検証情報を取得するものでもよい。
【００９７】
（２−６）認証装置４の正常判定手段４２は、インターネットサイトから取得したソフトウェアの固有情報と、ホスト機器１から受信したソフトウェアの固有情報を照合し、一致すれば検証にパスしたと判断できる。
【００９８】
この結果、本発明の検証装置およびこれを用いたフィールド機器ソフトウェア更新システムは、ネットワークを介してソフトウェアの検証情報を取得してソフトウェアの正常・異常を判定できるので未確認機器による作業者が意図しないソフトウェア更新を防ぐことができる点で有効である。
【００９９】
＜その他の実施例５＞
また本発明に係る検証装置およびこれを用いたフィールド機器ソフトウェア更新システムは、検証装置４が通信手段の他に、赤外線通信などにより外部と通信可能な外部通信インタフェースも構成要素とするものでもよく、この場合ＦＦ−Ｈ１バスを介して検証装置４にソフトウェアを送信する処理を不要とするものでもよい。この場合、フィールド機器ソフトウェア更新システムはたとえば次のような動作を行なう。
【０１００】
特に図示しない端末装置は、別途作業者が管理・保持している暗号化鍵に基づき別途端末装置などで暗号化されたターゲット機器（フィールド機器２または３）のソフトウェアを、ネットワークおよび検証装置４の外部通信インタフェース（専用インタフェースなど）を介して入力する。
【０１０１】
検証装置４の演算制御手段は、外部通信インタフェースを介して受信した暗号化されたソフトウェアを含むデータを記憶手段に記憶する。
【０１０２】
認証装置４の正当性判定手段４１および正常判定手段４２は、入力されたソフトウェアを復号・検証して、検証にパスすれば、指定したフィールド機器（ターゲット機器）に対してソフトウェアを送信する。
【０１０３】
この結果、データを復号できれば、作業者が意図してフィールド機器に送信するソフトウェアであることが確認でき、検証により正しく動作するソフトウェアであることが確認できるため、安全性が確保できる点で有効である。
【０１０４】
＜その他の実施例６＞
また本発明に係る検証装置およびこれを用いたフィールド機器ソフトウェア更新システムは、検証装置４が、内部に、仮想的なソフトウェア実行環境を用意することで、検証装置４にダウンロードしたソフトウェアを一時的に実行するものでもよい。
【０１０５】
具体的には、検証装置４の演算制御手段は、ホスト機器１などから受信し正当性判定手段４１、正常判定手段４２により復号・検証して検証にパスしたソフトウェアを実行するものでもよい。
【０１０６】
この場合、認証装置４は、仮想的なフィールド機器として動作してＦＦ−Ｈ１バス１００に接続されているフィールド機器と通信する。
【０１０７】
なおホスト機器１が検証装置４にソフトウェアを実行を要求する実行要求信号をＦＦ−Ｈ１バス１００を介して送信し、検証装置４がこの実行要求信号を受信するとソフトウェアを実行するものでもよい。
【０１０８】
これにより、ＦＦ−Ｈ１バス１００にソフトウェアを動作させたいフィールド機器が接続していなくても、仮想的にその機器を動作させることが可能である。
【０１０９】
以上説明したように、本発明の検証装置とこれを用いたフィールド機器ソフトウェア更新システムは、ネットワークを介して受信した暗号化されたフィールド機器用のソフトウェアのうち、正当性が担保されたソフトウェアをフィールドバスを介して前記フィールド機器に送信する検証装置であって、記憶手段に予め記憶される復号化鍵と、この復号化鍵に基づいて前記ソフトウェアを復号化できると、前記ソフトウェアが正当であると判定する正当性判定手段と、前記正当であると判定されたソフトウェアを復号化された状態で前記フィールド機器に前記フィールドバスを介して送信するソフトウェア送信手段を備えることにより、正当性が担保され、正常なソフトウェアのみを更新することができるので、フィールド機器がソフトウェアの更新を原因とする異常な動作をすることがなくなり、制御系全体（ＦＦ−Ｈ１バス）の安定性向上に貢献できる。
【０１１０】
（付記項１）
前記正常判定手段が、前記ソフトウェア内の特定の場所に予め定められたデータがあると前記ソフトウェアは正常であると判定することを特徴とする請求項３記載の検証装置。
（付記項２）
前記正常判定手段が、前記暗号化されたソフトウェアに基づき算出したハッシュ値が前記暗号化されたソフトウェアとともに受信したこのソフトウェアのハッシュ値と一致すると前記ソフトウェアは正常であると判定することを特徴とする請求項３記載の検証装置。
【符号の説明】
【０１１１】
１  ホスト機器
２、３  フィールド機器
４  検証装置
４１  正当性判定手段
４２  正常判定手段
４３  記憶手段
４４  通信手段
４５  ソフトウェア送信手段
４６  ネットワークインタフェース
５０  未確認機器
１００  ＦＦ−Ｈ１バス
【図１】
0005472708.tif 000002
【図２】
0005472708.tif 000003
【図３】
0005472708.tif 000004
【図４】
0005472708.tif 000005
【図５】
0005472708.tif 000006
【図６】
0005472708.tif 000007