(57)【要約】【課題】１または複数の制御部を容易に監視することが可能な情報提供システムを提供する。【解決手段】開発支援装置は、１または複数の制御部の各々について、当該制御部に対応するサービスと当該サービスに対応するＵＩ画面を生成するための画面生成コードとをサーバに登録する。サーバは、端末から要求された対象制御部の対象サービスを提供するためのサービスモジュールを含む。サービスモジュールは、対象制御部にアクセスして、対象制御部が制御プログラムを実行することにより得られる対象データを収集し、対象サービスに対応する画面生成コードで示され、かつ、対象データを含むＵＩ画面を端末に提供する。【選択図】図１
2020190945.tif 000002
【特許請求の範囲】
【請求項１】
情報提供システムであって、
制御対象を制御するための１または複数の制御部と、
端末および前記１または複数の制御部と通信可能なサーバと、
前記１または複数の制御部の開発を支援する開発支援装置とを備え、
前記開発支援装置は、前記１または複数の制御部の各々について、
当該制御部で実行される制御プログラムを作成し、前記制御プログラムを当該制御部に出力するための作成部と、
当該制御部に対応するサービスと当該サービスに対応するＵＩ画面を生成するための画面生成コードとを前記サーバに登録するための登録部とを含み、
前記サーバは、
前記登録部によって登録された複数のサービスのうち、前記端末から要求された対象制御部の対象サービスを提供するためのサービスモジュールを含み、
前記サービスモジュールは、
前記対象制御部にアクセスして、前記対象制御部が前記制御プログラムを実行することにより得られる対象データを収集し、
前記対象サービスに対応する前記画面生成コードで示され、かつ、前記対象データを含むＵＩ画面を前記端末に提供する、情報提供システム。
【請求項２】
前記１または複数の制御部のうちの少なくとも１つの制御部は、複数の制御機器を含み、
前記少なくとも１つの制御部に対する前記制御プログラムは、前記複数の制御機器の各々に対応する部分プログラムを含み、
前記登録部は、前記少なくとも１つの制御部に対応するサービスとして、前記複数の制御機器の集合に対応する第１サービスおよび前記複数の制御機器にそれぞれ対応する複数の第２サービスの少なくとも１つを前記サーバに登録する、請求項１に記載の情報提供システム。
【請求項３】
前記登録部は、前記複数の第２サービスの少なくとも１つの第２サービスを前記サーバに登録し、
前記対象データは、前記少なくとも１つの第２サービスに対応する制御機器が前記部分プログラムを実行することにより得られる、請求項２に記載の情報提供システム。
【請求項４】
前記登録部は、前記サービスの属性情報を前記サービスと対応付けて前記サーバに登録し、
前記サービスモジュールは、
前記複数のサービスの中から前記端末によって指定された属性を示す前記属性情報に対応するサービスを抽出し、
抽出したサービスの一覧を前記端末に出力し、
前記一覧のうち前記端末から指定されたサービスを前記対象サービスとして特定する、請求項１から３のいずれか１項に記載の情報提供システム。
【請求項５】
前記属性情報は、前記１または複数の制御部のうちの対応する制御部の設置位置、前記対応する制御部の名称、前記対応する制御部が所属する組織、前記対応する制御部に含まれる制御機器の名称、前記対応する制御部に含まれる制御機器の種類、前記制御プログラムの名称、および、前記対象データの種類の少なくとも１つを示す、請求項４に記載の情報提供システム。
【請求項６】
前記端末は、Ｗｅｂブラウザを備え、
前記サービスモジュールは、前記Ｗｅｂブラウザからの指令に基づき、前記ＵＩ画面を前記端末に提供する、請求項１から５のいずれか１項に記載の情報提供システム。
【請求項７】
請求項１から６のいずれか１項に記載の情報提供システムに備えられるサーバであって、前記サービスモジュールを備える、サーバ。
【請求項８】
制御対象を制御するための１または複数の制御部と、
端末および前記１または複数の制御部と通信可能なサーバとを備えるシステムにおける情報提供方法であって、
前記１または複数の制御部の各々について、当該制御部で実行される制御プログラムを作成し、作成した制御プログラムを当該制御部に出力するステップと。
前記１または複数の制御部の各々について、当該制御部に対応するサービスと当該サービスに対応するＵＩ画面を生成するための画面生成コードとを前記サーバに登録するステップと、
前記サーバによって登録された複数のサービスのうち、前記端末から要求された対象制御部の対象サービスを提供するステップとを備え、
前記提供するステップは、
前記対象制御部にアクセスして、前記対象制御部が前記制御プログラムを実行することにより得られる対象データを収集するステップと、
前記対象サービスに対応する前記画面生成コードで示され、かつ、前記対象データを含むＵＩ画面を前記端末に表示させるステップとを含む、情報提供方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、情報提供システム、サーバおよび情報提供方法に関する。
【背景技術】
【０００２】
特開２００４−２１３４０６号公報（特許文献１）には、プラントまたは工場の機械を制御するためのＦＡ（ファクトリオートメーション）機器と、ネットワーク機器とを含む遠隔管理システムが開示されている。ネットワーク機器は、ネットワークを介してＦＡ機器と接続され、ＦＡ機器を監視する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−２１３４０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載の技術によれば、ネットワーク機器を用いて複数のＦＡ機器を監視することができる。しかしながら、ＦＡ機器毎にプロトコルおよびコマンドが異なるため、ＦＡ機器毎に作成された監視用アプリケーションをネットワーク機器に予めインストールしておく手間がかかる。さらに、ＦＡ機器にアクセスするための情報（例えばＩＰアドレス）を監視用アプリケーションに設定する必要があるため、監視者は、監視したいＦＡ機器毎のＩＰアドレスを事前に確認しておく必要がある。
【０００５】
本発明は、上記の問題に鑑みてなされたものであり、その目的は、１または複数の制御部を容易に監視することが可能な情報提供システム、サーバおよび情報提供方法を提供することである。
【課題を解決するための手段】
【０００６】
本開示の一例によれば、情報提供システムは、制御対象を制御するための１または複数の制御部と、端末および１または複数の制御部と通信可能なサーバと、１または複数の制御部の開発を支援する開発支援装置とを備える。開発支援装置は、作成部と登録部とを含む。作成部は、１または複数の制御部の各々について、当該制御部で実行される制御プログラムを作成し、制御プログラムを当該制御部に出力する。登録部は、１または複数の制御部の各々について、当該制御部に対応するサービスと当該サービスに対応するＵＩ画面を生成するための画面生成コードとをサーバに登録する。サーバは、登録部によって登録された複数のサービスのうち、端末から要求された対象制御部の対象サービスを提供するためのサービスモジュールを含む。サービスモジュールは、対象制御部にアクセスして、対象制御部が制御プログラムを実行することにより得られる対象データを収集し、対象サービスに対応する画面生成コードで示され、かつ、対象データを含むＵＩ画面を端末に提供する。
【０００７】
この開示によれば、監視者は、端末を操作してサーバにアクセスし、対象制御部の対象サービスを要求することにより、対象制御部で得られた対象データを容易に確認できる。すなわち、端末には制御部毎のアプリケーションを予めインストールしておく必要がない。さらに、制御部へのアクセスはサーバから行われるため、監視者は、各制御部へアクセスするための情報（例えばＩＰアドレス）を事前に確認する必要がない。これにより、１または複数の制御部を容易に監視することができる。
【０００８】
上述の開示において、１または複数の制御部のうちの少なくとも１つの制御部は、複数の制御機器を含む。少なくとも１つの制御部に対する制御プログラムは、複数の制御機器の各々に対応する部分プログラムを含む。登録部は、少なくとも１つの制御部に対応するサービスとして、複数の制御機器の集合に対応する第１サービスおよび複数の制御機器にそれぞれ対応する複数の第２サービスの少なくとも１つをサーバに登録する。
【０００９】
この開示によれば、監視したい対象データに応じて、第１サービスおよび複数の制御機器にそれぞれ対応する複数の第２サービスのうちのいずれかを登録すればよい。
【００１０】
例えば、登録部は、複数の第２サービスの少なくとも１つの第２サービスをサーバに登録する。対象データは、少なくとも１つの第２サービスに対応する制御機器が部分プログラムを実行することにより得られる。これにより、制御機器単位で対象データを監視することができる。
【００１１】
上述の開示において、登録部は、サービスの属性情報をサービスと対応付けてサーバに登録する。サービスモジュールは、複数のサービスの中から端末によって指定された属性を示す属性情報に対応するサービスを抽出し、抽出したサービスの一覧を端末に出力し、一覧のうち端末から指定されたサービスを対象サービスとして特定する。
【００１２】
この開示によれば、監視者は、サービスの属性を指定することにより、所望のサービスを容易に選択することができる。例えば、属性情報は、１または複数の制御部のうちの対応する制御部の設置位置、対応する制御部の種類、対応する制御部が所属する組織、対応する制御部に含まれる制御機器の名称、制御プログラムの名称、および、対象データの種類の少なくとも１つを示す。
【００１３】
上述の開示において、端末は、Ｗｅｂブラウザを備える。サービスモジュールは、Ｗｅｂブラウザからの指令に基づき、ＵＩ画面を端末に提供する。この開示によれば、監視者は、汎用されているＷｅｂブラウザを用いて容易に対象データを監視することができる。
【００１４】
本開示の一例によれば、上記の情報提供システムに備えられるサーバは、上記のサービスモジュールを備える。
【００１５】
本開示の一例によれば、制御対象を制御するための１または複数の制御部と、端末および１または複数の制御部と通信可能なサーバとを備えるシステムにおける情報提供方法は、以下の第１〜第３のステップを備える。第１のステップは、１または複数の制御部の各々について、当該制御部で実行される制御プログラムを作成し、作成した制御プログラムを当該制御部に出力するステップである。第２のステップは、１または複数の制御部の各々について、当該制御部に対応するサービスと当該サービスに対応するＵＩ画面を生成するための画面生成コードとをサーバに登録するステップである。第３のステップは、サーバによって登録された複数のサービスのうち、端末から要求された対象制御部の対象サービスを提供するステップである。第３のステップは、対象制御部にアクセスして、対象制御部が制御プログラムを実行することにより得られる対象データを収集するステップと、対象サービスに対応する画面生成コードで示され、かつ、対象データを含むＵＩ画面を端末に表示させるステップとを含む。これらの開示によっても、１または複数の制御部を容易に監視することができる。
【発明の効果】
【００１６】
本開示によれば、１または複数の制御部を容易に監視することができる。
【図面の簡単な説明】
【００１７】
【図１】実施の形態に係る情報提供システムの全体構成を示す概略図である。
【図２】参考形態に係る情報提供システムの構成を示す図である。
【図３】図１に示す情報提供システムを構成する制御機器のハードウェア構成例を示す模式図である。
【図４】図１に示す情報提供システムを構成する開発支援装置のハードウェア構成例を示す模式図である。
【図５】図１に示す情報提供システムを構成するサーバのハードウェア構成例を示す模式図である。
【図６】図１に示す情報提供システムを構成する開発支援装置およびサーバの機能構成例を示す模式図である。
【図７】サービスデータの作成を支援するための画面例を示す図である。
【図８】開発支援装置の登録部によって作成された各種情報の一覧例を示す図である。
【図９】サービスモジュールの処理内容を説明する図である。
【図１０】情報提供システムにおける情報提供処理の全体の流れを示すタイミングチャートである。
【図１１】開発支援装置の処理の流れの一例を示すフローチャートである。
【図１２】サーバによるサービス一覧の公開処理の流れの一例を示すフローチャートである。
【図１３】サービスの一覧を含む画面の一例を示す図である。
【図１４】サービスの提供処理の流れの一例を示すフローチャートである。
【図１５】図１４のステップＳ４３において端末に表示されるＵＩ画面の一例を示す図である。
【図１６】図１４のステップＳ４８において端末に表示されるＵＩ画面の一例を示す図である。
【図１７】変形例に係る登録データの登録処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１８】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００１９】
§１  適用例
まず、図１を参照して、本発明が適用される場面の一例について説明する。図１は、実施の形態に係る情報提供システムの全体構成を示す概略図である。図１に例示される情報提供システムＳＹＳは、制御対象を制御するための１または複数の制御部１０が制御プログラムを実行することにより得られるデータ（以下、「対象データ」と称する。）をユーザに提供する。制御対象は、生産ラインに設置され、例えばモータ、ロボット、カメラ、各種センサなどで構成される。
【００２０】
対象データの種類は限定されない。対象データは、例えば、制御対象であるモータの位置を示す変数、制御対象であるカメラの撮像により得られた画像から検出される特徴量などを含む。
【００２１】
図１に例示される情報提供システムＳＹＳは、制御対象を制御するための１または複数の制御部１０と、開発支援装置２００と、サーバ３００と、端末４００とを備える。
【００２２】
１または複数の制御部１０の各々は、１または複数の制御機器１００を含む。１または複数の制御機器１００の各々は、ファクトリオートメーションにおけるネットワークシステムを構成するＦＡ機器であり、例えばＰＬＣ（Programmable Logic Controller）である。
【００２３】
各制御部１０に含まれる１または複数の制御機器１００は、制御プログラムを実行することにより、接続された図示しない制御対象を制御する。上記の対象データは、制御機器１００が制御プログラムを実行することにより得られる。図１に示す例では、制御機器１００が制御プログラムを実行することにより、対象データとして変数Ｋが得られる。
【００２４】
開発支援装置２００は、各制御部１０で実行される制御プロブラムと、各制御部１０の動作に関する設定とを行なうための開発環境を提供する。開発支援装置２００は、開発環境において入力された情報に基づいて、各制御部１０に対する制御プログラムおよび設定情報を作成する。開発支援装置２００は、各制御部１０に対して作成した制御プログラムおよび設定情報を当該制御部１０に出力する。
【００２５】
さらに、開発支援装置２００は、対象データを監視者に提供するサービスがサーバ３００で実行されるように、各制御部１０に対応するサービスに関するデータ（以下、「登録データ」と称する。）をサーバ３００に登録する。
【００２６】
登録データ３１は、サービスの属性を示す属性情報３１ａ（例えば制御機器名）と、制御部１０にアクセスするためのアクセス情報３１ｂ（例えばＵＲＬ，ＩＰアドレス）と、当該サービスを識別するサービス識別情報３１ｃ（例えばサービス名）と、当該サービスを実行するための実行ファイル３１ｄと、当該サービスに対応するＵＩ（User Interface）画面を生成するための画面生成コード３１ｅとを対応付けたデータである。画面生成コード３１ｅは、ＧＵＩ（Graphical User Interface）を示し、Ｗｅｂブラウザで表示可能な形式で作成される。なお、開発支援装置２００は、１つの制御部１０に対して複数のサービスに関する登録データをサーバ３００に登録してもよい。
【００２７】
開発支援装置２００は、サーバ３００がサービスを実行する際に制御部１０から対象データを収集できるように、制御部１０に対して公開データ情報を設定する。公開データ情報は、外部に公開可能なデータの種類を示す。図１に示す例では、公開データ情報は対象データの種類「変数Ｋ」を示す。これにより、制御部１０は、サーバ３００から変数Ｋの要求を受けた際に、変数Ｋをサーバ３００に出力できる。
【００２８】
端末４００は、１または複数の制御部１０を監視する監視者によって使用され、当該監視者に対象データを提供する。端末４００は、例えば、ＰＣ（Personal Computer）、タブレット、スマートフォン等である。端末４００は、Ｗｅｂブラウザを備えている。監視者は、Ｗｅｂブラウザを用いて、所望の制御部１０に対応する対象データを監視する。
【００２９】
サーバ３００は、対象データを端末４００に提供する。サーバ３００は、ネットワーク上の他のコンピュータ（図１に示す例では端末４００）から要求や指示を受け、情報や処理結果を返す役割を持つコンピュータである。なお、サーバ３００は、クラウド上に構築され情報処理サービスをインターネット経由で提供するクラウドサーバであってもよい。クラウドサーバは、典型的にはクラウド上に構築された仮想サーバである。
【００３０】
サーバ３００は、開発支援装置２００によって登録された登録データ３１を記憶する。サーバ３００は、サービスを実行するためのサービスモジュール３２を含む。サービスモジュール３２は、１または複数の制御部１０のうち対象となる制御部（以下、「対象制御部」と称する）と対象制御部に対応する１または複数のサービスのうち対象となるサービス（以下、「対象サービス」と称する。）との選択を端末４００から受け付ける。
【００３１】
サービスモジュール３２は、登録データ３１から対象制御部の対象サービスに対応する画面生成コード３１ｅで示されるＵＩ画面を端末４００に転送する。端末４００は、ＵＩ画面においてサービス開始指示の入力に応じて、サービスの実行要求をサーバ３００に出力する。
【００３２】
サービスモジュール３２は、実行要求を受けると、対象制御部の対象サービスに対応する実行ファイル３１ｄを読み込み、実行ファイル３１ｄに従った処理を実行する。具体的には、サービスモジュール３２は、対象制御部のアクセス情報３１ｂに基づいて、対象制御部（図１に示す例では制御部１０）にアクセスし、制御部１０から対象データ（図１に示す例では変数Ｋ）を収集する。サービスモジュール３２は、対象サービスに対応する画面生成コード３１ｅで示され、かつ、収集した対象データを含むＵＩ画面を端末４００に提供する。
【００３３】
図２は、参考形態に係る情報提供システムの構成を示す図である。図２に示す例では、端末４００は、ＶＰＮ（Virtual Private Network）などのネットワークを介して制御機器１００ａ，１００ｂにアクセスし、制御機器１００ａ，１００ｂが制御プログラムを実行することにより得られる対象データを取得する。しかしながら、制御機器１００ａ，１００ｂとの通信には、制御機器の種類に応じて、互いに異なるプロトコル、コマンドが用いられる。そのため、端末４００には、制御機器１００ａ，１００ｂの種類にそれぞれ対応するアプリケーション４０１ａ，４０１ｂをストアから予めインストールしておく必要がある。アプリケーション４０１ａ，４０１ｂの各々は、対応する種類の制御機器と通信し、当該制御機器が制御プログラムを実行することにより得られる対象データを閲覧するためのアプリケーションである。
【００３４】
さらに、アプリケーション４０１ａ，４０１ｂには、制御機器１００ａ，１００ｂにアクセスするための情報（例えばＩＰアドレス）をそれぞれ設定する必要がある。そのため、監視者は、予め制御機器１００ａ，１００ｂのＩＰアドレス等を確認しておく必要がある。
【００３５】
これに対し、本実施の形態に係る情報提供システムＳＹＳによれば、監視者は、端末４００を操作してサーバ３００にアクセスし、対象制御部の対象サービスを要求することにより、例えばＷｅｂブラウザ上で、対象制御部で得られた対象データを容易に確認できる。すなわち、端末４００には制御部１０（または制御機器１００）毎のアプリケーションを予めインストールしておく必要がない。さらに、制御部１０へのアクセスはサーバ３００から行われるため、監視者は、各制御部１０へアクセスするための情報（例えばＩＰアドレス）を事前に確認する必要がない。このように、情報提供システムＳＹＳによれば、１または複数の制御部１０を容易に監視することができる。
【００３６】
§２  具体例
次に、本実施の形態に係る情報提供システムの具体例について説明する。
【００３７】
＜Ａ．制御機器のハードウェア構成例＞
図３は、図１に示す情報提供システムを構成する制御機器のハードウェア構成例を示す模式図である。図３に示されるように、制御機器１００は、プロセッサ１０２と、メインメモリ１０４と、ストレージ１１０と、上位ネットワークコントローラ１０６と、フィールドネットワークコントローラ１０８と、ＵＳＢ（Universal Serial Bus）コントローラ１２０と、メモリカードインターフェイス１１２と、ローカルバスコントローラ１１６とを含む。これらのコンポーネントは、プロセッサバス１１８を介して接続されている。
【００３８】
プロセッサ１０２は、主として、制御対象の制御に係る制御演算を実行する演算処理部に相当し、ＣＰＵ（Central Processing Unit）やＧＰＵ（Graphics Processing Unit）などで構成される。具体的には、プロセッサ１０２は、ストレージ１１０に格納されたプログラム（一例として、システムプログラム１１０２および制御プログラム１１０４）を読み出して、メインメモリ１０４に展開して実行することで、制御対象に応じた制御演算および各種処理を実現する。
【００３９】
メインメモリ１０４は、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）などの揮発性記憶装置などで構成される。ストレージ１１０は、例えば、ＳＳＤ（Solid State Drive）やＨＤＤ（Hard Disk Drive）などの不揮発性記憶装置などで構成される。
【００４０】
ストレージ１１０には、基本的な機能を実現するためのシステムプログラム１１０２に加えて、制御対象に応じて作成された制御プログラム１１０４が格納される。また、ストレージ１１０には、変数などを設定するための設定情報１１０６が格納される。さらに、ストレージ１１０には、サーバ３００に公開可能なデータの種類を示す公開データ情報１１０８が格納される。制御プログラム１１０４、設定情報１１０６および公開データ情報１１０８は、開発支援装置２００によってストレージ１１０に格納される。
【００４１】
上位ネットワークコントローラ１０６は、上位ネットワークを介して、任意の情報処理装置（例えばサーバ３００）との間でデータを遣り取りする。
【００４２】
フィールドネットワークコントローラ１０８は、フィールドネットワークを介して、制御対象などの任意のデバイスとの間でデータを遣り取りする。
【００４３】
ＵＳＢコントローラ１２０は、ＵＳＢ接続を介して、開発支援装置２００などとの間でデータを遣り取りする。
【００４４】
メモリカードインターフェイス１１２は、着脱可能な記録媒体の一例であるメモリカード１１４を受付ける。メモリカードインターフェイス１１２は、メモリカード１１４に対してデータを書込み、メモリカード１１４から各種データ（ログやトレースデータなど）を読出すことが可能になっている。
【００４５】
ローカルバスコントローラ１１６は、ローカルバスを介して、制御機器１００に接続される任意のユニットとの間でデータを遣り取りする。
【００４６】
図３には、プロセッサ１０２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣ（Application Specific Integrated Circuit）またはＦＰＧＡ（Field-Programmable Gate Array）など）を用いて実装してもよい。あるいは、制御機器１００の主要部を、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコンをベースとした産業用パソコン）を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のＯＳ（Operating System）を並列的に実行させるとともに、各ＯＳ上で必要なアプリケーションを実行させるようにしてもよい。さらに、制御機器１００に表示装置やサポート装置などの機能を統合した構成を採用してもよい。
【００４７】
＜Ｂ．開発支援装置のハードウェア構成例＞
図４は、図１に示す情報提供システムを構成する開発支援装置のハードウェア構成例を示す模式図である。開発支援装置２００は、一例として、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコン）を用いて実現される。
【００４８】
図４に示されるように、開発支援装置２００は、プロセッサ２０２と、メインメモリ２０４と、入力部２０６と、ディスプレイ２０８と、ストレージ２１０と、光学ドライブ２１２と、ＵＳＢコントローラ２２０とを含む。これらのコンポーネントは、プロセッサバス２１８を介して接続されている。
【００４９】
プロセッサ２０２は、ＣＰＵやＧＰＵなどで構成され、ストレージ２１０に格納されたプログラム（一例として、ＯＳ２１０２およびサポートプログラム２１０４）を読出して、メインメモリ２０４に展開して実行することで、各種処理を実現する。
【００５０】
メインメモリ２０４は、ＤＲＡＭやＳＲＡＭなどの揮発性記憶装置などで構成される。ストレージ２１０は、例えば、ＨＤＤやＳＳＤなどの不揮発性記憶装置などで構成される。
【００５１】
ストレージ２１０には、基本的な機能を実現するためのＯＳ２１０２に加えて、開発支援装置２００としての機能を提供するためのサポートプログラム２１０４が格納される。すなわち、サポートプログラム２１０４は、情報提供システムＳＹＳに接続されるコンピュータにより実行されることで、本実施の形態に係る開発支援装置２００を実現する。
【００５２】
さらに、ストレージ２１０には、サポートプログラム２１０４が実行されることで提供される開発環境においてユーザにより作成されるプロジェクトデータ２１０６およびサービスデータ２１１４が格納される。
【００５３】
本実施の形態において、開発支援装置２００は、各制御部１０で実行されるプログラムの作成が可能な開発環境を提供する。プロジェクトデータ２１０６は、このような開発環境によって生成される制御プログラム２１０８と、設定情報２１１０と、公開データ情報２１１２とを含む。プロジェクトデータ２１０６を構成する制御プログラム２１０８、設定情報２１１０および公開データ情報２１１２は、制御部１０へ送信され、制御プログラム１１０４、設定情報１１０６および公開データ情報１１０８（図３参照）としてそれぞれ格納される。
【００５４】
サービスデータ２１１４は、開発環境によって生成され、属性情報２１１６と、アクセス情報２１１８と、サービス識別情報２１２０と、実行ファイル２１２２と、画面生成コード２１２４とを含む。属性情報２１１６、アクセス情報２１１８、サービス識別情報２１２０、実行ファイル２１２２および画面生成コード２１２４は、サーバ３００へ送信され、登録データ３１の属性情報３１ａ、アクセス情報３１ｂ、サービス識別情報３１ｃ、実行ファイル３１ｄおよび画面生成コード３１ｅ（図１参照）としてそれぞれ登録される。なお、アクセス情報２１１８は、実行ファイル２１２２に組み込まれてもよい。
【００５５】
入力部２０６は、キーボードやマウスなどで構成され、ユーザ操作を受付ける。ディスプレイ２０８は、プロセッサ２０２からの処理結果などを表示する。当該ディスプレイは、開発支援装置２００と一体的に構成されてもよいし、外付けで開発支援装置２００に接続されてもよい。
【００５６】
ＵＳＢコントローラ２２０は、ＵＳＢ接続を介して、制御部１０を構成する制御機器１００との間のデータを遣り取りする。
【００５７】
開発支援装置２００は、光学ドライブ２１２を有しており、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体２１４（例えば、ＤＶＤ（Digital Versatile Disc）などの光学記録媒体）から、その中に格納されたプログラムが読取られてストレージ２１０などにインストールされる。
【００５８】
開発支援装置２００で実行されるサポートプログラム２１０４などは、コンピュータ読取可能な記録媒体２１４を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、開発支援装置２００が提供する機能は、ＯＳが提供するモジュールの一部を利用する形で実現される場合もある。
【００５９】
図４には、プロセッサ２０２がプログラムを実行することで、開発支援装置２００として必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。
【００６０】
なお、情報提供システムＳＹＳが稼動中において、開発支援装置２００は、制御部１０を構成する制御機器１００から取り外されていてもよい。
【００６１】
＜Ｃ．サーバのハードウェア構成例＞
図５は、図１に示す情報提供システムを構成するサーバのハードウェア構成例を示す模式図である。図５に示す例のサーバ３００は、ＣＰＵやＭＰＵなどのプロセッサ３０２と、メインメモリ３０４と、ハードディスク（ＨＤＤ）３０６と、ディスプレイ３０８と、キーボードやマウスなどの入力部３１０と、他の装置との間でデータを遣り取りするためのネットワークコントローラ３１２とを含む。これらのコンポーネントは、内部バス３１４を介して互いにデータ通信可能に接続されている。
【００６２】
ハードディスク３０６は、サーバ３００での基本的なプログラムの実行環境を提供するためのＯＳ３２０と、サービスを実現するためのサーバプログラム３２２とを保持する。これらのプログラムがメインメモリ３０４に読み出されて、プロセッサ３０２で実行される。
【００６３】
さらに、ハードディスク３０６は、開発支援装置２００から送信されたサービスデータ２１１４に基づいて生成される登録データ３１を記憶する。
【００６４】
＜Ｄ．開発支援装置およびサーバの機能構成例＞
図６は、図１に示す情報提供システムを構成する開発支援装置およびサーバの機能構成例を示す模式図である。図６に示す例では、情報提供システムＳＹＳは、３つの制御部１０Ａ〜１０Ｃを備える。制御部１０Ａは、２つの制御機器１００ａ，１００ｂを含む。制御部１０Ｂは、１つの制御機器１００ｃを含む。制御部１０Ｃは、１つの制御機器１００ｄを含む。制御部１０Ａ〜１０Ｃは、ネットワークと接続するためのゲートウェイ１３０Ａ〜１３０Ｃをそれぞれ含む。ゲートウェイ１３０Ａ，１３０Ｂ，１３０Ｃは、例えば制御機器１００ａ，１００ｃ，１００ｄにそれぞれ組み込まれている。
【００６５】
図６に示されるように、開発支援装置２００は、作成部２１と登録部２２とを含む。作成部２１および登録部２２は、図４に示すプロセッサ２０２がサポートプログラム２１０４を実行することにより実現される。
【００６６】
作成部２１は、制御部１０Ａ〜１０Ｃの各々について、当該制御部で実行される制御プログラム２１０８のソースプログラムを作成するための入力および編集といった機能を提供する。より具体的には、作成部２１は、入力部２０６（図４参照）を設計者が操作してソースプログラムを作成する機能に加えて、作成したソースプログラムの保存機能および編集機能を提供する。作成部２１は、設計者の操作に応じて、命令ライブラリから選択された変更命令を用いて、ソースプログラムを作成する。作成部２１は、作成されたソースプログラムをコンパイルして、制御部で実行可能なプログラム形式の制御プログラム２１０８を生成する機能を提供する。
【００６７】
さらに、作成部２１は、制御プログラム２１０８に従った制御演算を実行するために必要な設定情報２１１０も作成する。設定情報２１１０は、制御プログラム２１０８に用いる変数の割り当てを含む。
【００６８】
なお、複数の制御機器１００を含む制御部１０に対して作成された制御プログラム２１０８は、複数の制御機器１００の各々に対応する部分プログラムを含む。図６に示す例では、制御部１０Ａに対して作成された制御プログラム２１０８は、制御部１０Ａに含まれる制御機器１００ａ，１００ｂの各々に対応する部分プログラムを含む。制御機器１００ａは、制御プログラム２１０８のうち制御機器１００ａに対応する部分プログラムを実行する。同様に、制御機器１００ｂは、制御プログラム２１０８のうち制御機器１００ｂに対応する部分プログラムを実行する。
【００６９】
登録部２２は、制御部１０Ａ〜１０Ｃの各々について、対象データを端末４００に提供するためのサービスに関するサービスデータ２１１４を作成し、作成したサービスデータ２１１４をサーバ３００に登録する。さらに、登録部２２は、各サービスを実行する際に制御部１０からサーバ３００に対象データが出力可能なように、公開データ情報２１１２を作成し、作成した公開データ情報２１１２を制御部１０に登録する。
【００７０】
登録部２２は、サービスデータ２１１４の作成を支援するための画面をディスプレイ２０８（図４参照）に表示し、入力部２０６への入力に従ってサービスデータ２１１４を作成する。登録部２２は、当該画面を用いて、公開データ情報２１１２も作成する。
【００７１】
図７は、サービスデータの作成を支援するための画面例を示す図である。図７に示す画面２３は、登録部２２によってディスプレイ２０８に表示される。画面２３は、サービスの属性を示す属性情報２１１６を作成するための入力欄２３１〜２３４を含む。入力欄２３１は、制御部１０の設置位置を入力するための欄である。入力欄２３２は、制御部１０が所属する組織を識別する情報（図７に示す例では会社名）を入力するための欄である。入力欄２３３は、制御部１０の名称を入力するための欄である。入力欄２３４は、制御部１０に含まれる制御機器１００の情報（名称、種類、ＩＰなど）を入力するための欄である。登録部２２は、入力欄２３１〜２３４への入力に従って、属性情報２１１６を作成する。図７に示す例では、属性情報２１１６は、制御部１０の設置位置、制御部１０の名称、制御部１０が所属する組織、制御部１０に含まれる制御機器の名称，種類およびＩＰ等を含む。なお、属性情報２１１６には、対象データを得るために実行される制御プログラムの名称、対象データの種類が含まれてもよい。
【００７２】
画面２３は、さらに、対象データを端末４００に提供する際に端末４００に表示されるＵＩ画面の名称を入力するための入力欄２３５を含む。登録部２２は、入力欄２３５にＵＩ画面の名称が入力されると、ＵＩ画面を生成するための画面生成コード２１２４を作成するためのウィンドウを表示する。登録部２２は、ウィンドウに入力された情報に従って、画面生成コード２１２４を作成する。画面生成コード２１２４は、画面のレイアウト情報を示し、例えばＨＴＭＬ５、ＣＳＳなどを用いて作成される。
【００７３】
画面２３は、さらに、サービスの名称を入力するための入力欄２３６を含む。登録部２２は、入力欄２３６に入力された名称を示すサービス識別情報２１２０を作成する。また、登録部２２は、入力欄２３６にサービスの名称が入力されると、当該サービスを実行するための実行ファイル２１２２を作成するためのウィンドウを表示する。登録部２２は、ウィンドウに入力された情報に従って、実行ファイル２１２２を作成する。実行ファイル２１２２は、サーバ３００で実行できる実行形式（例えばＪＡＶＡ（登録商標）スクリプトなど）で記述される。
【００７４】
図７に示す例では、実行ファイル２１２２内に、制御部１０にアクセスするためのアクセス情報２１１８（例えばＩＰアドレス、ＵＲＬ）が組み込まれている。
【００７５】
画面２３は、さらに、対象データの種類を入力するための入力欄２３７を含む。登録部２２は、入力欄２３７に入力された種類を示す公開データ情報２１１２を作成する。
【００７６】
図８は、開発支援装置の登録部によって作成された各種情報の一覧例を示す図である。登録部２２は、図７に示す画面２３への入力に従って、図８に示されるような各種情報を生成する。登録部２２は、作成した属性情報２１１６、サービス識別情報２１２０、画面生成コード２１２４および実行ファイル２１２２（アクセス情報２１１８を含む）を含むサービスデータ２１１４をサーバ３００に登録する。また、登録部２２は、作成した公開データ情報２１１２を対応する制御部に設定する。
【００７７】
なお、登録部２２は、１つの制御部１０に対して複数のサービスデータ２１１４を作成してもよい。例えば、２つの制御機器１００ａ，１００ｂを含む制御部１０Ａに対して、登録部２２は、制御機器１００ａ，１００ｂの集合（制御部１０Ａの全体）に対応する第１サービスデータと、制御機器１００ａ，１００ｂの各々に対応する第２サービスデータとを作成してもよい。もしくは、登録部２２は、第１サービスデータおよび２つの第２サービスデータのうちの少なくとも１つを作成してもよい。
【００７８】
第１サービスデータは、例えば、制御部１０Ａが制御プログラム全体を実行することにより得られる対象データを提供するサービスに関する。第２サービスデータは、例えば、対応する制御機器が制御プログラムのうちの当該制御機器に対応する部分プログラムを実行することにより得られる対象データを提供するサービスに関する。
【００７９】
図６に戻って、サーバ３００は、開発支援装置２００から送信されたサービスデータ２１１４から構成される登録データ３１を記憶する。登録データ３１は、例えば図１に示される。ただし、実行ファイル３１ｄ内にアクセス情報３１ｂが組み込まれる場合には、図１に示す登録データ３１においてアクセス情報３１ｂの列が省略されてもよい。
【００８０】
図６に示されるように、サーバ３００は、サービスを実行するためのサービスモジュール３２を含む。
【００８１】
サービスモジュール３２は、登録データ３１に基づいて、登録済みのサービスの一覧を端末４００に公開し、実行すべき対象制御部の対象サービスの選択を受け付ける。例えば、登録データ３１に、制御部１０Ａ〜１０Ｃの各々に対応するサービスと、制御部１０Ａに含まれる制御機器１００ａ，１００ｂの各々に対応するサービスとが登録されている場合、これら５つのサービスの中から実行すべきサービスが選択される。制御部１０Ａ〜１０Ｃの各々に対応するサービスは、制御部単位で監視したい場合に選択される。図６に示す例では、画面名「画面Ａ」およびサービス名「サービスＣ」のサービスデータ２１１４が、制御部１０Ａに対応するサービスに関するデータとして登録されている。また、制御機器１００ａ，１００ｂの各々に対応するサービスは、制御機器単位で監視したい場合に選択される。図６に示す例では、画面名「画面ａ」およびサービス名「サービスａ」のサービスデータ２１１４が、制御部１０Ａに含まれる制御機器１００ａに対応するサービスに関するデータとして登録されている。
【００８２】
図９は、サービスモジュールの処理内容を説明する図である。図９に示されるように、サービスモジュール３２は、端末４００から、対象制御部の対象サービスの有効化の指示を受け付ける。サービスモジュール３２は、登録データ３１に含まれる画面生成コード３１ｅの中から対象制御部の対象サービスに対応する画面生成コード３１ｅを抽出し、抽出した画面生成コード３１ｅで示されるＵＩ画面を端末４００に転送する。これにより、サービスモジュール３２は、ＵＩ画面に対する操作を受け付けることができる。
【００８３】
さらに、サービスモジュール３２は、登録データ３１に含まれる実行ファイル３１ｄの中から、対象制御部の対象サービスに対応する実行ファイル３１ｄを読み込む。これにより、サーバ３００において対象サービスが有効化（インスタンス化）される。サービスモジュール３２は、ＵＩ画面に対する操作に応じて、対象サービスを実行する。具体的には、サービスモジュール３２は、対象制御部に対応するアクセス情報３１ｂ（もしくは実行ファイル３１ｄに組み込まれたアクセス情報３１ｂ）に従って対象制御部にアクセスし、対象データを収集する。サービスモジュール３２は、対象サービスに対応する画面生成コード３１ｅで示され、かつ、収集した対象データを含むＵＩ画面を端末４００に転送する。これにより、端末４００には対象データを含むＵＩ画面が表示され、監視者は、対象データを確認することができる。
【００８４】
＜Ｅ．情報提供システムの処理の流れ＞
図１０は、情報提供システムにおける情報提供処理の全体の流れを示すタイミングチャートである。まず、開発支援装置２００は、制御部１０の属性情報２１１６、サービス識別情報２１２０、実行ファイル２１２２（アクセス情報２１１８を含む）および画面生成コード２１２４を含むサービスデータをサーバ３００に登録する（ステップＳ１）。
【００８５】
次に、開発支援装置２００は、サーバ３００に公開可能な対象データの種類を示す公開データ情報２１１２を制御部１０に設定する（ステップＳ２）。
【００８６】
サーバ３００は、登録済みのサービスデータに含まれる属性情報３１ａおよびサービス識別情報３１ｃの一覧を端末４００に提供する（ステップＳ３）。
【００８７】
端末４００は、一覧を表示し、監視者から対象制御部および対象サービスの選択を受け付ける（ステップＳ４）。
【００８８】
サーバ３００は、選択された対象制御部の対象サービスに対応する画面生成コード３１ｅで示されるＵＩ画面を端末４００に転送する（ステップＳ５）。このとき、サーバ３００は、対象制御部に対応するアクセス情報３１ｂを用いて、端末４００にアクセスすればよい。
【００８９】
端末４００は、ＵＩ画面を表示し、ＵＩ画面に対する操作を受け付ける（ステップＳ６）。端末４００は、ＵＩ画面への操作に応じた指示をサーバ３００に出力する（ステップＳ７）。
【００９０】
サーバ３００は、対象制御部の対象サービスに対応する実行ファイル３１ｄに従って、対象サービスを実行する（ステップＳ８）。例えば、サーバ３００は、制御部１０（制御機器１００）にアクセスし（ステップＳ９）、制御部１０（制御機器１００）から対象データを収集する（ステップＳ１０）。
【００９１】
サーバ３００は、収集した対象データを含むＵＩ画面を端末４００に転送する（ステップＳ１１）。端末４００は、サービス結果である対象データを表示する（ステップＳ１２）。これにより、監視者は、端末４００を用いて容易に対象データを確認することができる。
【００９２】
＜Ｆ．開発支援装置の処理の流れ＞
図１１は、開発支援装置の処理の流れの一例を示すフローチャートである。プロセッサ２０２は、開発環境を提供し、ユーザ入力に従って制御プログラム２１０８および設定情報２１１０を作成する（ステップＳ２１）。
【００９３】
プロセッサ２０２は、作成した制御プログラム２１０８および設定情報２１１０を対応する制御部１０に設定する（ステップＳ２２）。
【００９４】
プロセッサ２０２は、開発環境を提供し、ユーザ入力に従って属性情報２１１６、アクセス情報２１１８、サービス識別情報２１２０、実行ファイル２１２２、画面生成コード２１２４および公開データ情報２１１２を作成する（ステップＳ２３）。
【００９５】
プロセッサ２０２は、作成した属性情報２１１６、アクセス情報２１１８、サービス識別情報２１２０、実行ファイル２１２２および画面生成コード２１２４を互いに対応付けてサーバ３００に登録する（ステップＳ２４）。さらに、プロセッサ２０２は、作成した公開データ情報２１１２を対応する制御部１０に設定する（ステップＳ２５）。
【００９６】
＜Ｇ．サーバによるサービス一覧の公開処理の流れ＞
図１２は、サーバによるサービス一覧の公開処理の流れの一例を示すフローチャートである。プロセッサ３０２は、登録データ３１の中から、アクセスしてきた監視者に提供可能なサービスの一覧を作成する（ステップＳ３１）。例えば、登録データ３１に含まれる各情報は、当該情報にアクセス可能な監視者のアカウントと予め対応付けられている、プロセッサ３０２は、登録データ３１の中から監視者のアカウントに対応する情報を抽出することにより、サービスの一覧を作成すればよい。サービスの一覧には、少なくとも属性情報３１ａおよびサービス識別情報３１ｃが含まれる。なお、サービスの一覧には、アクセス情報３１ｂおよび画面生成コード３１ｅ（もしくはＵＩ画面の名称）が含まれてもよい。
【００９７】
さらに、プロセッサ３０２は、属性情報３１ａに基づいて、一覧に含めるサービスを絞り込んでもよい。具体的には、プロセッサ３０２は、登録データ３１に登録されているサービスの中から、端末４００によって指定された属性を示す属性情報に対応するサービスを抽出し、抽出したサービスの一覧を端末４００に出力してもよい。
【００９８】
プロセッサ３０２は、作成したサービスの一覧を端末４００に公開する（ステップＳ３２）。
【００９９】
図１３は、サービスの一覧を含む画面の一例を示す図である。図１３には、制御部１０の設置場所に基づいてサービスを絞り込むことが可能な画面４０ａが示される。画面４０ａは、制御部１０の設置場所を入力する入力欄４１を含む。監視者は、複数箇所の設置場所の中から所望の設置場所を選択し、選択した設置場所を入力欄４１に入力すればよい。これにより、サーバ３００は、登録データ３１の中から、監視者のアカウントに対応するとともに、入力された設置場所に対応する情報を抽出することにより、サービスの一覧４２を作成することができる。
【０１００】
＜Ｈ．サービスの提供処理の流れ＞
図１４は、サービスの提供処理の流れの一例を示すフローチャートである。端末４００は、例えば図１３に示す画面４０ａにおいて、監視者から対象制御部の対象サービスの選択を受け付ける（ステップＳ４１）。図１３に示す例では、監視者は、ラジオボタン４３を操作することにより、対象制御部の対象サービスを選択する。
【０１０１】
サーバ３００のプロセッサ３０２は、選択された対象制御部の対象サービスに対応する画面生成コード３１ｅで示されるＵＩ画面を端末４００に転送する（ステップＳ４２）。端末４００は、サーバ３００から転送されたＵＩ画面を表示する（ステップＳ４３）。
【０１０２】
図１５は、図１４のステップＳ４３において端末に表示されるＵＩ画面の一例を示す図である。図１５には、制御機器１００ａが自身に対応する部分プログラムを実行することにより得られる「変数Ｋ」を対象データとして提供するサービスに対応するＵＩ画面４０ｂが示される。ＵＩ画面４０ｂは、実行開始ボタン４４とキャンセルボタン４５とを含む。
【０１０３】
図１４に戻って、端末４００は、対象サービスの実行指示を受け付け、当該実行指示をサーバ３００に出力する（ステップＳ４４）。例えば、端末４００は、図１５に示すＵＩ画面４０ｂにおける実行開始ボタン４４のクリックに従って、対象サービスの実行指示を受け付ける。
【０１０４】
サーバ３００のプロセッサ３０２は、対象制御部の対象サービスに対応する実行ファイル３１ｄを読み込むことにより、対象サービスを有効化（インスタンス化）する（ステップＳ４５）。プロセッサ３０２は、対象サービスを実行する（ステップＳ４６）。例えば、プロセッサ３０２は、制御機器１００ａから対象データとして変数Ｋを収集する。プロセッサ３０２は、対象サービスの結果である対象データを含むＵＩ画面を端末４００に転送する（ステップＳ４７）。端末４００は、サーバ３００から転送された、サービス結果を含むＵＩ画面を表示する（ステップＳ４８）。
【０１０５】
図１６は、図１４のステップＳ４８において端末に表示されるＵＩ画面の一例を示す図である。図１６に示す画面４０ｃには、対象データである変数Ｋの時間変化を示すグラフ４６を含む。また、ＵＩ画面４０ｃは、更新ボタン４７を含む。更新ボタン４７がクリックされると、図１４に示すステップＳ４５〜Ｓ４８が繰り返され、最新の対象データに基づいて、グラフ４６が更新される。
【０１０６】
キャンセルボタン４５がクリックされると、サーバ３００は、サービスの提供処理を終了する。
【０１０７】
＜Ｉ．変形例＞
上記の説明では、開発支援装置２００によって、登録データ３１がサーバ３００に登録されるものとした。しかしながら、制御機器１００が自身に対応する属性情報（機器の名称など）およびアクセス情報（ＩＰアドレスなど）を予め記憶している場合には、登録データ３１は、開発支援装置２００および制御機器１００によってサーバ３００に登録されてもよい。例えば、制御機器１００の種別毎に同一のサービス（例えば変数Ｋを提供するサービス）がサーバ３００に登録される場合について以下に説明する。
【０１０８】
図１７は、変形例に係る登録データの登録処理の一例を示すフローチャートである。開発支援装置２００のプロセッサ２０２は、制御機器１００の種別に応じたサービスを識別するサービス識別情報２１２０と、当該サービスに対応する実行ファイル２１２２および画面生成コード２１２４とを対応付けてサーバ３００に登録する（ステップＳ５１）。
【０１０９】
さらに、開発支援装置２００は、制御プログラムを設定した制御機器１００に対して、サービス識別情報２１２０とサーバ３００のＵＲＬとを設定する（ステップＳ５２）。
【０１１０】
制御機器１００は、サーバ３００のＵＲＬに基づいてサーバ３００にアクセスする（ステップＳ５３）。そして、制御機器１００は、開発支援装置２００から受けたサービス識別情報２１２０と同一のサービス識別情報３１ｃに対応付けて、予め記憶している属性情報およびアクセス情報をサーバ３００に登録する（ステップＳ５４）。ステップＳ５４により、登録データ３１の登録処理が終了する。これにより、制御機器１００から属性情報およびアクセス情報が自動的にサーバ３００に登録される。
【０１１１】
＜Ｊ．作用・効果＞
以上のように、情報提供システムＳＹＳは、制御対象を制御するための１または複数の制御部１０と、端末４００および制御部１０と通信可能なサーバ３００と、制御部１０の開発を支援する開発支援装置２００とを備える。開発支援装置２００は、作成部２１と登録部２２とを含む。作成部２１は、各制御部１０について、当該制御部１０で実行される制御プログラム２１０８を作成し、制御プログラム２１０８を当該制御部に出力する。登録部２２は、各制御部１０について、当該制御部１０に対応するサービス（具体的には実行ファイル２１２２）と当該サービスに対応するＵＩ画面を生成するための画面生成コード２１２４とをサーバ３００に登録する。サーバ３００は、登録部２２によって登録された複数のサービスのうち、端末４００から要求された対象制御部の対象サービスを提供するためのサービスモジュール３２を含む。サービスモジュール３２は、対象制御部にアクセスして、対象制御部が制御プログラム１１０４を実行することにより得られる対象データを収集する。サービスモジュール３２は、対象サービスに対応する画面生成コード３１ｅで示され、かつ、対象データを含むＵＩ画面を端末４００に提供する。
【０１１２】
上記の構成によれば、監視者は、端末４００を操作してサーバ３００にアクセスし、対象制御部の対象サービスを選択することにより、例えばＷｅｂブラウザ上で、対象制御部で得られた対象データを容易に確認できる。すなわち、端末４００には制御部１０毎のアプリケーションを予めインストールしておく必要がない。さらに、制御部１０へのアクセスはサーバ３００から行われるため、監視者は、各制御部１０へアクセスするための情報（例えばＩＰアドレス）を事前に確認する必要がない。このように、１または複数の制御部１０を容易に監視することができる。
【０１１３】
１または複数の制御部１０のうちの少なくとも１つの制御部１０（図６に示す例では制御部１０Ａ）は、複数の制御機器１００ａ，１００ｂを含んでもよい。制御部１０Ａに対する制御プログラム１１０４は、制御機器１００ａ，１００ｂの各々に対応する部分プログラムを含む。登録部２２は、制御部１０Ａに対応するサービスとして、制御機器１００ａ，１００ｂの集合に対応する第１サービス、および、制御機器１００ａ，１００ｂにそれぞれ対応する２つの第２サービスのうちの少なくとも１つをサーバ３００に登録する。
【０１１４】
上記の構成によれば、監視したい対象データに応じて、第１サービス、制御機器１００ａに対応する第２サービスおよび制御機器１００ｂに対応する第２サービスのうちのいずれかを登録すればよい。これらの全てのサービスをサーバ３００に登録した場合、監視者は、第１サービスを利用することにより制御部１０Ａ全体を監視することができる。さらに、監視者は、制御機器１００ａ，１００ｂにそれぞれ対応する第２サービスを利用することにより、制御機器単位で対象データを監視できる。
【０１１５】
なお、第２サービスの実行により得られる対象データは、当該第２サービスに対応する制御機器が制御プログラム１１０４のうち当該制御機器に対応する部分プログラムを実行することにより得られる。
【０１１６】
登録部２２は、サービスの属性情報をサービスと対応付けてサーバ３００に登録する。サービスモジュール３２は、複数のサービスの中から端末４００によって指定された属性を示す属性情報に対応するサービスを抽出し、抽出したサービスの一覧を端末４００に出力する。サービスモジュール３２は、一覧のうち端末４００から指定されたサービスを対象サービスとして特定すればよい。これにより、監視者は、サービスの属性を指定することにより、所望のサービスを容易に選択することができる。
【０１１７】
属性情報は、１または複数の制御部１０のうちの対応する制御部１０の設置位置、対応する制御部１０の種類、対応する制御部１０が所属する組織、対応する制御部１０に含まれる制御機器１００の名称、制御プログラム１１０４の名称、および、対象データの種類の少なくとも１つを示すことが好ましい。
【０１１８】
端末４００は、Ｗｅｂブラウザを備える。サービスモジュール３２は、Ｗｅｂブラウザからの指令に基づき、ＵＩ画面を端末４００に提供する。これにより、監視者は、汎用されているＷｅｂブラウザを用いて容易に対象データを監視することができる。
【０１１９】
＜Ｋ．付記＞
以上のように、本実施の形態および変形例は以下のような開示を含む。
【０１２０】
（構成１）
情報提供システム（ＳＹＳ）であって、
制御対象を制御するための１または複数の制御部（１０）と、
端末（４００）および前記１または複数の制御部（１０）と通信可能なサーバ（３００）と、
前記１または複数の制御部（１０）の開発を支援する開発支援装置（２００）とを備え、
前記開発支援装置（２００）は、前記１または複数の制御部（１０）の各々について、
当該制御部（１０）で実行される制御プログラムを作成し、前記制御プログラムを当該制御部（１０）に出力するための作成部（２１）と、
当該制御部（１０）に対応するサービスと当該サービスに対応するＵＩ画面を生成するための画面生成コードとを前記サーバに登録するための登録部（２２）とを含み、
前記サーバ（３００）は、
前記登録部（２２）によって登録された複数のサービスのうち、前記端末（４００）から要求された対象制御部の対象サービスを提供するためのサービスモジュール（３２）を含み、
前記サービスモジュール（３２）は、
前記対象制御部にアクセスして、前記対象制御部が前記制御プログラムを実行することにより得られる対象データを収集し、
前記対象サービスに対応する前記画面生成コードで示され、かつ、前記対象データを含むＵＩ画面を前記端末（４００）に提供する、情報提供システム（ＳＹＳ）。
【０１２１】
（構成２）
前記１または複数の制御部（１０）のうちの少なくとも１つの制御部（１０Ａ）は、複数の制御機器（１００ａ，１００ｂ）を含み、
前記少なくとも１つの制御部（１０Ａ）に対する前記制御プログラムは、前記複数の制御機器（１００ａ，１００ｂ）の各々に対応する部分プログラムを含み、
前記登録部（２２）は、前記少なくとも１つの制御部（１０Ａ）に対応するサービスとして、前記複数の制御機器（１００ａ，１００ｂ）の集合に対応する第１サービスおよび前記複数の制御機器（１００ａ，１００ｂ）にそれぞれ対応する複数の第２サービスの少なくとも１つを前記サーバに登録する、構成１に記載の情報提供システム（ＳＹＳ）。
【０１２２】
（構成３）
前記登録部（２２）は、前記複数の第２サービスの少なくとも１つの第２サービスを前記サーバに登録し、
前記対象データは、前記少なくとも１つの第２サービスに対応する制御機器（１００ａ，１００ｂ）が前記部分プログラムを実行することにより得られる、構成２に記載の情報提供システム（ＳＹＳ）。
【０１２３】
（構成４）
前記登録部（２２）は、前記サービスの属性情報を前記サービスと対応付けて前記サーバに登録し、
前記サービスモジュール（３２）は、
前記複数のサービスの中から前記端末によって指定された属性を示す前記属性情報に対応するサービスを抽出し、
抽出したサービスの一覧を前記端末（４００）に出力し、
前記一覧のうち前記端末（４００）から指定されたサービスを前記対象サービスとして特定する、構成１から３のいずれかに記載の情報提供システム（ＳＹＳ）。
【０１２４】
（構成５）
前記属性情報は、前記１または複数の制御部（１０）のうちの対応する制御部の設置位置、前記対応する制御部の種類、前記対応する制御部が所属する組織、前記対応する制御部に含まれる制御機器（１００）の名称、前記制御プログラムの名称、および、前記対象データの種類の少なくとも１つを示す、構成４に記載の情報提供システム（ＳＹＳ）。
【０１２５】
（構成６）
前記端末（４００）は、Ｗｅｂブラウザを備え、
前記サービスモジュール（３２）は、前記Ｗｅｂブラウザからの指令に基づき、前記ＵＩ画面を前記端末（４００に提供する、構成１から５のいずれかに記載の情報提供システム（ＳＹＳ）。
【０１２６】
（構成７）
構成１から６のいずれかに記載の情報提供システム（ＳＹＳ）に備えられるサーバ（３００）であって、前記サービスモジュール（３２）を備える、サーバ（３００）。
【０１２７】
（構成８）
制御対象を制御するための１または複数の制御部（１０）と、
端末（４００）および前記１または複数の制御部（１０）と通信可能なサーバ（３００）とを備えるシステム（ＳＹＳ）における情報提供方法であって、
前記１または複数の制御部（１０）の各々について、当該制御部で実行される制御プログラムを作成し、作成した制御プログラムを当該制御部に出力するステップと。
【０１２８】
前記１または複数の制御部（１０）の各々について、当該制御部に対応するサービスと当該サービスに対応するＵＩ画面を生成するための画面生成コードとを前記サーバ（３００）に登録するステップと、
前記サーバによって登録された複数のサービスのうち、前記端末から要求された対象制御部の対象サービスを提供するステップとを備え、
前記提供するステップは、
前記対象制御部にアクセスして、前記対象制御部が前記制御プログラムを実行することにより得られる対象データを収集するステップと、
前記対象サービスに対応する前記画面生成コードで示され、かつ、前記対象データを含むＵＩ画面を前記端末に表示させるステップとを含む、情報提供方法。
【０１２９】
本発明の実施の形態について説明したが、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１３０】
１０，１０Ａ，１０Ｂ，１０Ｃ  制御部、２１  作成部、２２  登録部、２３，４０ａ，４０ｂ，４０ｃ  画面、３１  登録データ、３１ａ，２１１６  属性情報、３１ｂ，２１１８  アクセス情報、３１ｃ，２１２０  サービス識別情報、３１ｄ，２１２２  実行ファイル、３１ｅ，２１２４  画面生成コード、３２  サービスモジュール、４１，２３１〜２３７  入力欄、４２  一覧、４３  ラジオボタン、４４  実行開始ボタン、４５  キャンセルボタン、４６  グラフ、４７  更新ボタン、１００，１００ａ〜１００ｄ  制御機器、１０２，２０２，３０２  プロセッサ、１０４，２０４，３０４  メインメモリ、１０６  上位ネットワークコントローラ、１０８  フィールドネットワークコントローラ、１１０，２１０  ストレージ、１１２  メモリカードインターフェイス、１１４  メモリカード、１１６  ローカルバスコントローラ、１１８，２１８  プロセッサバス、１２０，２２０  ＵＳＢコントローラ、１３０Ａ〜１３０Ｃ  ゲートウェイ、２００  開発支援装置、２０６，３１０  入力部、２０８，３０８  ディスプレイ、２１２  光学ドライブ、２１４  記録媒体、３００  サーバ、３０６  ハードディスク、３１２  ネットワークコントローラ、３１４  内部バス、３２２  サーバプログラム、４００  端末、４０１ａ，４０１ｂ  アプリケーション、１１０２  システムプログラム、１１０４，２１０８  制御プログラム、１１０６，２１１０  設定情報、１１０８，２１１２  公開データ情報、２１０４  サポートプログラム、２１０６  プロジェクトデータ、２１１４  サービスデータ、ＳＹＳ  情報提供システム。
【図１】
2020190945.tif 000003
【図２】
2020190945.tif 000004
【図３】
2020190945.tif 000005
【図４】
2020190945.tif 000006
【図５】
2020190945.tif 000007
【図６】
2020190945.tif 000008
【図７】
2020190945.tif 000009
【図８】
2020190945.tif 000010
【図９】
2020190945.tif 000011
【図１０】
2020190945.tif 000012
【図１１】
2020190945.tif 000013
【図１２】
2020190945.tif 000014
【図１３】
2020190945.tif 000015
【図１４】
2020190945.tif 000016
【図１５】
2020190945.tif 000017
【図１６】
2020190945.tif 000018
【図１７】
2020190945.tif 000019