(57)【要約】      （修正有）【課題】アクセス先の機能ユニットのＩＰアドレスを意識せずに目的の機能ユニットにアクセスできる技術を提供する。【解決手段】ユニット２００は、第１ネットワークＮＷ１に接続される外部機器５００と第２ネットワークＭＷ２に接続される他のユニット３００との間の通信を中継するための通信部２５０と、第２ネットワーク内における他のユニットのアドレス情報を当該他のユニットから取得し、当該アドレス情報と、当該アドレス情報に代わる識別子とを対応付けた設定情報を生成するための設定部２５２と、識別子に基づいて、外部機器から他のユニット内の情報にアクセスするために用いられるリンク情報を生成するリンク情報生成部２５４とを備える。【選択図】図１
2020160933.tif 000002
【特許請求の範囲】
【請求項１】
ＰＬＣ（Programmable Logic Controller）に接続することができるユニットであって、
第１ネットワークに接続される外部機器と第２ネットワークに接続される他のユニットとの間の通信を中継するための通信部と、
前記第２ネットワーク内における前記他のユニットのアドレス情報を当該他のユニットから取得し、当該アドレス情報と、当該アドレス情報に代わる識別子とを対応付けた設定情報を生成するための設定部と、
前記識別子に基づいて、前記外部機器から前記他のユニット内の情報にアクセスするために用いられるリンク情報を生成するリンク情報生成部とを備える、ユニット。
【請求項２】
前記通信部は、
前記リンク情報に基づいて前記外部機器によって生成された第１アクセス要求を当該外部機器から受信したことに基づいて、当該第１アクセス要求に含まれる前記識別子を取得し、
前記設定情報を参照して、前記識別子に対応する前記アドレス情報を取得し、
当該アドレス情報を含む第２アクセス要求に基づいて、前記他のユニット内の情報にアクセスする、請求項１に記載のユニット。
【請求項３】
前記通信部は、前記第１アクセス要求に含まれる前記識別子を前記アドレス情報に置き換えることで、前記第２アクセス要求を生成する、請求項２に記載のユニット。
【請求項４】
前記ユニットは、前記他のユニットとバスにより接続され、
前記通信部は、前記バスを用いて前記他のユニットと通信する、請求項１〜３のいずれか１項に記載のユニット。
【請求項５】
前記ユニットは、物理的な通信ポートをさらに備え、
前記通信部は、前記通信ポートを用いて前記外部機器と通信する、請求項１〜４のいずれか１項に記載のユニット。
【請求項６】
前記リンク情報は、ハイパーリンクを含み、
前記通信部は、前記外部機器に前記ハイパーリンクを表示させる、請求項１〜４のいずれか１項に記載のユニット。
【請求項７】
ＰＬＣに接続することができるユニットの制御方法であって、
第１ネットワークに接続される外部機器と第２ネットワークに接続される他のユニットとの間の通信を中継するステップと、
前記第２ネットワーク内における前記他のユニットのアドレス情報を当該他のユニットから取得し、当該アドレス情報と、当該アドレス情報に代わる識別子とを対応付けた設定情報を生成するステップと、
前記識別子に基づいて、前記外部機器から前記他のユニット内の情報にアクセスするために用いられるリンク情報を生成するステップとを備える、制御方法。
【請求項８】
ＰＬＣに接続することができるユニットの制御プログラムであって、
前記制御プログラムは、前記ユニットに、
第１ネットワークに接続される外部機器と第２ネットワークに接続される他のユニットとの間の通信を中継するステップと、
前記第２ネットワーク内における前記他のユニットのアドレス情報を当該他のユニットから取得し、当該アドレス情報と、当該アドレス情報に代わる識別子とを対応付けた設定情報を生成するステップと、
前記識別子に基づいて、前記外部機器から前記他のユニット内の情報にアクセスするために用いられるリンク情報を生成するステップとを実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、複数のユニットで構成される制御システムにおいて外部機器との通信を中継するための技術に関する。
【背景技術】
【０００２】
ＦＡ（Factory Automation）を用いた生産現場などでは、各種設備および各設備に配置される各種装置の制御において、ＰＬＣ（Programmable Logic Controller）などの制御ユニットが用いられる。近年、外部機器に接続できる制御ユニットが普及している。このような制御ユニットに関し、特許文献１（特開２０１６−１９４８０８号公報）は、外部機器のデーターベースにアクセスすることができるＰＬＣを開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−１９４８０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
制御ユニットには、種々の機能ユニットが接続され得る。外部機器から各機能ユニットへの通信を実現するためには、ユーザは、アクセス先の機能ユニットのＩＰアドレスを把握しておく必要がある。ＩＰアドレスの把握は、機能ユニットの接続数が増えるほど困難になる。したがって、アクセス先の機能ユニットのＩＰアドレスを意識せずに目的の機能ユニットにアクセスすることが可能な技術が望まれている。
【課題を解決するための手段】
【０００５】
本開示の一例では、ＰＬＣ（Programmable Logic Controller）に接続することができるユニットは、第１ネットワークに接続される外部機器と第２ネットワークに接続される他のユニットとの間の通信を中継するための通信部と、上記第２ネットワーク内における上記他のユニットのアドレス情報を当該他のユニットから取得し、当該アドレス情報と、当該アドレス情報に代わる識別子とを対応付けた設定情報を生成するための設定部と、上記識別子に基づいて、上記外部機器から上記他のユニット内の情報にアクセスするために用いられるリンク情報を生成するリンク情報生成部とを備える。
【０００６】
本開示によれば、ユーザは、第２ネットワーク内における他のユニットのアドレス情報を意識せずに、当該他のユニットにアクセスすることができる。
【０００７】
本開示の一例では、上記通信部は、上記リンク情報に基づいて上記外部機器によって生成された第１アクセス要求を当該外部機器から受信したことに基づいて、当該第１アクセス要求に含まれる上記識別子を取得し、上記設定情報を参照して、上記識別子に対応する上記アドレス情報を取得し、当該アドレス情報を含む第２アクセス要求に基づいて、上記他のユニット内の情報にアクセスする。
【０００８】
本開示によれば、ユニットは、第１アクセス要求に含まれるアクセス要求に対応するアドレス情報に基づいて、他のユニットにアクセスすることできる。これにより、第２ネットワーク内における他のユニットのアドレス情報が、第１ネットワークに属する外部機器に対して秘匿される。
【０００９】
本開示の一例では、上記通信部は、上記第１アクセス要求に含まれる上記識別子を上記アドレス情報に置き換えることで、上記第２アクセス要求を生成する。
【００１０】
本開示によれば、ユニットは、第１ネットワークで有効な第１アクセス要求を、第２ネットワークで有効な第２アクセス要求に書き換えることができる。これにより、第２ネットワーク内における他のユニットのアドレス情報が、第１ネットワークに属する外部機器に対して秘匿される。
【００１１】
本開示の一例では、上記ユニットは、上記他のユニットとバスにより接続される。上記通信部は、上記バスを用いて上記他のユニットと通信する。
【００１２】
本開示によれば、上記ユニットは、バスを介して他のユニットと通信することが可能になる。
【００１３】
本開示の一例では、上記ユニットは、物理的な通信ポートをさらに備える。上記通信部は、上記通信ポートを用いて上記外部機器と通信する。
【００１４】
本開示によれば、上記ユニットは、物理的な通信ポートを介して他のユニットと通信することが可能になる。
【００１５】
本開示の一例では、上記リンク情報は、ハイパーリンクを含む。上記通信部は、上記外部機器に上記ハイパーリンクを表示させる。
【００１６】
本開示によれば、ユーザは、ハイパーリンクを介して他のユニットにアクセスすることが可能になる。
【００１７】
本開示の他の例では、ＰＬＣに接続することができるユニットの制御方法は、第１ネットワークに接続される外部機器と第２ネットワークに接続される他のユニットとの間の通信を中継するステップと、上記第２ネットワーク内における上記他のユニットのアドレス情報を当該他のユニットから取得し、当該アドレス情報と、当該アドレス情報に代わる識別子とを対応付けた設定情報を生成するステップと、上記識別子に基づいて、上記外部機器から上記他のユニット内の情報にアクセスするために用いられるリンク情報を生成するステップとを備える。
【００１８】
本開示によれば、ユーザは、第２ネットワーク内における他のユニットのアドレス情報を意識せずに、当該他のユニットにアクセスすることができる。
【００１９】
本開示の他の例では、ＰＬＣ（Programmable Logic Controller）に接続することができるユニットの制御プログラムは、上記ユニットに、第１ネットワークに接続される外部機器と第２ネットワークに接続される他のユニットとの間の通信を中継するステップと、上記第２ネットワーク内における上記他のユニットのアドレス情報を当該他のユニットから取得し、当該アドレス情報と、当該アドレス情報に代わる識別子とを対応付けた設定情報を生成するステップと、上記識別子に基づいて、上記外部機器から上記他のユニット内の情報にアクセスするために用いられるリンク情報を生成するステップとを実行させる。
【００２０】
本開示によれば、ユーザは、第２ネットワーク内における他のユニットのアドレス情報を意識せずに、当該他のユニットにアクセスすることができる。
【図面の簡単な説明】
【００２１】
【図１】実施の形態に従う情報処理システムの構成例を示す図である。
【図２】実施の形態に従う制御システムの構成例を示す外観図である。
【図３】実施の形態に従う制御システムを構成する制御ユニットのハードウェア構成例を示す模式図である。
【図４】実施の形態に従う制御システムを構成する中継ユニットのハードウェア構成例を示す模式図である。
【図５】実施の形態に従う制御システムを構成する機能ユニットのハードウェア構成例を示す模式図である。
【図６】実施の形態に従う情報処理システムを構成する外部機器のハードウェア構成例を示す模式図である。
【図７】実施の形態に従う情報処理システムのユニット構成の一例を示す図である。
【図８】通信設定情報の生成時における、中継ユニットおよび機能ユニットの間のデータフローを示す図である。
【図９】図８のステップＳ１０において送信されるプロキシ情報の一例を示す図である。
【図１０】通信設定情報の一例を示す図である。
【図１１】ポータルサイトの表示時における、中継ユニットおよび外部機器の間のデータフローを示す図である。
【図１２】図１１のステップＳ３２で生成されるリンク情報を示す図である。
【図１３】実施の形態に従う外部機器に表示されているポータルサイトを示す図である。
【図１４】代理応答時における、中継ユニットと機能ユニットと外部機器との間のデータフローを示す図である。
【図１５】ポータルサイトの画面遷移の一例を示す図である。
【図１６】ＵＲＬ（Uniform Resource Locator）の書き換え処理を概略的に示す図である。
【図１７】変形例１に従う情報処理システムのユニット構成を示す図である。
【図１８】変形例２に従う情報処理システムのユニット構成を示す図である。
【発明を実施するための形態】
【００２２】
以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。
【００２３】
＜Ａ．適用例＞
図１を参照して、本発明の適用例について説明する。図１は、実施の形態に従う情報処理システム１の構成例を示す図である。
【００２４】
情報処理システム１は、１つ以上の制御システム２と、１つ以上の外部機器５００とを含む。制御システム２は、生産工程を自動化するためのＦＡシステムである。制御システム２は、制御ユニット１００と、中継ユニット２００と、機能ユニット３００とを含む。
【００２５】
中継ユニット２００および外部機器５００は、外部ネットワークＮＷ１に接続される。中継ユニット２００および外部機器５００の間の通信は、Ｅｔｈｅｒｎｅｔ（登録商標）によって実現される。すなわち、中継ユニット２００および外部機器５００の各々には、外部ネットワークＮＷ１で有効なＩＰアドレスが割り当てられており、中継ユニット２００および外部機器５００は、当該ＩＰアドレスに基づいて互いに通信を行う。
【００２６】
制御ユニット１００、中継ユニット２００、および機能ユニット３００は、内部ネットワークＮＷ２に接続される。これらのユニット間の通信は、たとえば、Ｅｔｈｅｒｎｅｔによってユニット間の通信を実現される。すなわち、制御システム２を構成する各ユニットは、内部ネットワークＮＷ２で有効なＩＰアドレスが割り当てられており、各ユニットは、当該ＩＰアドレスに基づいて互いに通信を行う。
【００２７】
制御ユニット１００は、たとえば、ＰＬＣである。制御ユニット１００は、予め設計されたユーザプログラムに従って、駆動機器（図示しない）を制御する。駆動機器は、生産工程を自動化するための種々の産業用機器を含む。一例として、駆動機器は、ロボットコントローラや、サーボドライバや、ロボットコントローラに制御されるアームロボットや、サーボドライバによって制御されるサーボモータなどを含む。また、駆動機器は、ワークを撮影するための視覚センサや、生産工程で利用されるその他の機器などを含んでもよい。
【００２８】
機能ユニット３００は、制御ユニット１００による様々な制御対象に対する制御を実現するための各種機能を提供する。機能ユニット３００は、ＷｅｂサーバＳ２と、アプリケーションＡＰ２Ａ，ＡＰ２Ｂとを含む。アプリケーションＡＰ２Ａ，ＡＰ２Ｂは、制御システム２に関する各種サービスを提供するためのプログラムである。
【００２９】
外部機器５００は、たとえば、ノート型またはデスクトップ型のＰＣ（Personal Computer）、タブレット端末、スマートフォン、ＨＭＩ（Human Machine Interface）、または、その他の情報処理端末である。
【００３０】
中継ユニット２００は、外部ネットワークＮＷ１に接続される機器（すなわち、外部機器５００）と、内部ネットワークＮＷ２に接続される機器（すなわち、制御ユニット１００，機能ユニット３００）との間の通信を中継する。中継ユニット２００は、通信の中継機能を実現するための機能構成として、通信部２５０と、設定部２５２と、リンク情報生成部２５４とを含む。
【００３１】
通信部２５０は、各種機器との通信を実現するための通信モジュールである。典型的には、通信部２５０は、外部ネットワークＮＷ１（第１ネットワーク）に接続される外部機器５００との通信や、内部ネットワークＮＷ２（第２ネットワーク）に接続される他のユニット（たとえば、機能ユニット３００）との通信を実現する。
【００３２】
設定部２５２は、内部ネットワークＮＷ２内における機能ユニット３００のアドレス情報を機能ユニット３００から取得する。当該アドレス情報は、内部ネットワークＮＷ２内において機能ユニット３００を一意に識別することが可能な通信情報である。一例として、当該アドレス情報は、ＩＰアドレス、ドメイン名、またはホスト名である。
【００３３】
設定部２５２は、機能ユニット３００からアドレス情報を受信したことに基づいて、当該アドレス情報に代わる識別子を生成する。当該識別子は、たとえば、任意の文字列である。設定部２５２は、機能ユニット３００から受信したアドレス情報と、生成した識別子とを対応付けて、それらを通信設定情報２３０に書き込む。
【００３４】
リンク情報生成部２５４は、設定部２５２によって生成された識別子に基づいて、外部ネットワークＮＷ１に接続される外部機器５００から、内部ネットワークＮＷ２に接続される機能ユニット３００内の情報にアクセスするために用いられるリンク情報を生成する。「機能ユニット３００内の情報」とは、機能ユニット３００内に格納されている任意の情報を意味し、プログラム（アプリケーション）やデータを含む概念である。「リンク情報」は、機能ユニット３００内の情報へのアクセス先を示すアドレスであり、たとえば、ＵＲＬやハイパーリンクである。リンク情報生成部２５４は、生成したリンク情報をＨＴＭＬ（HyperText Markup Language）文書に埋め込んだ上で、当該ＨＴＭＬ文書を外部機器５００に送信する。
【００３５】
外部機器５００は、中継ユニット２００から受信したＨＴＭＬ文書に応じた画面を表示する。これにより、リンク情報が外部機器５００の画面上に表示される。ユーザは、表示されたリンク情報をクリックすることで、当該リンク情報が示すアクセス先の情報にアクセスすることができる。このとき、ユーザは、アクセス先である機能ユニット３００のＩＰアドレスを意識する必要がない。
【００３６】
また、外部機器５００に表示されるリンク情報には、外部ネットワークＮＷ１内における機能ユニット３００の識別子が含まれているだけで、内部ネットワークＮＷ２内における機能ユニット３００のＩＰアドレスは含まれていない。すなわち、内部ネットワークＮＷ２内における機能ユニット３００のＩＰアドレスは、外部機器５００には公開されない。これにより、内部ネットワークＮＷ２に属する機能ユニット３００が秘匿される。また、外部機器５００と機能ユニット３００との直接的な通信が防がれ、通信に伴うセキュリティ上のリスクが軽減される。
【００３７】
＜Ｂ．制御システム２＞
図２を参照して、図１に示される制御システム２について説明する。図２は、制御システム２の構成例を示す外観図である。
【００３８】
図２を参照して、制御システム２は、１または複数の制御ユニット１００と、１または複数の中継ユニット２００と、１または複数の機能ユニット３００と、１または複数の機能ユニット４００と、電源ユニット４５０とを含む。
【００３９】
制御ユニット１００と中継ユニット２００との間は、任意のデータ伝送路を介して接続されている。制御ユニット１００と、中継ユニット２００と、１または複数の機能ユニット３００，４００との間は、後述の内部バス１０（図７参照）を介して接続されている。
【００４０】
制御ユニット１００は、制御システム２において中心的な処理を実行する。制御ユニット１００は、任意に設計された要求仕様に従って、制御対象を制御するための制御演算を実行する。図２に示す構成例において、制御ユニット１００は、１または複数の通信ポートを有している。制御ユニット１００は、標準制御プログラムに従って標準制御を実行する処理実行部に相当する。
【００４１】
中継ユニット２００は、制御ユニット１００に接続され、他の装置との間の通信機能を担当する。図２に示す構成例において、中継ユニット２００は、１または複数の通信ポートを有している。中継ユニット２００が提供する通信機能の詳細については、後述する。
【００４２】
機能ユニット３００は、オプションのユニットであり、必要に応じて制御ユニット１００に接続される。機能ユニット３００は、典型的には、ＳＧＵ（Security Guard Unit）、ＯＰＣ  ＵＡ（Object Linking and Embedding for Process Control Unified Architecture）によるデータ交換機能を有する通信ユニット、ＡＩ（Artificial Intelligence）による予防保全機能を有するＡＩユニットなどを包含し得る。
【００４３】
機能ユニット４００は、制御システム２による様々な制御対象に対する制御を実現するための各種機能を提供する。機能ユニット４００は、典型的には、Ｉ／Ｏユニット、セーフティＩ／Ｏユニット、通信ユニット、モーションコントローラユニット、温度調整ユニット、パルスカウンタユニットなどを包含し得る。Ｉ／Ｏユニットとしては、たとえば、デジタル入力（ＤＩ）ユニット、デジタル出力（ＤＯ）ユニット、アナログ出力（ＡＩ）ユニット、アナログ出力（ＡＯ）ユニット、パルスキャッチ入力ユニット、および、複数の種類を混合させた複合ユニットなどが挙げられる。セーフティＩ／Ｏユニットは、セーフティ制御に係るＩ／Ｏ処理を担当する。
【００４４】
電源ユニット４５０は、制御システム２を構成する各ユニットに対して、所定電圧の電源を供給する。
【００４５】
＜Ｃ．各ユニットのハードウェア構成例＞
次に、本実施の形態に従う制御システム２を構成する各ユニットのハードウェア構成例について説明する。
【００４６】
（ｃ１：制御ユニット１００）
図３は、本実施の形態に従う制御システム２を構成する制御ユニット１００のハードウェア構成例を示す模式図である。図３を参照して、制御ユニット１００は、主たるコンポーネントとして、ＣＰＵ（Central Processing Unit）やＧＰＵ（Graphical Processing Unit）などのプロセッサ１０２と、チップセット１０４と、主記憶装置１０６と、二次記憶装置１０８と、通信コントローラ１１０と、ＵＳＢ（Universal Serial Bus）コントローラ１１２と、メモリカードインターフェイス１１４と、ネットワークコントローラ１１６，１１８，１２０と、内部バスコントローラ１２２と、インジケータ１２４とを含む。
【００４７】
プロセッサ１０２は、二次記憶装置１０８に格納された各種プログラムを読み出して、主記憶装置１０６に展開して実行することで、標準制御に係る制御演算、および、後述するような各種処理を実現する。チップセット１０４は、プロセッサ１０２と各コンポーネントとの間のデータの遣り取りを仲介することで、制御ユニット１００全体としての処理を実現する。
【００４８】
二次記憶装置１０８には、システムプログラムに加えて、システムプログラムが提供する実行環境上で動作する制御プログラムが格納される。
【００４９】
通信コントローラ１１０は、機能ユニット３００との間のデータの遣り取りを担当する。通信コントローラ１１０としては、たとえば、ＥｔｈｅｒＮｅｔなどに対応する通信チップを採用できる。
【００５０】
ＵＳＢコントローラ１１２は、ＵＳＢ接続を介して任意の情報処理装置との間のデータの遣り取りを担当する。
【００５１】
メモリカードインターフェイス１１４は、メモリカード１１５を着脱可能に構成されており、メモリカード１１５に対して制御プログラムや各種設定などのデータを書込み、あるいは、メモリカード１１５から制御プログラムや各種設定などのデータを読出すことが可能になっている。
【００５２】
ネットワークコントローラ１１６，１１８，１２０の各々は、ネットワークを介した任意のデバイスとの間のデータの遣り取りを担当する。ネットワークコントローラ１１６，１１８，１２０は、ＥｔｈｅｒＣＡＴ（登録商標）、ＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）、ＤｅｖｉｃｅＮｅｔ（登録商標）、ＣｏｍｐｏＮｅｔ（登録商標）などの産業用ネットワークプロトコルを採用してもよい。
【００５３】
内部バスコントローラ１２２は、制御システム２を構成する中継ユニット２００、１または複数の機能ユニット３００、１または複数の機能ユニット４００との間のデータの遣り取りを担当する。内部バスには、メーカ固有の通信プロトコルを用いてもよいし、いずれかの産業用ネットワークプロトコルと同一あるいは準拠した通信プロトコルを用いてもよい。
【００５４】
インジケータ１２４は、制御ユニット１００の動作状態などを通知するものであり、ユニット表面に配置された１または複数のＬＥＤなどで構成される。
【００５５】
図３には、プロセッサ１０２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（たとえば、ＡＳＩＣ（Application Specific Integrated Circuit）またはＦＰＧＡ（Field-Programmable Gate Array）など）を用いて実装してもよい。あるいは、制御ユニット１００の主要部を、汎用的なアーキテクチャに従うハードウェア（たとえば、汎用パソコンをベースとした産業用パソコン）を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のＯＳ（Operating System）を並列的に実行させるとともに、各ＯＳ上で必要なアプリケーションを実行させるようにしてもよい。
【００５６】
（ｃ２：中継ユニット２００）
図４は、本実施の形態に従う制御システム２を構成する中継ユニット２００のハードウェア構成例を示す模式図である。図４を参照して、中継ユニット２００は、主たるコンポーネントとして、ＣＰＵやＧＰＵなどのプロセッサ２０２と、チップセット２０４と、主記憶装置２０６と、二次記憶装置２０８と、通信コントローラ２１０と、通信インターフェイス２１２と、メモリカードインターフェイス２１４と、ネットワークコントローラ２１６，２１８と、インジケータ２２４とを含む。
【００５７】
プロセッサ２０２は、二次記憶装置２０８に格納された各種プログラムを読み出して、主記憶装置２０６に展開して実行することで、後述するような各種通信機能を実現する。チップセット２０４は、プロセッサ２０２と各コンポーネントとの間のデータの遣り取りを仲介することで、中継ユニット２００全体としての処理を実現する。
【００５８】
二次記憶装置２０８には、システムプログラムに加えて、システムプログラムが提供する実行環境上で動作する通信制御プログラム２３２や、通信設定情報２３０などの各種データが格納される。
【００５９】
通信コントローラ２１０は、制御ユニット１００や機能ユニット３００との間のデータの遣り取りを担当する。通信コントローラ２１０としては、たとえば、ＥｔｈｅｒＮｅｔなどに対応する通信チップを採用できる。
【００６０】
通信インターフェイス２１２は、ＵＳＢ接続を介して任意の情報処理装置との間のデータの遣り取りを担当する。
【００６１】
メモリカードインターフェイス２１４は、メモリカード２１５を着脱可能に構成されており、メモリカード２１５に対して制御プログラムや各種設定などのデータを書込み、あるいは、メモリカード２１５から制御プログラムや各種設定などのデータを読出すことが可能になっている。
【００６２】
ネットワークコントローラ２１６，２１８の各々は、ネットワークを介した任意のデバイスとの間のデータの遣り取りを担当する。ネットワークコントローラ２１６，２１８は、ＥｔｈｅｒＮｅｔなどの汎用的なネットワークプロトコルを採用してもよい。一例として、中継ユニット２００は、ネットワークコントローラ２１６またはネットワークコントローラ２１８を介して外部機器５００と通信する。
【００６３】
インジケータ２２４は、中継ユニット２００の動作状態などを通知するものであり、ユニット表面に配置された１または複数のＬＥＤなどで構成される。
【００６４】
図４には、プロセッサ２０２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（たとえば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。あるいは、中継ユニット２００の主要部を、汎用的なアーキテクチャに従うハードウェア（たとえば、汎用パソコンをベースとした産業用パソコン）を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のＯＳを並列的に実行させるとともに、各ＯＳ上で必要なアプリケーションを実行させるようにしてもよい。
【００６５】
（ｃ３：機能ユニット３００）
図５は、本実施の形態に従う制御システム２を構成する機能ユニット３００のハードウェア構成例を示す模式図である。図５を参照して、機能ユニット３００は、主たるコンポーネントとして、ＣＰＵやＧＰＵなどのプロセッサ３０２と、チップセット３０４と、主記憶装置３０６と、二次記憶装置３０８と、メモリカードインターフェイス３１４と、内部バスコントローラ３２２と、インジケータ３２４とを含む。
【００６６】
プロセッサ３０２は、二次記憶装置３０８に格納された各種アプリケーションプログラムを読み出して、主記憶装置３０６に展開して実行することで、サーバ機能および各種機能を実現する。チップセット３０４は、プロセッサ３０２と各コンポーネントとの間のデータの遣り取りを仲介することで、機能ユニット３００全体としての処理を実現する。
【００６７】
二次記憶装置３０８には、システムプログラムに加えて、システムプログラムが提供する実行環境上で動作するアプリケーションプログラムが格納される。
【００６８】
メモリカードインターフェイス３１４は、メモリカード３１５を着脱可能に構成されており、メモリカード３１５に対してアプリケーションプログラムや各種設定などのデータを書込み、あるいは、メモリカード３１５からアプリケーションプログラムや各種設定などのデータを読出すことが可能になっている。
【００６９】
内部バスコントローラ３２２は、内部バスを介した制御ユニット１００や中継ユニット２００との間のデータの遣り取りを担当する。
【００７０】
インジケータ３２４は、機能ユニット３００の動作状態などを通知するものであり、ユニット表面に配置された１または複数のＬＥＤなどで構成される。
【００７１】
図５には、プロセッサ３０２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（たとえば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。あるいは、機能ユニット３００の主要部を、汎用的なアーキテクチャに従うハードウェア（たとえば、汎用パソコンをベースとした産業用パソコン）を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のＯＳを並列的に実行させるとともに、各ＯＳ上で必要なアプリケーションを実行させるようにしてもよい。
【００７２】
＜Ｄ．外部機器５００のハードウェア構成例＞
次に、図６を参照して、外部機器５００のハードウェア構成について順に説明する。図６は、実施の形態に従う情報処理システム１を構成する外部機器５００のハードウェア構成例を示す模式図である。
【００７３】
外部機器５００は、一例として、汎用的なコンピュータアーキテクチャに準じて構成されるコンピュータからなる。外部機器５００は、ＣＰＵやＭＰＵなどのプロセッサ５０２と、主記憶装置５０４と、二次記憶装置５１０と、通信インターフェイス５１１と、Ｉ／Ｏ（Input/Output）インターフェイス５１４と、表示インターフェイス５２０とを含む。これらのコンポーネントは、内部バス５２５を介して互いに通信可能に接続されている。
【００７４】
プロセッサ５０２は、開発支援プログラム５１０Ａやブラウザアプリケーション（図示しない）などの各種の制御プログラムを実行することで外部機器５００の動作を制御する。開発支援プログラム５１０Ａは、制御システム２の制御プログラム（ユーザプログラム）を開発するための環境を提供するプログラムである。プロセッサ５０２は、開発支援プログラム５１０Ａやブラウザアプリケーションなどの各種制御プログラムの実行命令を受け付けたことに基づいて、実行対象の制御プログラムを二次記憶装置５１０から主記憶装置５０４に読み出す。
【００７５】
通信インターフェイス５１１は、他の通信機器との間でネットワークを介してデータを遣り取りする。当該他の通信機器は、たとえば、中継ユニット２００、サーバなどを含む。外部機器５００は、通信インターフェイス５１１を介して、当該他の通信機器から、開発支援プログラム５１０Ａなどの各種制御プログラムをダウンロード可能なように構成されてもよい。
【００７６】
Ｉ／Ｏインターフェイス５１４は、入力デバイス５１５に接続され、入力デバイス５１５からのユーザ操作を示す信号を取り込む。入力デバイス５１５は、典型的には、キーボード、マウス、タッチパネル、タッチパッドなどからなり、ユーザからの操作を受け付ける。なお、図６の例では、外部機器５００および入力デバイス５１５が別体として示されているが、外部機器５００および入力デバイス５１５は、一体的に構成されてもよい。
【００７７】
表示インターフェイス５２０は、ディスプレイ５２１と接続され、プロセッサ５０２などからの指令に従って、ディスプレイ５２１に対して、画像を表示するための画像信号を送出する。ディスプレイ５２１は、たとえば、ＬＣＤ（Liquid Crystal Display）や有機ＥＬ（Electro Luminescence）であり、ユーザに対して各種情報を提示する。ディスプレイ５２１には、開発支援プログラム５１０Ａによって提供される各種画面が表示され得る。なお、図６の例では、外部機器５００およびディスプレイ５２１が別体として示されているが、外部機器５００およびディスプレイ５２１は、一体的に構成されてもよい。
【００７８】
＜Ｅ．情報処理システム１のユニット構成例＞
図７は、情報処理システム１のユニット構成の一例を示す図である。図７を参照して、情報処理システム１のユニット構成の具体例について説明する。
【００７９】
図７に示されるように、情報処理システム１は、制御システム２と、外部機器５００とを含む。制御システム２は、制御ユニット１００と、中継ユニット２００と、機能ユニット３００とを含む。制御ユニット１００と、中継ユニット２００と、機能ユニット３００とは、内部バス１０を介して接続されている。これらのユニットは、内部バス１０を介して互いに通信する。当該通信は、たとえば、仮想Ｅｔｈｅｒｎｅｔによって実現される。
【００８０】
外部ネットワークＮＷ１には、中継ユニット２００および外部機器５００が接続されている。外部機器５００には、ＩＰアドレス「１９２．１６８．２５０．３」が割り当てられている。中継ユニット２００および外部機器５００は、それぞれ、物理的な通信ポートを有し、当該通信ポートを介して外部ネットワークＮＷ１に接続される。
【００８１】
内部ネットワークＮＷ２には、制御ユニット１００、中継ユニット２００、および機能ユニット３００が接続されている。制御ユニット１００には、仮想ＩＰアドレス「１９２．１６８．２５０．１」が割り当てられている。また、制御ユニット１００には、ユニット名「Ｕｎｉｔ  ＃０」が割り当てられている。
【００８２】
中継ユニット２００には、ＩＰアドレス「１９２．１６８．２５０．２」が割り当てられている。また、中継ユニット２００には、ユニット名「Ｕｎｉｔ  ＃１」が割り当てられている。中継ユニット２００は、Ｗｅｂサーバ「Ｗｅｂ１」として機能する。中継ユニット２００には、アプリケーション「Ａｐｐ１１」，「Ａｐｐ１２」がインストールされている。アプリケーション「Ａｐｐ１１」，「Ａｐｐ１２」は、Ｗｅｂサーバ「Ｗｅｂ１」からアクセスされる。
【００８３】
図７の例では、機能ユニット３００は、２つの機能ユニットＵ２，Ｕ３で構成される。機能ユニットＵ２には、仮想ＩＰアドレス「１９２．１６８．２５１．１００」が割り当てられている。また、機能ユニットＵ２には、ユニット名「Ｕｎｉｔ  ＃２」が割り当てられている。機能ユニットＵ２は、Ｗｅｂサーバ「Ｗｅｂ２」として機能する。機能ユニットＵ２には、アプリケーション「Ａｐｐ２１」，「Ａｐｐ２２」がインストールされている。アプリケーション「Ａｐｐ２１」，「Ａｐｐ２２」は、Ｗｅｂサーバ「Ｗｅｂ２」からアクセスされる。
【００８４】
機能ユニットＵ３には、仮想ＩＰアドレス「１９２．１６８．２５１．１０１」が割り当てられている。また、機能ユニットＵ３には、ユニット名「Ｕｎｉｔ  ＃３」が割り当てられている。機能ユニットＵ３は、Ｗｅｂサーバ「Ｗｅｂ３」として機能する。機能ユニットＵ３には、アプリケーション「Ａｐｐ３１」，「Ａｐｐ３２」がインストールされている。アプリケーション「Ａｐｐ３１」，「Ａｐｐ３２」は、Ｗｅｂサーバ「Ｗｅｂ３」からアクセスされる。
【００８５】
中継ユニット２００は、リバースプロキシ機能を有する。より具体的には、中継ユニット２００は、外部機器５００からアクセス要求を受けたときには、Ｗｅｂサーバとして機能する。そして、中継ユニット２００は、外部機器５００から受けたアクセス要求を書き換え、書き換え後のアクセス要求をアクセス先の機能ユニット３００に送信する。このときには、中継ユニット２００は、クライアントとして機能し、アクセス先の機能ユニット３００がＷｅｂサーバとして機能する。このように、中継ユニット２００は、Ｗｅｂサーバおよびクライアントの両方として機能する。
【００８６】
＜Ｆ．通信設定情報２３０の生成方法＞
中継ユニット２００は、外部機器５００と、機能ユニットＵ２，Ｕ３との間の通信を中継するために、外部機器５００からのアクセス要求をルーティングする必要がある。このような中継機能を実現するために、中継ユニット２００は、ルーティングのための通信設定情報２３０（図１参照）を予め生成しておく。
【００８７】
以下では、図８〜図１０を参照して、通信設定情報２３０の生成方法について説明する。図８は、通信設定情報２３０の生成時における、中継ユニット２００および機能ユニット３００の間のデータフローを示す図である。図８に示される処理は、たとえば、制御ユニット１００の起動時に実行される。
【００８８】
ステップＳ１０において、中継ユニット２００は、機能ユニットＵ２に関する情報（以下、「プロキシ情報」ともいう。）の取得要求を機能ユニットＵ２に送信する。機能ユニットＵ２は、当該取得要求を受けて、自身のプロキシ情報を中継ユニット２００に送信する。
【００８９】
図９は、ステップＳ１０において送信されるプロキシ情報の一例を示す図である。プロキシ情報は、たとえば、ドメイン名、ユニット名、ホスト名とを含む。図９の例では、ドメイン名が「ＡＩ」として示され、ユニット名が「＃２」として示され、ホスト名が「Ｕｎｉｔ＿２」として示されている。
【００９０】
ステップＳ１２において、中継ユニット２００は、上述の設定部２５２（図１参照）として機能し、機能ユニットＵ２から受信したプロキシ情報に基づいて、通信設定情報２３０を更新する。図１０は、通信設定情報２３０の一例を示す図である。ステップＳ１２では、破線２３０Ａに示される情報が、通信設定情報２３０に追加される。これにより、機能ユニットＵ２のアドレス情報（図１０の例では、ホスト名「Ｕｎｉｔ＿２」）が識別子「ｕ２」に対応付けられる。
【００９１】
ホスト名「Ｕｎｉｔ＿２」に対応付けられる識別子「ｕ２」は、中継ユニット２００によって予め定められたルールに従って生成される。好ましくは、中継ユニット２００は、ユーザが機能ユニットＵ２を識別しやすい文字列を識別子として生成する。一例として、当該識別子は、機能ユニットＵ２のドメイン名、機能ユニットＵ２のユニット名、または機能ユニットＵ２のホスト名に基づいて、生成される。
【００９２】
識別子「ｕ２」に対応付けられるアドレス情報は、内部ネットワークＮＷ２内における機能ユニットＵ２のＩＰアドレスを特定できるものであればよく、必ずしもホスト名である必要はない。一例として、識別子「ｕ２」に対応付けられるアドレス情報は、内部ネットワークＮＷ２での機能ユニットＵ２のＩＰアドレス自体であってもよいし、機能ユニットＵ２のドメイン名であってもよい。
【００９３】
ステップＳ２０において、中継ユニット２００は、プロキシ情報の取得要求を機能ユニットＵ３に送信する。機能ユニットＵ３は、当該取得要求を受けて、自身のプロキシ情報を中継ユニット２００に送信する。
【００９４】
ステップＳ２２において、中継ユニット２００は、上述の設定部２５２（図１参照）として機能し、機能ユニットＵ３から受信したプロキシ情報に基づいて、通信設定情報２３０を更新する。ステップＳ２２では、図１０の破線２３０Ｂに示される情報が、通信設定情報２３０に追加される。これにより、機能ユニットＵ３のアドレス情報（図１０の例では、ホスト名「Ｕｎｉｔ＿３」）が識別子「ｕ３」に対応付けられる。識別子「ｕ３」は、識別子「ｕ２」と同様のルールに従って中継ユニット２００によって生成される。
【００９５】
識別子「ｕ３」に対応付けられるアドレス情報は、内部ネットワークＮＷ２内における機能ユニットＵ３のＩＰアドレスを特定できるものであればよく、必ずしもホスト名である必要はない。一例として、識別子「ｕ３」に対応付けられるアドレス情報は、内部ネットワークＮＷ２での機能ユニットＵ３のＩＰアドレス自体であってもよいし、機能ユニットＵ３のドメイン名であってもよい。
【００９６】
＜Ｇ．ポータルサイトの表示処理＞
外部機器５００は、制御システム２内の各ユニットのアプリケーションにアクセスするためのポータルサイトを表示する。このようなポータルサイトが表示されることで、ユーザは、制御システム２内の各ユニットの情報（たとえば、各ユニットのＩＰアドレスなど）を意識せずに、各ユニットのアプリケーションを利用することが可能になる。
【００９７】
以下では、図１１〜図１３を参照して、ポータルサイトの表示フローについて説明する。図１１は、ポータルサイトの表示時における、中継ユニット２００および外部機器５００の間のデータフローを示す図である。
【００９８】
ステップＳ３０において、ユーザは、入力デバイス５１５（図６参照）を用いて、外部機器５００に対してポータルサイトの表示操作を行ったとする。このことに基づいて、外部機器５００は、ポータルサイトの取得要求を中継ユニット２００に送信する。
【００９９】
ステップＳ３２において、中継ユニット２００は、ポータルサイトの取得要求を中継ユニット２００から受けて、上述のリンク情報生成部２５４（図１参照）として機能し、各ユニットのアプリケーションにアクセスするためのリンク情報を生成する。図１２は、ステップＳ３２で生成されるリンク情報３０を示す図である。
【０１００】
リンク情報３０は、ＨＴＭＬで記述される。リンク情報３０は、外部ネットワークＮＷ１で有効なＵＲＬ３１と、ハイパーリンク３２とを含む。ハイパーリンクとは、ＵＲＬに対応付けられる何らかの文字列である。
【０１０１】
リンク情報３０は、上述の通信設定情報２３０（図１０参照）に基づいて生成される。より具体的には、中継ユニット２００は、自身のアドレス情報（たとえば、ＩＰアドレス）と、通信設定情報２３０に規定される各ユニットの識別子とに基づいて、リンク情報を生成する。図１２の例では、中継ユニット２００のＩＰアドレス「１９２．１６８．２５０．２」と、通信設定情報２３０に規定される機能ユニットＵ３の識別子「ｕ３」とに基づいて、外部ネットワークＮＷ１で有効なＵＲＬ「http://192.168.250.2/u3/App31/index.php」が生成されている。当該ＵＲＬに示される「App31」は、機能ユニットＵ３内のアプリケーションの識別子である。中継ユニット２００は、このようなＵＲＬを制御システム２の各ユニット内の各アプリケーションについて生成し、リンク情報３０に書き込む。
【０１０２】
ステップＳ４０において、中継ユニット２００は、上述の通信部２５０（図１参照）として機能し、生成したリンク情報３０を外部機器５００に送信する。外部機器５００は、受信したリンク情報３０に基づいてポータルサイトを構成し、当該ポータルサイトをディスプレイ５２１（図６参照）に表示する。図１３は、外部機器５００に表示されているポータルサイト７１０を示す図である。
【０１０３】
ポータルサイト７１０には、各ユニットへのリンクがハイパーリンクで示される。図１３の例では、機能ユニットＵ２へのリンクがハイパーリンク７１０Ａとして示され、機能ユニットＵ３へのリンクがハイパーリンク７１０Ｂとして示されている。
【０１０４】
なお、ポータルサイト７１０に表示される内容は、外部機器５００にログインしたユーザのアクセス権に応じて変えられてもよい。各ユーザに与えられるアクセス権は、たとえば、外部機器５００などにおいて予め設定され、ユーザ別アクセス権情報として制御システム２に送信されている。また、機能ユニット３００の各々には、アクセスすることを許可するアクセス権の種別がアプリケーションごとに設定されており、機能ユニット３００の各々は、当該アクセス権の種別をアプリケーション別アクセス権情報として保持する。
【０１０５】
この前提で、図８のステップＳ１０，Ｓ２０において、機能ユニット３００の各々は、プロキシ情報（図９参照）を中継ユニット２００に送信する際に、アプリケーション別アクセス権情報を中継ユニット２００に送信する。中継ユニット２００は、受信したアプリケーション別アクセス権情報を記憶する。
【０１０６】
その後、図１１のステップＳ３０において、外部機器５００は、ポータルサイトの取得要求を中継ユニット２００に送信する際に、外部機器５００へのログイン情報（たとえば、ユーザＩＤ）も合わせて送信する。中継ユニット２００は、ユーザ別アクセス権情報に基づいて、ログインユーザに与えられているアクセス権の種別を特定する。そして、中継ユニット２００は、アプリケーション別アクセス権情報に基づいて、ログインユーザのアクセス権でアクセスすることが可能なアプリケーション（または機能ユニット）を特定する。その後、中継ユニット２００は、特定したアプリケーションについてのみリンク情報を生成する。これにより、ポータルサイト７１０に表示される内容は、ユーザに与えられているアクセス権に応じて変えられる。
【０１０７】
＜Ｈ．リバースプロキシ処理＞
次に、図１４〜図１６を参照して、中継ユニット２００によるリバースプロキシ機能について説明する。図１４は、代理応答時における、中継ユニット２００と機能ユニット３００と外部機器５００との間のデータフローを示す図である。
【０１０８】
ステップＳ５０において、外部機器５００は、図１５に示されるポータルサイト７１０を表示しているとする。図１５は、ポータルサイト７１０の画面遷移の一例を示す図である。ユーザは、ポータルサイト７１０内のハイパーリンクのいずれかを選択することができる。ステップＳ５０では、たとえば、ポータルサイト７１０のハイパーリンク７１０Ｂが選択されたとする。
【０１０９】
ステップＳ５２において、外部機器５００は、選択されたハイパーリンク７１０Ｂに応じたアクセス要求を中継ユニット２００に送信する。当該アクセス要求は、選択されたハイパーリンク７１０Ｂに対応付けられているＵＲＬを含む。
【０１１０】
ステップＳ５４において、中継ユニット２００は、上述の通信部１５０（図１参照）として機能し、外部機器５００から受信したアクセス要求に含まれるＵＲＬを取得し、当該ＵＲＬを書き換える。図１６は、ＵＲＬの書き換え処理を概略的に示す図である。
【０１１１】
図１６には、外部機器５００からのアクセス要求４０ＡがＵＲＬ「http://192.168.250.2/u3/App31/index.php」として示されている。アクセス要求４０Ａに示される「192.168.250.2」は、中継ユニット２００のＩＰアドレスを示す。アクセス要求４０Ａに示される「u3」は、アクセス先のユニットの識別子を示す。アクセス要求４０Ａに示される「App31」は、アクセス先のユニットのアプリケーションを示す。
【０１１２】
通信部１５０は、外部機器５００からアクセス要求４０Ａ（第１アクセス要求）を受信したことに基づいて、アクセス要求４０Ａに含まれる識別子「u3」を取得する。次に、通信部１５０は、上述の図１０で説明した通信設定情報２３０を参照して、識別子「u3」に対応するアドレス情報を取得する。その結果、内部ネットワークＮＷ２で有効なアドレス情報「unit_3」が特定される。その後、通信部１５０は、アクセス要求４０Ａを書き換え、アドレス情報「unit_3」を含むアクセス要求４０Ｂ（第２アクセス要求）を生成する。
【０１１３】
より具体的には、通信部１５０は、アクセス要求４０Ａに含まれる識別子「u3」を、当該識別子「u3」に対応するアドレス情報「unit_3」に置き換えることで、アクセス要求４０Ｂを生成する。このとき、アクセス要求４０Ａに含まれるドメイン「192.168.250.2」（すなわち、宛先情報）を削除する。これにより、アクセス要求４０Ａ「http://192.168.250.2/u3/App31/index.php」がアクセス要求４０Ｂ「http://unit_3/App31/index.php」に書き換えられ、宛先が中継ユニット２００から機能ユニットＵ３に書き換えられる。通信部１５０は、書き換え後のアクセス要求４０Ｂを機能ユニットＵ３に送信する。
【０１１４】
ステップＳ６０において、機能ユニットＵ３は、中継ユニット２００から受信したアクセス要求４０Ｂに基づいて、機能ユニットＵ３内のアプリケーションにアクセスし、当該アプリケーションを介して目的の情報を取得する。機能ユニットＵ３は、取得した情報をＨＴＭＬ文書として中継ユニット２００に送信する。
【０１１５】
ステップＳ７０において、中継ユニット２００は、再びＷｅｂサーバとして機能し、機能ユニットＵ３から受信したＨＴＭＬ文書を外部機器５００に送信する。外部機器５００は、受信したＨＴＭＬ文書を解析し、当該ＨＴＭＬ文書に応じた画面をディスプレイ５２１（図６参照）に表示する。図１３には、ステップＳ７０において表示される画面７２０を示す。
【０１１６】
以上のように、ユーザがハイパーリンク７１０Ｂをクリックすることで、外部機器５００は、ハイパーリンク７１０Ｂに対応する機能ユニットＵ３にアクセスし、当該機能ユニットＵ３から目的の情報を取得する。このとき、ユーザは、アクセス先である機能ユニットＵ３のＩＰアドレスを意識する必要がない。
【０１１７】
また、ポータルサイト７１０に表示されるリンク情報には、外部ネットワークＮＷ１内における機能ユニット３００の識別子が含まれているだけで、内部ネットワークＮＷ２内における機能ユニット３００のＩＰアドレスは含まれていない。すなわち、内部ネットワークＮＷ２内における機能ユニット３００のＩＰアドレスは、外部機器５００には公開されない。これにより、内部ネットワークＮＷ２に属する機能ユニット３００が秘匿される。また、外部機器５００と機能ユニット３００との直接的な通信が防がれ、通信に伴うセキュリティ上のリスクが軽減される。
【０１１８】
＜Ｉ．情報処理システム１の変形例１＞
図１７は、変形例１に従う情報処理システム１Ａのユニット構成を示す図である。図１７を参照して、情報処理システム１Ａのユニット構成について説明する。
【０１１９】
上述の図７では、情報処理システム１を構成する各ユニットは、内部バス１０を介して接続されていた。これに対して、変形例１に従う情報処理システム１Ａでは、各ユニットは、通信ポートを介して内部ネットワークＮＷ２に接続される。すなわち、本変形例においては、各ユニットは、物理的に離れた場所に設置される。このようなユニット構成であっても、本発明の趣旨を逸脱するものではない。
【０１２０】
＜Ｊ．情報処理システム１の変形例２＞
図１８は、変形例２に従う情報処理システム１Ｂのユニット構成を示す図である。図１８を参照して、情報処理システム１Ｂのユニット構成について説明する。
【０１２１】
上述の図７に示される情報処理システム１においては、中継ユニット２００のみが、外部ネットワークＮＷ１に接続されていた。これに対して、変形例２に従う情報処理システム１Ｂにおいては、中継ユニット２００だけでなく、他のユニットも外部ネットワークＮＷ１に接続される。すなわち、本変形例においては、中継ユニット２００だけでなく、他の機能ユニットも、外部機器５００と直接的に通信し得る。このようなユニット構成であっても、本発明の趣旨を逸脱するものではない。
【０１２２】
図１８の例では、中継ユニット２００が外部機器５００と直接的に接続されているだけでなく、機能ユニットＵ３も外部機器５００と直接的に接続されている。すなわち、外部機器５００から機能ユニットＵ３への通信経路は、中継ユニット２００を介する通信経路Ｒ１と、中継ユニット２００を介さない通信経路Ｒ２とが存在する。
【０１２３】
このような複数の通信経路が存在することで、各アプリケーションへのアクセスの許可／禁止が、通信経路に応じて切り替えられる。一例として、機能ユニットＵ３のアプリケーション「Ａｐｐ３１」については、通信経路Ｒ２での通信が禁止され、通信経路Ｒ１での通信のみが許可される。一方で、機能ユニットＵ３のアプリケーション「Ａｐｐ３２」については、通信経路Ｒ１での通信が禁止され、通信経路Ｒ２での通信のみが許可される。
【０１２４】
より具体的には、アクセスの許可／禁止の規定は、通信経路ごと、かつアプリケーションごとに予め規定され、許可／禁止規定として機能ユニット３００の各々で保持される。機能ユニット３００は、中継ユニット２００または外部機器５００からアクセス要求を受信した場合に、当該アクセス要求に含まれるＵＲＬからアクセス元を特定し、当該アクセス元に基づいて通信経路を特定する。その後、機能ユニット３００は、許可／禁止規定を参照して、特定した通信経路について、アクセス先のアプリケーションへのアクセスが許可されているか否かを判断する。
【０１２５】
＜Ｋ．付記＞
以上のように、本実施形態は以下のような開示を含む。
【０１２６】
［構成１］
ＰＬＣ（Programmable Logic Controller）（１００）に接続することができるユニット（２００）であって、
第１ネットワークに接続される外部機器（５００）と第２ネットワークに接続される他のユニット（３００）との間の通信を中継するための通信部（２５０）と、
前記第２ネットワーク内における前記他のユニット（３００）のアドレス情報を当該他のユニット（３００）から取得し、当該アドレス情報と、当該アドレス情報に代わる識別子とを対応付けた設定情報（２３０）を生成するための設定部（２５２）と、
前記識別子に基づいて、前記外部機器（５００）から前記他のユニット（３００）内の情報にアクセスするために用いられるリンク情報を生成するリンク情報生成部（２５４）とを備える、ユニット。
【０１２７】
［構成２］
前記通信部（２５０）は、
前記リンク情報に基づいて前記外部機器（５００）によって生成された第１アクセス要求を当該外部機器（５００）から受信したことに基づいて、当該第１アクセス要求に含まれる前記識別子を取得し、
前記設定情報（２３０）を参照して、前記識別子に対応する前記アドレス情報を取得し、
当該アドレス情報を含む第２アクセス要求に基づいて、前記他のユニット（３００）内の情報にアクセスする、請求項１に記載のユニット。
【０１２８】
［構成３］
前記通信部（２５０）は、前記第１アクセス要求に含まれる前記識別子を前記アドレス情報に置き換えることで、前記第２アクセス要求を生成する、請求項２に記載のユニット。
【０１２９】
［構成４］
前記ユニット（２００）は、前記他のユニット（３００）とバス（１０）により接続され、
前記通信部（２５０）は、前記バス（１０）を用いて前記他のユニット（３００）と通信する、請求項１〜３のいずれか１項に記載のユニット。
【０１３０】
［構成５］
前記ユニット（２００）は、物理的な通信ポートをさらに備え、
前記通信部（２５０）は、前記通信ポートを用いて前記外部機器（５００）と通信する、請求項１〜４のいずれか１項に記載のユニット。
【０１３１】
［構成６］
前記リンク情報は、ハイパーリンクを含み、
前記通信部（２５０）は、前記外部機器（５００）に前記ハイパーリンクを表示させる、請求項１〜４のいずれか１項に記載のユニット。
【０１３２】
［構成７］
ＰＬＣ（１００）に接続することができるユニット（２００）の制御方法であって、
第１ネットワークに接続される外部機器（５００）と第２ネットワークに接続される他のユニット（３００）との間の通信を中継するステップと、
前記第２ネットワーク内における前記他のユニット（３００）のアドレス情報を当該他のユニット（３００）から取得し、当該アドレス情報と、当該アドレス情報に代わる識別子とを対応付けた設定情報（２３０）を生成するステップ（Ｓ１２，Ｓ２２）と、
前記識別子に基づいて、前記外部機器（５００）から前記他のユニット（３００）内の情報にアクセスするために用いられるリンク情報を生成するステップ（Ｓ３２）とを備える、制御方法。
【０１３３】
［構成８］
ＰＬＣ（１００）に接続することができるユニット（２００）の制御プログラムであって、
前記制御プログラムは、前記ユニット（２００）に、
第１ネットワークに接続される外部機器（５００）と第２ネットワークに接続される他のユニット（３００）との間の通信を中継するステップと、
前記第２ネットワーク内における前記他のユニット（３００）のアドレス情報を当該他のユニット（３００）から取得し、当該アドレス情報と、当該アドレス情報に代わる識別子とを対応付けた設定情報（２３０）を生成するステップ（Ｓ１２，Ｓ２２）と、
前記識別子に基づいて、前記外部機器（５００）から前記他のユニット（３００）内の情報にアクセスするために用いられるリンク情報を生成するステップとを実行させる、プログラム。
【０１３４】
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
【符号の説明】
【０１３５】
１，１Ａ，１Ｂ  情報処理システム、２  制御システム、１０，５２５  内部バス、３０  リンク情報、３２，７１０Ａ，７１０Ｂ  ハイパーリンク、４０Ａ，４０Ｂ  アクセス要求、１００  制御ユニット、１０２，２０２，３０２，５０２  プロセッサ、１０４，２０４，３０４  チップセット、１０６，２０６，３０６，５０４  主記憶装置、１０８，２０８，３０８，５１０  二次記憶装置、１１０，２１０  通信コントローラ、１１２  ＵＳＢコントローラ、１１４，２１４，３１４  メモリカードインターフェイス、１１５，２１５，３１５  メモリカード、１１６，１１８，１２０，２１６，２１８  ネットワークコントローラ、１２２，３２２  内部バスコントローラ、１２４，２２４，３２４  インジケータ、１５０，２５０  通信部、２００  中継ユニット、２１２，５１１  通信インターフェイス、２３０  通信設定情報、２３０Ａ，２３０Ｂ  破線、２３２  通信制御プログラム、２５２  設定部、２５４  リンク情報生成部、３００，４００  機能ユニット、４５０  電源ユニット、５００  外部機器、５１０Ａ  開発支援プログラム、５１４  Ｉ／Ｏインターフェイス、５１５  入力デバイス、５２０  表示インターフェイス、５２１  ディスプレイ、７１０  ポータルサイト、７２０  画面。
【図１】
2020160933.tif 000003
【図２】
2020160933.tif 000004
【図３】
2020160933.tif 000005
【図４】
2020160933.tif 000006
【図５】
2020160933.tif 000007
【図６】
2020160933.tif 000008
【図７】
2020160933.tif 000009
【図８】
2020160933.tif 000010
【図９】
2020160933.tif 000011
【図１０】
2020160933.tif 000012
【図１１】
2020160933.tif 000013
【図１２】
2020160933.tif 000014
【図１３】
2020160933.tif 000015
【図１４】
2020160933.tif 000016
【図１５】
2020160933.tif 000017
【図１６】
2020160933.tif 000018
【図１７】
2020160933.tif 000019
【図１８】
2020160933.tif 000020