IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オムロン株式会社の特許一覧

特許7494788制御システム、データ提供方法および中継処理プログラム
<>
  • 特許-制御システム、データ提供方法および中継処理プログラム 図1
  • 特許-制御システム、データ提供方法および中継処理プログラム 図2
  • 特許-制御システム、データ提供方法および中継処理プログラム 図3
  • 特許-制御システム、データ提供方法および中継処理プログラム 図4
  • 特許-制御システム、データ提供方法および中継処理プログラム 図5
  • 特許-制御システム、データ提供方法および中継処理プログラム 図6
  • 特許-制御システム、データ提供方法および中継処理プログラム 図7
  • 特許-制御システム、データ提供方法および中継処理プログラム 図8
  • 特許-制御システム、データ提供方法および中継処理プログラム 図9
  • 特許-制御システム、データ提供方法および中継処理プログラム 図10
  • 特許-制御システム、データ提供方法および中継処理プログラム 図11
  • 特許-制御システム、データ提供方法および中継処理プログラム 図12
  • 特許-制御システム、データ提供方法および中継処理プログラム 図13
  • 特許-制御システム、データ提供方法および中継処理プログラム 図14
  • 特許-制御システム、データ提供方法および中継処理プログラム 図15
  • 特許-制御システム、データ提供方法および中継処理プログラム 図16
  • 特許-制御システム、データ提供方法および中継処理プログラム 図17
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-27
(45)【発行日】2024-06-04
(54)【発明の名称】制御システム、データ提供方法および中継処理プログラム
(51)【国際特許分類】
   G06F 16/9032 20190101AFI20240528BHJP
