(57)【要約】【課題】制御プログラムに関する技術やノウハウ等の秘匿性を保護しつつ制御プログラムのメンテナンスによる管理者の作業負担を軽減する。【解決手段】実施形態のエンジニアリングツールは、メモリと、データベース記憶部と、エクスポート部と、を備える。データベース記憶部は、制御対象機器の制御に関わる制御プログラムを記憶する。エクスポート部は、データベース記憶部から、エクスポートが指示された制御プログラムを読み出してメモリに保存し、ユーザのアクセス権限毎に、読み出した制御プログラムに対して実行可能な処理の範囲が設定されているか否かを判断し、読み出した制御プログラムに対して実行可能な処理の範囲が設定されている場合、所定の暗号化情報に基づいて、読み出した制御プログラムを暗号化して、外部装置に対して送信する。【選択図】図２
2019144666.tif 000002
【特許請求の範囲】
【請求項１】
メモリと、
制御対象機器の制御に関わる制御プログラムを記憶するデータベース記憶部と、
前記データベース記憶部から、エクスポートが指示された前記制御プログラムを読み出して前記メモリに保存し、ユーザのアクセス権限毎に、前記読み出した制御プログラムに対して実行可能な処理の範囲が設定されているか否かを判断し、前記読み出した制御プログラムに対して実行可能な処理の範囲が設定されている場合、所定の暗号化情報に基づいて、前記読み出した制御プログラムを暗号化して、外部装置に対して送信するエクスポート部と、
を備えるエンジニアリングツール。
【請求項２】
前記外部装置から受信する前記制御プログラムのうちインポートする前記制御プログラムを取得して前記メモリに保存し、前記取得した制御プログラムが暗号化されている場合、所定の復号化情報に基づいて、前記取得した制御プログラムを復号化して前記データベース記憶部に保存するインポート部をさらに備える請求項１に記載のエンジニアリングツール。
【請求項３】
前記エクスポート部は、さらに、前記暗号化した制御プログラムに前記エンジニアリングツールのバージョン情報を付加して前記外部装置に送信し、
前記インポート部は、さらに、前記取得した制御プログラムに付加された前記バージョン情報を表示部に表示させる請求項２に記載のエンジニアリングツール。
【請求項４】
前記取得した制御プログラムと、前記データベース記憶部に記憶される前記制御プログラムのうち前記取得した制御プログラムにより更新する前記制御プログラムとを比較し、前記更新する制御プログラムが同一の前記制御プログラムにより更新されたか否かを表示する比較部をさらに備える請求項２または３に記載のエンジニアリングツール。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、エンジニアリングツールに関する。
【背景技術】
【０００２】
システムプログラマは、管理者端末を用いて、プラントを自動運転するためのプログラムをプラント制御装置（コントローラ）のアプリケーションプログラム（以下、制御プログラムと言う）として作成し、試験し、かつ調整した後に、プラントの運転者のプラント制御装置に対して提供する。システムプログラマは、制御プログラムを安全に制御するために、制御プログラムの調整時に、当該制御プログラムのデバックを行う。制御プログラムは、IEC61131-3で規定されているＬＤ（ラダーダイアグラム）、ＦＢＤ（ファンクションブロックダイアグラム）、ＳＦＣ（シーケンシャルファンクションチャート）、ＳＴ（ストラクチャードテキスト）等の言語を用いて記述され、デバック時には、オンライン状態で、制御プログラム単位での置き換え、または接点や変数の強制的な変更を行うことにより、その動作確認が行われる。
【０００３】
プラント制御装置および管理者端末等の制御プログラム作成・表示装置において、制御プログラムは、メインで実行されるメインプログラムと、当該メインプログラムからコールされて実行されるプログラムであるＦＢＫ（ファンクションブロック）とに分けられる。メインプログラムおよびＦＢＫは、それぞれ１つのプログラムとして、プラント制御装置にロードされ、実行される。また、作成されたメインプログラムおよびＦＢＫは、制御プログラム作成・表示装置のデータベース記憶部に保存される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−９５８４４号公報
【特許文献２】特開２０１１−２０４２５１号公報
【特許文献３】特開２０１４−２２８９９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、データベース記憶部に記憶されるメインプログラムおよびＦＢＫには、セキュリティ設定として、アカウント権限毎に、メインプログラムおよびＦＢＫに対して実行可能な編集や参照等の各種処理の実行範囲が設定されている。これにより、アカウント権限毎に、メインプログラムおよびＦＢＫに対する編集や参照等の各種処理の実行を制限して、システムプログラマが有する制御プログラムに関する技術およびノウハウを保護している。したがって、アカウント権限毎に各種処理の実行範囲が設定された制御プログラムのメンテナンスは、制御プログラムに対する編集権限を有するシステムプログラマ（管理者）のみが可能であり、編集権限を有しないユーザは、制御プログラムのメンテナンスを行うことができない。そのため、制御プログラムのメンテナンスが必要になった場合、管理者が、プラント制御装置が配置されたプラントに行って作業しなければならない。
【０００６】
制御プログラムのメンテナンスをサポートする手段として、プラント制御装置に記憶される制御プログラムを、エクスポートすることによって、管理者がプラントに行くことなく、管理者端末において、制御プログラムのメンテナンスを行う機能もある。しかしながら、アカウント権限毎に設定される各種処理の実行範囲の設定は、制御プログラムをエクスポートする制御プログラム作成・表示装置内においてのみ有効であり、エクスポートする制御プログラムに対して設定することはできないため、制御プログラムに関する技術およびノウハウを保護した状態で、制御プログラムをエクスポートすることは難しい。
【課題を解決するための手段】
【０００７】
実施形態のエンジニアリングツールは、メモリと、データベース記憶部と、エクスポート部と、を備える。データベース記憶部は、制御対象機器の制御に関わる制御プログラムを記憶する。エクスポート部は、データベース記憶部から、エクスポートが指示された制御プログラムを読み出してメモリに保存し、ユーザのアクセス権限毎に、読み出した制御プログラムに対して実行可能な処理の範囲が設定されているか否かを判断し、読み出した制御プログラムに対して実行可能な処理の範囲が設定されている場合、所定の暗号化情報に基づいて、読み出した制御プログラムを暗号化して、外部装置に対して送信する。
【図面の簡単な説明】
【０００８】
【図１】図１は、第１の実施形態にかかる制御システムの構成の一例を示す図である。
【図２】図２は、第１の実施形態にかかる制御プログラム作成・表示装置およびデータ管理装置の機能構成の一例を示す図である。
【図３】図３は、第１の実施形態にかかるコントローラにおける制御プログラムのエクスポート処理の流れの一例を示すフローチャートである。
【図４】図４は、第１の実施形態にかかる管理者端末における制御プログラムのインポート処理の流れの一例を示すフローチャートである。
【図５】図５は、第２の実施形態にかかる制御プログラム作成・表示装置およびデータ管理装置の機能構成の一例を示す図である。
【図６】図６は、第２の実施形態にかかる制御プログラム作成・表示装置からエクスポートされるエクスポートファイルをファイル構成の一例を示す図である。
【図７】図７は、第３の実施形態にかかる制御プログラム作成・表示装置およびデータ管理装置の機能構成の一例を示す図である。
【図８】図８は、第３の実施形態にかかる管理者端末における制御プログラムのインポート処理の流れの一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、添付の図面を用いて、本実施形態にかかるエンジニアリングツールを適用した制御システムについて説明する。
【００１０】
（第１の実施形態）
図１は、第１の実施形態にかかる制御システムの構成の一例を示す図である。本実施形態にかかる制御システムは、図１に示すように、システムプログラマが制御プログラムの管理に用いるデータ管理装置２と、エンジニアリングツールを用いてシステムプログラマが制御プログラムの作成や編集等に用いるパーソナルコンピュータ３（以下、管理者端末と言う）と、プラント等のユーザがエンジニアリングツールを用いて制御プログラムの変更等に用いるパーソナルコンピュータ４（以下、ユーザ端末と言う）と、制御プログラムに従ってプラント等の制御対象機器を制御するコントローラ１と、を有する。ここで、制御プログラムは、管理者端末３またはユーザ端末４においてメインで実行されるメインプログラムや当該メインプログラムからコールされて実行されるＦＢＫ等である。また、エンジニアリングツールは、制御対象機器に制御に関わるプログラムである制御プログラムの作成など、制御プログラムに関わる処理を実行するツールである。そして、管理者端末３は、エンジニアリングツールを用いて作成または編集等された制御プログラムを、コントローラ１に送信する。これにより、コントローラ１は、管理者端末３から受信した制御プログラムに従って制御対象機器を制御可能となる。以下の説明では、管理者端末３およびユーザ端末４を区別する必要が無い場合には、制御プログラム作成・表示装置１００（図２参照）と言う。
【００１１】
図２は、第１の実施形態にかかる制御プログラム作成・表示装置およびデータ管理装置の機能構成の一例を示す図である。図２に示すように、制御プログラム作成・表示装置１００は、エンジニアリングツール２０１、表示部２０２、キーボード２０３、マウス２０４等を有する。エンジニアリングツール２０１は、データ管理部２０５、データベース記憶部２０６、アカウント情報記憶部２０７、および一時記憶部２０８を有する。
【００１２】
データベース記憶部２０６は、ＨＤＤ（Hard  Disk  Drive）等の不揮発性の記憶部であり、制御プログラムや、制御対象機器の制御に用いる制御データ、制御プログラム作成・表示装置に設定される設定情報等の各種情報を記憶する。本実施形態では、データベース記憶部２０６は、制御プログラムを、保護されていないライブラリと、保護されたライブラリに分けて記憶している。ここで、保護されていないライブラリは、制御プログラム作成・表示装置のユーザの権限（以下、アクセス権限と言う）毎に、実行可能な処理（例えば、編集、削除、閲覧、コピー、移動）の範囲（以下、処理範囲と言う）が設定されていない制御プログラムの集合である。また、保護されたライブラリは、アクセス権限毎に、処理範囲が設定された制御プログラムの集合である。
【００１３】
アカウント情報記憶部２０７は、制御プログラム作成・表示装置を利用するユーザのアカウント情報を記憶する。ここで、アカウント情報は、図１に示すように、制御プログラム作成・表示装置のユーザを識別可能とするユーザＩＤ（例えば、User1、User2、User3）と、ユーザ毎に設定されかつ制御プログラム作成・表示装置１００へのログインに用いるパスワード（AAAA、BBBB、CCCC）と、ユーザのアクセス権限（管理者、編集者、参照者）と、を対応付けるテーブルである。一時記憶部２０は、ＲＡＭ（Random  Access  Memory）等の揮発性のメモリであり、エクスポートまたはインポートする制御プログラム等の各種情報を記憶する。
【００１４】
データ管理部２０５は、システムプログラマが制御プログラムを管理するための機能を提供する。具体的には、データ管理部２０５は、制御プログラム作成部２１０、インポート・エクスポート部２１１、および暗号・復号化部２１２を有する。制御プログラム作成部２１０は、キーボード２０３やマウス２０４等の操作に応じて、制御プログラムを作成する。インポート・エクスポート部２１１は、他の制御プログラム作成・表示装置等の外部装置に対する制御プログラムのエクスポート、および外部装置からの制御プログラムのインポートを実行する。暗号・復号化部２１２は、エクスポートする制御プログラムの暗号化、およびインポートする制御プログラムの復号化を行う。
【００１５】
図２に示すように、データ管理装置２は、データ管理部２２０および一時記憶部２０８を有する。データ管理部２２０は、インポート・エクスポート部２１１および暗号・復号化部２１２を有する。インポート・エクスポート部２１１および暗号・復号化部２１２の機能は、制御プログラム作成・表示装置１００が有するインポート・エクスポート部２１１および暗号・復号化部２１２と同様である。
【００１６】
図３は、第１の実施形態にかかるユーザ端末における制御プログラムのエクスポート処理の流れの一例を示すフローチャートである。以下の説明では、ユーザ端末４における制御プログラムのエクスポート処理の流れの一例について説明するが、管理者端末３において制御プログラムをエクスポートする場合も同様である。
【００１７】
まず、インポート・エクスポート部２１１は、ユーザ端末４のユーザ（例えば、制御対象機器の運転者）によってキーボード２０３やマウス２０４等の操作部が操作されて、エクスポートコマンドが入力されるのを待つ（ステップＳ３０１）。ここで、エクスポートコマンドは、制御プログラムのエクスポートを指示するコマンドである。本実施形態では、エクスポートコマンドは、エクスポートする制御プログラムを識別可能とする識別情報を含む。ユーザ端末４のユーザは、ユーザ端末４にインストールされた制御プログラムの編集等が必要となると、ユーザ端末４の操作部を操作して、エクスポートコマンドを入力する。
【００１８】
エクスポートコマンドが入力されると（ステップＳ３０１：Ｙｅｓ）、インポート・エクスポート部２１１は、ユーザのアクセス権限毎に、当該入力されたエクスポートコマンドが含む識別情報が示す制御プログラム（以下、エクスポートする制御プログラムと言う）に対して実行可能な処理範囲が設定されているか否かを判断する（ステップＳ３０２）。すなわち、インポート・エクスポート部２１１は、エクスポートコマンドが含む識別情報が示す制御プログラムが保護されたライブラリに含まれるか否かを判断する。
【００１９】
そして、エクスポートする制御プログラムに対して実行可能な処理範囲が設定されている場合（ステップＳ３０２：Ｙｅｓ）、すなわち、エクスポートする制御プログラムが保護されたライブラリに含まれる場合、インポート・エクスポート部２１１は、データベース記憶部２０６から、エクスポートする制御プログラムを読み出して一時記憶部２０８に保存する（ステップＳ３０３）。
【００２０】
次いで、暗号・復号化部２１２は、アカウント情報記憶部２０７に記憶されるアカウント情報において、管理者（例えば、スーパーユーザ）のアクセス権限と対応付けられるユーザＩＤ（例えば、User1）およびパスワード（例えば、AAA）を取得する（ステップＳ３０４）。管理者のユーザＩＤおよびパスワードは、アカウント情報に対して予め含められるものとする。また、アカウント情報に含まれる管理者のユーザＩＤおよびパスワードは、制御プログラム作成・表示装置１００のユーザによって閲覧、編集、削除等が行えない状態になっているものとする。
【００２１】
次に、暗号・復号化部２１２は、取得したユーザＩＤおよびパスワードに基づいて、一時記憶部２０８に記憶される制御プログラムを暗号化する（ステップＳ３０５）。本実施形態では、暗号・復号化部２１２は、管理者のＩＤおよびパスワードを用いて、制御プログラムを暗号化しているが、所定の暗号化情報を用いて、制御プログラムを暗号化するものであれば、これに限定するものではない。例えば、暗号・復号化部２１２は、エクスポートコマンドに対して予め設定された暗号化情報を用いて、制御プログラムを暗号化しても良い。または、暗号・復号化部２１２は、アカウント情報に含まれる予め設定されたアクセス権限（管理者）と対応付けられた他のデータベースに記憶された暗号化情報を用いて、制御プログラムを暗号化しても良い。
【００２２】
そして、インポート・エクスポート部２１１は、暗号化された制御プログラムを、管理者端末３等の外部装置に対して送信する（ステップＳ３０６）。本実施形態では、インポート・エクスポート部２１１は、暗号化された制御プログラムと、当該制御プログラムの識別情報とを含むエクスポートファイルを外部装置に対して送信する。また、本実施形態では、インポート・エクスポート部２１１および暗号・復号化部２１２が、エクスポート部の一例として機能する。
【００２３】
ユーザ端末４にインストールされた制御プログラムのうち実行可能な処理範囲が設定された制御プログラムのメンテナンスが必要となった場合、編集権限を有しないユーザ端末４のユーザは、メンテナンスを行うことができない。そのため、制御プログラムのシステムプログラマ等の管理者が、ユーザ端末４が配置されたプラント等に行って、制御プログラムに対して編集等のメンテナンスを行う必要があり、管理者の作業負担が大きい。制御プログラムのメンテナンスをサポートする手段として、ユーザ端末４に記憶される制御プログラムを、管理者端末３にエクスポートすることによって、管理者がプラント等に行くことなく、制御プログラムのメンテナンスを行うことも可能である。
【００２４】
しかしながら、アカウント権限毎に設定される各種処理の実行範囲の設定は、制御プログラムをエクスポートする制御プログラム作成・表示装置１００内においてのみ有効であり、エクスポートする制御プログラムに対して設定することはできないため、制御プログラムに関する技術およびノウハウを保護した状態で、制御プログラムを管理者端末３に対してエクスポートすることは難しい。そこで、本実施形態では、上述したように、インポート・エクスポート部２１１は、メンテナンスを行う制御プログラムを、所定の暗号化情報を用いて暗号化した上で、管理者端末３に送信する。
【００２５】
これにより、制御プログラムをエクスポートする際に、当該制御プログラムが編集権限を有さないユーザ（例えば、ユーザ端末４のユーザ）によって閲覧されることを防止しつつ、管理者端末３において制御プログラムのメンテナンスを行うことができるので、制御プログラムに関する技術やノウハウ等の秘匿性を保護しつつ制御プログラムのメンテナンスによる管理者の作業負担を軽減できる。また、エクスポートする制御プログラムが管理者端末３以外の外部装置に対して誤って送信された場合に、当該外部装置において何ら権限を有さないユーザによって制御プログラムが閲覧されることも防止できる。
【００２６】
一方、エクスポートする制御プログラムに対して実行可能な処理範囲が設定されていない場合（ステップＳ３０２：Ｎｏ）、すなわち、エクスポートする制御プログラムが保護されていないライブラリに含まれる場合、インポート・エクスポート部２１１は、データベース記憶部２０６から、エクスポートする制御プログラムを読み出して一時記憶部２０８に保存する（ステップＳ３０７）。次いで、インポート・エクスポート部２１１は、一時記憶部２０８に記憶される制御プログラムを暗号化することなく、管理者端末３等の外部装置に対して送信する（ステップＳ３０６）。
【００２７】
図４は、第１の実施形態にかかる管理者端末における制御プログラムのインポート処理の流れの一例を示すフローチャートである。以下の説明では、管理者端末３における制御プログラムのインポート処理の流れの一例について説明するが、ユーザ端末４において制御プログラムをインポートする場合も同様である。
【００２８】
まず、インポート・エクスポート部２１１は、管理者端末３のユーザ（例えば、システムプログラマ）によってキーボード２０３やマウス２０４等の操作部が操作されて、インポートコマンドが入力されるのを待つ（ステップＳ４０１）。ここで、インポートコマンドは、制御プログラムのインポートを指示するコマンドである。
【００２９】
インポートコマンドが入力されると（ステップＳ４０１：Ｙｅｓ）、インポート・エクスポート部２１１は、ユーザ端末４等の外部装置から、メンテナンスする制御プログラムを含むエクスポートファイルを受信する（ステップＳ４０２）。次いで、インポート・エクスポート部２１１は、受信したエクスポートファイルから、インポートする制御プログラムを取得し、当該取得した制御プログラムを一時記憶部２０８に保存する（ステップＳ４０３）。
【００３０】
一時記憶部２０８に制御プログラムが保存されると、暗号・復号化部２１２は、インポートする制御プログラムが暗号化されているか否かを判断する（ステップＳ４０４）。インポートする制御プログラムが暗号化されている場合（ステップＳ４０４：Ｙｅｓ）、暗号・復号化部２１２は、アカウント情報記憶部２０７に記憶されるアカウント情報において、管理者のアクセス権限と対応付けられるユーザＩＤおよびパスワードを取得する（ステップＳ４０５）。
【００３１】
次に、暗号・復号化部２１２は、取得したユーザＩＤおよびパスワードを用いて、一時記憶部２０８に記憶される制御プログラムを復号化する（ステップＳ４０６）。本実施形態では、暗号・復号化部２１２は、管理者のＩＤおよびパスワードを用いて、制御プログラムを復号化しているが、所定の復号化情報を用いて、制御プログラムを復号化するものであれば、これに限定するものではない。例えば、暗号・復号化部２１２は、インポートコマンドに対して予め設定された復号化情報を用いて、制御プログラムを復号化しても良い。または、暗号・復号化部２１２は、アカウント情報に含まれる予め設定されたアクセス権限と対応付けられた他のデータベースに記憶された復号化情報を用いて、制御プログラムを復号化しても良い。
【００３２】
また、暗号・復号化部２１２は、制御プログラムの復号化に成功したか否かを判断する（ステップＳ４０７）。制御プログラムの復号化に失敗した場合（ステップ４０７：Ｎｏ）、暗号・復号化部２１２は、インポートする制御プログラムを含むエクスポートファイルを破棄して、制御プログラムをインポートする処理を終了する。一方、制御プログラムの復号化に成功した場合（ステップＳ４０７：Ｙｅｓ）、インポート・エクスポート部２１１は、復号化した制御プログラムを、データベース記憶部２０６に保存する（ステップＳ４０８）。本実施形態では、インポート・エクスポート部２１１および暗号・復号化部２１２が、インポート部の一例として機能する。
【００３３】
これにより、エクスポートする制御プログラムがアクセス権限を有さないユーザ（例えば、ユーザ端末４のユーザ）によって閲覧されることを防止しつつ、管理者端末３において制御プログラムのメンテナンスを行うことができるので、制御プログラムに関する技術やノウハウ等の秘匿性を保護しつつ制御プログラムのメンテナンスによる管理者の作業負担を軽減できる。
【００３４】
本実施形態では、インポート・エクスポート部２１１は、データベース記憶部２０６に記憶される保護されたライブラリに対して、復号化した制御プログラムを含める。データベース記憶部２０６に保護されたライブラリが存在しない場合、インポート・エクスポート部２１１は、保護されたライブラリを作成し、当該作成したライブラリに対して、復号化した制御プログラムを含める。
【００３５】
また、インポートする制御プログラムが暗号化されていない場合（ステップＳ４０４：Ｎｏ）、インポート・エクスポート部２１１は、インポートする制御プログラムを、データベース記憶部２０６に保存する（ステップＳ４０９）。その際、インポート・エクスポート部２１１は、データベース記憶部２０６に記憶される保護されていないライブラリに対して、インポートする制御プログラムを含める。データベース記憶部２０６に保護されていないライブラリが存在しない場合、インポート・エクスポート部２１１は、保護されていないライブラリを作成し、当該作成したライブラリに対して、インポートする制御プログラムを含める。
【００３６】
このように、第１の実施形態にかかる制御プログラム作成・表示装置によれば、制御プログラムをエクスポートする際に、当該制御プログラムが編集権限を有さないユーザによって閲覧されることを防止しつつ、管理者端末３において制御プログラムのメンテナンスを行うことができるので、制御プログラムに関する技術やノウハウ等の秘匿性を保護しつつ制御プログラムのメンテナンスによる管理者の作業負担を軽減できる。
【００３７】
（第２の実施形態）
本実施形態は、制御プログラム作成・表示装置において、インポートした制御プログラムに付加される、エンジニアリングツールのバージョン情報を表示する例である。以下の説明では、第１の実施形態と同様の構成については説明を省略する。
【００３８】
図５は、第２の実施形態にかかる制御プログラム作成・表示装置およびデータ管理装置の機能構成の一例を示す図である。図５に示すように、制御プログラム作成・表示装置５００は、エンジニアリングツール５０１、表示部２０２、キーボード２０３、マウス２０４等を有する。エンジニアリングツール５０１は、データ管理部５０２、データベース記憶部２０６、アカウント情報記憶部２０７、および一時記憶部２０８を有する。
【００３９】
データ管理部５０２は、制御プログラム作成部２１０、インポート・エクスポート部５０３、および暗号・復号化部２１２に加えて、識別情報管理部５０４を有する。識別情報管理部５０４は、制御プログラムをエクスポートする場合、当該制御プログラムをエクスポートするエンジニアリングツール５０１のバージョン情報を取得する。また、識別情報管理部５０４は、制御プログラムをインポートする場合、当該制御プログラムに付加されるバージョン情報を取得し、当該取得したバージョン情報を表示部２０２に表示する。インポート・エクスポート部５０３は、制御プログラムを外部装置に対してエクスポートする場合、識別情報管理部５０４により取得されるバージョン情報を制御プログラムに付加する。
【００４０】
これにより、管理者端末３のユーザである管理者は、表示部２０２に表示されるバージョン情報を見て、コントローラ１のエンジニアリングツール５０１のバージョン情報が、管理者端末３のエンジニアリングツール５０１のバージョン情報より新しいか否かを判断する。そして、管理者は、コントローラ１のエンジニアリングツール５０１のバージョン情報が、管理者端末３のエンジニアリングツール５０１のバージョン情報よりも新しい場合には、インポートコマンドを入力し直して、コントローラ１のエンジニアリングツール５０１より新しいバージョン情報のエンジニアリングツール５０１によって制御プログラムをインポートし直して、制御プログラムのメンテナンスを行う。その結果、コントローラ１のエンジニアリングツール５０１のバージョン情報の方が、管理者端末３のエンジニアリングツール５０１のバージョン情報よりも新しく、インポートした制御プログラムに対してメンテナンスを行えなくなることを防止できるので、制御プログラムのメンテナンス性を向上させることができる。
【００４１】
また、管理者は、コントローラ１のエンジニアリングツール５０１のバージョン情報が、管理者端末３のエンジニアリングツール５０１のバージョン情報よりも古い場合には、インポートコマンドを入力し直して、コントローラ１のエンジニアリングツール５０１のバージョン情報より古いバージョン情報のエンジニアリングツール５０１によって制御プログラムをインポートし直して、制御プログラムのメンテナンスを行う。その結果、メンテナンスを行った制御プログラムを、コントローラ１にエクスポートした際に、コントローラ１において当該制御プログラムを実行できなくなることを防止できなくなることを防止できるので、制御プログラムのメンテナンス性を向上させることができる。
【００４２】
図５に示すように、データ管理装置５１０は、データ管理部５１１および一時記憶部２０８を有する。データ管理部５１１は、インポート・エクスポート部５０３および暗号・復号化部２１２に加えて、識別情報管理部５０４を有する。インポート・エクスポート部５０３、暗号・復号化部２１２、識別情報管理部５０４の機能は、制御プログラム作成・表示装置５００が有するインポート・エクスポート部５０３、暗号・復号化部２１２、および識別情報管理部５０４と同様である。
【００４３】
図６は、第２の実施形態にかかる制御プログラム作成・表示装置からエクスポートされるエクスポートファイルをファイル構成の一例を示す図である。本実施形態では、図６に示すように、制御プログラム作成・表示装置５００のインポート・エクスポート部５０３は、暗号化された制御プログラムと、識別情報管理部５０４により取得されたバージョン情報等の識別情報と、を含むエクスポートファイルを管理者端末３等の外部装置に対して送信する。管理者端末３等の外部装置の識別情報管理部５０４は、ユーザ端末４から受信したエクスポートファイルに識別情報として含まれるバージョン情報を表示部２０２に表示させる。
【００４４】
このように、第２の実施形態にかかる制御プログラム作成・表示装置５００によれば、コントローラ１のエンジニアリングツール５０１のバージョン情報の方が、管理者端末３のエンジニアリングツール５０１のバージョン情報よりも新しい場合に、管理者端末３にインポートした制御プログラムに対してメンテナンスを行えなくなることを防止できるので、制御プログラムのメンテナンス性を向上させることができる。
【００４５】
（第３の実施形態）
本実施形態は、インポートする制御プログラムと、データベース記憶部に記憶される制御プログラムのうち当該インポートする制御プログラムにより更新する制御プログラムとを比較し、更新する制御プログラムが同一の制御プログラムにより更新されたか否かを表示する例である。
【００４６】
図７は、第３の実施形態にかかる制御プログラム作成・表示装置およびデータ管理装置の機能構成の一例を示す図である。図７に示すように、制御プログラム作成・表示装置７００は、エンジニアリングツール７０１、表示部２０２、キーボード２０３、マウス２０４等を有する。エンジニアリングツール７０１は、データ管理部７０２、データベース記憶部２０６、アカウント情報記憶部２０７、および一時記憶部２０８を有する。
【００４７】
データ管理部７０２は、制御プログラム作成部２１０、インポート・エクスポート部５０３、暗号・復号化部２１２、および識別情報管理部５０４に加えて、データ比較部７０３を有する。データ比較部７０３は、インポートする制御プログラムと、データベース記憶部２０６に記憶される制御プログラムのうち当該インポートする制御プログラムにより更新する制御プログラムとを比較し、更新する制御プログラムが同一の制御プログラムにより更新されたか否かを判断する。そして、データ比較部７０３は、更新する制御プログラムが同一の制御プログラムにより更新されたか否かの判断結果を表示部２０２に表示させる。これにより、管理者端末３において制御プログラムのメンテナンスを行うシステムプログラマは、ユーザ端末４における制御プログラムの使用状態を把握した上で、制御プログラムのメンテナンスを行うことができるので、制御プログラムのメンテナンス性を向上させることができる。
【００４８】
図７に示すように、データ管理装置７１０は、データ管理部７１１および一時記憶部２０８を有する。データ管理部７１１は、インポート・エクスポート部５０３、暗号・復号化部２１２、および識別情報管理部５０４に加えて、データ比較部７０３を有する。データ比較部７０３の機能は、制御プログラム作成・表示装置７００が有するデータ比較部７０３と同様である。
【００４９】
図８は、第３の実施形態にかかる管理者端末における制御プログラムのインポート処理の流れの一例を示す図である。本実施形態では、インポートする制御プログラムが復号化されると（ステップＳ４０７：Ｙｅｓ）またはインポートする制御プログラムが暗号化されていない場合（ステップＳ４０４：Ｎｏ）、データ比較部７０３は、当該インポートする制御プログラムと、データベース記憶部２０６に記憶される制御プログラムのうち当該インポートする制御プログラムにより更新する制御プログラムとを比較し、更新する制御プログラムが同一の制御プログラムにより更新されるか否かを判断し、その結果を表示部２０２に表示させる（ステップＳ８０１、ステップＳ８０２）。
【００５０】
本実施形態では、インポートコマンドの入力に応じて、更新する制御プログラムが同一の制御プログラムにより更新されるか否かの判断結果を表示部２０２に表示させ、かつインポートする制御プログラムをデータベース記憶部２０６へ保存しているが、インポートコマンドに代えて、検証コマンドが入力された場合、インポート・エクスポート部２１１は、インポートする制御プログラムによって、データベース記憶部２０６に記憶される制御プログラムを更新せずに、当該インポートする制御プログラムをデータベース記憶部２０６以外の作業領域に保存しておくものとする。ここで、検証コマンドは、更新する制御プログラムが同一の制御プログラムにより更新されるか否かの判断結果の表示を指示するコマンドである。そして、データ比較部７０３は、更新する制御プログラムが同一の制御プログラムにより更新されるか否かの判断結果を表示部２０２に表示させても良い。
【００５１】
このように、第３の実施形態にかかる制御プログラム作成・表示装置７００によれば、管理者端末３において制御プログラムのメンテナンスを行うシステムプログラマは、ユーザ端末４における制御プログラムの使用状態を把握した上で、制御プログラムのメンテナンスを行うことができるので、制御プログラムのメンテナンス性を向上させることができる。
【００５２】
以上説明したとおり、第１から第３の実施形態によれば、制御プログラムに関する技術やノウハウ等の秘匿性を保護しつつ制御プログラムのメンテナンスによる管理者の作業負担を軽減できる。
【００５３】
なお、本実施形態の制御プログラム作成・表示装置１００，５００，７００で実行されるプログラムは、ＲＯＭ（Read  Only  Memory）等に予め組み込まれて提供される。本実施形態の制御プログラム作成・表示装置１００，５００，７００で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Digital  Versatile  Disk）等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
【００５４】
さらに、本実施形態の制御プログラム作成・表示装置１００，５００，７００で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態の制御プログラム作成・表示装置１００，５００，７００で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
【００５５】
本実施形態の制御プログラム作成・表示で実行されるプログラムは、上述した各部（制御プログラム作成部２１０、インポート・エクスポート部２１１，５０３、暗号・復号化部２１２、識別情報管理部５０４、データ比較部７０３）を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ（Central  Processing  Unit）が上記ＲＯＭから〜プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、制御プログラム作成部２１０、インポート・エクスポート部２１１，５０３、暗号・復号化部２１２、識別情報管理部５０４、データ比較部７０３が主記憶装置上に生成されるようになっている。
【００５６】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００５７】
１００，５００，７００  制御プログラム作成・表示装置
２０１，５０１，７０１  エンジニアリングツール
２０２  表示部
２０３  キーボード
２０４  マウス
２０５，５０２，７０２  データ管理部
２０６  データベース記憶部
２０７  アカウント情報記憶部
２０８  一時記憶部
２１０  制御プログラム作成部
２１１，５０３  インポート・エクスポート部
２１２  暗号・復号化部
５０４  識別情報管理部
７０３  データ比較部
【図１】
2019144666.tif 000003
【図２】
2019144666.tif 000004
【図３】
2019144666.tif 000005
【図４】
2019144666.tif 000006
【図５】
2019144666.tif 000007
【図６】
2019144666.tif 000008
【図７】
2019144666.tif 000009
【図８】
2019144666.tif 000010