(57)【特許請求の範囲】
【請求項１】
制御機器にて実行されるプログラムである制御プログラムを構成するプログラム部品を提供する提供処理部と、
前記プログラム部品に従った動作を模擬的に実行するためのプログラムである動作模擬モジュールについて、前記プログラム部品を実行することによる前記制御機器の動作を模擬可能か否かの検証結果に基づいて前記動作模擬モジュールに認証を与える認証部と、
前記認証が与えられた前記動作模擬モジュールを使用して前記プログラム部品の動作確認を行う動作確認部と、を備えることを特徴とするプログラム提供装置。
【請求項２】
前記動作確認部は、前記制御機器の動作環境を示す情報を前記動作模擬モジュールに設定する動作環境設定部を有し、前記動作環境において前記プログラム部品を実行することによる前記制御機器の動作を模擬することを特徴とする請求項１に記載のプログラム提供装置。
【請求項３】
前記認証部は、前記動作模擬モジュールが前記制御機器の動作を模擬可能か否かを検証するための試験を実施することを特徴とする請求項１または２に記載のプログラム提供装置。
【請求項４】
前記プログラム部品が提供される際の前記プログラム部品の検索に使用された検索語と、提供された前記プログラム部品とが対応付けられた検索結果データを保持する検索結果データ保持部と、
過去に使用された検索語の組み合わせと、前記組み合わせに含まれる検索語同士の類似度とを保持する類似度保持部と、
入力された検索語と前記類似度保持部に保持されている前記類似度とに基づいて、前記検索結果データ保持部に保持されている検索結果データの中から、前記入力された検索語と類似する検索語を含む検索結果データを検索する類似語検索部と、を備えることを特徴とする請求項１から３のいずれか１つに記載のプログラム提供装置。
【請求項５】
制御機器にて実行されるプログラムである制御プログラムを構成するプログラム部品の提供をコンピュータによって実行するプログラム提供方法であって、
前記プログラム部品に従った動作を模擬的に実行するためのプログラムである動作模擬モジュールについて、前記プログラム部品を実行することによる前記制御機器の動作を模擬可能か否かの検証結果に基づいて前記動作模擬モジュールに認証を与える工程と、
前記認証が与えられた前記動作模擬モジュールを使用して、前記プログラム部品の動作確認を行う工程と、を含むことを特徴とするプログラム提供方法。
【請求項６】
制御機器にて実行されるプログラムである制御プログラムを構成するプログラム部品を提供するプログラム提供装置を含むプログラム提供システムであって、
前記プログラム提供装置は、
前記プログラム部品に従った動作を模擬的に実行するためのプログラムである動作模擬モジュールについて、前記プログラム部品を実行することによる前記制御機器の動作を模擬可能か否かの検証結果に基づいて前記動作模擬モジュールに認証を与える認証部と、
前記認証が与えられた前記動作模擬モジュールを使用して前記プログラム部品の動作確認を行う動作確認部と、を備えることを特徴とするプログラム提供システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、制御プログラムを構成するプログラム部品を提供するプログラム提供装置、プログラム提供方法およびプログラム提供システムに関する。
【背景技術】
【０００２】
生産設備を制御するための制御プログラムを作成する際に、過去に作成されたプログラム部品を再利用することによって、プログラム作成のための作業の効率化が図られることがある。制御プログラムを作成する作業者が、過去に作成されたプログラム部品の中から所望のプログラム部品を取得するためのシステムとして、作成されたプログラム部品を蓄積し、蓄積されたプログラム部品の中からのプログラム部品の検索と、検索されたプログラム部品の提供とを行うプログラム提供システムが提案されている。【０００３】
プログラム提供システムの形態の１つとして、プログラム部品の売り手によるプログラム部品の出品を募り、プログラム部品の買い手にプログラム部品を販売するマーケットプレイスの形態が挙げられる。以下の説明にて、プログラム提供システムを運用する人または組織をプラットフォーマー（platformer）、プログラム提供システムへプログラム部品を出品する人または組織をプロデューサー（producer）、プログラム提供システムからプログラム部品を購入する人または組織をコンシュマー（consumer）と称することがある。プロデューサーは、出品するプログラム部品を作成する人または組織でもある。コンシュマーは、購入したプログラム部品を利用して制御プログラムを作成する人または組織でもある。なお、プラットフォーマー、プロデューサーおよびコンシュマーとは、マーケットプレイスにおいて担う役割をそれぞれ称したものとする。【０００４】
プログラム提供システムを適正に機能させるために、プログラム提供システムには、コンシュマーへ提供されるプログラム部品について正常な動作を保証することが求められる。コンシュマーは、提供されるプログラム部品が正常に動作することを確認する。【０００５】
特許文献１には、プログラムの配信サービスを提供するシステム管理者のサーバにプログラム実行部が設けられている配信システムが開示されている。特許文献１の技術によると、コンシュマーは、プログラム実行部にてプログラム部品を実行することによって、プログラム部品の動作を確認する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−３１２５０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記特許文献１にかかる従来技術の場合、サーバに設けられているプログラム実行部が、プログラム部品を実行する制御機器と同じ動作をすることが保証されていない可能性がある。従来技術の場合、コンシュマーは、サーバにて確認された動作が制御機器においても実現可能か否かを、実際の制御機器、または制御機器の動作を模擬するシミュレータを用いて確認する必要があった。このため、従来技術の場合、コンシュマーが取得するプログラム部品の各々について、プログラム部品の取得時あるいは制御プログラムの作成時にコンシュマーによる動作確認が必要となることで、コンシュマーの作業負担が大きくなる。コンシュマーの作業負担を低減するために、プログラム提供システムに出品されるプログラム部品の各々についての動作確認をプラットフォーマーまたはプロデューサーが行うこととした場合、プラットフォーマーまたはプロデューサーの作業負担が大きくなる。このように、上記従来技術によると、プログラム部品の動作確認のための作業負担が大きくなるという問題があった。【０００８】
本開示は、上記に鑑みてなされたものであって、プログラム部品の動作確認のための作業負担を低減可能とするプログラム提供装置を得ることを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本開示にかかるプログラム提供装置は、制御機器にて実行されるプログラムである制御プログラムを構成するプログラム部品を提供する提供処理部と、プログラム部品に従った動作を模擬的に実行するためのプログラムである動作模擬モジュールについて、プログラム部品を実行することによる制御機器の動作を模擬可能か否かの検証結果に基づいて動作模擬モジュールに認証を与える認証部と、認証が与えられた動作模擬モジュールを使用してプログラム部品の動作確認を行う動作確認部と、を備える。
【発明の効果】
【００１０】
本開示にかかるプログラム提供装置は、プログラム部品の動作確認のための作業負担を低減することができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１にかかるプログラム提供装置であるサーバのブロック図
【図２】実施の形態１にかかるプログラム提供装置であるサーバを含むプログラム提供システムの構成図
【図３】図２に示すプログラム提供システムを構成するサーバおよび各クライアントＰＣ（Personal  Computer）の動作手順を示す図
【図４】図１に示すサーバが有する部品管理部に格納される属性情報の例を示す図
【図５】図１に示すサーバの認証部が実施する試験の第１の例を説明するためのフローチャート
【図６】図１に示すサーバの認証部による照合の結果の表示例を示す図
【図７】図１に示すサーバの認証部が実施する試験の第２の例を説明するための図
【図８】実施の形態２にかかるプログラム提供装置であるサーバの動作手順の例を示すフローチャート
【図９】実施の形態３にかかるプログラム提供装置であるサーバのブロック図
【発明を実施するための形態】
【００１２】
以下に、実施の形態にかかるプログラム提供装置、プログラム提供方法およびプログラム提供システムを図面に基づいて詳細に説明する。なお、この実施の形態により本開示が限定されるものではない。
【００１３】
実施の形態１．
図１は、実施の形態１にかかるプログラム提供装置であるサーバのブロック図である。図２は、実施の形態１にかかるプログラム提供装置であるサーバを含むプログラム提供システムの構成図である。
【００１４】
プログラム提供システムの概要について説明する。プログラム提供システムは、プログラム部品を提供するシステムである。プログラム提供システムは、プログラム部品を作成するプロデューサーによるプログラム部品の出品を募り、コンシュマーにプログラム部品を販売するマーケットプレイスの形態のシステムである。プログラム部品は、制御機器にて実行される制御プログラムを構成するプログラムである。また、プログラム提供システムは、動作模擬モジュールを作成するプロデューサーによる動作模擬モジュールの出品を募る。動作模擬モジュールは、プログラム部品に従った動作を模擬的に実行するためのプログラムである。実施の形態１にかかるプログラム提供装置であるサーバ１では、動作模擬モジュールの認証が行われる。サーバ１では、出品された動作模擬モジュールのうち認証が与えられた動作模擬モジュールの使用によって、プログラム部品の動作確認が行われる。
【００１５】
プログラム部品には、プログラム部品の動作仕様についての記述と、制御機器上にて実行可能なモジュールとが含まれる。モジュールはソースコードであっても良い。制御機器は、制御プログラムを実行することによって生産設備を制御する機器である。プログラマブルロジックコントローラ（Programmable  Logic  Controller：ＰＬＣ）は、制御機器の１つの例である。制御機器の図示は省略する。
【００１６】
プログラム提供システムは、サーバ１と、クライアントＰＣ２，３，４とを有する。プラットフォーマーは、サーバ１を使用してプログラム提供システムを運用する。サーバ１は、作成されたプログラム部品を蓄積し、蓄積されたプログラム部品の検索と、検索されたプログラム部品の提供とを行う。動作模擬モジュールを作成するプロデューサーは、クライアントＰＣ２を使用して動作模擬モジュールを作成する。プログラム部品を作成するプロデューサーは、クライアントＰＣ３を使用してプログラム部品を作成する。コンシュマーは、クライアントＰＣ４を使用して制御プログラムを作成する。
【００１７】
サーバ１と、各クライアントＰＣ２，３，４とは、ネットワーク５を介して互いに接続されている。ネットワーク５には、有線または無線を問わず、インターネット（Internet）、ＬＡＮ（Local  Area  Network）またはＶＰＮ（Virtual  Private  Network）などの、任意の種類の通信網を採用できる。
【００１８】
なお、マーケットプレイスには、動作模擬モジュールを作成する複数のプロデューサーと、プログラム部品を作成する複数のプロデューサーと、複数のコンシュマーとが参加する。プログラム提供システムには、複数のクライアントＰＣ２と、複数のクライアントＰＣ３と、複数のクライアントＰＣ４とが含まれる。
【００１９】
次に、サーバ１の構成について説明する。実施の形態１において、サーバ１は、ＰＣなどのコンピュータである。サーバ１には、プログラム提供システムを運用するためのプログラムがインストールされる。図１には、サーバ１が有する機能構成と、サーバ１の機能構成を実現するためのハードウェア構成とを示している。
【００２０】
サーバ１は、各種処理を実行する処理部であるプロセッサ１０と、情報を記憶する記憶部であるメモリ１１と、サーバ１の外部の装置との間における情報の送受信を担う通信装置１３と、情報を表示する表示装置１４とを有する。なお、図１に示すプロセッサ１０とメモリ１１とは、互いに別のハードウェア構成に備えられても良い。
【００２１】
プロセッサ１０は、ＣＰＵ（Central  Processing  Unit）である。プロセッサ１０は、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、又はＤＳＰ（Digital  Signal  Processor）であっても良い。メモリ１１は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ、ＥＰＲＯＭ（Erasable  Programmable  Read  Only  Memory）またはＥＥＰＲＯＭ（登録商標）（Electrically  Erasable  Programmable  Read  Only  Memory）、ＨＤＤ（Hard  Disk  Drive）またはＳＳＤ（Solid  State  Drive）を含む。プログラム提供システムを運用するためのプログラムは、メモリ１１に格納される。プロセッサ１０は、メモリ１１に格納されているプログラムを実行する。
【００２２】
サーバ１は、動作確認部１５、認証部１６、部品登録処理部１７、モジュール登録処理部１８、提供処理部１９および検索処理部２０を備える。動作確認部１５、認証部１６、部品登録処理部１７、モジュール登録処理部１８、提供処理部１９および検索処理部２０の各々は、プロセッサ１０を使用することによって実現される機能部である。これらの機能部の各機能は、プロセッサ１０およびソフトウェアの組み合わせによって実現される。各機能は、プロセッサ１０およびファームウェアの組み合わせによって実現されても良く、プロセッサ１０、ソフトウェアおよびファームウェアの組み合わせによって実現されても良い。ソフトウェアまたはファームウェアは、プログラムとして記述され、メモリ１１に格納される。プロセッサ１０は、ソフトウェアまたはファームウェアを読み出す。プロセッサ１０は、ソフトウェアまたはファームウェアを実行する。
【００２３】
プログラム提供システムを運用するためのプログラムは、コンピュータによる読み取りが可能とされた記憶媒体に記録されたものであっても良い。サーバ１は、記憶媒体に記録されたプログラムをメモリ１１へ格納しても良い。記憶媒体は、フレキシブルディスクである可搬型記憶媒体、あるいは半導体メモリであるフラッシュメモリであっても良い。プログラム提供システムを運用するためのプログラムは、他のコンピュータから通信ネットワークを介してサーバ１へインストールされても良い。
【００２４】
通信装置１３は、各クライアントＰＣ２，３，４から送信される情報を受信し、かつ、各クライアントＰＣ２，３，４へ情報を送信する。表示装置１４は、画面にて情報を表示するディスプレイである。
【００２５】
メモリ１１は、サーバ１に登録されたプログラム部品を管理する部品管理部２４と、サーバ１に登録された動作模擬モジュールを管理するモジュール管理部２５とを有する。部品管理部２４には、クライアントＰＣ３によって作成されたプログラム部品が蓄積される。また、部品管理部２４には、プログラム部品の属性を表す属性情報が格納される。モジュール管理部２５には、クライアントＰＣ２によって作成された動作模擬モジュールが蓄積される。
【００２６】
動作確認部１５は、認証が与えられた動作模擬モジュールを使用して、プログラム部品の動作確認を行う。動作確認部１５は、動作模擬モジュールを実行する実行処理部２１と、制御機器の動作環境を示す情報を動作模擬モジュールに設定する動作環境設定部２２とを有する。動作確認部１５は、動作模擬モジュールに設定された動作環境においてプログラム部品を実行することによる制御機器の動作を模擬する。また、動作確認部１５は、動作確認の結果を表示するための処理を実行する表示処理部２３を有する。
【００２７】
認証部１６は、クライアントＰＣ２によって作成された動作模擬モジュールについて、プログラム部品を実行することによる制御機器の動作を模擬可能か否かの検証結果に基づいて、動作模擬モジュールに認証を与える。認証部１６は、制御機器の動作を模擬することができると判定された動作模擬モジュールへ認証を与える。
【００２８】
また、認証部１６は、動作模擬モジュールがセキュリティ対策機能を備えていることを認証の条件とする。セキュリティ対策機能は、プログラム部品におけるセキュリティ上の問題点の有無を判定する機能である。さらに、認証部１６は、動作模擬モジュールにおけるセキュリティ上の問題点の有無をチェックし、問題点が無いことを認証の条件とする。
【００２９】
部品登録処理部１７は、クライアントＰＣ３からの登録指示に従って、プログラム部品の登録のための処理を実行する。モジュール登録処理部１８は、クライアントＰＣ２からの登録指示に従って、動作模擬モジュールの登録を行う。提供処理部１９は、クライアントＰＣ４へのプログラム部品を提供するための処理を実行する。検索処理部２０は、部品管理部２４にて管理されているプログラム部品の検索を実行する。なお、図１に示すサーバ１に備えられる機能部のうちの少なくとも一部は、クラウドサーバにより実現されるものであっても良い。
【００３０】
次に、各クライアントＰＣ２，３，４の概略構成について説明する。各クライアントＰＣ２，３，４の構成のうち、本開示の説明に必要な構成以外については説明を省略する。
【００３１】
クライアントＰＣ２は、動作模擬モジュールを作成するモジュール作成部３１と、作成された動作模擬モジュールをサーバ１へ登録するための登録指示を生成する登録指示部３２とを有する。モジュール作成部３１の機能は、クライアントＰＣ２に備えられているプロセッサが、動作模擬モジュールを作成するためのプログラムを実行することによって実現される。クライアントＰＣ２に備えられているプロセッサの図示は省略する。実施の形態１において、動作模擬モジュールは、制御機器の動作をシミュレーションするシミュレータである。
【００３２】
登録指示部３２の機能は、クライアントＰＣ２に備えられているプロセッサがプロデューサー用のアプリケーションを実行することによって実現される。プロデューサー用のアプリケーションは、動作模擬モジュールを出品するプロデューサーとしてプログラム提供システムに参加するためのアプリケーションであって、プラットフォーマーによって提供される。
【００３３】
クライアントＰＣ３は、プログラム部品を作成する部品作成部３３と、作成されたプログラム部品をサーバ１へ登録するための登録指示を生成する登録指示部３４とを有する。部品作成部３３の機能は、クライアントＰＣ３に備えられているプロセッサが、エンジニアリングツールを実行することによって実現される。エンジニアリングツールは、制御プログラムを作成するためのプログラムである。クライアントＰＣ３に備えられているプロセッサの図示は省略する。
【００３４】
登録指示部３４の機能は、クライアントＰＣ３に備えられているプロセッサがプロデューサー用のアプリケーションを実行することによって実現される。プロデューサー用のアプリケーションは、プログラム部品を出品するプロデューサーとしてプログラム提供システムに参加するためのアプリケーションであって、プラットフォーマーによって提供される。
【００３５】
クライアントＰＣ４は、サーバ１からプログラム部品を取得するための処理を実行する取得処理部３５と、部品管理部２４にて管理されているプログラム部品を検索するための検索指示を生成する検索指示部３６と、制御プログラムを作成するプログラム作成部３７とを有する。プログラム作成部３７の機能は、クライアントＰＣ４に備えられているプロセッサがエンジニアリングツールを実行することによって実現される。エンジニアリングツールは、取得されたプログラム部品を制御プログラムに組み込む機能を備える。クライアントＰＣ４に備えられているプロセッサの図示は省略する。
【００３６】
取得処理部３５の機能と検索指示部３６の機能とは、クライアントＰＣ４に備えられているプロセッサがコンシュマー用のアプリケーションを実行することによって実現される。コンシュマー用のアプリケーションは、プログラム部品の提供を受けるコンシュマーとしてプログラム提供システムに参加するためのアプリケーションであって、プラットフォーマーによって提供される。
【００３７】
次に、サーバ１と各クライアントＰＣ２，３，４との動作について説明する。図３は、図２に示すプログラム提供システムを構成するサーバおよび各クライアントＰＣの動作手順を示す図である。
【００３８】
ステップＳ１において、クライアントＰＣ２は、動作模擬モジュールであるシミュレータをモジュール作成部３１において作成する。例の１つとしては、モジュール作成部３１は、サーバ１への登録を目的として開発された専用のシミュレータを作成する。モジュール作成部３１によって作成されるシミュレータは、サーバ１へ登録される専用のシミュレータに限られず、製品として流通させるシミュレータとしてプロデューサーによって開発されたものであっても良い。
【００３９】
クライアントＰＣ２の登録指示部３２は、ステップＳ１にて作成されたシミュレータについての登録指示を生成する。ステップＳ２において、クライアントＰＣ２は、登録指示をサーバ１へ送信することによって、シミュレータの登録をサーバ１へ依頼する。サーバ１のモジュール登録処理部１８は、クライアントＰＣ２から送信されたシミュレータをモジュール管理部２５へ格納することによって、シミュレータを登録する。
【００４０】
ステップＳ３において、サーバ１は、登録されたシミュレータについて認証のための処理を認証部１６によって行う。認証部１６は、あらかじめ指定されているシステム試験を実施することによって、シミュレータが制御機器の動作を模擬可能か否かを検証する。すなわち、認証部１６は、動作模擬モジュールが制御機器の動作を模擬可能か否かを検証するための試験を実施する。システム試験は、認証部１６によって実施されなくても良く、シミュレータを作成したプロデューサーによって実施されても良い。この場合、クライアントＰＣ２は、システム試験の結果を認証部１６へ送信する。認証部１６は、システム試験の結果を取得すると、取得された結果に基づいて、シミュレータが制御機器の動作を模擬可能か否かを検証する。システム試験の具体例については後述する。
【００４１】
認証部１６は、検証により制御機器の動作を模擬可能と判定されたシミュレータに認証を与える。サーバ１は、認証部１６により認証が与えられたシミュレータをネットワーク５上にて公開する。
【００４２】
ステップＳ４において、クライアントＰＣ３は、部品作成部３３においてプログラム部品を作成する。クライアントＰＣ３の登録指示部３４は、ステップＳ４にて作成されたプログラム部品についての登録指示を生成する。ステップＳ５において、クライアントＰＣ３は、登録指示をサーバ１へ送信することによって、プログラム部品の登録をサーバ１へ依頼する。サーバ１の部品登録処理部１７は、クライアントＰＣ３から送信されたプログラム部品を部品管理部２４へ格納することによって、プログラム部品を登録する。部品管理部２４には、プログラム部品とともに、プログラム部品の属性情報が格納される。
【００４３】
図４は、図１に示すサーバが有する部品管理部に格納される属性情報の例を示す図である。部品管理部２４には、「ＩＤ」、「部品種別」、「登録日時」、「作成者」、「用途」の各属性についての属性情報が格納される。
【００４４】
「ＩＤ」は、プログラム部品を識別するための情報である。「部品種別」は、プログラム部品の種別を表す情報である。「部品種別」の情報には、プログラム部品の作成において使用されるエンジニアリングツールを識別するための情報、または制御機器を識別するための情報と、制御プログラムにおけるプログラム部品の部品属性を表す情報とが含まれる。例を挙げると、「ＡＡＡ＿ファンクションブロック」の「ＡＡＡ」は、エンジニアリングツールの名称、または制御機器の型名とする。「ファンクションブロック」は、部品属性の名称である。なお、エンジニアリングツールを識別するための情報、または制御機器を種別するための情報は、プログラム部品の動作確認において使用されるシミュレータを特定する際に使用される。
【００４５】
「登録日時」は、プログラム部品がサーバ１に登録された日時の情報である。「作成者」は、プログラム部品を作成したプロデューサーの情報である。「用途」は、プログラム部品の用途を表す情報である。「用途」の情報は、プログラム部品の検索の際に、プログラム部品を絞り込むための検索語として使用される。
【００４６】
「部品種別」、「作成者」および「用途」についての属性情報は、プログラム部品を作成したプロデューサーによって入力される。「ＩＤ」および「登録日時」についての属性情報は、プログラム部品が登録されたときに部品登録処理部１７によって生成される。なお、部品管理部２４に格納される属性情報は、図４に示すものに限られない。部品管理部２４には、図４に示す属性以外についての属性情報が格納されても良い。
【００４７】
図３に示すステップＳ６において、クライアントＰＣ４の検索指示部３６は、サーバ１に登録されているプログラム部品を検索するための検索指示を生成する。検索指示には、指定された検索条件の情報が含まれる。
【００４８】
クライアントＰＣ４には、検索条件を指定するための入力フォーマットが表示される。入力フォーマットは、マーケットプレイスによって提供される。入力フォーマットには、部品種別の情報と、用途を特定するための検索語を入力するための欄が設けられている。入力フォーマットには、プログラム部品の作成者を指定するための欄、または、プログラム部品が登録された日時を指定するための欄などが設けられていても良い。コンシュマーは、クライアントＰＣ４を操作することによって、所望のプログラム部品についての条件を入力フォーマットへ入力する。
【００４９】
ステップＳ７において、クライアントＰＣ４は、指定された検索条件の情報を含む検索指示をサーバ１へ送信する。ステップＳ８において、サーバ１の検索処理部２０は、検索指示に従って検索処理を実行する。ステップＳ９において、サーバ１は、クライアントＰＣ４へ検索結果を送信する。
【００５０】
ステップＳ１０において、クライアントＰＣ４の取得処理部３５は、検索によってヒットしたプログラム部品の中からコンシュマーによって選定されたプログラム部品をサーバ１へ通知し、選定されたプログラム部品についての動作確認をサーバ１へ要求する。
【００５１】
サーバ１の実行処理部２１は、クライアントＰＣ４からの通知に従って、選定されたプログラム部品に対応するシミュレータをモジュール管理部２５から読み出す。実行処理部２１は、選定されたプログラム部品の「部品種別」を基に、モジュール管理部２５に格納されているシミュレータの中から、選定されたプログラム部品に対応するシミュレータを特定する。
【００５２】
ステップＳ１１において、サーバ１は、実行処理部２１にてプログラム部品を実行することによって、プログラム部品の動作確認を行う。動作確認部１５は、制御機器の動作についての動作環境を動作環境設定部２２にて設定しても良い。動作環境設定部２２は、例えば、動作環境として、制御機器の型名、または、作成済みのプログラムといった事項を設定する。ステップＳ１２にて、サーバ１は、動作確認の結果をクライアントＰＣ４へ通知する。
【００５３】
クライアントＰＣ４は、サーバ１から通知された動作確認の結果をコンシュマーに提示する。コンシュマーは、クライアントＰＣ４への操作によって、プログラム部品の購入を指示する。ステップＳ１３において、クライアントＰＣ４は、コンシュマーの指示に従って取得処理部３５がプログラム部品を取得することにより、プログラム部品の購入手続きを行う。このように、コンシュマーは、プログラム部品を購入する前に、制御機器におけるプログラム部品の動作確認を行うことができる。
【００５４】
次に、認証部１６による検証の具体例について説明する。認証部１６は、あらかじめ設定された命令に対してシミュレータが動作仕様どおりに正常に動作するか否かを、システム試験によって検証する。システム試験には、あらかじめ設定された項目についての試験が含まれる。項目の数は任意であるものとする。ここでは、２つの項目についての試験の例について説明する。
【００５５】
図５は、図１に示すサーバの認証部が実施する試験の第１の例を説明するためのフローチャートである。第１の例にかかる試験では、認証部１６は、シミュレータに書き込まれる検証用のプログラムと、書き込み後にシミュレータから読み出される検証用のプログラムとが一致するか否かを検証する。認証部１６は、かかる検証によって、シミュレータへプログラムが書き込まれる前から、シミュレータからプログラムが読み出されるまでの間に、プログラムに余計な書き換えが生じないことを確認する。図５では、第１の例にかかる試験における認証部１６および表示装置１４の動作手順を示している。
【００５６】
ステップＳ２１において、認証部１６は、モジュール管理部２５から読み出されたシミュレータへ、検証用のプログラムを書き込む。ステップＳ２２において、認証部１６は、ステップＳ２１にて書き込まれた検証用のプログラムをシミュレータから読み出す。ステップＳ２３において、認証部１６は、ステップＳ２１にて書き込まれた検証用のプログラムと、ステップＳ２２にて読み出された検証用のプログラムとを照合する。認証部１６は、照合の結果を表示装置１４へ送信する。ステップＳ２４において、表示装置１４は、照合の結果を表示する。
【００５７】
認証部１６は、ステップＳ２３における照合において双方のプログラムが一致していた場合、検証用のプログラムに書き換えが生じておらず、本項目についての試験は合格と判定する。一方、認証部１６は、ステップＳ２３における照合において双方のプログラムにおいて一致しない部分があった場合、本項目についての試験は不合格と判定する。
【００５８】
図６は、図１に示すサーバの認証部による照合の結果の表示例を示す図である。ここで、照合元のデータとは、シミュレータへの書き込み前に保存された検証用のプログラムとする。照合先のデータとは、シミュレータから読み出された後に保存された検証用のプログラムとする。図６では、プログラムファイルごとの照合結果を表示する例を示している。データ名とは、プログラムファイルの名称とする。表示装置１４は、プログラムファイルごとに、「一致」または「不一致」の照合結果を表示する。図６に示す例では、プログラムファイル「ＡＢＣＤ」について「一致」の照合結果と、プログラムファイル「ＥＦＧＨ」について「一致」の照合結果とが表示されている。
【００５９】
図７は、図１に示すサーバの認証部が実施する試験の第２の例を説明するための図である。第２の例にかかる試験では、認証部１６は、シミュレータにおいて試験対象プログラムを実行した結果が、実際の制御機器が試験対象プログラムを実行した場合における動作結果と同じであるか否かを検証する。図７には、試験対象プログラムであるラダープログラムの例を示している。
【００６０】
ラダー言語で作成されたプログラムコードは、基本的な構成要素である回路記号および変数を含む。回路記号には制御機器での処理を表す接点およびコイルが含まれる。変数は、制御プログラム上における制御の対象であって、回路記号で示された処理の対象を表している。変数は、構成要素の種別を表すアルファベットと、構成要素の識別のための数字との組み合わせにより記述される。変数は、制御機器のメモリ内における作業領域の各データ領域に対応付けられている。各データ領域には、構成要素ごとにおける演算データが格納される。演算データには、ＯＮとＯＦＦとの区別を表現するビットデータと、数値を表現するワードデータとが含まれる。処理の対象ごとに、変数に含まれる数字が任意に割り当てられる。
【００６１】
図７に示す「Ｎｏ．１」のラダープログラムにおいて、「Ｘ０」は、ビットデータが入力されるデバイスであって、「Ｘ０」のＯＮおよびＯＦＦに連動して「Ｙ１０」のデバイス値が切り換わるものとする。認証部１６は、「Ｎｏ．１」のラダープログラムについて、「Ｘ０」をＯＮにする入力操作によって「Ｙ１０」がＯＮになるという制御機器の動作を、シミュレータが再現可能か否かを検証する。認証部１６は、「Ｎｏ．１」と同じ「Ｎｏ．２」のラダープログラムについて、「Ｘ０」をＯＦＦにする入力操作によって「Ｙ１０」がＯＦＦになるという制御機器の動作を、シミュレータが再現可能か否かを検証する。認証部１６は、「Ｎｏ．３」以降のラダープログラムについても、「Ｎｏ．１」、「Ｎｏ．２」のラダープログラムの場合と同様に、入力操作に対する出力結果を検証する。
【００６２】
認証部１６は、実際の制御機器の動作をシミュレータが再現可能である場合、本項目についての試験は合格と判定する。一方、認証部１６は、実際の制御機器の動作をシミュレータが再現できなかった場合、本項目についての試験は不合格と判定する。
【００６３】
さらに、認証部１６は、試験として、シミュレータにセキュリティ対策機能が備わっていることの確認と、シミュレータにセキュリティ上の問題が無いことの確認とを行う。認証部１６は、セキュリティ対策機能として、プログラム部品におけるコンピュータウィルスを検知する機能がシミュレータに備えられていることを確認する。また、認証部１６は、シミュレータにセキュリティ上の問題が無いことを確認するために、シミュレータにコンピュータウィルスが検知されないことを確認する。
【００６４】
認証部１６は、すべての項目について試験に合格したシミュレータに対し、認証を与える。なお、認証部１６が行う試験は、実施の形態１にて説明する試験に限られない。認証部１６が実施する試験は、プログラム部品を実行することによる制御機器の動作を動作模擬モジュールが模擬可能か否かを検証することが可能な試験であれば良く、上述する試験以外であっても良い。
【００６５】
サーバ１は、動作確認部１５においてプログラム部品の動作確認を行うことによって、コンシュマーへ提供されるプログラム部品について正常な動作を保証することができる。また、動作確認に使用される動作模擬モジュールには認証が与えられているため、制御機器の動作を模擬可能であることが保証される。このため、コンシュマーは、サーバ１から取得されたプログラム部品を安心して購入することができる。コンシュマーが取得するプログラム部品の各々について、プログラム部品の取得時あるいは制御プログラムの作成時にコンシュマー側での動作確認が不要となることによって、コンシュマーによる動作確認のための作業負担の低減が可能となる。また、プログラム提供システムに出品されるプログラム部品の動作確認をプラットフォーマーまたはプロデューサーが個別に行う必要も無いため、プラットフォーマーおよびプロデューサーにおいても動作確認のための作業負担が大きくなることが無い。
【００６６】
実施の形態１によると、プログラム提供装置は、制御機器の動作を模擬可能か否かの検証結果に基づいて動作模擬モジュールに認証を与える認証部と、認証が与えられた動作模擬モジュールを使用してプログラム部品の動作確認を行う動作確認部とを備えることによって、プログラム部品の動作確認のための作業負担を低減することができるという効果を奏する。
【００６７】
実施の形態２．
実施の形態２では、プログラム部品の動作確認におけるサーバ１の動作例について説明する。図８は、実施の形態２にかかるプログラム提供装置であるサーバの動作手順の例を示すフローチャートである。実施の形態２では、上記の実施の形態１と同一の構成要素には同一の符号を付し、実施の形態１とは異なる構成について主に説明する。
【００６８】
図８に示す手順の前提として、クライアントＰＣ４の取得処理部３５は、サーバ１の部品管理部２４からプログラム部品を取得しているものとする。クライアントＰＣ４は、サーバ１へプロジェクトファイルを送信する。プロジェクトファイルは、プログラム作成部３７において作成された制御プログラムと、取得されたプログラム部品を含むデータファイルである。
【００６９】
サーバ１の動作環境設定部２２は、クライアントＰＣ４から送信されたプロジェクトファイルを読み込む。ステップＳ３１において、サーバ１は、動作環境設定部２２において、制御機器の動作環境を示す設定情報をプロジェクトファイルから取得する。設定情報には、制御機器の型名、制御機器の接続情報、制御機器に設定されている各種パラメータなどが含まれる。動作環境設定部２２は、実行処理部２１にて実行される動作模擬モジュールへ設定情報を提供する。
【００７０】
ステップＳ３２において、サーバ１は、実行処理部２１にて仮想の制御機器を起動し、仮想の制御機器による制御を実行する。実行処理部２１は、クライアントＰＣ４からの指示に従って仮想の制御機器を起動する。実行処理部２１は、動作環境設定部２２から提供された制御プログラムとプログラム部品とに従って制御を実行する。ステップＳ３３において、サーバ１は、仮想の制御機器による制御の結果である実行結果を実行処理部２１から表示処理部２３へ出力する。
【００７１】
ステップＳ３４において、サーバ１は、表示処理部２３において、制御プログラムおよびプログラム部品の実行による実行情報を基に、仮想の制御機器の動作状態を表示するための表示情報を生成する。サーバ１は、生成された表示情報をクライアントＰＣ４へ送信する。
【００７２】
クライアントＰＣ４は、仮想の制御機器による制御の実行開始と、仮想の制御機器による実行の停止とをサーバ１へ指示する。また、クライアントＰＣ４は、サーバ１から送信された表示情報に従って、クライアントＰＣ４の表示装置にて実行結果を表示する。クライアントＰＣ４は、動作環境設定部２２にて設定された設定情報をサーバ１から読み出して、クライアントＰＣ４の表示装置にて設定情報の内容を表示しても良い。コンシュマーは、動作環境設定部２２に設定された設定情報の内容を確認し、クライアントＰＣ４の操作によって設定情報を追加しても良い。クライアントＰＣ４は、追加の設定情報をサーバ１へ送信する。動作環境設定部２２では、プロジェクトファイルから取得された設定情報に、クライアントＰＣ４から送信された設定情報が追加される。
【００７３】
仮想の制御機器の動作状態が、コンシュマーが意図した動作状態と異なる場合に、コンシュマーは、プログラム作成部３７において制御プログラムを修正しても良い。クライアントＰＣ４は、修正後の制御プログラムをサーバ１へ送信する。動作環境設定部２２は、クライアントＰＣ４から送信された制御プログラムを基に、設定情報を更新する。動作環境設定部２２は、更新された設定情報を動作模擬モジュールへ提供する。
【００７４】
サーバ１は、更新された設定情報に基づいて、上記のステップＳ３２からステップＳ３４の動作を繰り返す。サーバ１とクライアントＰＣ４とは、仮想の制御機器の動作状態が、コンシュマーが意図した動作状態と同じになるまで、制御プログラムの修正と、設定情報の更新と、上記のステップＳ３２からステップＳ３４の動作とを繰り返しても良い。このようにして、コンシュマーは、所望の動作を可能とする制御プログラムを作成することができる。
【００７５】
実施の形態２によると、プログラム提供装置は、制御機器の動作環境を示す設定情報に基づく動作確認を動作確認部１５が行うことによって、制御機器の動作環境に適合した動作確認が可能となるという効果を奏する。
【００７６】
実施の形態３．
実施の形態３では、サーバ１におけるプログラム部品の検索において、人工知能（Artificial  Intelligence：ＡＩ）を適用する例を説明する。図９は、実施の形態３にかかるプログラム提供装置であるサーバのブロック図である。実施の形態３では、上記の実施の形態１および２と同一の構成要素には同一の符号を付し、実施の形態１および２とは異なる構成について主に説明する。
【００７７】
サーバ１は、プロセッサ１０を使用することによって実現される機能部である類似語検索部４０を有する。類似語検索部４０は、プログラム部品の検索において過去に使用された検索語の中から、入力された検索語に類似する検索語を検索する。類似語検索部４０の機能は、プロセッサ１０およびソフトウェアの組み合わせによって実現される。類似語検索部４０の機能は、プロセッサ１０およびファームウェアの組み合わせによって実現されても良く、プロセッサ１０、ソフトウェアおよびファームウェアの組み合わせによって実現されても良い。
【００７８】
類似語検索部４０は、検索語同士の類似度を算出する類似度学習部４２を有する。類似度学習部４２は、単語同士の共起関係に基づく類似度の算出方法等を適用して、検索語同士の類似度を算出する。
【００７９】
メモリ１１は、プログラム部品の検索についての情報が蓄積される検索データベース４１を有する。検索データベース４１は、検索語とプログラム部品とが対応付けられた検索結果データが蓄積される検索結果データベース４３と、類似度学習部４２にて算出された類似度が蓄積される類似度データベース４４とを有する。検索結果データベース４３は、プログラム部品が提供される際のプログラム部品の検索において入力された検索語と、提供されたプログラム部品とが対応付けられた検索結果データを保持する検索結果データ保持部である。類似度データベース４４は、検索語の組み合わせと、組み合わせにおける検索語同士の類似度とを保持する類似度保持部である。
【００８０】
クライアントＰＣ４は、コンシュマーによって入力された検索語を含む検索指示をサーバ１へ送信する。クライアントＰＣ４には、１つ以上の検索語が入力される。例えば、「ａ」、「ｂ」、「ｃ」の３つの検索語がクライアントＰＣ４に入力されたとする。以下の説明にて、入力された検索語の組み合わせを、入力検索語セットと称することがある。検索処理部２０は、クライアントＰＣ４から送信された入力検索語セット「ａ，ｂ，ｃ」を類似語検索部４０へ出力する。
【００８１】
類似語検索部４０は、検索結果データベース４３に蓄積されている検索結果データから、入力検索語セットと完全に一致する検索語の組み合わせを含む検索結果データを検索する。類似語検索部４０は、入力検索語セットと完全に一致する検索語の組み合わせを含む検索結果データがあった場合、かかる検索結果データを第１の候補と設定する。
【００８２】
類似語検索部４０は、入力検索語セットの要素である各検索語について、類似度データベース４４に保持されている検索語の中で最も類似度が高い検索語を類似度データベース４４から読み出す。例えば、入力検索語セットの要素の１つである「ｃ」との類似度が最も高い検索語が「ｄ」であるとすると、類似語検索部４０は、類似度データベース４４から「ｄ」を読み出す。
【００８３】
次に、類似語検索部４０は、入力検索語セットの要素である検索語を、類似度データベース４４から読み出された検索語で置き換えて、検索語が置き換えられた入力検索語セットと一致する検索語の組み合わせを含む検索結果データを検索する。類似語検索部４０は、検索語が置き換えられた入力検索語セットと一致する検索語の組み合わせを含む検索結果データがあった場合、かかる検索結果データを第２の候補と設定する。上記の例の場合、検索語を置き換えた入力検索語セットは、「ａ，ｂ，ｄ」である。なお、類似語検索部４０は、類似度データベース４４から複数の検索語を読み出して、検索語が置き換えられた複数の入力検索語セットの各々について、検索結果データを検索しても良い。類似語検索部４０は、類似度データベース４４に保持されている検索語のうち、類似度が最も高い複数の検索語を読み出す。
【００８４】
検索処理部２０は、各候補である検索結果データを通信装置１３へ出力する。通信装置１３は、検索結果データをクライアントＰＣ４へ送信する。クライアントＰＣ４は、検索結果データを表示する。クライアントＰＣ４の取得処理部３５は、コンシュマーの操作に従って、表示された検索結果データの各々に含まれるプログラム部品についての動作確認をサーバ１へ要求する。サーバ１の動作確認部１５は、クライアントＰＣ４からの通知に従って、各プログラム部品の動作確認を行う。サーバ１は、各プログラム部品についての動作確認の結果をクライアントＰＣ４へ通知する。
【００８５】
クライアントＰＣ４は、サーバ１から通知された動作確認の結果をコンシュマーに提示する。コンシュマーは、クライアントＰＣ４への操作によって、プログラム部品の購入を指示する。検索処理部２０は、コンシュマーによって購入されたプログラム部品についての検索結果データを検索結果データベース４３に追加する。
【００８６】
類似度学習部４２は、検索結果データベース４３に追加された検索結果データについて、検索語同士の類似度を算出する。類似度学習部４２は、算出された類似度の値を類似度データベース４４に格納することによって、当該検索語同士についての類似度を更新する。
【００８７】
例えば、コンシュマーによって入力された入力検索語セットが「ａ，ｂ，ｃ」であって、検索結果データベース４３にて「ａ，ｂ，ｄ」の検索語と対応付けられている「プログラム部品α」がコンシュマーによって購入されたとする。検索処理部２０は、「ａ，ｂ，ｄ」の検索語と「プログラム部品α」とが対応付けられた検索結果データを検索結果データベース４３に格納する。また、類似度学習部４２は、検索結果データにおける「ａ」、「ｂ」、「プログラム部品α」の３つの要素と同じ共起関係を持つ「ｃ」および「ｄ」の類似度として、「ｃ」および「ｄ」について類似度データベース４４に格納されている類似度よりも高い値を算出する。すなわち、類似度学習部４２は、「ｃ」および「ｄ」の類似度を増加させる更新を行う。なお、サーバ１によるプログラム部品の検索は、ＡＩの適用によるものに限られない。サーバ１は、ＡＩを用いずにプログラム部品を検索しても良い。
【００８８】
実施の形態３によると、プログラム提供装置は、入力検索語セットと完全に一致する検索語の組み合わせを含む検索結果データが無い場合でも、入力検索語セットと類似度が高い検索語の組み合わせに対応付けられたプログラム部品を検索することができる。プログラム提供装置は、コンシュマーが所望するプログラム部品の的確な検索が可能となることで、プログラム部品の再利用のための作業を効率化させることができる。
【００８９】
以上の各実施の形態に示した構成は、本開示の内容の一例を示すものである。各実施の形態の構成は、別の公知の技術と組み合わせられることが可能である。各実施の形態の構成同士が適宜組み合わせられても良い。本開示の要旨を逸脱しない範囲で、各実施の形態の構成の一部を省略、変更することが可能である。
【符号の説明】
【００９０】
１  サーバ、２，３，４  クライアントＰＣ、５  ネットワーク、１０  プロセッサ、１１  メモリ、１３  通信装置、１４  表示装置、１５  動作確認部、１６  認証部、１７  部品登録処理部、１８  モジュール登録処理部、１９  提供処理部、２０  検索処理部、２１  実行処理部、２２  動作環境設定部、２３  表示処理部、２４  部品管理部、２５  モジュール管理部、３１  モジュール作成部、３２，３４  登録指示部、３３  部品作成部、３５  取得処理部、３６  検索指示部、３７  プログラム作成部、４０  類似語検索部、４１  検索データベース、４２  類似度学習部、４３  検索結果データベース、４４  類似度データベース。
【要約】
プログラム提供装置であるサーバ（１）は、制御機器にて実行されるプログラムである制御プログラムを構成するプログラム部品を提供する提供処理部（１９）と、プログラム部品に従った動作を模擬的に実行するためのプログラムである動作模擬モジュールについて、プログラム部品を実行することによる制御機器の動作を模擬可能か否かの検証結果に基づいて動作模擬モジュールに認証を与える認証部（１６）と、認証が与えられた動作模擬モジュールを使用してプログラム部品の動作確認を行う動作確認部（１５）と、を備える。【図１】
0006789458.tif 000002
【図２】
0006789458.tif 000003
【図３】
0006789458.tif 000004
【図４】
0006789458.tif 000005
【図５】
0006789458.tif 000006
【図６】
0006789458.tif 000007
【図７】
0006789458.tif 000008
【図８】
0006789458.tif 000009
【図９】
0006789458.tif 000010