(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-08-29
(45)【発行日】2022-09-06
(54)【発明の名称】ユニット、ユニットの制御方法、および、ユニットの制御プログラム
(51)【国際特許分類】
G05B 19/05 20060101AFI20220830BHJP
G06F 13/00 20060101ALI20220830BHJP
【FI】
G05B19/05 L
G06F13/00
(21)【出願番号】P 2019061199
(22)【出願日】2019-03-27
【審査請求日】2020-12-15
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】西山 佳秀
(72)【発明者】
【氏名】永田 雄大
【審査官】牧 初
(56)【参考文献】
【文献】特開2008-250473(JP,A)
【文献】国際公開第2007/055046(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/04-19/05
(57)【特許請求の範囲】
【請求項1】
PLC(Programmable Logic Controller)に接続することができるユニットであって
、
第1ネットワークに接続される外部機器と第2ネットワークに接続される他のユニットとの間の通信を中継するための通信部と、
前記第2ネットワーク内における前記他のユニットのアドレス情報
およびアクセス権情報を当該他のユニットから取得し、当該アドレス情報と、
前記アクセス権情報と、当該アドレス情報に代わる識別子とを対応付けた設定情報を生成するための設定部と、
前記識別子に基づいて、前記外部機器から前記他のユニット内の情報にアクセスするために用いられるリンク情報を生成するリンク情報生成部とを備
え、
前記リンク情報は、前記他のユニットが提供する1つ以上のサービスの各々へのハイパーリンクを含み、
前記通信部は、
前記外部機器によって生成された
ユーザの前記外部機器へのログイン情報を含む第1アクセス要求を当該外部機器から受信
し、
前記第1アクセス要求から、前記ログイン情報と、前記識別子とを取得し、
前記設定情報を参照して、前記識別子に対応する前記アドレス情報
および前記アクセス権情報を取得し、
前記ログイン情報および前記アクセス権情報に基づいて、前記ユーザが前記1つ以上のサービスの各々へのアクセス権を有するか否かを判定し、
前記ユーザがアクセス権を有するサービスの前記ハイパーリンクを含む情報を前記外部機器に送信し
前記外部機器から、前記ユーザがアクセス権を有するいずれかのサービスへの第2アクセス要求を受信したことに応じて、前記アドレス情報を含む第
3アクセス要求に基づいて、前記他のユニット内の情報にアクセスする、ユニット。
【請求項2】
前記アクセス権情報は、前記他のユニットへの1つ以上のアクセス経路ごとに設定された前記1つ以上のサービスの各々へのアクセス権を含む、請求項1に記載のユニット。
【請求項3】
前記通信部は、前記第1アクセス要求に含まれる前記識別子を前記アドレス情報に置き換えることで、前記第
3アクセス要求を生成する、請求項
1または2に記載のユニット。
【請求項4】
前記ユニットは、前記他のユニットとバスにより接続され、
前記通信部は、前記バスを用いて前記他のユニットと通信する、請求項1~3のいずれか1項に記載のユニット。
【請求項5】
前記ユニットは、物理的な通信ポートをさらに備え、
前記通信部は、前記通信ポートを用いて前記外部機器と通信する、請求項1~4のいずれか1項に記載のユニット。
【請求項6】
PLCに接続することができるユニットの制御方法であって、
第1ネットワークに接続される外部機器と第2ネットワークに接続される他のユニットとの間の通信を中継するステップと、
前記第2ネットワーク内における前記他のユニットのアドレス情報
およびアクセス権情報を当該他のユニットから取得し、当該アドレス情報と、
前記アクセス権情報と、当該アドレス情報に代わる識別子とを対応付けた設定情報を生成するステップと、
前記識別子に基づいて、前記外部機器から前記他のユニット内の情報にアクセスするために用いられるリンク情報を生成するステップとを
備え、
前記リンク情報は、前記他のユニットが提供する1つ以上のサービスの各々へのハイパーリンクを含み、
前記制御方法は、さらに、
前記外部機器によって生成されたユーザの前記外部機器へのログイン情報を含む第1アクセス要求を当該外部機器から受信するステップと、
前記第1アクセス要求から、前記ログイン情報と、前記識別子とを取得するステップと、
前記設定情報を参照して、前記識別子に対応する前記アドレス情報および前記アクセス権情報を取得するステップと、
前記ログイン情報および前記アクセス権情報に基づいて、前記ユーザが前記1つ以上のサービスの各々へのアクセス権を有するか否かを判定するステップと、
前記ユーザがアクセス権を有するサービスの前記ハイパーリンクを含む情報を前記外部機器に送信するステップと、
前記外部機器から、前記ユーザがアクセス権を有するいずれかのサービスへの第2アクセス要求を受信したことに応じて、前記アドレス情報を含む第3アクセス要求に基づいて、前記他のユニット内の情報にアクセスするステップとを備える、制御方法。
【請求項7】
PLCに接続することができるユニットの制御プログラムであって、
前記制御プログラムは、前記ユニットに、
第1ネットワークに接続される外部機器と第2ネットワークに接続される他のユニットとの間の通信を中継するステップと、
前記第2ネットワーク内における前記他のユニットのアドレス情報
およびアクセス権情報を当該他のユニットから取得し、当該アドレス情報と、
前記アクセス権情報と、当該アドレス情報に代わる識別子とを対応付けた設定情報を生成するステップと、
前記識別子に基づいて、前記外部機器から前記他のユニット内の情報にアクセスするために用いられるリンク情報を生成するステップとを実行さ
せ、
前記リンク情報は、前記他のユニットが提供する1つ以上のサービスの各々へのハイパーリンクを含み、
前記制御プログラムは、前記ユニットに、さらに、
前記外部機器によって生成されたユーザの前記外部機器へのログイン情報を含む第1アクセス要求を当該外部機器から受信するステップと、
前記第1アクセス要求から、前記ログイン情報と、前記識別子とを取得するステップと、
前記設定情報を参照して、前記識別子に対応する前記アドレス情報および前記アクセス権情報を取得するステップと、
前記ログイン情報および前記アクセス権情報に基づいて、前記ユーザが前記1つ以上のサービスの各々へのアクセス権を有するか否かを判定するステップと、
前記ユーザがアクセス権を有するサービスの前記ハイパーリンクを含む情報を前記外部機器に送信するステップと、
前記外部機器から、前記ユーザがアクセス権を有するいずれかのサービスへの第2アクセス要求を受信したことに応じて、前記アドレス情報を含む第3アクセス要求に基づいて、前記他のユニット内の情報にアクセスするステップとを実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、複数のユニットで構成される制御システムにおいて外部機器との通信を中継するための技術に関する。
【背景技術】
【0002】
FA(Factory Automation)を用いた生産現場などでは、各種設備および各設備に配置される各種装置の制御において、PLC(Programmable Logic Controller)などの制御ユニットが用いられる。近年、外部機器に接続できる制御ユニットが普及している。このような制御ユニットに関し、特許文献1(特開2016-194808号公報)は、外部機器のデーターベースにアクセスすることができるPLCを開示している。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
制御ユニットには、種々の機能ユニットが接続され得る。外部機器から各機能ユニットへの通信を実現するためには、ユーザは、アクセス先の機能ユニットのIPアドレスを把握しておく必要がある。IPアドレスの把握は、機能ユニットの接続数が増えるほど困難になる。したがって、アクセス先の機能ユニットのIPアドレスを意識せずに目的の機能ユニットにアクセスすることが可能な技術が望まれている。
【課題を解決するための手段】
【0005】
本開示の一例では、PLC(Programmable Logic Controller)に接続することができるユニットは、第1ネットワークに接続される外部機器と第2ネットワークに接続される他のユニットとの間の通信を中継するための通信部と、上記第2ネットワーク内における上記他のユニットのアドレス情報を当該他のユニットから取得し、当該アドレス情報と、当該アドレス情報に代わる識別子とを対応付けた設定情報を生成するための設定部と、上記識別子に基づいて、上記外部機器から上記他のユニット内の情報にアクセスするために用いられるリンク情報を生成するリンク情報生成部とを備える。
【0006】
本開示によれば、ユーザは、第2ネットワーク内における他のユニットのアドレス情報を意識せずに、当該他のユニットにアクセスすることができる。
【0007】
本開示の一例では、上記通信部は、上記リンク情報に基づいて上記外部機器によって生成された第1アクセス要求を当該外部機器から受信したことに基づいて、当該第1アクセス要求に含まれる上記識別子を取得し、上記設定情報を参照して、上記識別子に対応する上記アドレス情報を取得し、当該アドレス情報を含む第2アクセス要求に基づいて、上記他のユニット内の情報にアクセスする。
【0008】
本開示によれば、ユニットは、第1アクセス要求に含まれるアクセス要求に対応するアドレス情報に基づいて、他のユニットにアクセスすることできる。これにより、第2ネットワーク内における他のユニットのアドレス情報が、第1ネットワークに属する外部機器に対して秘匿される。
【0009】
本開示の一例では、上記通信部は、上記第1アクセス要求に含まれる上記識別子を上記アドレス情報に置き換えることで、上記第2アクセス要求を生成する。
【0010】
本開示によれば、ユニットは、第1ネットワークで有効な第1アクセス要求を、第2ネットワークで有効な第2アクセス要求に書き換えることができる。これにより、第2ネットワーク内における他のユニットのアドレス情報が、第1ネットワークに属する外部機器に対して秘匿される。
【0011】
本開示の一例では、上記ユニットは、上記他のユニットとバスにより接続される。上記通信部は、上記バスを用いて上記他のユニットと通信する。
【0012】
本開示によれば、上記ユニットは、バスを介して他のユニットと通信することが可能になる。
【0013】
本開示の一例では、上記ユニットは、物理的な通信ポートをさらに備える。上記通信部は、上記通信ポートを用いて上記外部機器と通信する。
【0014】
本開示によれば、上記ユニットは、物理的な通信ポートを介して他のユニットと通信することが可能になる。
【0015】
本開示の一例では、上記リンク情報は、ハイパーリンクを含む。上記通信部は、上記外部機器に上記ハイパーリンクを表示させる。
【0016】
本開示によれば、ユーザは、ハイパーリンクを介して他のユニットにアクセスすることが可能になる。
【0017】
本開示の他の例では、PLCに接続することができるユニットの制御方法は、第1ネットワークに接続される外部機器と第2ネットワークに接続される他のユニットとの間の通信を中継するステップと、上記第2ネットワーク内における上記他のユニットのアドレス情報を当該他のユニットから取得し、当該アドレス情報と、当該アドレス情報に代わる識別子とを対応付けた設定情報を生成するステップと、上記識別子に基づいて、上記外部機器から上記他のユニット内の情報にアクセスするために用いられるリンク情報を生成するステップとを備える。
【0018】
本開示によれば、ユーザは、第2ネットワーク内における他のユニットのアドレス情報を意識せずに、当該他のユニットにアクセスすることができる。
【0019】
本開示の他の例では、PLC(Programmable Logic Controller)に接続することができるユニットの制御プログラムは、上記ユニットに、第1ネットワークに接続される外部機器と第2ネットワークに接続される他のユニットとの間の通信を中継するステップと、上記第2ネットワーク内における上記他のユニットのアドレス情報を当該他のユニットから取得し、当該アドレス情報と、当該アドレス情報に代わる識別子とを対応付けた設定情報を生成するステップと、上記識別子に基づいて、上記外部機器から上記他のユニット内の情報にアクセスするために用いられるリンク情報を生成するステップとを実行させる。
【0020】
本開示によれば、ユーザは、第2ネットワーク内における他のユニットのアドレス情報を意識せずに、当該他のユニットにアクセスすることができる。
【図面の簡単な説明】
【0021】
【
図1】実施の形態に従う情報処理システムの構成例を示す図である。
【
図2】実施の形態に従う制御システムの構成例を示す外観図である。
【
図3】実施の形態に従う制御システムを構成する制御ユニットのハードウェア構成例を示す模式図である。
【
図4】実施の形態に従う制御システムを構成する中継ユニットのハードウェア構成例を示す模式図である。
【
図5】実施の形態に従う制御システムを構成する機能ユニットのハードウェア構成例を示す模式図である。
【
図6】実施の形態に従う情報処理システムを構成する外部機器のハードウェア構成例を示す模式図である。
【
図7】実施の形態に従う情報処理システムのユニット構成の一例を示す図である。
【
図8】通信設定情報の生成時における、中継ユニットおよび機能ユニットの間のデータフローを示す図である。
【
図9】
図8のステップS10において送信されるプロキシ情報の一例を示す図である。
【
図11】ポータルサイトの表示時における、中継ユニットおよび外部機器の間のデータフローを示す図である。
【
図12】
図11のステップS32で生成されるリンク情報を示す図である。
【
図13】実施の形態に従う外部機器に表示されているポータルサイトを示す図である。
【
図14】代理応答時における、中継ユニットと機能ユニットと外部機器との間のデータフローを示す図である。
【
図15】ポータルサイトの画面遷移の一例を示す図である。
【
図16】URL(Uniform Resource Locator)の書き換え処理を概略的に示す図である。
【
図17】変形例1に従う情報処理システムのユニット構成を示す図である。
【
図18】変形例2に従う情報処理システムのユニット構成を示す図である。
【発明を実施するための形態】
【0022】
以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。
【0023】
<A.適用例>
図1を参照して、本発明の適用例について説明する。
図1は、実施の形態に従う情報処理システム1の構成例を示す図である。
【0024】
情報処理システム1は、1つ以上の制御システム2と、1つ以上の外部機器500とを含む。制御システム2は、生産工程を自動化するためのFAシステムである。制御システム2は、制御ユニット100と、中継ユニット200と、機能ユニット300とを含む。
【0025】
中継ユニット200および外部機器500は、外部ネットワークNW1に接続される。中継ユニット200および外部機器500の間の通信は、Ethernet(登録商標)によって実現される。すなわち、中継ユニット200および外部機器500の各々には、外部ネットワークNW1で有効なIPアドレスが割り当てられており、中継ユニット200および外部機器500は、当該IPアドレスに基づいて互いに通信を行う。
【0026】
制御ユニット100、中継ユニット200、および機能ユニット300は、内部ネットワークNW2に接続される。これらのユニット間の通信は、たとえば、Ethernetによってユニット間の通信を実現される。すなわち、制御システム2を構成する各ユニットは、内部ネットワークNW2で有効なIPアドレスが割り当てられており、各ユニットは、当該IPアドレスに基づいて互いに通信を行う。
【0027】
制御ユニット100は、たとえば、PLCである。制御ユニット100は、予め設計されたユーザプログラムに従って、駆動機器(図示しない)を制御する。駆動機器は、生産工程を自動化するための種々の産業用機器を含む。一例として、駆動機器は、ロボットコントローラや、サーボドライバや、ロボットコントローラに制御されるアームロボットや、サーボドライバによって制御されるサーボモータなどを含む。また、駆動機器は、ワークを撮影するための視覚センサや、生産工程で利用されるその他の機器などを含んでもよい。
【0028】
機能ユニット300は、制御ユニット100による様々な制御対象に対する制御を実現するための各種機能を提供する。機能ユニット300は、WebサーバS2と、アプリケーションAP2A,AP2Bとを含む。アプリケーションAP2A,AP2Bは、制御システム2に関する各種サービスを提供するためのプログラムである。
【0029】
外部機器500は、たとえば、ノート型またはデスクトップ型のPC(Personal Computer)、タブレット端末、スマートフォン、HMI(Human Machine Interface)、または、その他の情報処理端末である。
【0030】
中継ユニット200は、外部ネットワークNW1に接続される機器(すなわち、外部機器500)と、内部ネットワークNW2に接続される機器(すなわち、制御ユニット100,機能ユニット300)との間の通信を中継する。中継ユニット200は、通信の中継機能を実現するための機能構成として、通信部250と、設定部252と、リンク情報生成部254とを含む。
【0031】
通信部250は、各種機器との通信を実現するための通信モジュールである。典型的には、通信部250は、外部ネットワークNW1(第1ネットワーク)に接続される外部機器500との通信や、内部ネットワークNW2(第2ネットワーク)に接続される他のユニット(たとえば、機能ユニット300)との通信を実現する。
【0032】
設定部252は、内部ネットワークNW2内における機能ユニット300のアドレス情報を機能ユニット300から取得する。当該アドレス情報は、内部ネットワークNW2内において機能ユニット300を一意に識別することが可能な通信情報である。一例として、当該アドレス情報は、IPアドレス、ドメイン名、またはホスト名である。
【0033】
設定部252は、機能ユニット300からアドレス情報を受信したことに基づいて、当該アドレス情報に代わる識別子を生成する。当該識別子は、たとえば、任意の文字列である。設定部252は、機能ユニット300から受信したアドレス情報と、生成した識別子とを対応付けて、それらを通信設定情報230に書き込む。
【0034】
リンク情報生成部254は、設定部252によって生成された識別子に基づいて、外部ネットワークNW1に接続される外部機器500から、内部ネットワークNW2に接続される機能ユニット300内の情報にアクセスするために用いられるリンク情報を生成する。「機能ユニット300内の情報」とは、機能ユニット300内に格納されている任意の情報を意味し、プログラム(アプリケーション)やデータを含む概念である。「リンク情報」は、機能ユニット300内の情報へのアクセス先を示すアドレスであり、たとえば、URLやハイパーリンクである。リンク情報生成部254は、生成したリンク情報をHTML(HyperText Markup Language)文書に埋め込んだ上で、当該HTML文書を外部機器500に送信する。
【0035】
外部機器500は、中継ユニット200から受信したHTML文書に応じた画面を表示する。これにより、リンク情報が外部機器500の画面上に表示される。ユーザは、表示されたリンク情報をクリックすることで、当該リンク情報が示すアクセス先の情報にアクセスすることができる。このとき、ユーザは、アクセス先である機能ユニット300のIPアドレスを意識する必要がない。
【0036】
また、外部機器500に表示されるリンク情報には、外部ネットワークNW1内における機能ユニット300の識別子が含まれているだけで、内部ネットワークNW2内における機能ユニット300のIPアドレスは含まれていない。すなわち、内部ネットワークNW2内における機能ユニット300のIPアドレスは、外部機器500には公開されない。これにより、内部ネットワークNW2に属する機能ユニット300が秘匿される。また、外部機器500と機能ユニット300との直接的な通信が防がれ、通信に伴うセキュリティ上のリスクが軽減される。
【0037】
<B.制御システム2>
図2を参照して、
図1に示される制御システム2について説明する。
図2は、制御システム2の構成例を示す外観図である。
【0038】
図2を参照して、制御システム2は、1または複数の制御ユニット100と、1または複数の中継ユニット200と、1または複数の機能ユニット300と、1または複数の機能ユニット400と、電源ユニット450とを含む。
【0039】
制御ユニット100と中継ユニット200との間は、任意のデータ伝送路を介して接続されている。制御ユニット100と、中継ユニット200と、1または複数の機能ユニット300,400との間は、後述の内部バス10(
図7参照)を介して接続されている。
【0040】
制御ユニット100は、制御システム2において中心的な処理を実行する。制御ユニット100は、任意に設計された要求仕様に従って、制御対象を制御するための制御演算を実行する。
図2に示す構成例において、制御ユニット100は、1または複数の通信ポートを有している。制御ユニット100は、標準制御プログラムに従って標準制御を実行する処理実行部に相当する。
【0041】
中継ユニット200は、制御ユニット100に接続され、他の装置との間の通信機能を担当する。
図2に示す構成例において、中継ユニット200は、1または複数の通信ポートを有している。中継ユニット200が提供する通信機能の詳細については、後述する。
【0042】
機能ユニット300は、オプションのユニットであり、必要に応じて制御ユニット100に接続される。機能ユニット300は、典型的には、SGU(Security Guard Unit)、OPC UA(Object Linking and Embedding for Process Control Unified Architecture)によるデータ交換機能を有する通信ユニット、AI(Artificial Intelligence)による予防保全機能を有するAIユニットなどを包含し得る。
【0043】
機能ユニット400は、制御システム2による様々な制御対象に対する制御を実現するための各種機能を提供する。機能ユニット400は、典型的には、I/Oユニット、セーフティI/Oユニット、通信ユニット、モーションコントローラユニット、温度調整ユニット、パルスカウンタユニットなどを包含し得る。I/Oユニットとしては、たとえば、デジタル入力(DI)ユニット、デジタル出力(DO)ユニット、アナログ出力(AI)ユニット、アナログ出力(AO)ユニット、パルスキャッチ入力ユニット、および、複数の種類を混合させた複合ユニットなどが挙げられる。セーフティI/Oユニットは、セーフティ制御に係るI/O処理を担当する。
【0044】
電源ユニット450は、制御システム2を構成する各ユニットに対して、所定電圧の電源を供給する。
【0045】
<C.各ユニットのハードウェア構成例>
次に、本実施の形態に従う制御システム2を構成する各ユニットのハードウェア構成例について説明する。
【0046】
(c1:制御ユニット100)
図3は、本実施の形態に従う制御システム2を構成する制御ユニット100のハードウェア構成例を示す模式図である。
図3を参照して、制御ユニット100は、主たるコンポーネントとして、CPU(Central Processing Unit)やGPU(Graphical Processing Unit)などのプロセッサ102と、チップセット104と、主記憶装置106と、二次記憶装置108と、通信コントローラ110と、USB(Universal Serial Bus)コントローラ112と、メモリカードインターフェイス114と、ネットワークコントローラ116,118,120と、内部バスコントローラ122と、インジケータ124とを含む。
【0047】
プロセッサ102は、二次記憶装置108に格納された各種プログラムを読み出して、主記憶装置106に展開して実行することで、標準制御に係る制御演算、および、後述するような各種処理を実現する。チップセット104は、プロセッサ102と各コンポーネントとの間のデータの遣り取りを仲介することで、制御ユニット100全体としての処理を実現する。
【0048】
二次記憶装置108には、システムプログラムに加えて、システムプログラムが提供する実行環境上で動作する制御プログラムが格納される。
【0049】
通信コントローラ110は、機能ユニット300との間のデータの遣り取りを担当する。通信コントローラ110としては、たとえば、EtherNetなどに対応する通信チップを採用できる。
【0050】
USBコントローラ112は、USB接続を介して任意の情報処理装置との間のデータの遣り取りを担当する。
【0051】
メモリカードインターフェイス114は、メモリカード115を着脱可能に構成されており、メモリカード115に対して制御プログラムや各種設定などのデータを書込み、あるいは、メモリカード115から制御プログラムや各種設定などのデータを読出すことが可能になっている。
【0052】
ネットワークコントローラ116,118,120の各々は、ネットワークを介した任意のデバイスとの間のデータの遣り取りを担当する。ネットワークコントローラ116,118,120は、EtherCAT(登録商標)、EtherNet/IP(登録商標)、DeviceNet(登録商標)、CompoNet(登録商標)などの産業用ネットワークプロトコルを採用してもよい。
【0053】
内部バスコントローラ122は、制御システム2を構成する中継ユニット200、1または複数の機能ユニット300、1または複数の機能ユニット400との間のデータの遣り取りを担当する。内部バスには、メーカ固有の通信プロトコルを用いてもよいし、いずれかの産業用ネットワークプロトコルと同一あるいは準拠した通信プロトコルを用いてもよい。
【0054】
インジケータ124は、制御ユニット100の動作状態などを通知するものであり、ユニット表面に配置された1または複数のLEDなどで構成される。
【0055】
図3には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(たとえば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。あるいは、制御ユニット100の主要部を、汎用的なアーキテクチャに従うハードウェア(たとえば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
【0056】
(c2:中継ユニット200)
図4は、本実施の形態に従う制御システム2を構成する中継ユニット200のハードウェア構成例を示す模式図である。
図4を参照して、中継ユニット200は、主たるコンポーネントとして、CPUやGPUなどのプロセッサ202と、チップセット204と、主記憶装置206と、二次記憶装置208と、通信コントローラ210と、通信インターフェイス212と、メモリカードインターフェイス214と、ネットワークコントローラ216,218と、インジケータ224とを含む。
【0057】
プロセッサ202は、二次記憶装置208に格納された各種プログラムを読み出して、主記憶装置206に展開して実行することで、後述するような各種通信機能を実現する。チップセット204は、プロセッサ202と各コンポーネントとの間のデータの遣り取りを仲介することで、中継ユニット200全体としての処理を実現する。
【0058】
二次記憶装置208には、システムプログラムに加えて、システムプログラムが提供する実行環境上で動作する通信制御プログラム232や、通信設定情報230などの各種データが格納される。
【0059】
通信コントローラ210は、制御ユニット100や機能ユニット300との間のデータの遣り取りを担当する。通信コントローラ210としては、たとえば、EtherNetなどに対応する通信チップを採用できる。
【0060】
通信インターフェイス212は、USB接続を介して任意の情報処理装置との間のデータの遣り取りを担当する。
【0061】
メモリカードインターフェイス214は、メモリカード215を着脱可能に構成されており、メモリカード215に対して制御プログラムや各種設定などのデータを書込み、あるいは、メモリカード215から制御プログラムや各種設定などのデータを読出すことが可能になっている。
【0062】
ネットワークコントローラ216,218の各々は、ネットワークを介した任意のデバイスとの間のデータの遣り取りを担当する。ネットワークコントローラ216,218は、EtherNetなどの汎用的なネットワークプロトコルを採用してもよい。一例として、中継ユニット200は、ネットワークコントローラ216またはネットワークコントローラ218を介して外部機器500と通信する。
【0063】
インジケータ224は、中継ユニット200の動作状態などを通知するものであり、ユニット表面に配置された1または複数のLEDなどで構成される。
【0064】
図4には、プロセッサ202がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(たとえば、ASICまたはFPGAなど)を用いて実装してもよい。あるいは、中継ユニット200の主要部を、汎用的なアーキテクチャに従うハードウェア(たとえば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
【0065】
(c3:機能ユニット300)
図5は、本実施の形態に従う制御システム2を構成する機能ユニット300のハードウェア構成例を示す模式図である。
図5を参照して、機能ユニット300は、主たるコンポーネントとして、CPUやGPUなどのプロセッサ302と、チップセット304と、主記憶装置306と、二次記憶装置308と、メモリカードインターフェイス314と、内部バスコントローラ322と、インジケータ324とを含む。
【0066】
プロセッサ302は、二次記憶装置308に格納された各種アプリケーションプログラムを読み出して、主記憶装置306に展開して実行することで、サーバ機能および各種機能を実現する。チップセット304は、プロセッサ302と各コンポーネントとの間のデータの遣り取りを仲介することで、機能ユニット300全体としての処理を実現する。
【0067】
二次記憶装置308には、システムプログラムに加えて、システムプログラムが提供する実行環境上で動作するアプリケーションプログラムが格納される。
【0068】
メモリカードインターフェイス314は、メモリカード315を着脱可能に構成されており、メモリカード315に対してアプリケーションプログラムや各種設定などのデータを書込み、あるいは、メモリカード315からアプリケーションプログラムや各種設定などのデータを読出すことが可能になっている。
【0069】
内部バスコントローラ322は、内部バスを介した制御ユニット100や中継ユニット200との間のデータの遣り取りを担当する。
【0070】
インジケータ324は、機能ユニット300の動作状態などを通知するものであり、ユニット表面に配置された1または複数のLEDなどで構成される。
【0071】
図5には、プロセッサ302がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(たとえば、ASICまたはFPGAなど)を用いて実装してもよい。あるいは、機能ユニット300の主要部を、汎用的なアーキテクチャに従うハードウェア(たとえば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
【0072】
<D.外部機器500のハードウェア構成例>
次に、
図6を参照して、外部機器500のハードウェア構成について順に説明する。
図6は、実施の形態に従う情報処理システム1を構成する外部機器500のハードウェア構成例を示す模式図である。
【0073】
外部機器500は、一例として、汎用的なコンピュータアーキテクチャに準じて構成されるコンピュータからなる。外部機器500は、CPUやMPUなどのプロセッサ502と、主記憶装置504と、二次記憶装置510と、通信インターフェイス511と、I/O(Input/Output)インターフェイス514と、表示インターフェイス520とを含む。これらのコンポーネントは、内部バス525を介して互いに通信可能に接続されている。
【0074】
プロセッサ502は、開発支援プログラム510Aやブラウザアプリケーション(図示しない)などの各種の制御プログラムを実行することで外部機器500の動作を制御する。開発支援プログラム510Aは、制御システム2の制御プログラム(ユーザプログラム)を開発するための環境を提供するプログラムである。プロセッサ502は、開発支援プログラム510Aやブラウザアプリケーションなどの各種制御プログラムの実行命令を受け付けたことに基づいて、実行対象の制御プログラムを二次記憶装置510から主記憶装置504に読み出す。
【0075】
通信インターフェイス511は、他の通信機器との間でネットワークを介してデータを遣り取りする。当該他の通信機器は、たとえば、中継ユニット200、サーバなどを含む。外部機器500は、通信インターフェイス511を介して、当該他の通信機器から、開発支援プログラム510Aなどの各種制御プログラムをダウンロード可能なように構成されてもよい。
【0076】
I/Oインターフェイス514は、入力デバイス515に接続され、入力デバイス515からのユーザ操作を示す信号を取り込む。入力デバイス515は、典型的には、キーボード、マウス、タッチパネル、タッチパッドなどからなり、ユーザからの操作を受け付ける。なお、
図6の例では、外部機器500および入力デバイス515が別体として示されているが、外部機器500および入力デバイス515は、一体的に構成されてもよい。
【0077】
表示インターフェイス520は、ディスプレイ521と接続され、プロセッサ502などからの指令に従って、ディスプレイ521に対して、画像を表示するための画像信号を送出する。ディスプレイ521は、たとえば、LCD(Liquid Crystal Display)や有機EL(Electro Luminescence)であり、ユーザに対して各種情報を提示する。ディスプレイ521には、開発支援プログラム510Aによって提供される各種画面が表示され得る。なお、
図6の例では、外部機器500およびディスプレイ521が別体として示されているが、外部機器500およびディスプレイ521は、一体的に構成されてもよい。
【0078】
<E.情報処理システム1のユニット構成例>
図7は、情報処理システム1のユニット構成の一例を示す図である。
図7を参照して、情報処理システム1のユニット構成の具体例について説明する。
【0079】
図7に示されるように、情報処理システム1は、制御システム2と、外部機器500とを含む。制御システム2は、制御ユニット100と、中継ユニット200と、機能ユニット300とを含む。制御ユニット100と、中継ユニット200と、機能ユニット300とは、内部バス10を介して接続されている。これらのユニットは、内部バス10を介して互いに通信する。当該通信は、たとえば、仮想Ethernetによって実現される。
【0080】
外部ネットワークNW1には、中継ユニット200および外部機器500が接続されている。外部機器500には、IPアドレス「192.168.250.3」が割り当てられている。中継ユニット200および外部機器500は、それぞれ、物理的な通信ポートを有し、当該通信ポートを介して外部ネットワークNW1に接続される。
【0081】
内部ネットワークNW2には、制御ユニット100、中継ユニット200、および機能ユニット300が接続されている。制御ユニット100には、仮想IPアドレス「192.168.250.1」が割り当てられている。また、制御ユニット100には、ユニット名「Unit #0」が割り当てられている。
【0082】
中継ユニット200には、IPアドレス「192.168.250.2」が割り当てられている。また、中継ユニット200には、ユニット名「Unit #1」が割り当てられている。中継ユニット200は、Webサーバ「Web1」として機能する。中継ユニット200には、アプリケーション「App11」,「App12」がインストールされている。アプリケーション「App11」,「App12」は、Webサーバ「Web1」からアクセスされる。
【0083】
図7の例では、機能ユニット300は、2つの機能ユニットU2,U3で構成される。機能ユニットU2には、仮想IPアドレス「192.168.251.100」が割り当てられている。また、機能ユニットU2には、ユニット名「Unit #2」が割り当てられている。機能ユニットU2は、Webサーバ「Web2」として機能する。機能ユニットU2には、アプリケーション「App21」,「App22」がインストールされている。アプリケーション「App21」,「App22」は、Webサーバ「Web2」からアクセスされる。
【0084】
機能ユニットU3には、仮想IPアドレス「192.168.251.101」が割り当てられている。また、機能ユニットU3には、ユニット名「Unit #3」が割り当てられている。機能ユニットU3は、Webサーバ「Web3」として機能する。機能ユニットU3には、アプリケーション「App31」,「App32」がインストールされている。アプリケーション「App31」,「App32」は、Webサーバ「Web3」からアクセスされる。
【0085】
中継ユニット200は、リバースプロキシ機能を有する。より具体的には、中継ユニット200は、外部機器500からアクセス要求を受けたときには、Webサーバとして機能する。そして、中継ユニット200は、外部機器500から受けたアクセス要求を書き換え、書き換え後のアクセス要求をアクセス先の機能ユニット300に送信する。このときには、中継ユニット200は、クライアントとして機能し、アクセス先の機能ユニット300がWebサーバとして機能する。このように、中継ユニット200は、Webサーバおよびクライアントの両方として機能する。
【0086】
<F.通信設定情報230の生成方法>
中継ユニット200は、外部機器500と、機能ユニットU2,U3との間の通信を中継するために、外部機器500からのアクセス要求をルーティングする必要がある。このような中継機能を実現するために、中継ユニット200は、ルーティングのための通信設定情報230(
図1参照)を予め生成しておく。
【0087】
以下では、
図8~
図10を参照して、通信設定情報230の生成方法について説明する。
図8は、通信設定情報230の生成時における、中継ユニット200および機能ユニット300の間のデータフローを示す図である。
図8に示される処理は、たとえば、制御ユニット100の起動時に実行される。
【0088】
ステップS10において、中継ユニット200は、機能ユニットU2に関する情報(以下、「プロキシ情報」ともいう。)の取得要求を機能ユニットU2に送信する。機能ユニットU2は、当該取得要求を受けて、自身のプロキシ情報を中継ユニット200に送信する。
【0089】
図9は、ステップS10において送信されるプロキシ情報の一例を示す図である。プロキシ情報は、たとえば、ドメイン名、ユニット名、ホスト名とを含む。
図9の例では、ドメイン名が「AI」として示され、ユニット名が「#2」として示され、ホスト名が「Unit_2」として示されている。
【0090】
ステップS12において、中継ユニット200は、上述の設定部252(
図1参照)として機能し、機能ユニットU2から受信したプロキシ情報に基づいて、通信設定情報230を更新する。
図10は、通信設定情報230の一例を示す図である。ステップS12では、破線230Aに示される情報が、通信設定情報230に追加される。これにより、機能ユニットU2のアドレス情報(
図10の例では、ホスト名「Unit_2」)が識別子「u2」に対応付けられる。
【0091】
ホスト名「Unit_2」に対応付けられる識別子「u2」は、中継ユニット200によって予め定められたルールに従って生成される。好ましくは、中継ユニット200は、ユーザが機能ユニットU2を識別しやすい文字列を識別子として生成する。一例として、当該識別子は、機能ユニットU2のドメイン名、機能ユニットU2のユニット名、または機能ユニットU2のホスト名に基づいて、生成される。
【0092】
識別子「u2」に対応付けられるアドレス情報は、内部ネットワークNW2内における機能ユニットU2のIPアドレスを特定できるものであればよく、必ずしもホスト名である必要はない。一例として、識別子「u2」に対応付けられるアドレス情報は、内部ネットワークNW2での機能ユニットU2のIPアドレス自体であってもよいし、機能ユニットU2のドメイン名であってもよい。
【0093】
ステップS20において、中継ユニット200は、プロキシ情報の取得要求を機能ユニットU3に送信する。機能ユニットU3は、当該取得要求を受けて、自身のプロキシ情報を中継ユニット200に送信する。
【0094】
ステップS22において、中継ユニット200は、上述の設定部252(
図1参照)として機能し、機能ユニットU3から受信したプロキシ情報に基づいて、通信設定情報230を更新する。ステップS22では、
図10の破線230Bに示される情報が、通信設定情報230に追加される。これにより、機能ユニットU3のアドレス情報(
図10の例では、ホスト名「Unit_3」)が識別子「u3」に対応付けられる。識別子「u3」は、識別子「u2」と同様のルールに従って中継ユニット200によって生成される。
【0095】
識別子「u3」に対応付けられるアドレス情報は、内部ネットワークNW2内における機能ユニットU3のIPアドレスを特定できるものであればよく、必ずしもホスト名である必要はない。一例として、識別子「u3」に対応付けられるアドレス情報は、内部ネットワークNW2での機能ユニットU3のIPアドレス自体であってもよいし、機能ユニットU3のドメイン名であってもよい。
【0096】
<G.ポータルサイトの表示処理>
外部機器500は、制御システム2内の各ユニットのアプリケーションにアクセスするためのポータルサイトを表示する。このようなポータルサイトが表示されることで、ユーザは、制御システム2内の各ユニットの情報(たとえば、各ユニットのIPアドレスなど)を意識せずに、各ユニットのアプリケーションを利用することが可能になる。
【0097】
以下では、
図11~
図13を参照して、ポータルサイトの表示フローについて説明する。
図11は、ポータルサイトの表示時における、中継ユニット200および外部機器500の間のデータフローを示す図である。
【0098】
ステップS30において、ユーザは、入力デバイス515(
図6参照)を用いて、外部機器500に対してポータルサイトの表示操作を行ったとする。このことに基づいて、外部機器500は、ポータルサイトの取得要求を中継ユニット200に送信する。
【0099】
ステップS32において、中継ユニット200は、ポータルサイトの取得要求を中継ユニット200から受けて、上述のリンク情報生成部254(
図1参照)として機能し、各ユニットのアプリケーションにアクセスするためのリンク情報を生成する。
図12は、ステップS32で生成されるリンク情報30を示す図である。
【0100】
リンク情報30は、HTMLで記述される。リンク情報30は、外部ネットワークNW1で有効なURL31と、ハイパーリンク32とを含む。ハイパーリンクとは、URLに対応付けられる何らかの文字列である。
【0101】
リンク情報30は、上述の通信設定情報230(
図10参照)に基づいて生成される。より具体的には、中継ユニット200は、自身のアドレス情報(たとえば、IPアドレス)と、通信設定情報230に規定される各ユニットの識別子とに基づいて、リンク情報を生成する。
図12の例では、中継ユニット200のIPアドレス「192.168.250.2」と、通信設定情報230に規定される機能ユニットU3の識別子「u3」とに基づいて、外部ネットワークNW1で有効なURL「http://192.168.250.2/u3/App31/index.php」が生成されている。当該URLに示される「App31」は、機能ユニットU3内のアプリケーションの識別子である。中継ユニット200は、このようなURLを制御システム2の各ユニット内の各アプリケーションについて生成し、リンク情報30に書き込む。
【0102】
ステップS40において、中継ユニット200は、上述の通信部250(
図1参照)として機能し、生成したリンク情報30を外部機器500に送信する。外部機器500は、受信したリンク情報30に基づいてポータルサイトを構成し、当該ポータルサイトをディスプレイ521(
図6参照)に表示する。
図13は、外部機器500に表示されているポータルサイト710を示す図である。
【0103】
ポータルサイト710には、各ユニットへのリンクがハイパーリンクで示される。
図13の例では、機能ユニットU2へのリンクがハイパーリンク710Aとして示され、機能ユニットU3へのリンクがハイパーリンク710Bとして示されている。
【0104】
なお、ポータルサイト710に表示される内容は、外部機器500にログインしたユーザのアクセス権に応じて変えられてもよい。各ユーザに与えられるアクセス権は、たとえば、外部機器500などにおいて予め設定され、ユーザ別アクセス権情報として制御システム2に送信されている。また、機能ユニット300の各々には、アクセスすることを許可するアクセス権の種別がアプリケーションごとに設定されており、機能ユニット300の各々は、当該アクセス権の種別をアプリケーション別アクセス権情報として保持する。
【0105】
この前提で、
図8のステップS10,S20において、機能ユニット300の各々は、プロキシ情報(
図9参照)を中継ユニット200に送信する際に、アプリケーション別アクセス権情報を中継ユニット200に送信する。中継ユニット200は、受信したアプリケーション別アクセス権情報を記憶する。
【0106】
その後、
図11のステップS30において、外部機器500は、ポータルサイトの取得要求を中継ユニット200に送信する際に、外部機器500へのログイン情報(たとえば、ユーザID)も合わせて送信する。中継ユニット200は、ユーザ別アクセス権情報に基づいて、ログインユーザに与えられているアクセス権の種別を特定する。そして、中継ユニット200は、アプリケーション別アクセス権情報に基づいて、ログインユーザのアクセス権でアクセスすることが可能なアプリケーション(または機能ユニット)を特定する。その後、中継ユニット200は、特定したアプリケーションについてのみリンク情報を生成する。これにより、ポータルサイト710に表示される内容は、ユーザに与えられているアクセス権に応じて変えられる。
【0107】
<H.リバースプロキシ処理>
次に、
図14~
図16を参照して、中継ユニット200によるリバースプロキシ機能について説明する。
図14は、代理応答時における、中継ユニット200と機能ユニット300と外部機器500との間のデータフローを示す図である。
【0108】
ステップS50において、外部機器500は、
図15に示されるポータルサイト710を表示しているとする。
図15は、ポータルサイト710の画面遷移の一例を示す図である。ユーザは、ポータルサイト710内のハイパーリンクのいずれかを選択することができる。ステップS50では、たとえば、ポータルサイト710のハイパーリンク710Bが選択されたとする。
【0109】
ステップS52において、外部機器500は、選択されたハイパーリンク710Bに応じたアクセス要求を中継ユニット200に送信する。当該アクセス要求は、選択されたハイパーリンク710Bに対応付けられているURLを含む。
【0110】
ステップS54において、中継ユニット200は、上述の通信部150(
図1参照)として機能し、外部機器500から受信したアクセス要求に含まれるURLを取得し、当該URLを書き換える。
図16は、URLの書き換え処理を概略的に示す図である。
【0111】
図16には、外部機器500からのアクセス要求40AがURL「http://192.168.250.2/u3/App31/index.php」として示されている。アクセス要求40Aに示される「192.168.250.2」は、中継ユニット200のIPアドレスを示す。アクセス要求40Aに示される「u3」は、アクセス先のユニットの識別子を示す。アクセス要求40Aに示される「App31」は、アクセス先のユニットのアプリケーションを示す。
【0112】
通信部150は、外部機器500からアクセス要求40A(第1アクセス要求)を受信したことに基づいて、アクセス要求40Aに含まれる識別子「u3」を取得する。次に、通信部150は、上述の
図10で説明した通信設定情報230を参照して、識別子「u3」に対応するアドレス情報を取得する。その結果、内部ネットワークNW2で有効なアドレス情報「unit_3」が特定される。その後、通信部150は、アクセス要求40Aを書き換え、アドレス情報「unit_3」を含むアクセス要求40B(第2アクセス要求)を生成する。
【0113】
より具体的には、通信部150は、アクセス要求40Aに含まれる識別子「u3」を、当該識別子「u3」に対応するアドレス情報「unit_3」に置き換えることで、アクセス要求40Bを生成する。このとき、アクセス要求40Aに含まれるドメイン「192.168.250.2」(すなわち、宛先情報)を削除する。これにより、アクセス要求40A「http://192.168.250.2/u3/App31/index.php」がアクセス要求40B「http://unit_3/App31/index.php」に書き換えられ、宛先が中継ユニット200から機能ユニットU3に書き換えられる。通信部150は、書き換え後のアクセス要求40Bを機能ユニットU3に送信する。
【0114】
ステップS60において、機能ユニットU3は、中継ユニット200から受信したアクセス要求40Bに基づいて、機能ユニットU3内のアプリケーションにアクセスし、当該アプリケーションを介して目的の情報を取得する。機能ユニットU3は、取得した情報をHTML文書として中継ユニット200に送信する。
【0115】
ステップS70において、中継ユニット200は、再びWebサーバとして機能し、機能ユニットU3から受信したHTML文書を外部機器500に送信する。外部機器500は、受信したHTML文書を解析し、当該HTML文書に応じた画面をディスプレイ521(
図6参照)に表示する。
図13には、ステップS70において表示される画面720を示す。
【0116】
以上のように、ユーザがハイパーリンク710Bをクリックすることで、外部機器500は、ハイパーリンク710Bに対応する機能ユニットU3にアクセスし、当該機能ユニットU3から目的の情報を取得する。このとき、ユーザは、アクセス先である機能ユニットU3のIPアドレスを意識する必要がない。
【0117】
また、ポータルサイト710に表示されるリンク情報には、外部ネットワークNW1内における機能ユニット300の識別子が含まれているだけで、内部ネットワークNW2内における機能ユニット300のIPアドレスは含まれていない。すなわち、内部ネットワークNW2内における機能ユニット300のIPアドレスは、外部機器500には公開されない。これにより、内部ネットワークNW2に属する機能ユニット300が秘匿される。また、外部機器500と機能ユニット300との直接的な通信が防がれ、通信に伴うセキュリティ上のリスクが軽減される。
【0118】
<I.情報処理システム1の変形例1>
図17は、変形例1に従う情報処理システム1Aのユニット構成を示す図である。
図17を参照して、情報処理システム1Aのユニット構成について説明する。
【0119】
上述の
図7では、情報処理システム1を構成する各ユニットは、内部バス10を介して接続されていた。これに対して、変形例1に従う情報処理システム1Aでは、各ユニットは、通信ポートを介して内部ネットワークNW2に接続される。すなわち、本変形例においては、各ユニットは、物理的に離れた場所に設置される。このようなユニット構成であっても、本発明の趣旨を逸脱するものではない。
【0120】
<J.情報処理システム1の変形例2>
図18は、変形例2に従う情報処理システム1Bのユニット構成を示す図である。
図18を参照して、情報処理システム1Bのユニット構成について説明する。
【0121】
上述の
図7に示される情報処理システム1においては、中継ユニット200のみが、外部ネットワークNW1に接続されていた。これに対して、変形例2に従う情報処理システム1Bにおいては、中継ユニット200だけでなく、他のユニットも外部ネットワークNW1に接続される。すなわち、本変形例においては、中継ユニット200だけでなく、他の機能ユニットも、外部機器500と直接的に通信し得る。このようなユニット構成であっても、本発明の趣旨を逸脱するものではない。
【0122】
図18の例では、中継ユニット200が外部機器500と直接的に接続されているだけでなく、機能ユニットU3も外部機器500と直接的に接続されている。すなわち、外部機器500から機能ユニットU3への通信経路は、中継ユニット200を介する通信経路R1と、中継ユニット200を介さない通信経路R2とが存在する。
【0123】
このような複数の通信経路が存在することで、各アプリケーションへのアクセスの許可/禁止が、通信経路に応じて切り替えられる。一例として、機能ユニットU3のアプリケーション「App31」については、通信経路R2での通信が禁止され、通信経路R1での通信のみが許可される。一方で、機能ユニットU3のアプリケーション「App32」については、通信経路R1での通信が禁止され、通信経路R2での通信のみが許可される。
【0124】
より具体的には、アクセスの許可/禁止の規定は、通信経路ごと、かつアプリケーションごとに予め規定され、許可/禁止規定として機能ユニット300の各々で保持される。機能ユニット300は、中継ユニット200または外部機器500からアクセス要求を受信した場合に、当該アクセス要求に含まれるURLからアクセス元を特定し、当該アクセス元に基づいて通信経路を特定する。その後、機能ユニット300は、許可/禁止規定を参照して、特定した通信経路について、アクセス先のアプリケーションへのアクセスが許可されているか否かを判断する。
【0125】
<K.付記>
以上のように、本実施形態は以下のような開示を含む。
【0126】
[構成1]
PLC(Programmable Logic Controller)(100)に接続することができるユニット(200)であって、
第1ネットワークに接続される外部機器(500)と第2ネットワークに接続される他のユニット(300)との間の通信を中継するための通信部(250)と、
前記第2ネットワーク内における前記他のユニット(300)のアドレス情報を当該他のユニット(300)から取得し、当該アドレス情報と、当該アドレス情報に代わる識別子とを対応付けた設定情報(230)を生成するための設定部(252)と、
前記識別子に基づいて、前記外部機器(500)から前記他のユニット(300)内の情報にアクセスするために用いられるリンク情報を生成するリンク情報生成部(254)とを備える、ユニット。
【0127】
[構成2]
前記通信部(250)は、
前記リンク情報に基づいて前記外部機器(500)によって生成された第1アクセス要求を当該外部機器(500)から受信したことに基づいて、当該第1アクセス要求に含まれる前記識別子を取得し、
前記設定情報(230)を参照して、前記識別子に対応する前記アドレス情報を取得し、
当該アドレス情報を含む第2アクセス要求に基づいて、前記他のユニット(300)内の情報にアクセスする、請求項1に記載のユニット。
【0128】
[構成3]
前記通信部(250)は、前記第1アクセス要求に含まれる前記識別子を前記アドレス情報に置き換えることで、前記第2アクセス要求を生成する、請求項2に記載のユニット。
【0129】
[構成4]
前記ユニット(200)は、前記他のユニット(300)とバス(10)により接続され、
前記通信部(250)は、前記バス(10)を用いて前記他のユニット(300)と通信する、請求項1~3のいずれか1項に記載のユニット。
【0130】
[構成5]
前記ユニット(200)は、物理的な通信ポートをさらに備え、
前記通信部(250)は、前記通信ポートを用いて前記外部機器(500)と通信する、請求項1~4のいずれか1項に記載のユニット。
【0131】
[構成6]
前記リンク情報は、ハイパーリンクを含み、
前記通信部(250)は、前記外部機器(500)に前記ハイパーリンクを表示させる、請求項1~4のいずれか1項に記載のユニット。
【0132】
[構成7]
PLC(100)に接続することができるユニット(200)の制御方法であって、
第1ネットワークに接続される外部機器(500)と第2ネットワークに接続される他のユニット(300)との間の通信を中継するステップと、
前記第2ネットワーク内における前記他のユニット(300)のアドレス情報を当該他のユニット(300)から取得し、当該アドレス情報と、当該アドレス情報に代わる識別子とを対応付けた設定情報(230)を生成するステップ(S12,S22)と、
前記識別子に基づいて、前記外部機器(500)から前記他のユニット(300)内の情報にアクセスするために用いられるリンク情報を生成するステップ(S32)とを備える、制御方法。
【0133】
[構成8]
PLC(100)に接続することができるユニット(200)の制御プログラムであって、
前記制御プログラムは、前記ユニット(200)に、
第1ネットワークに接続される外部機器(500)と第2ネットワークに接続される他のユニット(300)との間の通信を中継するステップと、
前記第2ネットワーク内における前記他のユニット(300)のアドレス情報を当該他のユニット(300)から取得し、当該アドレス情報と、当該アドレス情報に代わる識別子とを対応付けた設定情報(230)を生成するステップ(S12,S22)と、
前記識別子に基づいて、前記外部機器(500)から前記他のユニット(300)内の情報にアクセスするために用いられるリンク情報を生成するステップとを実行させる、プログラム。
【0134】
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
【符号の説明】
【0135】
1,1A,1B 情報処理システム、2 制御システム、10,525 内部バス、30 リンク情報、32,710A,710B ハイパーリンク、40A,40B アクセス要求、100 制御ユニット、102,202,302,502 プロセッサ、104,204,304 チップセット、106,206,306,504 主記憶装置、108,208,308,510 二次記憶装置、110,210 通信コントローラ、112 USBコントローラ、114,214,314 メモリカードインターフェイス、115,215,315 メモリカード、116,118,120,216,218 ネットワークコントローラ、122,322 内部バスコントローラ、124,224,324 インジケータ、150,250 通信部、200 中継ユニット、212,511 通信インターフェイス、230 通信設定情報、230A,230B 破線、232 通信制御プログラム、252 設定部、254 リンク情報生成部、300,400 機能ユニット、450 電源ユニット、500 外部機器、510A 開発支援プログラム、514 I/Oインターフェイス、515 入力デバイス、520 表示インターフェイス、521 ディスプレイ、710 ポータルサイト、720 画面。