(57)【要約】      （修正有）【課題】機能ソフトウェアの開発環境を自由に設定する。【解決手段】システム設計装置４において、データを収集する収集部１１と、データを変換する変換部１２と、データを蓄積する蓄積部１３と、蓄積部で蓄積されたデータを解析して活用する利用部１４と、データをサーバー３及び設備２に送信する送信部１５とを備える。収集部と、変換部と、蓄積部と、送信部では、それぞれ予め用意された、エッジコンピュータの用途に寄らずに共通して利用可能である共通ソフトウェアを用いることを許容する。利用部は、エッジコンピュータの用途に応じて専用で用いられる機能ソフトウェアであって、予め用意された機能ソフトウェア又は新たに作成される機能ソフトウェアのいずれかを用いることを許容する。新たに作成される機能ソフトウェアは、共通ソフトウェアとの間のインターフェースを、予め用意した複数のインターフェースから選択することを許容する。【選択図】図４
2020119190.tif 000002
【特許請求の範囲】
【請求項１】
設備からデータを受け取り、前記データを処理してサーバーへ送付するエッジコンピュータのシステム設計を補助するシステム設計装置であって、
前記データを収集する収集部と、
前記データを変換する変換部と、
前記データを蓄積する蓄積部と、
前記蓄積部で蓄積された前記データを解析して活用する利用部と、
前記データを前記サーバー及び前記設備に送信する送信部と、を備え、
前記収集部と、前記変換部と、前記蓄積部と、前記送信部では、それぞれ予め用意された、エッジコンピュータの用途に寄らずに共通して利用可能である共通ソフトウェアを用いることを許容し、
前記利用部は、前記エッジコンピュータの用途に応じて専用で用いられる機能ソフトウェアであって、予め用意された機能ソフトウェア、または、新たに作成される機能ソフトウェア、のいずれかを用いることを許容し、
前記新たに作成される機能ソフトウェアは、前記共通ソフトウェアとの間のインターフェースを、予め用意した複数のインターフェースから選択することを許容する
システム設計装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システム設計装置に関する。
【背景技術】
【０００２】
近年、設備とサーバーの間に位置するエッジコンピュータが利用されている。例えば、エッジコンピュータでは、ゲートウェイ、データ収集、データ表示、解析判定、設備制御の５つの機能を有する。エッジコンピュータにおいて、これらの機能は、プログラムを実行することによって実現される。
【０００３】
従来、このような分野の技術として、特開２０１８−０５５５６５号公報がある。この公報に記載されたプログラムの作成方法では、２種類の装置で利用されるプログラムを、装置環境に合わせて同時に生成する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１８−０５５５６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、前述した従来のプログラムの作成方法では、ネットワークから実行される第１アプリケーションと、第１アプリケーションから実行される第２アプリケーションと、を開発する環境を提供しているが、開発環境が統一されていた場合、アプリケーションの開発は、開発環境に依存される。従来のエッジコンピュータにおいて、全てのアプリケーションの開発は開発環境下で行われており、例えば、開発環境として提供されているプログラム言語がＣ言語であると、アプリケーションの開発にpythonを用いたい場合であっても、pythonを用いて開発することができないという問題があった。
本発明は、共通ソフトウェア部分と用途ごとの機能ソフトウェア部分に分割し、それぞれのインターフェースを定義することにより、用途にあった開発環境を設定できるシステム設計装置を提供するものである。
【課題を解決するための手段】
【０００６】
本発明にかかるシステム設計装置は、設備からデータを受け取り、前記データを処理してサーバーへ送付するエッジコンピュータのシステム設計を補助するシステム設計装置であって、前記データを収集する収集部と、前記データを変換する変換部と、前記データを蓄積する蓄積部と、前記蓄積部で蓄積された前記データを解析して活用する利用部と、前記データを前記サーバー及び前記設備に送信する送信部と、を備え、前記収集部と、前記変換部と、前記蓄積部と、前記送信部では、それぞれ予め用意された、エッジコンピュータの用途に寄らずに共通して利用可能である共通ソフトウェアを用いることを許容し、前記利用部は、前記エッジコンピュータの用途に応じて専用で用いられる機能ソフトウェアであって、予め用意された機能ソフトウェア、または、新たに作成される機能ソフトウェア、のいずれかを用いることを許容し、前記新たに作成される機能ソフトウェアは、前記共通ソフトウェアとの間のインターフェースを、予め用意した複数のインターフェースから選択することを許容する。
これにより、共通ソフトウェアと機能ソフトウェアのインターフェースを予め規定した開発環境下で機能ソフトウェアの開発を行うことができる。
【発明の効果】
【０００７】
これにより、機能ソフトウェアの開発環境を自由に設定することができる。
【図面の簡単な説明】
【０００８】
【図１】エッジコンピュータが利用される状態を示した図である。
【図２】エッジコンピュータの用途ごとの構成例を示した図である。
【図３】エッジコンピュータの用途に応じて変更されるエッジコンピュータ用のソフトウェアの概要を示した図である。
【図４】システム設計装置において階層分けされた状態を示す図である。
【図５】階層分けされた状態の詳細を示す図である。
【図６】データフローの作成を示す図である。
【図７】エッジコンピュータを導入する手順を示したフロー図である。
【図８】インターフェースにファイル連携を用いる場合であってタグ付けができない場合のフォーマットの一例を示した図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照して本発明の実施の形態について説明する。図１に示すように、エッジコンピュータ１は、設備２と、サーバー３との間で、データの送受信を中継するように配置されているものとする。例えばエッジコンピュータ１は、設備２から受信したデータを処理してサーバー３に送付する。また、エッジコンピュータ１には、ソフトウェアを用いたデータフローを生成するとともに、ソフトウェアの開発が可能とすることでシステム設計を補助できるシステム設計装置４が設けられている。
【００１０】
例えば、システム設計装置４で開発された機能ソフトウェアや、あらかじめ蓄積された機能ソフトウェア及び共通ソフトウェアを、エッジコンピュータ１で利用するものとする。ここで、共通ソフトウェアとは、エッジコンピュータ１の用途に寄らずに共通して利用可能であるソフトウェアであり、機能ソフトウェアとはエッジコンピュータ１の用途に応じて専用で用いられるソフトウェアであるものとする。
【００１１】
ここで、エッジコンピュータ１の用途は、ゲートウェイ、データ収集、表示、解析判定、設備制御の５つに分類することができる。
【００１２】
図２（ａ）に示すように、エッジコンピュータ（エッジＰＣ）１は、ゲートウェイ用途として用いる場合には、単体又は複数の設備（ＰＬＣ）と、プラットフォーム（サーバー）と、の間をネットワークでつなぎ、データのやり取りを行うようにする。
【００１３】
この場合、図３（ａ）に示すように、エッジコンピュータ１では、設備専用コマンドが入力されると、データにタイムスタンプを付与し、タグ付けを行って、ファイル化する。これらは他の用途としてエッジコンピュータ１を用いる場合にも共通して実行される処理である。さらにエッジコンピュータ１は、ＦＴＰ(File Transfer Protocol)を用いて、プラットフォームに送信する。これも、他の用途としてエッジコンピュータ１を用いる場合にも、共通して実行される処理である。
【００１４】
図２（ｂ）に示すように、エッジコンピュータ１は、データ収集用途として用いる場合には、単体又は複数の設備からデータを収集し、データをファイル化する等の変換を実行し、プラットフォーム（サーバー）に送信する。
【００１５】
この場合、図３（ｂ）に示すように、エッジコンピュータ１では、ＦＴＰを介してデータが入力されると、データにタイムスタンプを付与し、タグ付けする。これらは他の用途としてエッジコンピュータ１を用いる場合にも共通して実行される処理である。さらにエッジコンピュータ１は、蓄積したデータについて、ＦＴＰを用いてプラットフォームに送信する。これも、他の用途としてエッジコンピュータ１を用いる場合にも、共通して実行される処理である。
【００１６】
図２（ｃ）に示すように、エッジコンピュータ１は、表示する用途として用いる場合には、複数の設備からデータを収集し、データの加工を行って画面を定期的に更新しながら画面を表示する。なおこの画面は、プラットフォームを通じて共有することによって、他の環境下の画面に表示させることができる。
【００１７】
この場合、図３（ｃ）に示すように、エッジコンピュータ１では、設備専用コマンドが入力されると、タグ付けする。これらは他の用途としてエッジコンピュータ１を用いる場合にも共通して実行される処理である。さらにエッジコンピュータ１は、表示アプリケーション（表示ＡＰＰ）を用いて、画面表示の作成を行う。これは、他の用途としてエッジコンピュータ１を用いる場合には無いものであり、用途によって異なる専用のアプリケーションである。さらにエッジコンピュータ１は、表示ＡＰＰにより作成した画面を、ＨＴＴＰ(Hypertext Transfer Protocol)を用いて表示用のディスプレイや、プラットフォームに送信する。これも、他の用途としてエッジコンピュータ１を用いる場合にも、共通して実行される処理である。
【００１８】
図２（ｄ）に示すように、エッジコンピュータ１は、エッジコンピュータ１は、解析判定の用途として用いる場合には、設備からデータを収集し、データの解析や判定を行って、設備に解析や判定を行って、設備側に判定や解析結果を返す。また、エッジコンピュータ１は、解析や判定を行ったデータを、プラットフォームでアルゴリズムを更新するための学習データとして送信することができる。さらに、エッジコンピュータ１は、プラットフォームにおいて学習データを用いて更新されたアルゴリズムを用いて、判定を行うことができる。
【００１９】
この場合、図３（ｄ）に示すように、エッジコンピュータ１では、ＦＴＰを介してデータを送受信する。これは他の用途としてエッジコンピュータ１を用いる場合にも共通して実行される処理である。さらにエッジコンピュータ１は、解析アプリケーション（解析ＡＰＰ）を用いて解析を行うことや、判定アプリケーション（判定ＡＰＰ）を用いて解析を行う。これらは、他の用途としてエッジコンピュータ１を用いる場合には無いものであり、用途によって異なる専用のアプリケーションである。さらにエッジコンピュータ１は、解析ＡＰＰにより解析したデータを学習データとすることや、プラットフォームで更新されたアルゴリズムのプログラムを、ＦＴＰを用いて送受信する。これも、他の用途としてエッジコンピュータ１を用いる場合にも、共通して実行される処理である。
【００２０】
図２（ｅ）に示すように、エッジコンピュータ１は、設備制御の用途として用いる場合には、設備からデータを収集し、操作パネルや操作画面にデータを表示し、人が操作パネル等を操作した操作信号を設備に返すことで設備制御を行う。なお、エッジコンピュータ１では、内部に保存されたソフトウェアを用いて、設備の制御を行っても良い。
できる。
【００２１】
この場合、図３（ｅ）に示すように、エッジコンピュータ１では、設備との間で設備専用コマンドを送受信する。これは他の用途としてエッジコンピュータ１を用いる場合にも共通して実行される処理である。さらにエッジコンピュータ１は、操作制御アプリケーション（操作制御ＡＰＰ）を用いて、設備を制御するためのコマンドの生成を行う。これは、他の用途としてエッジコンピュータ１を用いる場合には無いものであり、用途によって異なる専用のアプリケーションである。さらにエッジコンピュータ１は、ＨＴＴＰを用いて操作パネルとの間でデータの送受信を行う。これも、他の用途としてエッジコンピュータ１を用いる場合にも、共通して実行される処理である。
【００２２】
図４に示すように、システム設計装置４では、エッジコンピュータ１で発揮させる機能、すなわちソフトウェアごとの階層分けを行う。具体的には、システム設計装置４は階層として、データの収集を行う収集部１１と、データの変換を行う変換部１２と、データを蓄積する蓄積部１３と、蓄積されたデータを利用する利用部１４と、設備２やサーバー３にデータを送信する送信部１５と、を定義する。
【００２３】
なおエッジコンピュータ１では、収集部１１と、変換部１２と、蓄積部１３と、送信部１５について、それぞれの機能を発揮させる場合には、それぞれの階層ごとに登録された共通ソフトウェアを用いる。また、エッジコンピュータ１では、利用部１４の機能を発揮させる場合には、エッジコンピュータ１の用途に応じて用意される機能ソフトウェアを用いる。
【００２４】
図５に示すように、収集部１１では、オープンプロトコルを用いてデータの収集を行う。例えば、オープンプロトコルとして、ＦＴＰ、ＯＰＣ(OLE for Process Control)、ＨＴＴＰ、ＴＣＰ／ＩＰベース機器対応プロトコル等、機器対応プロトコルを用いることができる。なお、収集部１１で用いることができるプロトコルは、これらに限られない。
【００２５】
変換部１２では、データの変換を行う。例えば変換部１２では、収集部１１で収集したデータを蓄積部１３に蓄積する際に行うデータ変換や、利用部１４で操作したデータを送信部１５から送信する際のデータ変換を行う。例えば、変換部１２で用いられる共通ソフトウェアにより、データのファイル化、データの構造変換、データのタグ付け、データのタイムスタンプの付与などを行うことができる。
【００２６】
なお例えば、変換部１２で用いられる共通ソフトウェアは、収集部１１と蓄積部１３の間のデータの変換に用いられるとともに、利用部１４と送信部１５の間のデータ変換に用いられる。
【００２７】
蓄積部１３は、データの蓄積を行う。例えば蓄積部１３には、メイン領域と、バックアップ領域と、データ管理コンポーネントが形成されている。メイン領域には、ハードディスク（ＨＤＤ：hard disk drive）等が設けられており、収集部１１により収集されたデータや、利用部１４で解析や判定されたデータや、利用部１４で用いる解析アルゴリズムが保存される。
【００２８】
バックアップ領域では、外部機器として用いる、外付けＨＤＤ、外付けＳＳＤ（Solid State Drive）、ＵＳＢ（Universal Serial Bus）メモリ、ＮＡＳ（Network Attached Storage）により容量を拡張できる。またバックアップ領域では、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）を組んで冗長性を確保することや、バックアップルールを記憶できる。
【００２９】
データ管理コンポーネントでは、メイン領域やバックアップ領域に蓄積されたデータの圧縮や、削除などを行うことができる。
【００３０】
利用部１４では、データを解析して活用するための機能ソフトウェアを有する。例えば利用部１４では機能ソフトウェアとして、エッジコンピュータ１を解析判定の用途として用いる場合に利用する判定ＡＰＰや解析ＡＰＰ、表示の用途として用いる場合に利用する表示ＡＰＰ、設備制御の用途として用いる場合に利用する操作制御ＡＰＰなどを有している。
【００３１】
なお例えば、判定ＡＰＰでは、対象となるデータに対して閾値判定を行うための閾値判定ＡＰＰや、ＡＩ（artificial intelligence）を用いたＡＩ判定ＡＰＰなどを用いることができる。
【００３２】
なお、システム設計装置４では、利用部１４で用いる機能ソフトウェアを開発することができる。このとき、利用者は、インターフェース（I/F）以外のソフトウェアの部分を、機能ソフトウェアとして開発することができる。すなわち利用者は、開発言語などの開発環境を限定することなく開発することができる。
【００３３】
なお、機能ソフトウェアと共通ソフトウェアとの間で、インターフェースが定義されている。インターフェースについては後に詳述する。
【００３４】
送信部１５は、オープンプロトコルを用いてデータ送信を行う。例えば、オープンプロトコルとして、ＦＴＰ、ＯＰＣ、ＨＴＴＰ、ＭＱＴＴ（Message Queuing Telemetry Transport）プロトコルを用いることができる。なお、送信部１５で用いることができるプロトコルは、これらに限られない。
【００３５】
図６に、システム設計装置４において、共通ソフトウェア（共通部品）を組み合わせて、データフローを作成する状態を示す。
【００３６】
システム設計装置４では、収集部１１、変換部１２、蓄積部１３と、送信部１５において、エッジコンピュータ１の用途が異なる場合でも共通して実行する可能性がある処理を、共通ソフトウェアとしてあらかじめ登録しておく。
【００３７】
ここでは、収集部１１用に、ＦＴＰ、ＨＴＴＰ、ＴＣＰ／ＩＰベース機器対応プロトコルの３つの共通ソフトウェアがあり、蓄積部１３用に、圧縮、蓄積の２つの共通ソフトウェアが有り、変換部１２用に、ファイル化、タグ付け、タイムスタンプの３つの部品があるものとする。
【００３８】
システム設計装置４では、これらの共通ソフトウェアを複数選択して接続することで、データフローを作成する。例えば、設備２からのデータ収集のためにＴＣＰ／ＩＰベース機器対応プロトコルとタイムスタンプの付与を用いるものとし、サーバー３との通信にＦＴＰを用いるものとする。
【００３９】
ここで例えば、タイムスタンプ付与後のデータについては、共通ソフトウェアのインターフェースと、利用部１４で用いる機能ソフトウェアのインターフェースと、が対応するように定義しておく。これにより、共通ソフトウェアと機能ソフトウェアを、１つのデータフロー内で連携させることができる。
【００４０】
同様に、例えば送信部１５により送信を行う際にＦＴＰを用いる際にも、ＦＴＰ側で用いる共通ソフトウェアのインターフェースと、利用部１４で用いる機能ソフトウェアのインターフェースと、が対応するように定義しておくことで、共通ソフトウェアと機能ソフトウェアを連携させることができる。
【００４１】
ここで図７を参照し、ＩｏＴ（Internet of Things）システム内において、システム設計装置４でデータフロー等を設計し、エッジコンピュータ１を導入する際の処理フローの一例について説明する。
【００４２】
利用者は、エッジコンピュータ１に記憶されているソフトウェアを確認する（ステップＳ１）。
【００４３】
利用者は、機能ソフトウェアとして必要なソフトウェアが予め用意されているか、あるいは、機能ソフトウェアを使用しない用途でエッジコンピュータ１を用いるか、を確認する（ステップＳ２）。必要な機能ソフトウェアが準備されている、又は、機能ソフトウェアを使用しない場合には（ステップＳ２でＹｅｓ）、ステップＳ４に進む。必要な機能ソフトウェアが準備されておらず、かつ、機能ソフトウェアを使用する用途でエッジコンピュータ１を用いる場合には（ステップＳ２でＮｏ）、ステップＳ３に進む。
【００４４】
利用者は、共通ソフトウェアと、機能ソフトウェアを連携させるためのインターフェース仕様に則り、システム設計装置４を用いて、新たな機能ソフトウェアを開発する（ステップＳ３）。なお利用者は、開発環境を自由に設定して、機能ソフトウェアを開発できる。その後、ステップＳ４に進む。
【００４５】
利用者は、共通ソフトウェアで処理する箇所について、共通ソフトウェアの組み合わせによるデータフローが準備されているか否か確認する（ステップＳ４）。データフローが準備されていれば（ステップＳ４でＹｅｓ）、ステップＳ６に進む。データフローが準備されていなければ（ステップＳ４でＮｏ）、ステップＳ５に進む。
【００４６】
利用者は、システム設計装置４を用いて、設備２や用途にあわせたデータフローを作成する（ステップＳ５）。その後、ステップＳ６に進む。
【００４７】
共通ソフトウェアの組み合わせのみにデータフロー、あるいは、共通ソフトウェアのデータフローに機能ソフトウェアを組み合わせたデータフローをエッジコンピュータ１に適用する（ステップＳ６）。ここで、共通ソフトウェアのデータフローに機能ソフトウェアを組み合わせたデータフローとは、共通ソフトウェアの組み合わせによるデータフローに既存の機能ソフトウェアを追加したもの、又は、共通ソフトウェアの組み合わせによるデータフローに新たに開発した機能ソフトウェアを組み合わせたものである。
【００４８】
エッジコンピュータ１を、例えば設備２とサーバー３の間などに設置し、動作確認を行う（ステップＳ７）。
【００４９】
次に、共通ソフトウェアと機能ソフトウェアとの間のインターフェース定義について説明する。
【００５０】
機能ソフトウェアでは、用途に合わせた開発環境で開発を行った後に、共通ソフトウェアと協働させるため、共通ソフトウェアとの間のインターフェース定義を行う。言い換えると、新たなソフトウェアである機能ソフトウェアを開発する際には、共用ソフトウェアと間のインターフェースとして、予め定めておいた複数のインターフェースのうちいずれを用いるか選択して利用する。
【００５１】
例えば、インターフェースとして、ファイル連携、ＯＰＣ（OLE for Process Control）連携、websocket通信連携の３つから選択可能であり、開発環境に応じて選択することができる。以下では、これらの３種類のインターフェースのそれぞれについて説明する。
【００５２】
インターフェースとしてファイル連携を用いる場合、その形式は、Json(JavaScript Object Notation)/ymlなどのデータにタグ付けを行える形式とする。または、csv/excelなどのタグ付けを行えないデータを用いる場合には、図８に示すようなフォーマットとする。
【００５３】
すなわち、データのタグ付けを行えない形式では、行の先頭にはデータタグをつけておき、２行目以下に複数のデータを入力していく形式とする。ここで、コメントとして入力したい行では、入力内容の先頭に＃マークをつけることとする。さらに、列方向において、データ列を２以上の複数列とする場合には、夫々の列に対応する複数のデータタグを用意しておく。そして、１列目であるデータタグ１に属するデータ列ではデータとしてタイムスタンプを入力するものとし、２列目以降を各データタグに属するそれぞれのデータ列とする。
【００５４】
なお、蓄積部１３において、共通ソフトウェアへの入力ファイルの保存場所と、機能ソフトウェアでのみ使用するファイルの保存場所と、サーバー３に送信するファイルの保存場所は、あらかじめ別となるように規定しておくことができる。
【００５５】
インターフェースとしてＯＰＣ通信連携を用いる場合、機能ソフトウェアにはＯＰＣサーバー、クライアントのどちらでも選択可能である。ＯＰＣ通信は、産業用分野でデータ交換を目的とする標準規格であり、効率の良いデータ交換をはかることができる。
【００５６】
インターフェースとして、websocket通信連携を用いる場合、主に、機能ソフトウェアをウェブアプリケーションとして作成した場合に推奨される。これは、websocketがウェブアプリケーションにおいて双方向通信を実現するための技術規格であるためである。
【００５７】
このようにして、システム全体において開発要素が低い収集部１１、変換部１２、蓄積部１３、送信部１５の機能は、共通ソフトウェアを組み合わせて構成し、開発要素の多い利用部１４では、インターフェースを除き、機能ソフトウェアを利用者に都合のよい開発環境下で開発することができる。また、インターフェースについては、予め複数のうちから選択できる状態で定義しておくことで、共通ソフトウェアと機能ソフトウェアの間の調整作業の低減をはかることができる。したがって、開発環境を限定することなく、容易にアプリケーションを開発することができる。
【００５８】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【００５９】
１            エッジコンピュータ
２            設備
３            サーバー
４            システム設計装置
１１            収集部
１２            変換部
１３            蓄積部
１４            利用部
１５            送信部
【図１】
2020119190.tif 000003
【図２】
2020119190.tif 000004
【図３】
2020119190.tif 000005
【図４】
2020119190.tif 000006
【図５】
2020119190.tif 000007
【図６】
2020119190.tif 000008
【図７】
2020119190.tif 000009
【図８】
2020119190.tif 000010