(57)【要約】【課題】外部接続しない制御システムに対しても制御用ソフトウェアを安全かつ容易に更新する。【解決手段】フィールドネットワーク２６に接続され、更新可能な制御用ソフトウェアの処理によって制御する制御機器２１，２２，２４，２５を備えた機械設備２と、制御用ソフトウェアを格納し、インターネット５を介して制御用ソフトウェアを送信するクラウドサーバ３と、インターネット５に接続した状態ではクラウドサーバ３から制御用ソフトウェアを受信して格納し、フィールドネットワーク２６に接続した状態では格納した制御用ソフトウェアを制御機器２１，２２，２４，２５に送信して更新させる更新装置４と、を有する。【選択図】図１
2019067264.tif 000002
【特許請求の範囲】
【請求項１】
第１のネットワークに接続され、更新可能な制御用ソフトウェアの処理によって制御する制御装置又はセンサを備えた制御システムと、
前記制御用ソフトウェアを格納し、第２のネットワークを介して前記制御用ソフトウェアを送信するソフトウェア配信装置と、
前記第２のネットワークに接続した状態では前記ソフトウェア配信装置から前記制御用ソフトウェアを受信して格納し、前記第１のネットワークに接続した状態では格納した前記制御用ソフトウェアを前記制御装置又は前記センサに送信して更新させるソフトウェア更新装置と、
を有することを特徴とするソフトウェア管理システム。
【請求項２】
前記ソフトウェア更新装置は、
前記第１のネットワーク又は前記第２のネットワークのいずれか一方にだけ接続している状態でのみ処理を実行することを特徴とする請求項１記載のソフトウェア管理システム。
【請求項３】
前記ソフトウェア更新装置は、
前記第２のネットワークに接続して、前記ソフトウェア配信装置から受信した前記制御用ソフトウェアを所定の記録媒体に記録する第１のソフトウェア更新装置と、
前記第１のネットワークに接続して、前記所定の記録媒体から読み取った前記制御用ソフトウェアを前記第１のネットワークを介して前記制御装置又は前記センサに送信して更新させる第２のソフトウェア更新装置と、
を有することを特徴とする請求項１記載のソフトウェア管理システム。
【請求項４】
前記ソフトウェア更新装置又は前記第２のソフトウェア更新装置は、
前記制御装置を介して間接的に前記第１のネットワークに接続することを特徴とする請求項１乃至３のいずれか１項に記載のソフトウェア管理システム。
【請求項５】
前記ソフトウェア配信装置は、
所定のキーデータに基づいて暗号化した前記制御用ソフトウェア及び対応する前記キーデータを送信し、
前記ソフトウェア更新装置又は前記第１のソフトウェア更新装置は、
前記ソフトウェア配信装置から前記第２のネットワークを介して暗号化された前記制御用ソフトウェア及び対応する前記キーデータを受信する受信部と、
受信した前記キーデータを出力する出力部と、
を有することを特徴とする請求項１乃至４のいずれか１項に記載のソフトウェア管理システム。
【請求項６】
前記出力部は、
前記制御用ソフトウェアと前記キーデータを受信した際のログイン中の間だけ当該キーデータを出力し、当該ログインの終了後には当該キーデータを消去することを特徴とする請求項５記載のソフトウェア管理システム。
【請求項７】
前記ソフトウェア更新装置又は前記第２のソフトウェア更新装置は、
キーデータを入力する入力部と、
入力された前記キーデータに基づいて受信した前記制御用ソフトウェアを復号化する復号化部と、
復号化した前記制御用ソフトウェアを前記第１のネットワークを介して前記制御装置又は前記センサに送信し更新させる更新部と、
を有することを特徴とする請求項５又は６記載にソフトウェア管理システム。
【請求項８】
前記更新部は、
更新実行後に復号化状態の前記制御用ソフトウェアを消去することを特徴とする請求項７記載のソフトウェア管理システム。
【請求項９】
前記ソフトウェア配信装置は、
前記制御用ソフトウェアの送信要求を受ける度に新たに前記キーデータを生成し、当該キーデータに基づいて前記制御用ソフトウェアを暗号化して送信することを特徴とする請求項５乃至８のいずれか１項に記載のソフトウェア管理システム。
【請求項１０】
前記ソフトウェア配信装置は、
ログインした前記ソフトウェア更新装置に対してのみ前記制御用ソフトウェアを送信することを特徴とする請求項１乃至９のいずれか１項に記載のソフトウェア管理システム。
【請求項１１】
前記ソフトウェア配信装置は、
ログインしたユーザのログインアカウントに対応して前記キーデータを生成することを特徴とする請求項１０記載のソフトウェア管理システム。
【請求項１２】
前記ソフトウェア配信装置は、
送信した前記制御用ソフトウェアに関するソフトウェア情報をログインしたユーザに対応させてログイン履歴に登録することを特徴とする請求項１０又は１１記載のソフトウェア管理システム。
【請求項１３】
前記ソフトウェア更新装置は、
前記制御装置又は前記センサに関する機器情報を取得して前記ソフトウェア配信装置に送信し、
前記ソフトウェア配信装置は、
受信した前記機器情報を前記ログイン履歴に登録することを特徴とする請求項１２記載のソフトウェア管理システム。
【請求項１４】
前記ソフトウェア配信装置は、
ログインしたユーザに対してそのログインアカウントに対応した前記ログイン履歴を送信することを特徴とする請求項１２又は１３記載のソフトウェア管理システム。
【請求項１５】
所定のキーデータに基づいて暗号化された制御用ソフトウェア及び対応する前記キーデータを受信し、前記キーデータに基づいて復号化した前記制御用ソフトウェアを制御装置又はセンサに更新させることを特徴とするソフトウェア更新装置。
【請求項１６】
請求項１５に記載の前記ソフトウェア更新装置に実行させるソフトウェア更新方法であって、
暗号化された前記制御用ソフトウェア及び対応する前記キーデータを受信することと、
受信した前記キーデータを出力することと、
キーデータを入力することと、
入力された前記キーデータに基づいて受信した前記制御用ソフトウェアを復号化することと、
復号化した前記制御用ソフトウェアを前記制御装置又は前記センサに更新させることと、
を実行させることを特徴とするソフトウェア更新方法。
【請求項１７】
請求項１５に記載の前記ソフトウェア更新装置が備える演算装置に実行させるソフトウェア更新プログラムであって、
暗号化された前記制御用ソフトウェア及び対応する前記キーデータを受信することと、
受信した前記キーデータを出力することと、
キーデータを入力することと、
入力された前記キーデータに基づいて受信した前記制御用ソフトウェアを復号化することと、
復号化した前記制御用ソフトウェアを前記制御装置又は前記センサに更新させることと、
を実行させることを特徴とするソフトウェア更新プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の実施形態は、ソフトウェア管理システム、ソフトウェア更新装置、ソフトウェア更新方法、及びソフトウェア更新プログラムに関する。
【背景技術】
【０００２】
特許文献１には、ユーザ工場に設置された機器を制御するコントローラに記憶されているソフトウェアを、インターネットを介してベンダー側の管理装置から受信した修正ソフトウェアに更新する保守装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−０２９８１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、近年ではセキュリティ上の配慮から、工場内のネットワークをインターネットに直接接続することが禁止される場合が多くあり、上記従来技術のように外部の管理装置から工場内の保守装置を介して直接的に各コントローラへソフトウェアをダウンロード及び更新することができない。
【０００５】
本発明はこのような問題点に鑑みてなされたものであり、外部接続しない制御システムに対しても制御用ソフトウェアを安全かつ容易に更新できるソフトウェア管理システム、ソフトウェア更新装置、ソフトウェア更新方法、及びソフトウェア更新プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明の一の観点によれば、第１のネットワークに接続され、更新可能な制御用ソフトウェアの処理によって制御する制御装置又はセンサを備えた制御システムと、前記制御用ソフトウェアを格納し、第２のネットワークを介して前記制御用ソフトウェアを送信するソフトウェア配信装置と、前記第２のネットワークに接続した状態では前記ソフトウェア配信装置から前記制御用ソフトウェアを受信して格納し、前記第１のネットワークに接続した状態では格納した前記制御用ソフトウェアを前記制御装置又は前記センサに送信して更新させるソフトウェア更新装置と、を有するソフトウェア管理システムが適用される。
【０００７】
また、本発明の別の観点によれば、所定のキーデータに基づいて暗号化された制御用ソフトウェア及び対応する前記キーデータを受信し、前記キーデータに基づいて復号化した前記制御用ソフトウェアを制御装置又はセンサに更新させるソフトウェア更新装置が適用される。
【０００８】
また、本発明の別の観点によれば、ソフトウェア更新装置に実行させるソフトウェア更新方法であって、暗号化された前記制御用ソフトウェア及び対応する前記キーデータを受信することと、受信した前記キーデータを出力することと、キーデータを入力することと、入力された前記キーデータに基づいて受信した前記制御用ソフトウェアを復号化することと、復号化した前記制御用ソフトウェアを前記制御装置又は前記センサに更新させることと、を実行させるソフトウェア更新方法が適用される。
【０００９】
また、本発明の別の観点によれば、ソフトウェア更新装置が備える演算装置に実行させるソフトウェア更新プログラムであって、暗号化された前記制御用ソフトウェア及び対応する前記キーデータを受信することと、受信した前記キーデータを出力することと、キーデータを入力することと、入力された前記キーデータに基づいて受信した前記制御用ソフトウェアを復号化することと、復号化した前記制御用ソフトウェアを前記制御装置又は前記センサに更新させることと、を実行させるソフトウェア更新プログラムが適用される。
【発明の効果】
【００１０】
本発明によれば、外部接続しない制御システムに対しても制御用ソフトウェアを安全かつ容易に更新できる。
【図面の簡単な説明】
【００１１】
【図１】実施形態に係るソフトウェア管理システムの概略構成を表す機能ブロック図である。
【図２】クラウドサーバの内部構成を表すシステムブロック図である。
【図３】更新装置の内部構成を表すシステムブロック図である。
【図４】制御用ソフトウェアをダウンロードする処理工程のシーケンスチャートである。
【図５】制御用ソフトウェアを更新する処理工程のシーケンスチャートである。
【図６】フィールドネットワークに接続している制御機器のソフトウェア更新情報をクラウドサーバにアップロードする処理工程のシーケンスチャートである。
【図７】ログイン履歴データベースの登録内容とその表示の一例を示す図である。
【図８】変形例に係るソフトウェア管理システムの概略構成を表す機能ブロック図である。
【発明を実施するための形態】
【００１２】
以下、実施の形態について図面を参照しつつ説明する。
【００１３】
＜ソフトウェア管理システムの概略構成＞
図１は、本発明の一実施形態であるソフトウェア管理システムの概略構成を表す機能ブロック図である。
【００１４】
本実施形態のソフトウェア管理システムは、生産工場内の機械設備が備える各制御機器の制御用ソフトウェアに対して、その上位版（版数の新しいもの）をクラウドサーバからインターネットを介して配信し、更新管理を行うシステムである。
【００１５】
図１において、ソフトウェア管理システム１は、機械設備２と、クラウドサーバ３と、更新装置４とを有している。なお、この図１においては、上記各構成部間で情報信号を送受する信号線の接続を示しており、それぞれの内部構成については後に詳述する。以下、上記の各構成部について概略的に説明する。
【００１６】
機械設備２（制御システム）は、図示する例では複数のモータで駆動制御する生産機械などであり、１台の上位制御装置２１と、複数のモータ制御装置２２と、各モータ制御装置２２にそれぞれ接続されるモータ２３及びエンコーダ２４と、各モータ制御装置２２と各エンコーダ２４とを接続する後述フィールドネットワークにさらに直列接続される複数の外部センサ２５（図中では「センサ」と略記）とを有している。
【００１７】
上位制御装置２１は、当該機械設備２が備える複数のモータ２３を協調制御させるために、各モータ制御装置２２から各種の状態情報を受信しつつ、それら状態情報に基づいて各モータ制御装置２２に対し個別に制御指令を送信する機能を有している。なお、上位制御装置２１は、機械制御用に特化したいわゆるフィールドネットワーク２６ａ（第１のネットワーク；例えばＭＥＣＨＡＴＲＯＬＩＮＫ（登録商標））を介して各モータ制御装置２２と情報送受可能に接続されている。また、この上位制御装置２１は、後述の更新装置４との間でケーブル（図示する例ではＵＳＢケーブル２７）介して接続することで情報送受可能となっている。
【００１８】
モータ制御装置２２は、エンコーダ２４及び外部センサ２５から各種の状態情報を受信しつつ、それら状態情報と上位制御装置２１から受信した制御指令に基づいてモータ２３を制御するための駆動電力を給電する機能を有している。またモータ制御装置２２は、受信した状態情報を上位制御装置２１に対しても送信する。なお、モータ制御装置２２は、状態情報の送受に特化したフィールドネットワーク２６ｂ（第１のネットワーク；図示する例ではΣ−ＬＩＮＫ（登録商標））を介してエンコーダ２４及び外部センサ２５から情報受信可能に接続されている。なお、上記の上位制御装置２１とモータ制御装置２２とが、各請求項に記載の制御装置に相当し、エンコーダ２４及び外部センサ２５が各請求項に記載のセンサに相当する。また、このモータ制御装置２２は、後述の更新装置４との間でケーブル（例えばＵＳＢケーブル）介して接続することで情報送受可能となっている（特に図示せず）。
【００１９】
クラウドサーバ３（ソフトウェア配信装置）は、上記機械設備２に備えられた上位制御装置２１、モータ制御装置２３、エンコーダ２４、及び外部センサ２５などの各種制御機器のメーカー側に設けられたサーバであり、インターネット５などの広域ネットワーク（第２のネットワーク）を介して生産工場６に情報送受可能に接続されている。このクラウドサーバ３は、上記の各制御機器に格納されてその制御を行う制御用ソフトウェア（図中では「ソフトウェア」と略記）の上位改良版を保存しており、それらの配信（以下、ダウンロードという）及び更新情報等を管理する機能を有している。なお、このクラウドサーバ３の内部構成については後に詳述する（後述の図２参照）。
【００２０】
更新装置４（ソフトウェア更新装置）は、図示する例では運搬移動が容易なノート型の汎用パーソナルコンピュータ（以下、ノートＰＣという）で構成されており、そのＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）上で作動させるツールアプリケーション（ソフトウェア更新プログラム）によって制御用ソフトウェア及び機器情報に関する各種の処理を実行する機能を有している。この更新装置４は、上記ＵＳＢケーブル２７を介した上位制御装置２１との接続と、ＵＳＢケーブルを介したモータ制御装置２２との接続（図示省略）と、インターネット５を介したクラウドサーバ３との接続が可能となっている。なお、この更新装置４で作動させるツールアプリケーションの処理構成については後に詳述する（後述の図３参照）。
【００２１】
＜本実施形態の特徴＞
上述したようにファクトリーオートメーションにおける機械設備２では、いわゆるフィールドネットワーク２６，２６ａ，２６ｂで接続された各種の制御装置（上位制御装置２１やモータ制御装置２２等を含む）及び各種のセンサが協調動作する制御システムとして構成されるものが多い。これらの制御装置やセンサはそれぞれ格納した制御用ソフトウェアの処理によって制御されるものであり、さらにそれらの制御用ソフトウェアは改良された上位版のものを上記フィールドネットワーク２６を介して受信し更新可能となっている。そして近年では、各制御装置やセンサのメーカー側で用意したクラウドサーバ３に上位版の制御用ソフトウェアが格納され、ユーザがインターネット５を介してダウンロードすることが可能となっている。
【００２２】
一方、機密情報の漏洩防止やサイバー攻撃対策などのセキュリティ上の配慮から、上記のフィールドネットワーク２６をインターネット５に直接接続することが禁止され常に遮断状態が維持される場合が多く、この場合には上記クラウドサーバ３から各制御装置やセンサへの直接的な制御用ソフトウェアのダウンロードと更新ができない。
【００２３】
これに対して本実施形態では、インターネット５に接続した状態ではクラウドサーバ３から制御用ソフトウェアを受信して格納し、フィールドネットワーク２６に接続した状態では格納した制御用ソフトウェアを制御装置又はセンサに送信して更新させる更新装置４を備えている。この更新装置４を、例えば上述したようにノートＰＣなどのような運搬移動可能な１台の情報端末で構成した場合には、インターネット５に接続した状態で上記クラウドサーバ３から必要な制御用ソフトウェアの上位版をダウンロードする。その後に、更新装置４をインターネット５の接続から外して、別途ＵＳＢケーブル２７と上位制御装置２１、またはＵＳＢケーブルとモータ制御装置２２（図示省略）を介してフィールドネットワーク２６に交換接続し直した状態で制御用ソフトウェアを各制御装置やセンサに送信し、更新させる。このように、更新装置４をインターネット５とフィールドネットワーク２６の間で交換接続させることで、２つのネットワーク間の物理的な遮断状態を常に維持しつつダウンロードした制御用ソフトウェアで更新させることができる。以上のソフトウェア管理に必要な構成と手順について、以下順に説明する。
【００２４】
＜クラウドサーバの詳細構成＞
上記クラウドサーバ３の内部構成を表すシステムブロック図を図２に示す。この図２において、クラウドサーバ３は、インターネット５に接続する処理部３１と、各種の制御用ソフトウェアを格納するソフトウェア格納部３２と、ログイン履歴を記憶するログイン履歴データベース３３とを有している。
【００２５】
処理部３１は、当該クラウドサーバ３にログインしたユーザからの操作に対応し、上記ソフトウェア格納部３２に格納されている制御用ソフトウェアを暗号化してダウンロードする処理や、当該ログイン中に送受された情報を上記ログイン履歴データベース３３に登録する処理を実行する機能を有する。この処理部３１は、ログイン認証部３４と、ログイン履歴管理部３５と、ソフトウェア管理部３６と、ライセンスキー発行部３７と、暗号化部３８と、サーバ情報送受信部３９とを有している。
【００２６】
ログイン認証部３４は、インターネット５を介してアクセスしてきた外部端末（この例では更新装置４）に対し、そこから受信したアカウント情報（例えばアカウント名及びパスワード等）を照合判定することでログインの許可を認証するよう機能する。
【００２７】
ログイン履歴管理部３５は、上記ログイン認証部３４でログイン認証されたログインアカウントに対応して、当該ログインの日時やその間に行われた操作内容、送受した情報等の履歴を上記ログイン履歴データベース３３に登録し、管理するよう機能する。
【００２８】
ソフトウェア管理部３６は、上記ソフトウェア格納部３２に対する制御用ソフトウェアの格納と取得を管理するよう機能する。具体的には、ログイン認証された外部端末からのダウンロード要求に対応した制御用ソフトウェアを取得する処理を実行する。また、このソフトウェア管理部３６は、当該クラウドサーバ３の運用者（メーカー側の管理者；特に図示せず）からアップロードされた制御用ソフトウェアをソフトウェア格納部３２に格納する処理も実行する。このとき格納する制御用ソフトウェアは暗号化されていないものであり、その版数は最新版のものだけを格納してもよいし、もしくは異なる版数のものを複数個別に格納してもよい。
【００２９】
ライセンスキー発行部３７は、外部端末からダウンロード要求を受信する度に個別にライセンスキー（キーデータ）を発行するよう機能する。このライセンスキーは、例えば所定文字数（後述の図７に示す例では８文字）でランダムに選ばれた大文字、小文字を含む英数字のテキストデータ等で自動的に生成される。
【００３０】
暗号化部３８は、上記ソフトウェア管理部３６が外部端末からのダウンロード要求に対応して取得した制御用ソフトウェアに対し、上記ライセンスキー発行部３７で発行されたライセンスキーを暗号キー（キーデータ）として暗号化するよう機能する。この暗号化処理においては、ライセンスキーについて、単に復号化時に要求するパスワードとして利用してもよいし、ライセンスキーのデータ内容を反映した暗号化処理を行ってもよい。
【００３１】
サーバ情報送受信部３９は、インターネット通信のプロトコルに準拠して、上記のアカウント情報、ログイン中の操作情報、及び後述のソフトウェア更新（機器情報）等をインターネット５を介して外部端末から受信するよう機能するとともに、上記の暗号化された制御用ソフトウェア及びライセンスキー等をインターネット５を介してログイン認証中の外部端末へ送信するよう機能する。
【００３２】
なお、以上の各機能部を利用した処理部３１の具体的な処理工程については、後に詳述する（後述の図４、図６参照）。
【００３３】
＜更新装置の詳細構成＞
上記更新装置４の内部構成を表すシステムブロック図を図３に示す。この図３に示す例において、更新装置４は上述したように汎用のノートＰＣで構成されており、そのＯＳ上で作動させるツールアプリケーション４１によって制御用ソフトウェア及び機器情報に関する各種の処理を実行する。この更新装置４で作動させるツールアプリケーション４１は、インターネット情報送受信部４２と、ログイン申請部４３と、ライセンスキー表示部４４と、ライセンスキー入力部４５と、復号化部４６と、ＵＳＢ情報送受信部４７の各ソフトウェアブロックを有している。
【００３４】
インターネット情報送受信部４２（受信部）は、インターネット通信のプロトコルに準拠して、アカウント情報、ログイン中の操作情報、及び後述のソフトウェア更新情報等をインターネット５を介してクラウドサーバ３へ送信するよう機能するとともに、上記の暗号化された制御用ソフトウェア、及びライセンスキー等をインターネット５を介してログイン中のクラウドサーバ３から受信するよう機能する。なお本実施形態の例では、このインターネット情報送受信部４２は、ライセンスキーを含む後述のソフトウェア更新情報をクラウドサーバ３へ送信した後には当該ソフトウェア更新情報をライセンスキーごと各種記憶装置（メモリ、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、外部記憶装置等；特に図示せず）から消去する。
【００３５】
ログイン申請部４３は、インターネット５を介してアクセスしたクラウドサーバ３に対し、アカウント情報を送信してログインの許可を申請するよう機能する。
【００３６】
ライセンスキー表示部４４（出力部）は、暗号化された制御用ソフトウェアとともにクラウドサーバ３からダウンロードしたライセンスキーをディスプレイ等の表示装置（特に図示せず）に表示するよう機能する。なお本実施形態の例では、このライセンスキー表示部４４は、当該ライセンスキーをダウンロードしたログイン中にだけライセンスキーを表示し、当該ログインが終了した後には当該ライセンスキーを各種記憶装置から消去する。
【００３７】
また本実施形態の例では、上記のインターネット情報送受信部４２、ログイン申請部４３、及びライセンスキー表示部４４は、当該更新装置４がＵＳＢケーブル２７を介して他の制御機器と接続しておらず、かつインターネット５と接続している間にだけ機能する。
【００３８】
ライセンスキー入力部４５（入力部）は、キーボード等の入力装置（特に図示せず）を介したユーザからのライセンスキーの入力を受け付けるよう機能する。
【００３９】
復号化部４６は、上記インターネット情報送受信部４２が受信した暗号化状態の制御用ソフトウェアに対し、上記ライセンスキー入力部４５が入力を受け付けたライセンスキーに基づいて復号化するよう機能する。この復号化処理においては、上記クラウドサーバ３の暗号化部３８と同じ暗号アルゴリズムに対応してライセンスキーを用いた復号化処理を行う。
【００４０】
ＵＳＢ情報送受信部４７（更新部）は、ＵＳＢ通信のプロトコルに準拠して、上記の復号化状態の制御用ソフトウェアとその送信先情報（更新させる機器ＩＤ等）をＵＳＢケーブル２７を介して上位制御装置２１へ送信するよう機能するとともに、フィールドネットワーク２６に接続している各制御機器の機器情報をＵＳＢケーブル２７を介して上位制御装置２１から受信するよう機能する。また、特に図示しないが、ＵＳＢ情報送受信部４７（更新部）は、ＵＳＢ通信のプロトコルに準拠して、上記の復号化状態の制御用ソフトウェアとその送信先情報（更新させる機器ＩＤ等）をＵＳＢケーブルを介してモータ制御装置２２へ送信するよう機能するとともに、フィールドネットワーク２６に接続している各制御機器の機器情報をＵＳＢケーブルを介してモータ制御装置２２から受信するよう機能することも可能である。なお本実施形態の例では、このＵＳＢ情報送受信部４７は、復号化状態の制御用ソフトウェアを送信した後には当該制御用ソフトウェアを各種記憶装置から消去する。
【００４１】
また本実施形態の例では、上記のライセンスキー入力部４５、復号化部４６、及びＵＳＢ情報送受信部４７は、当該更新装置４がインターネット５と接続しておらず、かつＵＳＢケーブル２７を介して上位制御装置２１（又はモータ制御装置２２）と接続している間にだけ機能する。
【００４２】
なお、以上の各機能部を利用したツールアプリケーション４１の具体的な処理工程については、後に詳述する（後述の図４、図５、図６参照）。
【００４３】
また上位制御装置２１については、特に図示しないが、フィールドネットワーク２６（例えばＭＥＣＨＡＴＲＯＬＩＮＫ（登録商標）、及びΣ−ＬＩＮＫ（登録商標））に接続する全ての制御機器（当該上位制御装置２１を含めたモータ制御装置２２、エンコーダ２４、及び外部センサ２５）のうち指定したものに対して制御用ソフトウェアを送信しその更新シーケンスを実行させることができる。また上位制御装置２１は、フィールドネットワーク２６に接続する全ての制御機器のうち指定したものに対してそれぞれの機器情報を要求し、受信することができる。この機器情報としては、当該制御機器の型式やシリアル番号等がある。
【００４４】
またモータ制御装置２２については、特に図示しないが、フィールドネットワーク２６ｂ（上記図１に示す例ではΣ−ＬＩＮＫ（登録商標））に接続する全ての制御機器（当該モータ制御装置２２を含めたエンコーダ２４、及び外部センサ２５）のうち指定したものに対して制御用ソフトウェアを送信しその更新シーケンスを実行させることができる。またモータ制御装置２２は、フィールドネットワーク２６ｂに接続する全ての制御機器のうち指定したものに対してそれぞれの機器情報を要求し、受信することができる。この機器情報としては、当該制御機器の型式やシリアル番号等がある。
【００４５】
＜制御用ソフトウェアのダウンロードシーケンス＞
本実施形態のソフトウェア管理システム１において制御用ソフトウェアをダウンロードする処理工程のシーケンスチャートを図４に示す。この図４に示すダウンロードシーケンスは、更新装置４がインターネット５に接続し、かつ上位制御装置２１（又はモータ制御装置２２）に接続していない状態で実行が開始される。なお、図中においてクラウドサーバ３及び更新装置４が実行する各処理は、それぞれが備えるＣＰＵ（演算装置）で上記の処理部３１又はツールアプリケーション４１の各機能部をソフトウェア的に実行することにより制御される（以降の図５、図６においても同様）。
【００４６】
まずステップＳ１で、更新装置４は、その時点でインターネット５に接続し、かつＵＳＢケーブル２７を介して上位制御装置２１（又はモータ制御装置２２）に接続していない状態であるかを確認する。なお、この時点で当該更新装置４がインターネット５に接続していない、もしくは上位制御装置２１（又はモータ制御装置２２）に接続している場合には、ユーザにエラーを報知してツールアプリケーション４１の処理を終了する（特に図示せず）。
【００４７】
次にステップＳ２で、更新装置４は、上記インターネット情報送受信部４２及び上記ログイン申請部４３により、インターネット５を介してクラウドサーバ３にアクセスし、アカウント情報を送信してログイン申請する。
【００４８】
次にステップＳ３で、クラウドサーバ３は、上記サーバ情報送受信部３９及び上記ログイン認証部３４により、受信したアカウント情報を照合してログインを許可する場合には更新装置４に対してログイン認証を送信する。なお、このときログインを許可できない場合には更新装置４に対してログインエラーを送信する（特に図示せず）。
【００４９】
次にステップＳ４で、更新装置４は、上記インターネット情報送受信部４２により、ユーザの操作によって所望する制御用ソフトウェアのダウンロード要求をクラウドサーバ３に対して送信する。
【００５０】
次にステップＳ５で、クラウドサーバ３は、上記ソフトウェア管理部３６により、要求された制御用ソフトウェアをソフトウェア格納部３２から取得する。
【００５１】
次にステップＳ６で、クラウドサーバ３は、上記ライセンスキー発行部３７により、ライセンスキーを１つ発行する。
【００５２】
次にステップＳ７で、クラウドサーバ３は、上記暗号化部３８により、上記ステップＳ５で取得した制御用ソフトウェアに対し、上記ステップＳ６で発行したライセンスキーに基づいて暗号化する。
【００５３】
次にステップＳ８で、クラウドサーバ３は、上記サーバ情報送受信部３９により、上記ステップＳ７で暗号化した制御用ソフトウェアと上記ステップＳ６で発行したライセンスキーを更新装置４に対して送信（ダウンロード）する。
【００５４】
次にステップＳ９で、更新装置４は、上記インターネット情報送受信部４２により、受信した暗号化状態の制御用ソフトウェアを記憶装置に格納する。
【００５５】
次にステップＳ１０で、更新装置４は、上記ライセンスキー表示部４４により、受信したライセンスキーをディスプレイ等に表示する。このとき更新装置４のユーザは、表示されたライセンスキーを別途のメモ用紙７などに手書きで書き写しておく（上記の図１、図３参照）。
【００５６】
次にステップＳ１１で、更新装置４は、上記インターネット情報送受信部４２により、クラウドサーバ３に対してログインの終了を送信する。
【００５７】
次にステップＳ１２で、クラウドサーバ３は、ログインを終了した後、上記ログイン履歴管理部３５により、これまでのログインに関するアカウント情報、操作内容、送受した情報等の履歴をログイン履歴データベース３３に登録する。
【００５８】
次にステップＳ１３で、更新装置４は、上記ライセンスキー表示部４４により、ライセンスキーを記憶装置から消去する。これにより、ダウンロードシーケンスが終了する。
【００５９】
＜制御用ソフトウェアの更新シーケンス＞
次に本実施形態のソフトウェア管理システム１において制御用ソフトウェアを更新する処理工程のシーケンスチャートを図５に示す。この図５に示す更新シーケンスは、更新装置４がインターネット５に接続しておらず、かつＵＳＢケーブル２７を介して上位制御装置２１（又はモータ制御装置２２）に接続している状態で実行が開始される。なお本実施形態の例では、更新装置４が上位制御装置２１に接続した場合を想定してシーケンスを説明する（以下、図６においても同様）。
【００６０】
まずステップＳ１０１で、更新装置４は、その時点で、ＵＳＢケーブル２７を介して上位制御装置２１に接続し、かつインターネット５に接続していない状態であるかを確認する。なお、この時点で当該更新装置４がＵＳＢケーブル２７を介して上位制御装置２１に接続していない、もしくはインターネット５に接続している場合には、ユーザにエラーを報知してツールアプリケーション４１の処理を終了する（特に図示せず）。
【００６１】
次にステップＳ１０２で、更新装置４は、上記ライセンスキー入力部４５により、キーボード等を介したユーザからのライセンスキーの入力を受け付ける。このとき更新装置４のユーザは、上記ダウンロードシーケンスのステップＳ１０で手書きで書き写したメモ用紙７等を参照してライセンスキーを入力する（上記の図１、図３参照）。
【００６２】
次にステップＳ１０３で、更新装置４は、上記復号化部４６により、上記ダウンロードシーケンスのステップＳ９で格納した暗号化状態の制御用ソフトウェアに対し、上記ステップＳ１０２で入力されたライセンスキーに基づいて復号化する。ここでライセンスキーが暗号化ソフトウェアに対応するものでない（つまり復号化できない）場合には、所定のエラー報知処理を行った後に上記ステップＳ１０２でライセンスキーの再入力を要求する。
【００６３】
次にステップＳ１０４で、更新装置４は、上記ＵＳＢ情報送受信部４７により、上記ステップＳ１０３で復号化された制御用ソフトウェアをＵＳＢケーブル２７を介して上位制御装置２１に送信する。このとき併せて、フィールドネットワーク２６に接続されているいずれかの制御機器を当該制御用ソフトウェアの更新先として指定する。
【００６４】
次にステップＳ１０５で、上位制御装置２１は、更新先として指定された制御機器に対し、上記ステップＳ１０４で受信した制御用ソフトウェアをフィールドネットワーク２６を介して送信し更新シーケンス（制御機器における更新処理）を実行させる。
【００６５】
次にステップＳ１０６で、更新装置４は、上記ＵＳＢ情報送受信部４７により、各制御機器の機器情報を送信するよう上位制御装置２１に対して要求する。
【００６６】
次にステップＳ１０７で、上位制御装置２１は、その時点でフィールドネットワーク２６に接続する各制御機器からそれぞれの機器情報を取得して更新装置４に送信する。
【００６７】
次にステップＳ１０８で、更新装置４は、上記ステップＳ１０７で受信した機器情報と、制御用ソフトウェアの更新履歴（版数の更新経緯及びそれらの更新日時を含む）からなるソフトウェア更新結果と、ライセンスキーとを併せた全体の情報をソフトウェア更新情報として記憶装置に格納する。なお、上記のソフトウェア更新情報は各制御機器ごとに対応して生成されるものであり、そのうちのライセンスキーは各制御機器が格納している制御用ソフトウェアに対応するものが格納される。
【００６８】
次にステップＳ１０９では、更新装置４は、上記ＵＳＢ情報送受信部４７により、復号化状態の制御用ソフトウェアを記憶装置から消去する（ライセンスキーはソフトウェア更新情報に含まれる形で格納された状態を維持）。これにより、更新シーケンスが終了する。
【００６９】
なお、上記のダウンロードシーケンスで複数の暗号化状態の制御用ソフトウェアを格納していた場合には、上記ステップＳ１０９での消去は  その直前で更新された復号化状態の制御用ソフトウェアのみ消去すればよく、その他のまだ更新されていない復号化状態の制御用ソフトウェアは格納状態を維持しておく。もしくは、全ての復号化状態の制御用ソフトウェアの更新が完了した後に全て一斉に消去してもよいし、又は、当該ツールアプリケーションを終了する際に全ての復号化状態の制御用ソフトウェアを一斉に消去してもよい。
【００７０】
＜ソフトウェア更新情報のアップロードシーケンス＞
次に本実施形態のソフトウェア管理システム１において、フィールドネットワーク２６に接続している制御機器のソフトウェア更新情報をクラウドサーバ３にアップロードする処理工程のシーケンスチャートを図６に示す。この図６に示すアップロードシーケンスは、上記図５に示した更新シーケンスの実行によりソフトウェア更新情報を格納した状態で、かつ、更新装置４がインターネット５に接続しておらず、かつＵＳＢケーブル２７を介して上位制御装置２１に接続している状態で実行が開始される。
【００７１】
まずステップＳ２０１で、更新装置４は、その時点でインターネット５に接続し、かつＵＳＢケーブル２７を介して上位制御装置２１に接続していない状態であるかを確認する。なお、この時点で当該更新装置４がインターネット５に接続していない、もしくは上位制御装置２１に接続している場合には、ユーザにエラーを報知してツールアプリケーション４１の処理を終了する（特に図示せず）。
【００７２】
次にステップＳ２０２で、更新装置４は、上記インターネット情報送受信部４２及び上記ログイン申請部４３により、インターネット５を介してクラウドサーバ３にアクセスし、アカウント情報を送信してログイン申請する。
【００７３】
次にステップＳ２０３で、クラウドサーバ３は、上記サーバ情報送受信部３９及び上記ログイン認証部３４により、受信したアカウント情報を照合してログインを許可する場合には更新装置４に対してログイン認証を送信する。なお、このときログインを許可できない場合には更新装置４に対してログインエラーを送信する（特に図示せず）。
【００７４】
次にステップＳ２０４で、更新装置４は、上記インターネット情報送受信部４２により、上記更新シーケンスのステップＳ１０８で格納したソフトウェア更新情報をクラウドサーバ３に対して送信（アップロード）する。
【００７５】
次にステップＳ２０５で、クラウドサーバ３は、上記サーバ情報送受信部３９及び上記ログイン履歴管理部３５により、受信したソフトウェア更新情報を当該ログインのアカウント情報と対応させてログイン履歴データベース３３に登録する（後述の図７参照）。
【００７６】
次にステップＳ２０６で、更新装置４は、上記インターネット情報送受信部４２により、ソフトウェア更新情報を記憶装置から消去する。
【００７７】
次にステップＳ２０７で、更新装置４は、上記インターネット情報送受信部４２により、クラウドサーバ３に対してログインの終了を送信する。これにより、アップロードシーケンスが終了する。
【００７８】
＜ログイン履歴データベースの登録内容例＞
上記ダウンロードシーケンスのステップＳ１２、及び上記アップロードシーケンスのステップＳ２０５で登録されるログイン履歴データベース３３の登録内容とその表示の一例を図７に模式的に示す。この図７に示す例の登録内容では、その全体が１つの生産工場６（上記図１参照）ごとに対応して作成されるものであり、当該生産工場６の関係者として認められたログインユーザだけがこの登録内容にアクセスし、閲覧、更新することができる。この例の登録内容の表示は、それまでに行われたログイン操作の時系列順を表す「Ｎｏ．」にそれぞれ対応して「ログイン日時」、「ログインユーザ」、「機器型式」、「ソフトウェアバージョン（版数）」、「ライセンスキー」、「ダウンロード日」、及び「更新日」の各項目情報が登録されている。
【００７９】
このようにログイン履歴データベース３３には、クラウドサーバ３へのログインに関連する情報とともに、ユーザが使用している機械設備２やその制御用ソフトウェアに関する情報等も登録されることで、その登録内容情報は機械設備２の履歴に関するいわゆるトレーサビリティ情報としても利用できる。特に図示しないが、更新装置４のユーザは、クラウドサーバ３にログインした状態であれば任意のタイミングで上記のトレーサビリティ情報を設定された範囲（生産工場６全体、もしくは機械設備単位、等）で閲覧することができ、各制御機器の更新状態を確認したりライセンスキーの再取得などが可能となる。
【００８０】
なお図示するログイン履歴データベース３３の例では、複数の異なるユーザがそれぞれ個別に付与されたログインアカウントでログイン可能であって、そのアカウントに対応したログイン操作基準での登録内容の表示となっているが、これに限られない。他にもログイン履歴管理部３５の設定次第で、ユーザ別に対応して登録、表示したり、全ての制御機器の型式を一覧できるテーブル基準で登録、表示してもよい。
【００８１】
＜本実施形態による効果＞
以上説明したように、本実施形態のソフトウェア管理システム１においては、インターネット５に接続した状態ではクラウドサーバ３から制御用ソフトウェアを受信して格納し、フィールドネットワーク２６に接続した状態では格納した制御用ソフトウェアを制御機器に送信して更新させる更新装置４を備えている。本実施形態ではこの更新装置４を、運搬移動可能な１台のノートＰＣで構成しており、インターネット５に接続した状態で上記クラウドサーバ３から必要な制御用ソフトウェアの上位版をダウンロードする。その後に、更新装置４を、別途ＵＳＢケーブル２７と上位制御装置２１、またはＵＳＢケーブルとモータ制御装置２２（図示省略）を介してフィールドネットワーク２６に間接的に接続し直した状態で制御用ソフトウェアを制御機器に送信、更新させる。このように、更新装置４をフィールドネットワーク２６とインターネット５のそれぞれに交換接続させることで、２つのネットワーク間の物理的な遮断状態を常に維持しつつダウンロードした制御用ソフトウェアで更新させることができる。この結果、外部接続しない制御システムである機械設備２に対しても制御用ソフトウェアを安全にかつ容易に更新することができる。
【００８２】
なお、上記図１に示した本実施形態の例では、更新装置４をＵＳＢケーブル２７を介して上位制御装置２１に直接接続した状態で制御用ソフトウェアの更新シーケンスを行ったが、これに限られない。他にも、更新装置４を別途のＵＳＢケーブルを介してモータ制御装置２２に直接接続した状態で、上記の更新シーケンスを実行してもよい。この場合には、上位制御装置２１に対する更新シーケンスは行わず、モータ制御装置２２から下位の制御機器（エンコーダ２４や外部センサ２５）に対してのみ更新シーケンスが行われる。
【００８３】
また、本実施形態では特に、更新装置４は、フィールドネットワーク２６又はインターネット５のいずれか一方にだけ接続している状態でのみツールアプリケーション４１での処理を実行する。これにより、更新装置４がフィールドネットワーク２６とインターネット５の両方に同時に接続している状態では処理を実行せず個別に接続した場合だけ機能するため、２つのネットワーク間の遮断状態を確実に維持でき、機械設備２のフィールドネットワーク２６におけるセキュリティ機能を向上できる。なおこの場合の更新装置４は、ハードウェア的にはＵＳＢ接続及びインターネット接続の両方が可能であって運搬移動が容易な携帯型の情報端末であればよく、本実施形態のような汎用のノートＰＣ以外にも例えばエンジニアリングツール等で構成してもよい。
【００８４】
また、センサによっては機械設備２を解体しなければアクセスできない配置にある場合があり、例え更新装置４が運搬移動可能な情報端末であってもそのような配置のセンサに直接的に接続する作業は煩雑となりやすい。一方、上位制御装置２１は一般的にフィールドネットワーク２６を介して他の制御機器へ情報送受可能であり、またアクセスしやすい配置に設置される場合が多い。そこで本実施形態では特に、更新装置４が例えば（ネットワークではない）ＵＳＢケーブル２７で直接接続した上位制御装置２１を介して間接的にフィールドネットワーク２６に接続する。これにより、更新装置４は上位制御装置２１に対して直接的に制御用ソフトウェアを更新することができるとともに、機械設備２中のどのような配置にあるモータ制御装置２２、エンコーダ２４、及び外部センサ２５の制御機器に対しても当該上位制御装置２１及びフィールドネットワーク２６を介して間接的に制御用ソフトウェアを送信して更新させることができ、更新作業が各段に容易となる。
【００８５】
また、制御用ソフトウェアには秘匿対象となる技術情報が含まれている場合が多いため、その漏洩防止のためにもダウンロードしたユーザ自身だけが制御用ソフトウェアの更新作業を行えるようにする必要がある。そこで本実施形態では特に、クラウドサーバ３が所定のライセンスキーに基づいて暗号化された制御用ソフトウェアとそのライセンスキーをインターネット５を介して更新装置４に送信する。それらをインターネット情報送受信部４２で受信した更新装置４は、受信したライセンスキーをライセンスキー表示部４４で表示する。
【００８６】
これにより、ダウンロード操作したユーザが表示で確認したライセンスキーを別途メモ用紙７等に書き取るなどすることで、当該ユーザのみがダウンロードした制御用ソフトウェアの復号化が可能となる。つまり、ダウンロード後に暗号化状態の制御用ソフトウェアが例えば第三者によって不正にコピーされた場合でも、ダウンロードしたユーザ以外は復号化して使用、解析することができないため技術情報の機密性保持や不正な更新を防止できる。なお、ライセンスキーの出力はディスプレイなどでの表示出力に限られず、プリンタでの印刷出力や、合成音声出力部での発音で出力してもよい（特に図示せず）。
【００８７】
また、本実施形態では特に、更新装置４のライセンスキー表示部４４は、制御用ソフトウェアとライセンスキーを受信した際のログイン中の間だけ当該ライセンスキーを表示し、当該ログインの終了後には当該ライセンスキーを更新装置４の記憶装置から消去する。これにより、ログイン終了後の更新装置４に対して第三者が不正にアクセスした場合でもライセンスキーを読み取ることができず、ログイン操作したユーザだけがライセンスキーを手書きメモ用紙７等で保持できるといった秘匿性を確保できる。なお、更新装置４のＯＳ設定等によってログインしたユーザだけが閲覧できる隠しファイルの形式でライセンスキーを保存してもよい。
【００８８】
また、本実施形態では特に、更新装置４は、ライセンスキーを入力するライセンスキー入力部４５と、入力されたライセンスキーに基づいて受信した制御用ソフトウェアを復号化する復号化部４６と、復号化した制御用ソフトウェアをフィールドネットワーク２６を介して制御機器に送信し更新させるＵＳＢ情報送受信部４７と、を有している。これにより、暗号化アルゴリズムを知得していないユーザでも対応するライセンスキーを入力するだけで制御用ソフトウェアを自動的に復号化できるとともに、各制御機器への送信と更新を自動的に行うことができる。
【００８９】
また、本実施形態では特に、更新装置４のＵＳＢ情報送受信部４７は、更新実行後に復号化状態の制御用ソフトウェアを記憶装置から消去する。これにより、更新実行後の更新装置４に対して第三者が不正にアクセスした場合でも復号化状態の制御用ソフトウェアを読み取ることができず、制御用ソフトウェアに含まれる技術情報の機密性確保や不正な更新を防止できる。なお、更新装置４のＯＳ設定等によってログインしたユーザだけが閲覧、操作できる隠しファイルの形式で復号化状態の制御用ソフトウェアを保存してもよい。
【００９０】
また、本実施形態では特に、クラウドサーバ３は、制御用ソフトウェアのダウンロード要求を受ける度に新たにライセンスキーを生成し、当該ライセンスキーに基づいて制御用ソフトウェアを暗号化して送信する。これにより、各種の制御用ソフトウェアのダウンロード操作毎に対応してライセンスキーが発行されるため、例え同じ制御機器の制御用ソフトウェアであっても復号化や更新においてユーザ別での管理の独立性を確保できる。またこのようなライセンスキーは、ダウンロードされた制御用ソフトウェアのファイルについてそのログインアカウント別、ユーザ別、ダウンロード操作別で特定するための識別用ＩＤとしても利用できる。なお本実施形態ではダウンロード操作毎にライセンスキーを発行したが、これに限られない。例えば一度に複数の制御用ソフトウェアのダウンロードが要求された場合に、各制御用ソフトウェアのファイル毎にライセンスキーを発行し、個別に暗号化してもよい。
【００９１】
また、本実施形態では特に、クラウドサーバ３は、ログインした更新装置４に対してのみ制御用ソフトウェアを送信する。これにより、ログインで認証されたユーザの更新装置４だけに制御用ソフトウェアを送信できるため、技術情報の機密性確保と不正な更新を防止できる。
【００９２】
また、本実施形態では特に、クラウドサーバ３のログイン履歴管理部３５は、送信した制御用ソフトウェアに関するライセンスキー、機器型式、版数等のソフトウェア情報をログインしたユーザに対応させてログイン履歴データベース３３に登録する。これにより、ダウンロードされた制御用ソフトウェアのライセンスキーを含むソフトウェア情報をログインアカウント別、ユーザ別、ダウンロード操作別に対応して管理できる。
【００９３】
また、本実施形態では特に、更新装置４は、制御機器に関する機器型式や更新履歴などの機器情報を取得してクラウドサーバ３に送信し、クラウドサーバ３のログイン履歴管理部３５は、受信した機器情報をログイン履歴データベース３３に登録する。これにより、機械設備２側の各制御機器に関する機器情報をログイン履歴データベース３３に登録することができ、単一のトレーサビリティ情報のデータベースとして管理できる。
【００９４】
また、本実施形態では特に、クラウドサーバ３は、ログインしたユーザの更新装置４に対してそのログインアカウントに対応したログイン履歴を送信する。これにより、他のどのユーザがどの制御用ソフトウェアをダウンロード、更新したかを特定でき、不正な操作等を認知できる。
【００９５】
＜変形例＞
なお、以上説明した実施形態は、その趣旨及び技術的思想を逸脱しない範囲内で種々の変形が可能である。
【００９６】
＜変形例１：２つの更新装置を各ネットワークに個別に接続する場合＞
上記実施形態では、２つのネットワークの間に１つの更新装置４で交換接続する構成としていたが、これに限られない。他にも、図８に示すように２つの独立した汎用ＰＣをそれぞれ更新装置４Ａ，４Ｂとして各ネットワークに個別に接続するよう設けてもよい。この場合には、インターネット５に接続した第１の更新装置４Ａ（第１のソフトウェア更新装置）がクラウドサーバ３から暗号化状態の制御用ソフトウェアとライセンスキーのダウンロードシーケンスを実行し、制御用ソフトウェアを例えばＵＳＢメモリ、ＵＳＢ接続ＨＤＤ、ＣＤ−Ｒ、ＤＶＤ−Ｒ等のリムーバルメディア８（記録媒体）に記録し、ライセンスキーを表示出力してユーザにメモ用紙７等に手書きさせる。そして、上位制御装置２１等を介してフィールドネットワーク２６に接続した第２の更新装置４Ｂ（第２のソフトウェア更新装置）に、上記リムーバルメディア８を介して暗号化状態の制御用ソフトウェアを読み取らせ、ユーザに上記メモ用紙７を参照してライセンスキーを手入力させる。
【００９７】
以上説明したように、本変形例のソフトウェア管理システム１Ａにおいては、更新装置は、インターネット５に常時接続してクラウドサーバ３から受信した制御用ソフトウェアを所定のリムーバルメディア８に記録する第１の更新装置４Ａと、フィールドネットワーク２６に常時接続して上記所定の記録媒体から読み取った制御用ソフトウェアを制御機器に送信して更新させる第２の更新装置４Ｂとを有している。これにより、２つのネットワークにそれぞれ専用に常時接続した分離型の第１の更新装置４Ａ及び第２の更新装置４Ｂの間で物理的な遮断状態を常に維持しつつ、ダウンロードした制御用ソフトウェアの送受を記録媒体メディアを介した簡易な受け渡しで可能となる。またこの場合には、第１の更新装置４Ａと第２の更新装置４Ｂのいずれも運搬移動する必要がないため、固定型のデスクトップＰＣ等で構成することができる（特に図示せず）。
【００９８】
＜変形例２：その他＞
上記の実施形態及び変形例では、複数のモータ２３で駆動する機械設備２に対応して上位制御装置２１を１つ備えて駆動制御する構成を例に説明したが、これに限られない。他にも、機械設備２がモータ２３を１つだけ備える場合や、複数の機械設備２に対して１つの上位制御装置２１が駆動制御する構成などにも上記実施形態及び変形例を適用できる。
【００９９】
また、クラウドサーバ３の処理部３１におけるライセンスキー発行部３７は、ユーザのログイン時におけるログインアカウントに対応させてライセンスキーを発行することも有効である。この場合には、復号化状態の制御用ソフトウェアを制御機器に更新させる際に対応するライセンスキーも併せて当該制御機器に格納させる。そして機器情報を取得する際には、その格納されているライセンスキーも併せて取得する。これにより、機器情報（ソフトウェア更新情報）をクラウドサーバ３にアップロードした際に、当該クラウドサーバ３が機器情報に含まれるライセンスキーをログインアカウント等と照合することで、実際に制御機器の制御用ソフトウェアを更新したユーザを特定することができ、制御用ソフトウェアの不正入手や不正更新を判定することができる。
【０１００】
なお、以上の実施形態及び変形例においては、工場などの所定施設内におけるフィールドネットワークに対してインターネットなどの広域ネットワークを直接接続すること自体にセキュリティ上問題があることを前提条件として説明した。これに対して、その前提条件に反し、広域ネットワークにおけるセキュリティ上の問題を排除でき、また接続先のクラウドサーバもセキュリティ上の問題がないことが明確である場合には、広域ネットワークを介してフィールドネットワークとクラウドサーバを常時直接的に接続して情報を送受させることも可能である。しかしながら、そのようにセキュリティ上の問題を全て排除して明確に安全性を確保するためには特定の技術課題を解決する必要があり、それが解決されず安全性に懸念が残っている状況では、上記実施形態及び変形例の適用が有効である。
【０１０１】
なお、以上の説明において、「垂直」「平行」「平面」等の記載がある場合には、当該記載は厳密な意味ではない。すなわち、それら「垂直」「平行」「平面」とは、設計上、製造上の公差、誤差が許容され、「実質的に垂直」「実質的に平行」「実質的に平面」という意味である。
【０１０２】
また、以上の説明において、外観上の寸法や大きさ、形状、位置等が「同時」「同一」「同じ」「等しい」「異なる」等の記載がある場合は、当該記載は厳密な意味ではない。すなわち、それら「同一」「等しい」「異なる」とは、設計上、製造上の公差、誤差が許容され、「実質的に同時」「実質的に同一」「実質的に同じ」「実質的に等しい」「実質的に異なる」という意味である。
【０１０３】
また、以上既に述べた以外にも、上記実施形態や各変形例による手法を適宜組み合わせて利用しても良い。その他、一々例示はしないが、上記実施形態や各変形例は、その趣旨を逸脱しない範囲内において、種々の変更が加えられて実施されるものである。
【符号の説明】
【０１０４】
１，１Ａ      ソフトウェア管理システム
２            機械設備（制御システム）
３            クラウドサーバ（ソフトウェア配信装置）
４            更新装置（ソフトウェア更新装置）
４Ａ          第１の更新装置（第１のソフトウェア更新装置）
４Ｂ          第２の更新装置（第２のソフトウェア更新装置）
５            インターネット（第２のネットワーク）
６            生産工場
７            メモ用紙
８            リムーバルメディア（記録媒体）
２１          上位制御装置（制御装置）
２２          モータ制御装置（制御装置）
２３          モータ
２４          エンコーダ（センサ）
２５          外部センサ（センサ）
２６          フィールドネットワーク（第１のネットワーク）
２７          ＵＳＢケーブル
３１          処理部
３２          ソフトウェア格納部
３３          ログイン履歴データベース
３４          ログイン認証部
３５          ログイン履歴管理部
３６          ソフトウェア管理部
３７          ライセンスキー発行部
３８          暗号化部
３９          サーバ情報送受信部
４１          ツールアプリケーション
４２          インターネット情報送受信部（受信部）
４３          ログイン申請部
４４          ライセンスキー表示部（出力部）
４５          ライセンスキー入力部（入力部）
４６          復号化部
４７          ＵＳＢ情報送受信部（更新部）
【図１】
2019067264.tif 000003
【図２】
2019067264.tif 000004
【図３】
2019067264.tif 000005
【図４】
2019067264.tif 000006
【図５】
2019067264.tif 000007
【図６】
2019067264.tif 000008
【図７】
2019067264.tif 000009
【図８】
2019067264.tif 000010
【手続補正書】
【提出日】平成31年2月4日(2019.2.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１のネットワークに接続され、更新可能な制御用ソフトウェアの処理によって制御する制御装置又はセンサを備えた制御システムと、
前記制御用ソフトウェアを格納し、第２のネットワークを介して前記制御用ソフトウェアを送信するソフトウェア配信装置と、
前記第１のネットワークと前記第２のネットワークの間の物理的な遮断状態を常に維持しつつ、前記第２のネットワークに接続した状態では前記ソフトウェア配信装置から前記制御用ソフトウェアを受信して格納し、前記第１のネットワークに接続した状態では格納した前記制御用ソフトウェアを前記制御装置又は前記センサに送信して更新させるソフトウェア更新装置と、
を有することを特徴とするソフトウェア管理システム。
【請求項２】
前記ソフトウェア更新装置は、
前記第１のネットワーク又は前記第２のネットワークのいずれか一方にだけ接続している状態でのみ処理を実行することを特徴とする請求項１記載のソフトウェア管理システム。
【請求項３】
前記ソフトウェア更新装置は、
前記第２のネットワークに接続して、前記ソフトウェア配信装置から受信した前記制御用ソフトウェアを所定の記録媒体に記録する第１のソフトウェア更新装置と、
前記第１のネットワークに接続して、前記所定の記録媒体から読み取った前記制御用ソフトウェアを前記第１のネットワークを介して前記制御装置又は前記センサに送信して更新させる第２のソフトウェア更新装置と、
を有することを特徴とする請求項１記載のソフトウェア管理システム。
【請求項４】
前記ソフトウェア更新装置は、
前記制御装置を介して間接的に前記第１のネットワークに接続することを特徴とする請求項１乃至３のいずれか１項に記載のソフトウェア管理システム。
【請求項５】
前記ソフトウェア配信装置は、
所定のキーデータに基づいて暗号化した前記制御用ソフトウェア及び対応する前記キーデータを送信し、
前記ソフトウェア更新装置は、
前記ソフトウェア配信装置から前記第２のネットワークを介して暗号化された前記制御用ソフトウェア及び対応する前記キーデータを受信する受信部と、
受信した前記キーデータを出力する出力部と、
を有することを特徴とする請求項１乃至４のいずれか１項に記載のソフトウェア管理システム。
【請求項６】
前記出力部は、
前記制御用ソフトウェアと前記キーデータを受信した際のログイン中の間だけ当該キーデータを出力し、当該ログインの終了後には当該キーデータを消去することを特徴とする請求項５記載のソフトウェア管理システム。
【請求項７】
前記ソフトウェア更新装置は、
キーデータを入力する入力部と、
入力された前記キーデータに基づいて受信した前記制御用ソフトウェアを復号化する復号化部と、
復号化した前記制御用ソフトウェアを前記第１のネットワークを介して前記制御装置又は前記センサに送信し更新させる更新部と、
を有することを特徴とする請求項５又は６記載にソフトウェア管理システム。
【請求項８】
前記更新部は、
更新実行後に復号化状態の前記制御用ソフトウェアを消去することを特徴とする請求項７記載のソフトウェア管理システム。
【請求項９】
前記ソフトウェア配信装置は、
前記制御用ソフトウェアの送信要求を受ける度に新たに前記キーデータを生成し、当該キーデータに基づいて前記制御用ソフトウェアを暗号化して送信することを特徴とする請求項５乃至８のいずれか１項に記載のソフトウェア管理システム。
【請求項１０】
前記ソフトウェア配信装置は、
ログインした前記ソフトウェア更新装置に対してのみ前記制御用ソフトウェアを送信することを特徴とする請求項９記載のソフトウェア管理システム。
【請求項１１】
前記ソフトウェア配信装置は、
ログインしたユーザのログインアカウントに対応して前記キーデータを生成することを特徴とする請求項１０記載のソフトウェア管理システム。
【請求項１２】
前記ソフトウェア配信装置は、
送信した前記制御用ソフトウェアに関するソフトウェア情報をログインしたユーザに対応させてログイン履歴に登録することを特徴とする請求項１０又は１１記載のソフトウェア管理システム。
【請求項１３】
前記ソフトウェア更新装置は、
前記制御装置又は前記センサに関する機器情報を取得して前記ソフトウェア配信装置に送信し、
前記ソフトウェア配信装置は、
受信した前記機器情報を前記ログイン履歴に登録することを特徴とする請求項１２記載のソフトウェア管理システム。
【請求項１４】
前記ソフトウェア配信装置は、
ログインしたユーザに対してそのログインアカウントに対応した前記ログイン履歴を送信することを特徴とする請求項１２又は１３記載のソフトウェア管理システム。
【請求項１５】
所定のキーデータに基づいて暗号化された制御用ソフトウェア及び対応する前記キーデータを第２のネットワークから受信し、前記キーデータに基づいて復号化した前記制御用ソフトウェアを、前記第２のネットワークから物理的な遮断状態を常に維持された第１のネットワークを介して制御装置又はセンサに更新させることを特徴とするソフトウェア更新装置。
【請求項１６】
請求項１５に記載の前記ソフトウェア更新装置に実行させるソフトウェア更新方法であって、
暗号化された前記制御用ソフトウェア及び対応する前記キーデータを前記第２のネットワークを介して受信することと、
受信した前記キーデータを出力することと、
キーデータを入力することと、
入力された前記キーデータに基づいて受信した前記制御用ソフトウェアを復号化することと、
復号化した前記制御用ソフトウェアを前記第１のネットワークを介して前記制御装置又は前記センサに更新させることと、
を実行させることを特徴とするソフトウェア更新方法。
【請求項１７】
請求項１５に記載の前記ソフトウェア更新装置が備える演算装置に実行させるソフトウェア更新プログラムであって、
暗号化された前記制御用ソフトウェア及び対応する前記キーデータを前記第２のネットワークを介して受信することと、
受信した前記キーデータを出力することと、
キーデータを入力することと、
入力された前記キーデータに基づいて受信した前記制御用ソフトウェアを復号化することと、
復号化した前記制御用ソフトウェアを前記第１のネットワークを介して前記制御装置又は前記センサに更新させることと、
を実行させることを特徴とするソフトウェア更新プログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
上記課題を解決するため、本発明の一の観点によれば、第１のネットワークに接続され、更新可能な制御用ソフトウェアの処理によって制御する制御装置又はセンサを備えた制御システムと、前記制御用ソフトウェアを格納し、第２のネットワークを介して前記制御用ソフトウェアを送信するソフトウェア配信装置と、前記第１のネットワークと前記第２のネットワークの間の物理的な遮断状態を常に維持しつつ、前記第２のネットワークに接続した状態では前記ソフトウェア配信装置から前記制御用ソフトウェアを受信して格納し、前記第１のネットワークに接続した状態では格納した前記制御用ソフトウェアを前記制御装置又は前記センサに送信して更新させるソフトウェア更新装置と、を有するソフトウェア管理システムが適用される。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
また、本発明の別の観点によれば、所定のキーデータに基づいて暗号化された制御用ソフトウェア及び対応する前記キーデータを第２のネットワークから受信し、前記キーデータに基づいて復号化した前記制御用ソフトウェアを、前記第２のネットワークから物理的な遮断状態を常に維持された第１のネットワークを介して制御装置又はセンサに更新させるソフトウェア更新装置が適用される。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
また、本発明の別の観点によれば、ソフトウェア更新装置に実行させるソフトウェア更新方法であって、暗号化された前記制御用ソフトウェア及び対応する前記キーデータを前記第２のネットワークを介して受信することと、受信した前記キーデータを出力することと、キーデータを入力することと、入力された前記キーデータに基づいて受信した前記制御用ソフトウェアを復号化することと、復号化した前記制御用ソフトウェアを前記第１のネットワークを介して前記制御装置又は前記センサに更新させることと、を実行させるソフトウェア更新方法が適用される。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
また、本発明の別の観点によれば、ソフトウェア更新装置が備える演算装置に実行させるソフトウェア更新プログラムであって、暗号化された前記制御用ソフトウェア及び対応する前記キーデータを前記第２のネットワークを介して受信することと、受信した前記キーデータを出力することと、キーデータを入力することと、入力された前記キーデータに基づいて受信した前記制御用ソフトウェアを復号化することと、復号化した前記制御用ソフトウェアを前記第１のネットワークを介して前記制御装置又は前記センサに更新させることと、を実行させるソフトウェア更新プログラムが適用される。