【FI】
G06F16/9032
【請求項の数】 9
(21)【出願番号】P 2021075642
(22)【出願日】2021-04-28
(65)【公開番号】P2022169920
(43)【公開日】2022-11-10
【審査請求日】2024-02-07
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】田原 豊
(72)【発明者】
【氏名】永田 雄大
【審査官】齊藤 貴孝
(56)【参考文献】
【文献】特開2008-310532(JP,A)
【文献】米国特許出願公開第2014/0297806(US,A1)
【文献】米国特許出願公開第2003/0182601(US,A1)
【文献】石橋 勇人,新インターネット構築術,UNIX USER,日本,ソフトバンク株式会社,1995年03月01日,第4巻,第3号,p.98-106
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
1または複数の制御装置を含む制御システムであって、
アクセス要求に従って、前記制御装置または前記制御装置に接続されたデバイスに対する処理を決定する処理部と、
前記決定された処理を実行することで取得されたデータを前記アクセス要求の送信元に送信する提供部と、
第1の文字列と前記第1の文字列より長い第2の文字列との組を少なくとも1つ含む文字列定義を格納する記憶部と、
前記文字列定義を参照して、前記アクセス要求に含まれる第1の文字列を対応する第2の文字列に置換する解釈部と
前記制御システムに含まれる前記制御装置および前記デバイスを探索して、第1の文字列と第2の文字列との組を生成する生成部とを備える、制御システム。
【請求項2】
前記解釈部は、前記アクセス要求に含まれる特定の文字列と連結された文字列を第1の文字列と解釈する、請求項1に記載の制御システム。
【請求項3】
前記アクセス要求は、前記制御システムに含まれる前記制御装置または前記デバイスにアクセスするための経路を示すアクセスパスを含む、請求項1または2に記載の制御システム。
【請求項4】
前記アクセス要求は、前記制御システムに含まれる前記制御装置または前記デバイスから取得されたデータに対する変換処理を特定する変換命令を含む、請求項1~3のいずれか1項に記載の制御システム。
【請求項5】
前記生成部は、予め設定された条件に合致する、第1の文字列と第2の文字列との組を生成する、請求項1~4のいずれか1項に記載の制御システム。
【請求項6】
前記生成部が生成した第1の文字列と第2の文字列との組のうち、任意に選択された組のみを前記文字列定義に登録する登録部をさらに備える、請求項1~5のいずれか1項に記載の制御システム。
【請求項7】
前記制御システムにおける構成の変更に応じて、前記文字列定義に含まれる第1の文字列と第2の文字列との組の内容を更新する更新部をさらに備える、請求項1~のいずれか1項に記載の制御システム。
【請求項8】
1または複数の制御装置を含む制御システムにおけるデータ提供方法であって、
第1の文字列と前記第1の文字列より長い第2の文字列との組を少なくとも1つ含む文字列定義を参照して、アクセス要求に含まれる第1の文字列を対応する第2の文字列に置換するステップと、
前記アクセス要求に従って、前記制御装置または前記制御装置に接続されたデバイスに対する処理を決定するステップと、
前記決定された処理を実行することで取得されたデータを前記アクセス要求の送信元に送信するステップと
前記制御システムに含まれる前記制御装置および前記デバイスを探索して、第1の文字列と第2の文字列との組を生成するステップとを備える、データ提供方法。
【請求項9】
1または複数の制御装置を含む制御システムに関連付けられたコンピュータで実行されるデータを提供するための中継処理プログラムであって、前記中継処理プログラムは前記コンピュータに、
第1の文字列と前記第1の文字列より長い第2の文字列との組を少なくとも1つ含む文字列定義を参照して、アクセス要求に含まれる第1の文字列を対応する第2の文字列に置換するステップと、
前記アクセス要求に従って、前記制御装置または前記制御装置に接続されたデバイスに対する処理を決定するステップと、
前記決定された処理を実行することで取得されたデータを前記アクセス要求の送信元に送信するステップと
前記制御システムに含まれる前記制御装置および前記デバイスを探索して、第1の文字列と第2の文字列との組を生成するステップとを実行させる、中継処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御システム、データ提供方法および中継処理プログラムに関する。
【背景技術】
【0002】
近年のICT(Information and Communication Technology)の進歩やIoT(Internet of Things)の注目などに伴って、制御装置により制御されるフィールドレベルのデータを取得したいというニーズが高まっている。
【0003】
このようなニーズに対して、例えば、特開2020-13223号公報(特許文献1)は、汎用的なインターフェイスにより、制御システム内の任意のデバイスの任意の情報を収集可能な構成を開示する。また、特開2020-13224号公報(特許文献2)は、制御システム内の状態変化に応じて、制御システム内の任意のデバイスの任意の情報を効率的に収集可能な構成を開示する。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2020-13223号公報
【文献】特開2020-13224号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
上述した先行技術に比較して、より容易に必要なデータを取得できるととともに、取得対象のシステム構成が変更された場合でもより柔軟に対応できる制御システムなどを提供する。
【課題を解決するための手段】
【0006】
本発明のある実施の形態に従えば、1または複数の制御装置を含む制御システムが提供される。制御システムは、アクセス要求に従って、制御装置または制御装置に接続されたデバイスに対する処理を決定する処理部と、決定された処理を実行することで取得されたデータをアクセス要求の送信元に送信する提供部と、第1の文字列と第1の文字列より長い第2の文字列との組を少なくとも1つ含む文字列定義を格納する記憶部と、文字列定義を参照して、アクセス要求に含まれる第1の文字列を対応する第2の文字列に置換する解釈部とを含む。
【0007】
この構成によれば、本来の第2の文字列ではなく、第1の文字列を用いてアクセス要求を記述すれば、解釈部がアクセス要求を本来の第2の文字列に置換する。これによって、アクセス要求を生成する手間を削減して必要なデータの取得を容易化できるとともに、取得対象のシステム構成が変更された場合であっても、文字列定義の内容を適宜更新することで柔軟に対応できる。
【0008】
解釈部は、アクセス要求に含まれる特定の文字列と連結された文字列を第1の文字列と解釈するようにしてもよい。この構成によれば、特定の文字列と連結された場合に限って、第1の文字列を第2の文字列に置換されるので、アクセス要求に含まれる文字列が意図せずに置換されるような事態を回避できる。
【0009】
アクセス要求は、制御システムに含まれる制御装置またはデバイスにアクセスするための経路を示すアクセスパスを含んでいてもよい。この構成によれば、アクセス要求を用いて、対象の制御装置またはデバイスまでの経路を明確に指定できる。
【0010】
アクセス要求は、制御システムに含まれる制御装置またはデバイスから取得されたデータに対する変換処理を特定する変換命令を含んでいてもよい。この構成によれば、制御装置またはデバイスから取得されたデータを指定された変換処理した結果が提供されるので、送信元がデータを受信した後の処理を簡素化できる。
【0011】
制御システムは、制御システムに含まれる制御装置およびデバイスを探索して、第1の文字列と第2の文字列との組を生成する生成部をさらに含んでいてもよい。この構成によれば、制御システムに含まれる任意の制御装置およびデバイスからデータを取得するためのアクセス要求の生成を容易化できる。
【0012】
生成部は、予め設定された条件に合致する、第1の文字列と第2の文字列との組を生成するようにしてもよい。この構成によれば、特定の目的に応じた条件を設定することで、当該条件に合致する第1の文字列と第2の文字列との組が生成されるので、データを取得するためのアクセス要求の生成を容易化できるとともに、不要な第1の文字列と第2の文字列との組の生成を抑制できる。
【0013】
制御システムは、生成部が生成した第1の文字列と第2の文字列との組のうち、任意に選択された組のみを文字列定義に登録する登録部をさらに含んでいてもよい。この構成によれば、特定の目的に応じた第1の文字列と第2の文字列との組のみを登録できるので、記録領域などのリソースを効率的に利用できる。
【0014】
制御システムは、制御システムにおける構成の変更に応じて、文字列定義に含まれる第1の文字列と第2の文字列との組の内容を更新する更新部をさらに含んでいてもよい。この構成によれば、制御システムにおける構成の変更に応じて、第1の文字列と第2の文字列との組の内容が更新されるので、構成が変更された制御システムにおいても、変更前と同一のアクセス要求を使用し続けることができる。
【0015】
本発明の別の実施の形態に従えば、1または複数の制御装置を含む制御システムにおけるデータ提供方法が提供される。データ提供方法は、第1の文字列と第1の文字列より長い第2の文字列との組を少なくとも1つ含む文字列定義を参照して、アクセス要求に含まれる第1の文字列を対応する第2の文字列に置換するステップと、アクセス要求に従って、制御装置または制御装置に接続されたデバイスに対する処理を決定するステップと、決定された処理を実行することで取得されたデータをアクセス要求の送信元に送信するステップとを含む。
【0016】
本発明のさらに別の実施の形態に従えば、1または複数の制御装置を含む制御システムに関連付けられたコンピュータで実行されるデータを提供するための中継処理プログラムが提供される。中継処理プログラムはコンピュータに、第1の文字列と第1の文字列より長い第2の文字列との組を少なくとも1つ含む文字列定義を参照して、アクセス要求に含まれる第1の文字列を対応する第2の文字列に置換するステップと、アクセス要求に従って、制御装置または制御装置に接続されたデバイスに対する処理を決定するステップと、決定された処理を実行することで取得されたデータをアクセス要求の送信元に送信するステップとを実行させる。
【発明の効果】
【0017】
本発明によれば、先行技術に比較して、より容易に必要なデータを取得できるととともに、取得対象のシステム構成が変更された場合でもより柔軟に対応できる。
【図面の簡単な説明】
【0018】
図1】本実施の形態に係る制御システムの全体構成例を示す模式図である。
図2】本実施の形態に係る制御システムの中継装置の機能構成の要部を示す模式図である。
図3】本実施の形態に係る制御システムの中継装置のハードウェア構成例を示すブロック図である。
図4】本実施の形態に係る制御システムの制御装置のハードウェア構成例を示すブロック図である。
図5】本実施の形態に係る制御システムの中継装置の機能構成例を示すブロック図である。
図6】本実施の形態に係る制御システムの中継装置に格納されるエイリアス定義の一例を示す模式図である。
図7】本実施の形態に係る制御システムの中継装置が処理する変換命令の一例を示す図である。
図8】本実施の形態に係る制御システムで用いられるクエリの一例を示す図である。
図9】本実施の形態に係る制御システムで用いられるクエリの別の一例を示す図である。
図10】本実施の形態に係る制御システムにおけるエイリアスの管理に係る処理手順を示すフローチャートである。
図11】本実施の形態に係る制御システムにおけるクエリの処理手順を示すフローチャートである。
図12】本実施の形態に係る制御システムにおけるエイリアスの自動生成に係る処理手順を示すフローチャートである。
図13】本実施の形態に係る制御システムにおけるエイリアスを選択するためのユーザインターフェイス画面の一例を示す模式図である。
図14】本実施の形態に係る制御システムにおけるエイリアスの選択および登録に係る処理手順を示すフローチャートである。
図15】本実施の形態に係る制御システムにおけるエイリアスの更新例を示す模式図である。
図16】本実施の形態に係る制御システムにおけるネットワーク構成の変更に応じてエイリアスを更新する処理例を示す模式図である。
図17】本実施の形態に係る制御システムの制御装置内のモジュールの変更に応じてエイリアスを更新する処理例を示す模式図である。
【発明を実施するための形態】
【0019】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【0020】
<A.適用例>
まず、本発明が適用される場面の一例について説明する。
【0021】
図1は、本実施の形態に係る制御システム1の全体構成例を示す模式図である。図1を参照して、本実施の形態に係る制御システム1は、主たる構成要素として、中継装置100と、1または複数の制御装置200-1,200-2,200-3,・・・(以下、「制御装置200」とも総称する。)とを含む。
【0022】
中継装置100は、1または複数の制御装置200が保持、管理、または生成するデータへのアクセス要求(以下、「クエリ」とも称す。)に応答して、要求されたデータを取得して応答する。
【0023】
1または複数の制御装置200は、設備や機械などの制御対象を制御する。制御装置200は、PLC(プログラマブルロジックコントローラ)などの、一種のコンピュータとして具現化されてもよい。
【0024】
図1に示す制御システム1においては、中継装置100および制御装置200-1,200-2,200-3がネットワーク2を介して互いに通信可能に接続されている。制御装置200-1,200-2,200-3は、それぞれフィールドネットワーク6-1,6-2,6-3(以下、「フィールドネットワーク6」とも総称する。)を介して、デバイス250-1,250-2,250-3(以下、「デバイス250」とも総称する。)と接続されている。
【0025】
本明細書において、「デバイス」は、任意のデータを保持、管理、または生成する任意の装置を包含する。「デバイス」は、例えば、個々のセンサおよび制御演算を実行する制御装置を包含し得る。以下では、説明の便宜上、制御装置200をデバイス250とを区別するが、「デバイス」との用語は、制御装置200およびデバイス250を含み得る。
【0026】
図1には、デバイス250の一例として、リモートI/O(Input/Output)装置を示す。リモートI/O装置は、典型的には、フィールドネットワーク6を介して通信を行う通信部と、入力データの取得および出力データの出力を行うための入出力部とを含み、設備や機械などの制御対象との間で入力信号(入力データ)および出力信号(出力データ)をやり取りする。
【0027】
デバイス250には、リモートI/O装置に限らず、各種センサやサーボドライバといった任意のデバイスが含まれ得る。また、図1には、フィールドネットワーク6に1つのデバイス250が接続された構成例を示すが、これに限らず、フィールドネットワーク6には複数のデバイス250が接続されてもよい。
【0028】
フィールドネットワーク6としては、例えば、EtherCAT(登録商標)、EtherNet/IP(登録商標)、DeviceNet(登録商標)、CompoNet(登録商標)などの産業用の通信プロトコルを採用することが好ましい。
【0029】
制御システム1は、1または複数の表示装置300をさらに含んでいてもよい。表示装置300は、HMI(Human Machine Interface)などとも称され、ユーザからの操作を受けて、制御装置200に対してユーザ操作に応じたコマンドなどを送信するとともに、制御装置200から取得されたデータなどをグラフィカルに表示する。
【0030】
中継装置100は、ネットワーク2に加えて、ネットワーク4にも接続されている。ネットワーク4に接続された情報処理装置400が中継装置100に対してクエリを送信する。
【0031】
図1に示す構成例において、ネットワーク2は、いわゆるOT(Operational Technology)ネットワークに相当し、ネットワーク4は、いわゆるIT(Information Technology)ネットワークに相当する。
【0032】
情報処理装置400は、典型的には、汎用コンピュータである。情報処理装置400は、例えば、ブラウザなどの汎用アプリケーションから中継装置100に対してクエリを送信し、中継装置100から制御装置200が保持、管理、または生成するデータを取得する。
【0033】
中継装置100が実行する処理を概略すると、まず、中継装置100は、任意の送信元からクエリを受信すると((1)クエリ)、クエリにより指定された処理を実行することでデータを取得する((2)処理実行および(3)データ取得)。として、中継装置100は、取得したデータを含む応答データをクエリの送信元に送信する((4)応答データ)。
【0034】
このように、中継装置100は、任意のクエリに対して、制御システム1が保持、管理、または生成するデータを提供する。
【0035】
図2は、本実施の形態に係る制御システム1の中継装置100の機能構成の要部を示す模式図である。図2を参照して、中継装置100は、主要な機能構成として、処理部10と、解釈部20と、記憶部30と、提供部40とを含む。
【0036】
処理部10は、外部からのアクセス要求(クエリ)に従って、制御装置200または制御装置200に接続されたデバイス250に対する処理を決定する。提供部40は、決定された処理を実行することで取得されたデータをアクセス要求(クエリ)の送信元に送信する。
【0037】
本実施の形態に係る制御システム1においては、中継装置100は、クエリに従って、制御システム1に含まれる任意の制御装置200およびデバイス250に対してさまざまな処理を実行できる。
【0038】
中継装置100が実行する処理としては、典型的には、制御装置200またはデバイス250が保持または管理するデータの全部または一部を取得する処理が挙げられる。
【0039】
中継装置100が実行する別の処理としては、制御装置200またはデバイス250の動作や挙動を変更する処理が挙げられる。動作や挙動を変更する処理としては、例えば、以下の処理が挙げられる。
【0040】
・制御モードの切替(ランモード/プログラムモード/デバッグモード)
・シャットダウン
・リブート
・タスクやサービスの開始/停止
・データトレースの新規作成/開始/停止/削除
・アラームの新規作成/開始/停止/削除
制御装置200またはデバイス250の動作や挙動を変更する処理については、例えば、その実行結果などを含むデータを戻り値として取得できる。
【0041】
上述したように、本明細書において、「制御装置200または制御装置200に接続されたデバイス250に対する処理」は、中継装置100が任意の制御装置200またはデバイス25に対して実行することができる任意の処理を包含する。また、「処理を実行することで取得されたデータ」は、対象の制御装置200またはデバイス250に対して処理を実行することで取得される任意のデータを包含する。
【0042】
以下では、説明の便宜上、主として、制御装置200またはデバイス250が保持または管理するデータを取得する処理を説明する。
【0043】
本実施の形態に係る制御システム1においては、クエリに含まれる文字列の少なくとも一部を当該文字列より短くした別の文字列を利用可能にする。そのため、記憶部30は、第1の文字列と第1の文字列より長い第2の文字列との組を少なくとも1つ含む文字列定義としてのエイリアス定義180を格納する。
【0044】
エイリアス定義180は、クエリの少なくとも一部として利用可能な文字列(第1の文字列に相当し、以下では、「エイリアス名」とも称す。)と、当該文字列(エイリアス名)より長い文字列(第2の文字列に相当する。)との組を少なくとも1つ含む。エイリアス定義180の具体例については後述する。
【0045】
本明細書において、「エイリアス」との用語は、クエリの少なくとも一部として利用可能な文字列(すなわち、エイリアス名)単体、および、クエリの少なくとも一部として利用可能な文字列と当該文字列の実体を示すより長い文字列との組み合わせの両方を包含する。なお、実施の形態に係る制御システム1で利用可能な「エイリアス」は、「ショートカット」や「短縮表現」と称されてもよい。すなわち、「エイリアス」は、名称にかかわらず、上述したような意味を包含する。
【0046】
解釈部20は、記憶部30に格納される文字列定義(エイリアス定義180)を参照して、アクセス要求に含まれる第1の文字列を対応する第2の文字列に置換する。解釈部20がアクセス要求に含まれる第1の文字列を対応する第2の文字列に置換し、処理部10は、置換後のアクセス要求に基づいて、アクセス対象を決定する。そのため、アクセス対象までのアクセスパスなどを知らなくてもアクセス要求を生成することができるとともに、具体的なアクセスパスを秘匿化することもできる。さらに、制御システム1の構成などが変化した場合であっても、第1の文字列と第2の文字列との対応関係(エイリアス定義180)を更新するだけで、当該変化後の構成に対応できるので、アクセス要求自体の修正や変更などが必要ない。
【0047】
<B.ハードウェア構成例>
次に、本実施の形態に係る制御システム1を構成する装置のハードウェア構成例について説明する。
【0048】
(b1:中継装置100)
図3は、本実施の形態に係る制御システム1の中継装置100のハードウェア構成例を示すブロック図である。図3を参照して、中継装置100は、コンピュータの一例であって、1または複数のプロセッサ102と、光学ドライブ104と、主記憶装置106と、二次記憶装置108と、USB(Universal Serial Bus)コントローラ110と、ネットワークコントローラ112,114と、入力部116と、表示部118とを含む。これらのコンポーネントはバス120を介して接続される。
【0049】
プロセッサ102は、例えば、CPU(Central Processing Unit)、MPU(Micro-Processing Unit)、GPU(Graphics Processing Unit)などで構成され、二次記憶装置108に格納された各種プログラムを読み出して、主記憶装置106に展開して実行することで、後述するような各種処理を実現する。
【0050】
二次記憶装置108は、図2に示す記憶部30に相当し、例えば、HDD(Hard Disk Drive)やSSD(Flash Solid State Drive)などで構成される。二次記憶装置108には、典型的には、OS122と、後述する処理を実現するための中継処理プログラム124とが格納される。なお、二次記憶装置108には、図3に示す中継処理プログラム124以外の必要なプログラムが格納されてもよい。さらに、二次記憶装置108には、システム情報170およびエイリアス定義180が格納される(詳細については後述する)。
【0051】
中継装置100は、光学ドライブ104を有しており、コンピュータ読取可能なコードを非一過的に格納する記録媒体105(例えば、DVD(Digital Versatile Disc)などの光学記録媒体)から、その中に格納されたコンピュータ読取可能なコードが読み取られて二次記憶装置108などにインストールされる。
【0052】
中継装置100で実行される各種プログラムは、コンピュータ読取可能な記録媒体105を介してインストールされてもよいが、ネットワーク上の任意のサーバ装置からダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係る中継装置100が提供する機能は、OS122が提供するソフトウェアモジュールの一部を利用する形で実現される場合もある。
【0053】
USBコントローラ110は、USB接続を介して他の情報処理装置との間のデータのやり取りを担当する。ネットワークコントローラ112は、ネットワーク2を介した制御装置200などとの間のデータのやり取りを担当する。ネットワークコントローラ114は、ネットワーク4を介した情報処理装置400などとの間のデータのやり取りを担当する。
【0054】
入力部116は、キーボードやマウスなどで構成され、ユーザ操作を受け付ける。表示部118は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ102からの処理結果などを出力する。
【0055】
図3には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。
【0056】
(b2:制御装置200)
図4は、本実施の形態に係る制御システム1の制御装置200のハードウェア構成例を示すブロック図である。図4を参照して、制御装置200は、コンピュータの一例であって、プロセッサ202と、チップセット204と、主記憶装置206と、二次記憶装置208と、上位ネットワークコントローラ210と、USBコントローラ212と、メモリカードインターフェイス214と、フィールドネットワークコントローラ220と、内部バスコントローラ222と、I/Oユニット224-1,224-2,…とを含む。
【0057】
プロセッサ202は、例えば、CPU、MPU、GPUなどで構成され、二次記憶装置108に格納された各種プログラムを読み出して、主記憶装置206に展開して実行することで、制御演算を実行するための環境を実現する。チップセット204は、プロセッサ202と各コンポーネントとの間のデータ伝送などを制御する。
【0058】
二次記憶装置208には、制御演算を実行する環境を実現するためのシステムプログラム231に加えて、制御演算に係る命令を記述したユーザプログラム232が格納される。
【0059】
上位ネットワークコントローラ210は、ネットワーク2を介した中継装置100などとの間のデータのやり取りを担当する。USBコントローラ212は、USB接続を介して図示しないサポート装置などとの間のデータのやり取りを担当する。
【0060】
メモリカードインターフェイス214は、メモリカード216を着脱可能に構成されており、メモリカード216に対してデータを書込み、メモリカード216から各種データ(ユーザプログラムやトレースデータなど)を読み出すことができる。
【0061】
内部バスコントローラ222は、制御装置200に搭載されるI/Oユニット224-1,224-2,…との間でデータをやり取りするインターフェイスである。
【0062】
フィールドネットワークコントローラ220は、フィールドネットワーク6を介したデバイス250などとの間のデータのやり取りを担当する。
【0063】
図4には、プロセッサ202がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。
【0064】
(b3:表示装置300)
本実施の形態に係る制御システム1の表示装置300は、典型的には、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。表示装置300のハードウェア構成例については公知であるので、詳細な説明は行わない。
【0065】
(b4:情報処理装置400)
本実施の形態に係る制御システム1の情報処理装置400は、典型的には、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。情報処理装置400のハードウェア構成例については公知であるので、詳細な説明は行わない。
【0066】
<C.中継装置100の機能構成>
次に、本実施の形態に係る制御システム1の中継装置100の機能構成の一例について説明する。
【0067】
図5は、本実施の形態に係る制御システム1の中継装置100の機能構成例を示すブロック図である。図5に示す各機能は、典型的には、中継装置100のプロセッサ102が中継処理プログラム124を実行することで実現される。
【0068】
図5を参照して、中継装置100は、主たる機能構成として、インターフェイスモジュール150と、エイリアス設定モジュール152と、クエリ処理モジュール154と、エイリアス解釈モジュール156と、データ変換モジュール162と、データ成形モジュール164とを含む。また、中継装置100は、システム情報170およびエイリアス定義180を格納している。
【0069】
インターフェイスモジュール150は、情報処理装置400などからのクエリを受け付けるとともに、情報処理装置400に対して応答データを送信する。また、インターフェイスモジュール150は、ユーザからの各種の操作および指示を受け付ける。
【0070】
クエリ処理モジュール154は、図2に示す処理部10に相当し、アクセス要求(クエリ)に従って、制御装置200または制御装置200に接続されたデバイス250に対する処理を決定する。より具体的には、クエリ処理モジュール154は、入力されたクエリを解釈し、クエリにより指定されたアクセスパスを通信処理モジュール160に通知する。より具体的には、クエリ処理モジュール154は、システム情報170を参照するとともに、エイリアス解釈モジュール156からのエイリアスに対応する文字列に基づいて、アクセスパスを決定する。
【0071】
エイリアス解釈モジュール156は、図2に示す解釈部20に相当し、エイリアス定義180を参照して、アクセス要求に含まれるエイリアス(第1の文字列)を対応する文字列(第2の文字列)に置換する。すなわち、エイリアス解釈モジュール156は、アクセス要求に含まれる指定されたエイリアスに対応する文字列を出力する。
【0072】
通信処理モジュール160、データ変換モジュール162およびデータ成形モジュール164は、図2に示す提供部40に相当し、決定された処理を実行することで取得されたデータをアクセス要求の送信元に送信する。
【0073】
より具体的には、通信処理モジュール160は、アクセスパスにより指定されたデバイスにアクセスするとともに、当該アクセス先のデバイスから指定されたデータを取得する。
【0074】
データ変換モジュール162は、クエリに含まれる変換命令に従って、対象のデバイスから取得されたデータを変換あるいは加工する。より具体的には、データ変換モジュール162は、数値変換、単位換算、レンジ換算、フォーマット変換などの処理を実行する。
【0075】
データ成形モジュール164は、取得したデータを指定された出力形式に成形する。データフォーマットの一例としては、JSON形式、HTML形式、XML形式、CSV形式、テキスト形式、バイナリ形式などが挙げられる。なお、データフォーマットの指定がない場合には、予め定められたデータフォーマットに変換するようにしてもよい。
【0076】
エイリアス設定モジュール152は、ユーザの操作および指示に従って、エイリアスの設定、登録、変更、削除などを行う。また、エイリアス設定モジュール152は、後述するようなエイリアスの自動生成などの処理を実行するようにしてもよい。
【0077】
システム情報170は、例えば、構成情報171と、デバイスプロファイル172と、索引173とを含む。
【0078】
構成情報171は、制御システム1に含まれるデバイスの接続関係を示す情報を含む。具体的には、構成情報171は、ネットワークトポロジ、各デバイスのアドレス情報、および、各ネットワークの通信プロトコルなどを規定する情報を含む。構成情報171は、物理的または仮想的なネットワークトポロジや、ユニット構成に関する情報(アドレス、形式、通信帯域など)を含むようにしてもよい。構成情報171は、予め静的に設定されていてもよいし、ネットワーク構成の変化に応じて、動的に変化するようにしてもよい。
【0079】
デバイスプロファイル172は、各デバイスの特性を示す情報を含む。具体的には、デバイスプロファイル172は、デバイス内のメモリマップ、オブジェクト仕様、型情報、取得可能なデータ(属性)、スケーリングなどを含む。
【0080】
索引173は、デバイスへのアクセスを効率化するために用いられる情報であり、制御システム1に含まれる各デバイスの状態値を示す情報を含む。具体的には、索引173は、デバイスの属性値および個体識別番号(シリアル番号やMACアドレスなど)を含む。索引173は、典型的には、動的に生成されることになるが、事前に静的に生成したものを採用してもよい。なお、索引173は、アクセスの高速化のために用いられる情報であり、必ずしも必要ではなく、状況に応じて実装すればよい。
【0081】
エイリアス定義180は、エイリアスと対応する文字列との関係を定義する。基本的には、エイリアス定義180は、クエリに含まれるエイリアスに対応する文字列を決定するために用いられる。
【0082】
図6は、本実施の形態に係る制御システム1の中継装置100に格納されるエイリアス定義180の一例を示す模式図である。図6を参照して、エイリアス定義180は、エイリアス名182に対応付けられた文字列184を含む。
【0083】
エイリアス名182は、任意の文字列184を短縮した表現である。文字列184は、アクセス先のアクセスパスおよび/またはデータ変換処理を示す変換命令を含み得る。
【0084】
エイリアス定義180に登録されるエイリアス名182の数には制限はなく、任意のエイリアス名182を登録できる。また、同一の文字列でない限り任意のエイリアス名182を採用できる。
【0085】
また、中継装置100は、クエリに含まれる特定の文字列を変換命令と解釈して、当該変換命令に従う変換処理を実行する。
【0086】
図7は、本実施の形態に係る制御システム1の中継装置100が処理する変換命令の一例を示す図である。図7を参照して、変換命令としては、数値演算、論理演算、比較演算、ビット演算、有効桁演算、単位変換などの演算処理を含む。中継装置100は、各演算を実行するための演算子、文字列、コマンドなどの変換命令がクエリに含まれていれば、当該クエリに含まれている変換命令に従って指定された変換処理あるいは演算処理を実行する。
【0087】
図7に示すように、クエリ(アクセス要求)は、制御装置200または制御装置200に接続されたデバイス250から取得されたデータに対する変換処理を特定する変換命令を含み得る。
【0088】
なお、変換命令は、クエリに直接的に含まれている場合に加えて、上述したエイリアスを解釈して得られる文字列に含まれている場合もある。さらに、エイリアスと変換命令とを組み合わせてクエリを生成することも可能である。
【0089】
例えば、取得した値(変数名Distanceである距離)を小数点有効2桁で四捨五入する場合には、変換命令として、「ROUND("Distance",2)」をクエリに含めてもよい。
【0090】
また、取得した値(変数名Tempである温度)を華氏から摂氏に変換する場合には、変換命令として、「CONVERT("Temp", FAHRENHEIT, CELSIUS)」をクエリに含めてもよい。
【0091】
このように、本実施の形態に係る制御システム1においては、クエリに含まれる変換命令に従って、データ取得に加えて、任意の変換処理を実行できる。
【0092】
<D.クエリおよびエイリアス>
次に、本実施の形態に係る制御システム1において処理されるクエリおよびエイリアスについて説明する。
【0093】
本実施の形態に係る制御システム1において、クエリは、例えば、Webサービスなどの提供に用いられるREST(Representational State Transfer)に準拠した形式で記述することができる。また、クエリは、SQL言語で記述されてもよい。但し、クエリの記述には任意の形式を用いることができる。さらに、クエリを記述する新たな形式が普及した場合には、任意の新たな形式を採用できる。
【0094】
一方、中継装置100からの応答データは、JSON(JavaScript Object Notation)形式やHTML(HyperText Markup Language)形式で記述されてもよい。
【0095】
図8は、本実施の形態に係る制御システム1で用いられるクエリの一例を示す図である。図8には、RESTに準拠したクエリの例を示す。図8に示すクエリは、制御システム1に含まれる制御装置200(または、リモートI/O装置)に接続されたユニットからさらにIO-Linkを介して接続されたデバイス(例えば、温度センサ)から入力データ(例えば、温度の計測値)の取得を要求するものである。すなわち、図8に示すクエリは、第1階層に相当する制御装置200(または、リモートI/O装置)、第2階層に相当するユニット、第3階層に相当するデバイス(例えば、温度センサ)の3階層のアクセスを要求するものである。
【0096】
図8(A)を参照して、クエリ500は、アクセス先記述部502およびクエリ記述部504,505,506,507,508を含む。アクセス先記述部502は、中継装置100との通信プロトコルを指定するスキームと、中継装置100を特定するオーソリティとを含む。クエリ記述部504,505,506,507,508は、データを取得する先を特定するためのアクセスパスを意味する。
【0097】
図8(A)に示すように、クエリ(アクセス要求)は、制御システム1に含まれる制御装置200またはデバイス250にアクセスするための経路を示すアクセスパスを含み得る。
【0098】
クエリ記述部504は、第1階層に相当する制御装置200(または、リモートI/O装置)を特定する「eip」の項目を記述する。図8(A)に示す例では、「192.168.250.100」となっている。すなわち、ネットワークアドレスが「192.168.250.100」である制御装置200(または、リモートI/O装置)がアクセス対象として特定されている。
【0099】
クエリ記述部505は、第2階層に相当するユニットを特定する「unitno」の項目を記述する。図8(A)に示す例では、「0x01」となっている。すなわち、ユニット番号が「0x01」のユニットがアクセス対象として特定されている。
【0100】
クエリ記述部506は、第3階層に相当するデバイスに接続するためのIO-Linkを特定する「iokink」の項目を記述する。図8(A)に示す例では、「port1」となっている。すなわち、IO-Linkのマスターポート番号が「port1」であるIO-Linkがアクセス対象として特定されている。
【0101】
クエリ記述部507は、第3階層に相当するデバイスに接続するためのIO-Linkデバイスのインデックス番号を特定する「Index」の項目を記述する。図8(A)に示す例では、「0x12」となっている。すなわち、IO-Linkデバイスのインデックス番号が「0x12」のデバイスがアクセス対象として特定されている。
【0102】
クエリ記述部508は、クエリ500に対する中継装置100の応答データの形式を特定する「format」の項目を記述する。図8(A)に示す例では、「json」となっている。すなわち、中継装置100からの応答データの形式が「JSON」であることが指定されている。
【0103】
図8(A)に示すように、制御システム1に含まれるデバイスおよびユニットへアクセスするためのパスは、階層が深くなるほど長くなる。そのため、クエリを生成するにも手間がかかる。そこで、本実施の形態に係る制御システム1においては、クエリに含まれる文字列の少なくとも一部を当該文字列より短くした別の文字列を利用可能にする。
【0104】
中継装置100は、クエリに含まれるエイリアスを対応する文字列に解釈して、指定された処理を実行する。
【0105】
図8(B)には、図8(A)に示すクエリ500に含まれるクエリ記述部504,505,506,507,508をエイリアス514を用いて記述したクエリ510を示す。図8(B)に示すクエリ510においては、エイリアスとして解釈されるべきことを示す「get_alias」の項目512に加えて、エイリアス514が記述されている。中継装置100は、「temperature」とのエイリアス514をクエリ記述部504,505,506,507,508の記述を意味するものとして処理される。その結果、図8(A)に示すクエリ500と同様に処理されることになる。
【0106】
このように、エイリアスを用いることで、アクセス対象のデータソースまでのパスを記述する必要がなく、クエリの記述を簡素化できる。また、具体的なアクセスパスを開示する必要がないので、セキュリティの面でも有利である。すなわち、制御システム1の具体的なアクセスパスを秘匿化できるので、悪意の第三者からの攻撃のリスクを低減できる。
【0107】
なお、図8(B)に示すように、中継装置100(図5に示すエイリアス解釈モジュール156)は、クエリ(アクセス要求)に含まれる特定の文字列(項目512である「get_alias」などのキーワード)と連結された文字列をエイリアス514と解釈するようにしてもよい。
【0108】
図8(B)には、クエリ500に含まれるアクセスパスのすべてを1つのエイリアスにまとめた例を示すが、アクセスパスに含まれる任意の要素毎にエイリアスを設定してもよい。
【0109】
図8(C)には、図8(A)に示すクエリ500に含まれるクエリ記述部504,505,506,507,508をエイリアス524,525,526,527,528を用いて記述したクエリ520を示す。
【0110】
図8(D)には、図8(A)に示すクエリ500に含まれるクエリ記述部504をエイリアス524を用いて記述するとともに、クエリ記述部505,506,507をエイリアス536を用いて記述したクエリ530を示す。
【0111】
エイリアス524,525,526,527,528,534,536には、いずれも特定のアドレスやパスを記述するものではなく、抽象化された文字列が用いられている。そのため、制御システム1の構成が変化したとしても、エイリアスを用いて記述している限りにおいては、エイリアスとアクセスパスを含む文字列との対応関係を更新するだけで、クエリそのものを変更する必要がない。同様に、取得するデータの対象が変化したとしても、エイリアスとアクセスパスを含む文字列との対応関係を更新するだけで、クエリそのものを変更する必要がない。
【0112】
図9は、本実施の形態に係る制御システム1で用いられるクエリの別の一例を示す図である。図9(A)には、制御装置200が保持、管理、または生成するデータへアクセスするためのクエリ540の例を示す。クエリ540は、制御装置200が保持するアラームフラグおよびメモリカードのエラーを取得するためのクエリ記述部542を含む。すなわち、クエリ記述部542に含まれる「AlarmFlags」および「Card1Err」は、それぞれ「アラームフラグ」および「メモリカードのエラー」を意味する。
【0113】
クエリ548は、クエリ540の内容をエイリアス546を用いて記述したものである。このとき、図9(B)に示すエイリアス定義180において、「SDCardError」とのエイリアス546には「get_values="_AlarmFlags,_Card1Err"&format=json」との記述が対応付けられる。
【0114】
この状態において、アラームフラグおよびメモリカードのエラーに加えて、システムエラーを取得する必要性が生じたとする。この場合に、クエリ540は、クエリ541のように変更される。すなわち、クエリ記述部543には、「AlarmFlags」および「Card1Err」に加えて、システムエラーを意味する「SystemErr」が含まれるようになる。
【0115】
このようなクエリ記述部の変更があった場合であっても、エイリアス定義180におけるエイリアス546に対応付けられる文字列(アクセスパスを含む)を更新することで、同一のエイリアス546をそのまま用いることができる。すなわち、エイリアス546を含むクエリ548を変更する必要がない。
【0116】
より具体的には、図9(B)に示すエイリアス定義180において、SDCardError」とのエイリアス546に対応付けられる文字列を「get_values="_AlarmFlags,_Card1Err,_SystemErr"&format=json」に更新することで、同一のエイリアス546による取得対象を任意に変更できる。
【0117】
<E.エイリアスに係る処理手順>
次に、本実施の形態に係る制御システム1におけるエイリアスに係る処理手順について説明する。
【0118】
図10は、本実施の形態に係る制御システム1におけるエイリアスの管理に係る処理手順を示すフローチャートである。図10に示す各ステップは、典型的には、中継装置100のプロセッサ102が中継処理プログラム124を実行することで実現される。
【0119】
図10(A)は、エイリアス定義180へのエイリアスの登録処理の処理手順を示す。図10(A)を参照して、中継装置100は、新たなエイリアスと対応する文字列とを受け付ける(ステップS10)。すると、中継装置100は、受け付けたエイリアスがエイリアス定義180に登録済であるか否かを判断する(ステップS12)。
【0120】
受け付けたエイリアスがエイリアス定義180に登録済でなければ(ステップS12においてNO)、中継装置100は、当該エイリアスに対応付けられた文字列が所定の規則に適合しているか否かを判断する(ステップS14)。
【0121】
エイリアスに対応付けられた文字列が所定の規則に適合していれば(ステップS14においてYES)、中継装置100は、受け付けたエイリアスと対応付けられた文字列とをエイリアス定義180に登録する(ステップS16)。そして、中継装置100は、エイリアスの登録が正常に終了した旨を応答する(ステップS18)。そして、処理は終了する。
【0122】
これに対して、受け付けたエイリアスがエイリアス定義180に登録済であれば(ステップS12においてYES)、あるいは、エイリアスに対応付けられた文字列が所定の規則に適合していなければ(ステップS14においてNO)、中継装置100は、エイリアスの登録がエラー終了した旨を応答する(ステップS20)。そして、処理は終了する。
【0123】
図10(B)は、エイリアス定義180からのエイリアスの削除処理の処理手順を示す。図10(B)を参照して、中継装置100は、削除対象のエイリアスを受け付ける(ステップS30)。すると、中継装置100は、受け付けたエイリアスがエイリアス定義180に登録済であるか否かを判断する(ステップS32)。
【0124】
受け付けたエイリアスがエイリアス定義180に登録済であれば(ステップS32においてYES)、中継装置100は、受け付けたエイリアスに対応するエントリをエイリアス定義180から削除する(ステップS34)。そして、中継装置100は、エイリアスの削除が正常に終了した旨を応答する(ステップS36)。そして、処理は終了する。
【0125】
これに対して、受け付けたエイリアスがエイリアス定義180に登録済でなければ(ステップS32においてNO)、中継装置100は、エイリアスの削除がエラー終了した旨を応答する(ステップS38)。そして、処理は終了する。
【0126】
図10(C)は、エイリアス定義180の初期化処理の処理手順を示す。図10(C)を参照して、中継装置100は、エイリアス定義180の初期化指示を受け付ける(ステップS40)。すると、中継装置100は、受け付けた初期化指示に従って、対象のエイリアス定義180のすべてのエントリを削除する(ステップS42)。そして、中継装置100は、エイリアスの初期化が正常に終了した旨を応答する(ステップS44)。そして、処理は終了する。
【0127】
図11は、本実施の形態に係る制御システム1におけるクエリの処理手順を示すフローチャートである。図11に示す各ステップは、典型的には、中継装置100のプロセッサ102が中継処理プログラム124を実行することで実現される。
【0128】
図11を参照して、中継装置100は、情報処理装置400などからクエリを受け付ける(ステップS50)。そして、中継装置100は、受け付けたクエリにエイリアスが含まれているか否かを判断する(ステップS52)。
【0129】
受け付けたクエリにエイリアスが含まれていれば(ステップS52においてYES)、中継装置100は、エイリアス定義180を参照してクエリに含まれているエイリアスが登録されているか否かを判断する(ステップS54)。
【0130】
クエリに含まれているエイリアスが登録されていなければ(ステップS54においてNO)、中継装置100は、エラー終了した旨を応答する(ステップS56)。そして、処理は終了する。
【0131】
クエリに含まれているエイリアスが登録されていれば(ステップS54においてYES)、中継装置100は、エイリアス定義180を参照してエイリアスに対応する文字列を取得し(ステップS58)、受け付けたクエリに含まれるエイリアスを取得した文字列に置換する(ステップS60)。
【0132】
このように、中継装置100は、エイリアス名と文字列との組を少なくとも1つ含むエイリアス定義180を参照して、アクセス要求に含まれるエイリアス名を対応する文字列に置換する処理を実行する(ステップS50~S60)。
【0133】
受け付けたクエリにエイリアスが含まれていなければ(ステップS52においてNO)、あるいは、ステップS60の実行後、中継装置100は、クエリに含まれるアクセスパスにより指定されたデバイスにアクセスする(ステップS62)。このように、中継装置100は、アクセス要求に従って、制御装置200または制御装置200に接続されたデバイス250に対する処理を決定する。
【0134】
そして、中継装置100は、当該アクセス先のデバイスから指定されたデータを取得する(ステップS64)。さらに、中継装置100は、クエリ(または、クエリ中のエイリアスを対応する文字列に置換した結果)に変換命令が含まれているか否かを判断する(ステップS66)。
【0135】
クエリに変換命令が含まれていれば(ステップS66においてYES)、中継装置100は、当該変換命令に従う変換処理を実行する(ステップS68)。一方、クエリに変換命令が含まれていなければ(ステップS66においてNO)、ステップS68の処理はスキップされる。
【0136】
続いて、中継装置100は、取得したデータを所定のデータフォーマットに成形することで応答データを生成し(ステップS70)、クエリの送信元に応答データを送信する(ステップS72)。
【0137】
このように、中継装置100は、決定された処理を実行することで取得されたデータをクエリの送信元に送信する(ステップS64~S72)。そして、処理は終了する。
【0138】
以上のような処理手順によって、エイリアスの管理およびエイリアスを含むクエリの処理が実現される。
【0139】
<F.エイリアスの自動生成処理>
上述の説明においては、ユーザがエイリアスおよび対応する文字列を指定することでエイリアス定義180に登録される処理例を示した。このような手動による登録処理に加えて、以下に説明するようなエイリアスの自動生成処理を実装してもよい。
【0140】
(f1:エイリアスの自動生成処理)
図12は、本実施の形態に係る制御システム1におけるエイリアスの自動生成に係る処理手順を示すフローチャートである。図12に示す各ステップは、典型的には、中継装置100のプロセッサ102が中継処理プログラム124を実行することで実現される。
【0141】
図12を参照して、中継装置100は、ネットワーク2に接続された制御装置200を探索する(ステップS100)。制御装置200の探索には、例えば、ARP(Address Resolution Protocol)やpingなどが用いられる。
【0142】
続いて、中継装置100は、探索された制御装置200のうち1つを選択する(ステップS102)。そして、中継装置100は、選択された制御装置200に接続されたデバイスを探索する(ステップS104)。デバイスの探索には、CIP Identity オブジェクト読出などのプロトコルを用いることができる。
【0143】
続いて、中継装置100は、探索したデバイスから変数情報および実構成情報を取得する(ステップS106)。変数情報および実構成情報の取得には、ユニット間通信に固有のコマンド、EtherCATのコマンド、IO-Linkのコマンドなどを用いることができる。そして、中継装置100は、取得した変数情報に含まれる各データについて、文字列(アクセスパスを含む)および暫定のエイリアス名を決定する(ステップS108)。
【0144】
また、中継装置100は、探索したデバイス以外のデバイスが存在すれば、当該デバイスからI/O情報を取得する(ステップS110)。I/O情報の取得には、CIP Identity オブジェクト読出などのプロトコルを用いることができる。
【0145】
最終的に、中継装置100は、取得した実構成情報、デバイスの情報、デバイス設定ファイル情報などに基づいて、アクセス可能な各デバイスについて、文字列および暫定のエイリアスを決定する(ステップS112)。
【0146】
すなわち、ステップS108においては、特定のデータへアクセスするためのアクセスパスおよびエイリアスが自動生成され、ステップS112においては、特定のデバイスへアクセスするためのアクセスパスおよびエイリアスが自動生成される。
【0147】
中継装置100は、探索された制御装置200のすべてについて処理が完了したか否かを判断する(ステップS114)。探索された制御装置200のうち処理が完了していないものがあれば(ステップS114においてNO)、中継装置100は、別の制御装置200を選択する(ステップS116)。そして、ステップS104以下の処理が繰り返される。
【0148】
探索された制御装置200のすべてについて処理が完了していれば(ステップS114においてYES)、処理は終了する。
【0149】
上述したようなエイリアスの自動生成処理を採用することで、以下のような利点がある。
【0150】
すなわち、制御システムに含まれる制御装置200が保持、管理、または生成するデータへアクセスするためのアクセスパスおよび対応するエイリアス名の候補を自動的に生成できるとともに、制御装置200に接続されたデバイスが保持、管理、または生成するデータへアクセスするためのアクセスパスおよび対応するエイリアス名の候補を自動的に生成できる。
【0151】
さらに、制御システムに含まれる制御装置200および制御装置200に接続されたデバイスへのアクセスパスおよび対応するエイリアス名の候補についても自動的に生成できる。
【0152】
また、生成されたエイリアス名の候補および対応するアクセスパスを一覧表示することもできる。なお、エイリアス名の候補については、予め定められた規則に従って自動的に決定されてもよいし、対応するアクセスパスに基づいて自動的に決定されてもよい。
【0153】
このように、中継装置100は、制御システム1に含まれる制御装置200およびデバイス250を探索して、エイリアス名(第1の文字列)とアクセスパスなどの文字列(第2の文字列)との組を生成する生成処理を実行可能に構成されてもよい(図5に示すエイリアス設定モジュール152)。
【0154】
(f2:エイリアス生成時のフィルタリング)
上述したエイリアスの自動生成処理においては、基本的には、アクセス可能なデータおよびデバイスのすべてについてアクセスパスを示すエイリアスが生成されることになる。このとき、生成されるエイリアスの範囲を任意に設定するようにしてもよい。すなわち、生成されるエイリアスおよび対応する文字列についてのフィルタリングを設定するようにしてもよい。このようなフィルタリングの項目としては、以下のようなものを用いることができる。
【0155】
・ネットワーク範囲(例えば、IPネットワークアドレス、ネットワーク階層、プロトコル種別など)
・工程(例えば、塗装工程、組立工程、検査工程など)
・装置プロファイル(例えば、包装機、成形機など)
・装置メーカ(例えば、A社、B社など)
・装置名(例えば、ラインA_XX Machineなど)
・装置内モジュール(例えば、機構A、機構Bなど)
・装置運転時間
・装置ステータス属性(例えば、正常、異常など)
・装置ログ属性(例えば、正常、異常など)
・デバイスベンダ(例えば、A社、B社など)
・デバイスプロファイル(例えば、コントローラ、リモートI/O、センサ、サーボなど)
・デバイス名称
・変数属性(例えば、名称、サイズ、入出力、データ型など)
・デバイス運転時間や動作回数(例えば、接点ON/OFF回数など)
・装置や工程についての任意の識別値
ユーザは上述したような項目のうち1または複数を任意に指定して、指定された条件を満たすエイリアスのみを自動的に生成できるようにしてもよい。
【0156】
このようなフィルタリングを実装することで、以下のような利点がある。
すなわち、目的や用途に応じて必要なエイリアスのみが生成されるので、エイリアスを用いたシステムの設計や製作に要する工数を削減できる。
【0157】
また、指定された条件に合致するエイリアスのみが生成されるので、エイリアスの生成に係る時間を短縮できるとともに、エイリアスの生成時に生じるネットワーク負荷を低減できる。
【0158】
このように、中継装置100は、予め設定された条件に合致する、エイリアス名(第1の文字列)とアクセスパスなどの文字列(第2の文字列)との組を生成するようにしてもよい(図5に示すエイリアス設定モジュール152)。
【0159】
(f3:エイリアスの選択および登録)
上述したエイリアスの自動生成処理においては、基本的には、アクセス可能なデータおよびデバイスのすべてについてアクセスパスの候補が生成されることになる。その後、生成されたエイリアスの候補のうち、ユーザが任意に指定したものだけをエイリアス定義180に登録するようにしてもよい。
【0160】
図13は、本実施の形態に係る制御システム1におけるエイリアスを選択するためのユーザインターフェイス画面190の一例を示す模式図である。図13を参照して、ユーザインターフェイス画面190は、生成されたエイリアスの候補の一覧196が表示されている。ユーザは、条件入力フォーム192に所望の条件を入力すると、エイリアスの候補の一覧196のうち入力された条件に合致する候補のチェックボックス194がチェックされる。
【0161】
最終的に、ユーザがOKボタン198を選択すると、選択された時にチェックされていたエイリアスの候補がエイリアス定義180に登録される。
【0162】
図14は、本実施の形態に係る制御システム1におけるエイリアスの選択および登録に係る処理手順を示すフローチャートである。図14に示す各ステップは、典型的には、中継装置100のプロセッサ102が中継処理プログラム124を実行することで実現される。
【0163】
図14を参照して、中継装置100は、生成したエイリアスの候補の一覧を含むユーザインターフェイス画面を出力する(ステップS150)。中継装置100は、条件入力フォームに入力された条件を受け付けると(ステップS152)、入力された条件に合致するエイリアスを抽出する(ステップS154)。そして、中継装置100は、抽出したエイリアスに対応するチェックボックスをチェックする(ステップS156)。
【0164】
最終的に、中継装置100は、ユーザによるOKボタンの選択を受けて、チェックされているエイリアスをエイリアス定義180に登録する(ステップS158)。そして、エイリアスの登録処理は終了する。
【0165】
このようなエイリアスの登録処理を実装することで、以下のような利点がある。
すなわち、自動的に生成された多数のエイリアスのうち、ユーザが必要なエイリアスのみを適宜抽出してエイリアス定義180に登録できる。このように、中継装置100は、生成されたエイリアス名(第1の文字列)とアクセスパスなどの文字列(第2の文字列)との組のうち、任意に選択された組のみをエイリアス定義180に登録するようにしてもよい(図5に示すエイリアス設定モジュール152)。
【0166】
(f4:外部装置での実行形態)
上述の説明では、エイリアスのフィルタリング、選択および登録などの処理を中継装置100が実行する典型例を示したが、これに限らず、中継装置100が提供する機能の少なくとも一部を外部の情報処理装置(例えば、開発支援装置など)が提供するようにしてもよい。
【0167】
<G.エイリアスの動的更新>
上述したように、エイリアス定義180には、エイリアス名と文字列とが対応付けて格納される。エイリアス定義180へのエイリアスの登録後、対象の制御システム1の構成が変更される場合がある。このような場合においては、エイリアス名および/またはエイリアスパスを更新する必要がある。このようなエイリアスの更新処理の一例について説明する。
【0168】
図15は、本実施の形態に係る制御システム1におけるエイリアスの更新例を示す模式図である。図15(A)には、ネットワークアドレスなどのネットワーク構成を変更する例を示す。図15(B)には、制御装置内のモジュールを変更する例を示す。
【0169】
図15(A)を参照して、例えば、制御装置のネットワークアドレス(IPアドレス)を「192.168.1.XX」から「192.168.2.XX」に変更したとする。すると、エイリアス名186に対応付けられた文字列188の対象部分を更新する必要がある。
【0170】
図15(B)を参照して、制御装置内のモジュールを変更したとする。すると、文字列188の対象部分を更新する必要があるとともに、対応付けられたエイリアス名186についても更新が必要となる。すなわち、エイリアス名186として、対象のモジュールを示す文字列を用いている場合には、対象のモジュールの変更に応じて、文字列も更新することが必要になる。
【0171】
上述したような制御システム1の構成の変更などは、段取り替えや装置の入れ替えなどによって発生し得る。そして、制御システム1の構成が変更されると、エイリアスを構成するエイリアス名186および文字列188の更新が必要となる。以下、エイリアスを更新する方法の一例について説明する。
【0172】
図16は、本実施の形態に係る制御システム1におけるネットワーク構成の変更に応じてエイリアスを更新する処理例を示す模式図である。図16を参照して、制御装置200または中継装置100に接続された開発支援装置は、制御システム1のネットワーク構成を設定および変更するためのユーザインターフェイス画面600を提供する。
【0173】
ユーザは、ユーザインターフェイス画面600上で制御装置200のネットワークアドレス(IPアドレス)を設定あるいは変更することができる。より具体的には、ユーザインターフェイス画面600は、各制御装置200のネットワークアドレスの設定を受け付けるための設定ダイアログ602を表示する。開発支援装置から制御装置200へ新たな設定が提供されることで、制御装置200のネットワークアドレスが変更される。
【0174】
このようなネットワークアドレスの変更に伴って、中継装置100は、エイリアス名186に対応付けられた文字列188の対象部分を更新する。
【0175】
図17は、本実施の形態に係る制御システム1の制御装置200内のモジュールの変更に応じてエイリアスを更新する処理例を示す模式図である。図17を参照して、制御装置200または中継装置100に接続された開発支援装置は、制御システム1の制御装置200のモジュール構成を設定および変更するためのユーザインターフェイス画面610を提供する。
【0176】
ユーザは、ユーザインターフェイス画面610上で制御装置200のモジュール構成を設定あるいは変更することができる。より具体的には、ユーザインターフェイス画面610は、選択された制御装置200に接続されたデバイスを視覚的に表示する。そして、ユーザインターフェイス画面610は、追加あるいは変更するモジュールを示すオブジェクトをドラッグアンドドロップ操作を受け付けることができる。このようなドラッグアンドドロップ操作によって、制御装置200のモジュール構成の設定が変更される。開発支援装置から制御装置200へ新たな設定が提供されることで、制御装置200のモジュール構成が変更される。
【0177】
このような制御装置200のモジュール構成の変更に伴って、中継装置100は、エイリアス名186に対応付けられた文字列188の対象部分を更新するとともに、必要に応じて、エイリアス名186についても更新する。
【0178】
上述したようなエイリアスの更新を実現するために、中継装置100は、エイリアスのアクセスパスを相対パス(特定の階層を基準としたパス表現)で管理することが好ましい。相対パスで管理することで、いずれかの階層の構成が変更された場合に、当該変更された階層に関連するアクセスパスをより容易に変更できる。
【0179】
図16および図17に示すように、ユーザによる開発支援装置の操作に連動して、エイリアス名186および文字列188を自動的に更新する処理を実装することで、ユーザがエイリアスを更新する手間を削減できるとともに、エイリアスの更新忘れなどを防止できる。
【0180】
このように、中継装置100は、制御システム1における構成の変更に応じて、エイリアス定義180に含まれるエイリアス名(第1の文字列)とアクセスパスなどの文字列(第2の文字列)との組の内容を更新する更新処理を実行するようにしてもよい。
【0181】
<H.他の実施の形態>
本明細書においては、主として、中継装置100がクエリに応答して、都度アクセス先からデータを取得する構成例について説明したが、中継装置100がデータを一時保存(いわゆる、キャッシュ)するような構成を採用してもよい。さらに、中継装置100は、プロキシのように機能して、制御システム1に含まれる制御装置200およびデバイスから予めデータを取得して、自身のデータベースに格納するようにしてもよい。
【0182】
本明細書においては、主として、制御装置200および表示装置300とは独立した中継装置100がクエリに係る処理を実行する例について説明したが、制御装置200または表示装置300が上述の中継装置100と同様の処理を実行するようにしてもよい。
【0183】
さらに、中継装置100と制御装置200または表示装置300とが連携して、上述したクエリに係る処理を実現するようにしてもよい。この場合には、上述したクエリに係る処理に必要な機能は、中継装置100、制御装置200および表示装置300のうち複数に分散して配置されることになる。
【0184】
さらに、中継装置100が実行するクエリに係る処理を実現するための機能の一部または全部をネットワーク上のクラウドと称されるリソースを用いて実現してもよい。例えば、エイリアス定義180をクラウド上のデータベースに格納するようにしてもよい。
【0185】
上述したように、クエリに係る処理を実現するためのハードウェア構成はどのようなものであってもよく、各時代に応じたハードウェアや要求される性能に応じたハードウェアが適宜選択される。
【0186】
<I.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
1または複数の制御装置(200)を含む制御システム(1)であって、
アクセス要求(500,510,520,530,540,541,548)に従って、前記制御装置または前記制御装置に対する処理を決定する処理部(10:154)と、
前記決定された処理を実行することで取得されたデータを前記アクセス要求の送信元に送信する提供部(40:160,162,164)と、
第1の文字列(182,186)と前記第1の文字列より長い第2の文字列(184,188)との組を少なくとも1つ含む文字列定義(180)を格納する記憶部(30:108)と、
前記文字列定義を参照して、前記アクセス要求に含まれる第1の文字列を対応する第2の文字列に置換する解釈部(20:156)とを備える、制御システム。
[構成2]
前記解釈部は、前記アクセス要求に含まれる特定の文字列(512)と連結された文字列を第1の文字列と解釈する、構成1に記載の制御システム。
[構成3]
前記アクセス要求は、前記制御システムに含まれる前記制御装置または前記デバイスにアクセスするための経路を示すアクセスパスを含む、構成1または2に記載の制御システム。
[構成4]
前記アクセス要求は、前記制御システムに含まれる前記制御装置または前記デバイスから取得されたデータに対する変換処理を特定する変換命令を含む、構成1~3のいずれか1項に記載の制御システム。
[構成5]
前記制御システムに含まれる前記制御装置および前記デバイスを探索して、第1の文字列と第2の文字列との組を生成する生成部(152)をさらに備える、構成1~4のいずれか1項に記載の制御システム。
[構成6]
前記生成部は、予め設定された条件に合致する、第1の文字列と第2の文字列との組を生成する、構成5に記載の制御システム。
[構成7]
前記生成部が生成した第1の文字列と第2の文字列との組のうち、任意に選択された組のみを前記文字列定義に登録する登録部(152)をさらに備える、構成5または6に記載の制御システム。
[構成8]
前記制御システムにおける構成の変更に応じて、前記文字列定義に含まれる第1の文字列と第2の文字列との組の内容を更新する更新部をさらに備える、構成1~7のいずれか1項に記載の制御システム。
[構成9]
1または複数の制御装置(200)を含む制御システム(1)におけるデータ提供方法であって、
第1の文字列と前記第1の文字列(182,186)より長い第2の文字列(184,188)との組を少なくとも1つ含む文字列定義(180)を参照して、アクセス要求(500,510,520,530,540,541,548)に含まれる第1の文字列を対応する第2の文字列に置換するステップ(S50~S60)と、
前記アクセス要求に従って、前記制御装置または前記制御装置に接続されたデバイスに対する処理を決定するステップ(S62)と、
前記決定された処理を実行することで取得されたデータを前記アクセス要求の送信元に送信するステップ(S64~S72)とを備える、データ提供方法。
[構成10]
1または複数の制御装置(200)を含む制御システム(1)に関連付けられたコンピュータで実行されるデータを提供するための中継処理プログラム(124)であって、前記中継処理プログラムは前記コンピュータに、
第1の文字列と前記第1の文字列より長い第2の文字列との組を少なくとも1つ含む文字列定義を参照して、アクセス要求(500,510,520,530,540,541,548)に含まれる第1の文字列を対応する第2の文字列に置換するステップ(S50~S60)と、
前記アクセス要求に従って、前記制御装置または前記制御装置に接続されたデバイスに対する処理を決定するステップ(S62)と、
前記決定された処理を実行することで取得されたデータを前記アクセス要求の送信元に送信するステップ(S64~S72)とを実行させる、中継処理プログラム。
【0187】
<J.利点>
本実施の形態に係る制御システムにおいては、エイリアスを用いてアクセス要求(クエリ)を記述できるので、クエリを生成する手間を削減できる。また、具体的なアクセスパスを秘匿化できるので、セキュリティ性能を向上させることができる。さらに、制御システム1の構成などが変更された場合には、変更後の構成に応じて、エイリアス定義180の登録内容を更新すれば、変更前に使用していたクエリをそのまま使用することもでき、制御システム1の構成の変更に柔軟に対応できる。
【0188】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0189】
1 制御システム、2,4 ネットワーク、6 フィールドネットワーク、10 処理部、20 解釈部、30 記憶部、40 提供部、100 中継装置、102,202 プロセッサ、104 光学ドライブ、105 記録媒体、106,206 主記憶装置、108,208 二次記憶装置、110,212 USBコントローラ、112,114 ネットワークコントローラ、116 入力部、118 表示部、120 バス、122 OS、124 中継処理プログラム、150 インターフェイスモジュール、152 エイリアス設定モジュール、154 クエリ処理モジュール、156 エイリアス解釈モジュール、160 通信処理モジュール、162 データ変換モジュール、164 データ成形モジュール、170 システム情報、171 構成情報、172 デバイスプロファイル、173 索引、180 エイリアス定義、182,186 エイリアス名、184,188 文字列、190,600,610 ユーザインターフェイス画面、192 条件入力フォーム、194 チェックボックス、196 一覧、198 OKボタン、200 制御装置、204 チップセット、210 上位ネットワークコントローラ、214 メモリカードインターフェイス、216 メモリカード、220 フィールドネットワークコントローラ、222 内部バスコントローラ、224 I/Oユニット、231 システムプログラム、232 ユーザプログラム、250 デバイス、300 表示装置、400 情報処理装置、500,510,520,530,540,541,548 クエリ、502 アクセス先記述部、504,505,506,507,508,542,543 クエリ記述部、512 項目、514,524,525,526,527,528,534,536,546 エイリアス、602 設定ダイアログ。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17