(57)【要約】既存の製造システムに大幅な改変を加えることなく、製造システムにおける異常を検出する。データ分析装置は、製造制御装置と製造装置との間で伝送されるパケットを受信する受信機と、受信されたパケットのヘッダに含まれるＩＰアドレス及びポート番号から、受信されたパケットのペイロードに含まれるデータの種類を求める解析器と、解析器で求められた前記データの種類に基づいて、前記データの種類に対応する構文又は規則を選択する選択器と、ペイロードに含まれるデータが、前記データの種類に対応する構文又は規則に従っていない場合に、製造システムに異常があると判定する判定器とを有する。
2018181253.tif 000002
【特許請求の範囲】
【請求項１】
製造装置と、前記製造装置を制御する製造制御装置と、を有する製造システムにおいて伝送されるデータを分析するデータ分析装置であって、
前記製造制御装置と前記製造装置との間で伝送される第１パケットを受信する受信機と、
受信された前記第１パケットのヘッダに含まれるＩＰアドレス及びポート番号から、受信された前記第１パケットのペイロードに含まれるデータの種類を求める解析器と、
前記解析器で求められた前記データの種類に基づいて、前記データの種類に対応する構文又は規則を選択する選択器と、
前記ペイロードに含まれるデータが、前記データの種類に対応する構文又は規則に従っていない場合に、前記製造システムに異常があると判定する判定器と
を備えるデータ分析装置。
【請求項２】
請求項１に記載のデータ分析装置において、
前記ペイロードには、制御コマンドが含まれ、
前記構文は、前記制御コマンドの構文である
データ分析装置。
【請求項３】
請求項１に記載のデータ分析装置において、
前記ペイロードには、前記製造装置の稼働実績通知が含まれ、
前記構文は、前記稼働実績通知の構文である
データ分析装置。
【請求項４】
請求項１に記載のデータ分析装置において、
前記規則には、前記第１パケットのペイロードに含まれるデータが示す情報と、前記第１パケット以前に受信された第２パケットのペイロードに含まれるデータが示す情報との順序が規定されている
データ分析装置。
【請求項５】
請求項４に記載のデータ分析装置において、
前記第１パケットのペイロードには、第１制御コマンドが含まれ、
前記第２パケットのペイロードには、第２制御コマンドが含まれ、前記第１制御コマンドは、前記第２制御コマンドの次のコマンドであり、
前記規則には、前記第１制御コマンドの種類と前記第２制御コマンドの種類との順序が規定されている
データ分析装置。
【請求項６】
請求項４に記載のデータ分析装置において、
前記第１パケットのペイロードには、第１稼働実績情報が含まれ、
前記第２パケットのペイロードには、第２稼働実績情報が含まれ、前記第１稼働実績情報は、前記第２稼働実績情報の次の通知であり、
前記規則には、前記第１稼働実績情報の種類と前記第２稼働実績情報の種類との順序が規定されている
データ分析装置。
【請求項７】
請求項１に記載のデータ分析装置において、
前記第１パケットのペイロードには、制御コマンドが含まれ、
前記規則には、前記製造装置が第１状態にある場合に、前記製造装置が第２状態に遷移するための前記制御コマンドが発生する予定確率が規定されており、
前記判定器は、前記製造装置が前記第１状態にある場合に、前記制御コマンドが発生する実際の確率を求め、前記実際の確率と前記予定確率との差が所定の値より大きい場合に、前記製造システムに異常があると判定する
データ分析装置。
【請求項８】
請求項１に記載のデータ分析装置において、
前記第１パケットのペイロードには、稼働実績情報が含まれ、
前記規則には、前記製造装置が第１状態にある場合に、前記製造装置が第２状態に遷移する際に前記稼働実績情報が発生する予定確率が規定されており、
前記判定器は、前記製造装置が前記第１状態にある場合に、前記稼働実績情報が発生する実際の確率を求め、前記実際の確率と前記予定確率との差が所定の値より大きい場合に、前記製造システムに異常があると判定する
データ分析装置。
【請求項９】
請求項１に記載のデータ分析装置において、
前記規則には、前記製造装置が第１状態にある場合に、前記製造装置の第２状態への遷移が発生する予定確率が規定されており、
前記判定器は、前記製造装置が前記第１状態にある場合に、前記製造装置の前記第２状態への遷移が発生する実際の確率を求め、前記実際の確率と前記予定確率との差が所定の値より大きい場合に、前記製造システムに異常があると判定する
データ分析装置。
【請求項１０】
請求項１に記載のデータ分析装置において、
前記第１パケットのペイロードには、第１制御コマンドが含まれ、
前記第１パケット以前に受信された第２パケットのペイロードには、第２制御コマンドが含まれ、前記第１制御コマンドは、前記第２制御コマンドの次のコマンドであり、
前記規則には、前記第２制御コマンドが発生した場合に、前記第２制御コマンドの次に前記第１制御コマンドが発生する予定確率が規定されており、
前記判定器は、前記第２制御コマンドが発生した場合に、前記第２制御コマンドの次に前記第１制御コマンドが発生する実際の確率を求め、前記実際の確率と前記予定確率との差が所定の値より大きい場合に、前記製造システムに異常があると判定する
データ分析装置。
【請求項１１】
請求項１に記載のデータ分析装置において、
前記第１パケットのペイロードには、第１稼働実績情報が含まれ、
前記第１パケット以前に受信された第２パケットのペイロードには、第２稼働実績情報が含まれ、前記第１稼働実績情報は、前記第２稼働実績情報の次の情報であり、
前記規則には、前記第２稼働実績情報が発生した場合に、前記第２稼働実績情報の次に前記第１稼働実績情報が発生する予定確率が規定されており、
前記判定器は、前記第２稼働実績情報が発生した場合に、前記第２稼働実績情報の次に前記第１稼働実績情報が発生する実際の確率を求め、前記実際の確率と前記予定確率との差が所定の値より大きい場合に、前記製造システムに異常があると判定する
データ分析装置。
【請求項１２】
請求項１に記載のデータ分析装置において、
前記第１パケットのペイロードには、制御コマンドが含まれ、
前記規則には、前記製造装置が第１状態になってから、前記製造装置が第２状態に遷移するための前記制御コマンドが出力されるまでの予定時間が規定されており、
前記判定器は、前記製造装置が前記第１状態になってから、前記制御コマンドが受信されるまでの実際の時間を求め、前記実際の時間と前記予定時間との差が所定の値より大きい場合に、前記製造システムに異常があると判定する
データ分析装置。
【請求項１３】
請求項１に記載のデータ分析装置において、
前記第１パケットのペイロードには、稼働実績情報が含まれ、
前記規則には、前記製造装置が第１状態になってから、前記製造装置が第２状態に遷移する際に出力されるべき前記稼働実績情報が出力されるまでの予定時間が規定されており、
前記判定器は、前記製造装置が前記第１状態になってから、前記稼働実績情報が出力されるまでの実際の時間を求め、前記実際の時間と前記予定時間との差が所定の値より大きい場合に、前記製造システムに異常があると判定する
データ分析装置。
【請求項１４】
請求項１に記載のデータ分析装置において、
前記規則には、前記製造装置が第１状態になってから、前記製造装置が第２状態に遷移するまでの予定時間が規定されており、
前記判定器は、前記製造装置が前記第１状態になってから、前記製造装置が前記第２状態に遷移するまでの実際の時間を求め、前記実際の時間と前記予定時間との差が所定の値より大きい場合に、前記製造システムに異常があると判定する
データ分析装置。
【請求項１５】
請求項１に記載のデータ分析装置において、
前記第１パケットのペイロードには、第１制御コマンドが含まれ、
前記第１パケット以前に受信された第２パケットのペイロードには、第２制御コマンドが含まれ、前記第１制御コマンドは、前記第２制御コマンドの次のコマンドであり、
前記規則には、前記第２制御コマンドが出力されてから、前記第１制御コマンドが出力されるまでの予定時間が規定されており、
前記判定器は、前記第２制御コマンドが出力されてから、前記第１制御コマンドが出力されるまでの実際の時間を求め、前記実際の時間と前記予定時間との差が所定の値より大きい場合に、前記製造システムに異常があると判定する
データ分析装置。
【請求項１６】
請求項１に記載のデータ分析装置において、
前記第１パケットのペイロードには、第１稼働実績情報が含まれ、
前記第１パケット以前に受信された第２パケットのペイロードには、第２稼働実績情報が含まれ、前記第１稼働実績情報は、前記第２稼働実績情報の次の情報であり、
前記規則には、前記第２稼働実績情報が出力されてから、前記第１稼働実績情報が出力されるまでの予定時間が規定されており、
前記判定器は、前記第２稼働実績情報が出力されてから、前記第１稼働実績情報が出力されるまでの実際の時間を求め、前記実際の時間と前記予定時間との差が所定の値より大きい場合に、前記製造システムに異常があると判定する
データ分析装置。
【請求項１７】
請求項１に記載のデータ分析装置において、
前記規則を、前記受信機によって受信された複数のパケットのペイロードから学習する
データ分析装置。
【請求項１８】
製造装置と、前記製造装置を制御する製造制御装置と、を有する製造システムにおいて伝送されるデータを分析するデータ分析方法であって、
前記製造制御装置と前記製造装置との間で伝送されるパケットを受信することと、
受信された前記パケットのヘッダに含まれるＩＰアドレス及びポート番号から、受信された前記パケットのペイロードに含まれるデータの種類を求めることと、
求められた前記データの種類に基づいて、前記データの種類に対応する構文又は規則を選択することと、
前記ペイロードに含まれるデータが、前記データの種類に対応する構文又は規則に従っていない場合に、前記製造システムに異常があると判定することと
を備えるデータ分析方法。
【請求項１９】
製造装置と、前記製造装置を制御する製造制御装置と、を有する製造システムにおいて伝送されるデータを分析するデータ分析方法をコンピュータに実行させるデータ分析プログラムであって、
前記データ分析方法は、
前記製造制御装置と前記製造装置との間で伝送されるパケットを受信することと、
受信された前記パケットのヘッダに含まれるＩＰアドレス及びポート番号から、受信された前記パケットのペイロードに含まれるデータの種類を求めることと、
求められた前記データの種類に基づいて、前記データの種類に対応する構文又は規則を選択することと、
前記ペイロードに含まれるデータが、前記データの種類に対応する構文又は規則に従っていない場合に、前記製造システムに異常があると判定することと
を備える
データ分析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コンピュータネットワーク上のデータの分析技術に関し、特に製造システムにおけるデータの分析技術に関する。
【背景技術】
【０００２】
近年、インターネットなどの通信ネットワークを介して工場内外のモノやサービスと連携することで、生産性を向上したり、今までにない価値を生み出したり、新しいビジネスモデルを構築したりすることを目指した取り組みが活発に行われている。【０００３】
一方、インターネット空間では、ハッキングやマルウェアなどによるサイバー攻撃が活発化している。サイバー攻撃による不正侵入や情報漏えいなどの事例は年々増加しており、工場の製造システムにおいても、生産停止や設備破壊の事例が報告されている。このため、コンピュータネットワークを有する製造システムに生じた異常を検出することにより、製造システムのセキュリティレベルを向上することが必要である。【０００４】
例えば、特許文献１には、制御システムに対するセキュリティレベル向上の仕組みの例が記載されている。特許文献１のシステムは、複数の制御システムのそれぞれに対応する監視部から発信される異常通知を集計して、異常が疑われた制御システムのレピュテーションを評価する。評価結果から基準に照らして異常であると判定された場合には、異常が疑われた制御システムを稼働させている保護領域に対し、少なくともその保護領域内からのアウトバウンドのトラフィックを制限する。【０００５】
また、工場における製造システムにおいては、各製造装置が、ネットワークを介して接続され、互いに通信を行いながら製造を行う。このようなネットワークにつながる製造装置が不正な操作等で乗っ取られたり、ネットワークを流れるデータが改ざんされた場合には、不良品が製造されたり、製造装置が破壊されてしまうことがある。これに対処するために、ネットワークのデータから不正な行為を検出する攻撃検出装置が、例えば特許文献２に記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−１６８７５５号公報
【特許文献２】特開２０１６−１９０２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、特許文献１に記載されているような、異常を検出するための仕組みを導入するためには、既存の製造システムを大幅に変更する必要がある。【０００８】
特許文献２の攻撃検出装置では、通信に用いられるパケットのヘッダに格納されているウィンドウの情報のみから攻撃を検出しているので、必ずしも精度の高い攻撃検出ができるわけではない。また、パケットのヘッダに格納されているウィンドウの情報からは、製造システムに故障等が生じたことを、異常として検出することはできない。【０００９】
本開示は、既存の製造システムに大幅な改変を加えることなく、製造システムにおける異常を検出することを目的とする。
【課題を解決するための手段】
【００１０】
本開示によるデータ分析装置は、製造装置と、前記製造装置を制御する製造制御装置と、を有する製造システムにおいて伝送されるデータを分析するデータ分析装置であって、前記製造制御装置と前記製造装置との間で伝送される第１パケットを受信する受信機と、受信された前記第１パケットのヘッダに含まれるＩＰアドレス及びポート番号から、受信された前記第１パケットのペイロードに含まれるデータの種類を求める解析器と、前記解析器で求められた前記データの種類に基づいて、前記データの種類に対応する構文又は規則を選択する選択器と、前記ペイロードに含まれるデータが、前記データの種類に対応する構文又は規則に従っていない場合に、前記製造システムに異常があると判定する判定器とを有する。【００１１】
これによると、製造システムにおける製造制御装置と製造装置との間で伝送されるパケットを受信し、その内容から製造システムに異常があることを判定することができる。受信されるパケットは、データ分析装置とは関係なく、製造システムにおいて通常用いられるパケットであるので、製造システムに異常があることを容易に知ることができる。【００１２】
本開示によるデータ分析方法は、製造装置と、前記製造装置を制御する製造制御装置と、を有する製造システムにおいて伝送されるデータを分析するデータ分析方法であって、前記製造制御装置と前記製造装置との間で伝送されるパケットを受信することと、受信された前記パケットのヘッダに含まれるＩＰアドレス及びポート番号から、受信された前記パケットのペイロードに含まれるデータの種類を求めることと、求められた前記データの種類に基づいて、前記データの種類に対応する構文又は規則を選択することと、前記ペイロードに含まれるデータが、前記データの種類に対応する構文又は規則に従っていない場合に、前記製造システムに異常があると判定することとを有する。【００１３】
本開示によるデータ分析プログラムは、製造装置と、前記製造装置を制御する製造制御装置と、を有する製造システムにおいて伝送されるデータを分析するデータ分析方法をコンピュータに実行させるデータ分析プログラムであって、前記データ分析方法は、前記製造制御装置と前記製造装置との間で伝送されるパケットを受信することと、受信された前記パケットのヘッダに含まれるＩＰアドレス及びポート番号から、受信された前記パケットのペイロードに含まれるデータの種類を求めることと、求められた前記データの種類に基づいて、前記データの種類に対応する構文又は規則を選択することと、前記ペイロードに含まれるデータが、前記データの種類に対応する構文又は規則に従っていない場合に、前記製造システムに異常があると判定することとを有する。
【発明の効果】
【００１４】
本開示によれば、既存の製造システムに大幅な改変を加えることなく、製造システムにおける異常を検出することができる。したがって、製造システム外部からの攻撃や、製造システム内部の故障等を低コストで検出することができる。
【図面の簡単な説明】
【００１５】
【図１】図１は、本発明の実施形態に係るデータ分析装置を含む製造システムの構成例を示すブロック図である。
【図２】図２は、図１のネットワークを流れるパケットの構成例を示す図である。
【図３】図３は、ＩＰパケットのフォーマットの例を示す図である。
【図４】図４は、ＴＣＰパケットのフォーマットの例を示す図である。
【図５】図５は、ＵＤＰパケットのフォーマットの例を示す図である。
【図６】図６は、図１の製造システムにおいて、パケットのヘッダに含まれるＩＰアドレス等の組合せとパケットのペイロードに含まれるデータの種類との対応関係の例を示す図である。
【図７】図７は、図１の製造装置の状態遷移の例を示す状態遷移図である。
【図８】図８は、制御コマンドのフォーマットの例を示す図である。
【図９】図９は、制御コマンドの構文の例を示す図である。
【図１０】図１０は、稼働実績通知のフォーマットの例を示す図である。
【図１１】図１１は、稼働実績通知の構文の例を示す図である。
【図１２】図１２は、図１のデータ分析装置の構成例を示すブロック図である。
【図１３】図１３は、図１のデータ分析装置の動作の例を示すフローチャートである。
【図１４】図１４は、図１３のフローチャートの変形例を示すフローチャートである。
【図１５】図１５は、正常時の制御コマンドの順序の例を示す図である。
【図１６】図１６は、異常時の制御コマンドの順序の例を示す図である。
【図１７】図１７は、図１３のフローチャートの更なる変形例を示すフローチャートである。
【図１８】図１８は、正常時の稼働実績情報の順序の例を示す図である。
【図１９】図１９は、異常時の稼働実績情報の順序の例を示す図である。
【図２０】図２０は、図１３のフローチャートの更なる変形例を示すフローチャートである。
【図２１】図２１は、製造装置の状態遷移図であって、各状態から次の状態への遷移確率が示されている。
【図２２】図２２は、正常時における製造装置の状態遷移の確率に関する規則の例を示す図である。
【図２３】図２３は、異常時における制御コマンドの実際の発生確率に関する情報の例を示す図である。
【図２４】図２４は、異常時における稼働実績情報の実際の発生確率に関する情報の例を示す図である。
【図２５】図２５は、異常時における製造装置の状態遷移の実際の発生確率に関する情報の例を示す図である。
【図２６】図２６は、正常時における次のコマンドの発生確率に関する規則の例を示す図である。
【図２７】図２７は、正常時における次の稼働実績情報の発生確率に関する規則の例を示す図である。
【図２８】図２８は、図１３のフローチャートの更なる変形例を示すフローチャートである。
【図２９】図２９は、製造装置の状態遷移図であって、各状態になってから次の状態になるまでの時間が示されている。
【図３０】図３０は、正常時における製造装置の状態遷移に要する時間に関する規則の例を示す図である。
【図３１】図３１は、異常時における制御コマンドの出力までの実際の時間に関する情報の例を示す図である。
【図３２】図３２は、異常時における稼働実績情報の出力までの実際の時間に関する情報の例を示す図である。
【図３３】図３３は、異常時における製造装置の状態遷移に要する実際の時間に関する情報の例を示す図である。
【図３４】図３４は、正常時における次のコマンドの出力までの時間に関する規則の例を示す図である。
【図３５】図３５は、正常時における次の稼働実績情報の出力までの時間に関する規則の例を示す図である。
【図３６】図３６は、本発明の実施形態に係るデータ分析装置を実現するコンピュータシステムの構成例を示すブロック図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施の形態について、図面を参照しながら説明する。図面において同じ参照番号で示された構成要素は、同一の又は類似の構成要素である。
【００１７】
図１は、本発明の実施形態に係るデータ分析装置を含む製造システムの構成例を示すブロック図である。図１の製造システム１００は、ネットワーク２と、製造制御装置１０と、製造装置２２，２４と、データ分析装置３０とを有する。製造制御装置１０、製造装置２２，２４、及びデータ分析装置３０は、ネットワーク２で接続されている。
【００１８】
製造制御装置１０は、製造システム１００全体の制御を行う。製造制御装置１０は、例えば、制御コマンドや製造のためのデータを製造装置２２，２４に送信し、製造装置２２，２４は、例えば、自身の状態等を稼働実績情報として製造制御装置１０に送信する。製造装置２２，２４のそれぞれは、製品を製造するための少なくとも１つの工程を行う装置である。製造システム１００は、より多くの製造装置を有していてもよく、１つの製造装置のみを有していてもよい。
【００１９】
ネットワーク２は、例えばＬＡＮ（local area network）であり、有線ネットワークであってもよいし、無線ネットワークであってもよい。ネットワーク２は、インターネットに接続されていてもよい。データ分析装置３０は、ネットワーク２に流れるデータ、特に製造制御装置１０と製造装置２２又は２４との間で送受信されるデータを受信することができるように、ネットワーク２に接続される。例えば、ネットワーク２は、製造システム１００の構成要素である製造制御装置１０、製造装置２２及び２４、並びにデータ分析装置３０の間で送受信されるデータが、これらのいずれの構成要素でも受信できるように構成されていてもよいし、データ分析装置３０が、ネットワーク２で用いられるルータのミラーポートに接続されていてもよい。図１において、各構成要素の下に記載された数字は、その構成要素に割り当てられたＩＰ（internet protocol）アドレスの例を示す。
【００２０】
図２は、図１のネットワーク２を流れるパケット（フレームとも呼ばれる）の構成例を示す図である。図３は、ＩＰパケットのフォーマットの例を示す図である。ＩＰパケットは、図２のパケットからイーサネット（登録商標）ヘッダを取り除いたものである。ＩＰヘッダには、送信元ＩＰアドレス及び宛先ＩＰアドレスが含まれる。
【００２１】
図４は、ＴＣＰ（transmission control protocol）パケットのフォーマットの例を示す図である。図５は、ＵＤＰ（user datagram protocol）パケットのフォーマットの例を示す図である。ＴＣＰパケット又はＵＤＰパケットは、ＩＰパケットからＩＰヘッダを取り除いたものである。ＴＣＰヘッダ又はＵＤＰヘッダには、送信元ポート番号及び宛先ポート番号が含まれる。
【００２２】
図６は、図１の製造システム１００において、パケットのヘッダに含まれるＩＰアドレス等の組合せとパケットのペイロードに含まれるデータの種類との対応関係の例を示す図である。図６において、例えば、送信元ＩＰアドレス192.168.10.1、宛先ＩＰアドレス192.168.10.10、及び宛先ポート番号10000という組合せＡには、ペイロードのデータの種類として制御コマンドが対応するということを示している。このとき、送信元ポート番号はどのような値であってもよい。これを図１に即して説明すると、製造制御装置１０から製造装置２２のポート番号10000へのパケットは、ペイロードに制御コマンドを含んでいる、ということがわかる。
【００２３】
また、例えば、送信元ＩＰアドレス192.168.10.10、送信元ポート番号20000、及び宛先ＩＰアドレス192.168.10.1という組合せＢには、ペイロードのデータの種類として稼働実績通知が対応するということを示している。このとき、宛先ポート番号はどのような値であってもよい。これを図１に即して説明すると、製造装置２２のポート番号20000から製造制御装置１０へのパケットは、ペイロードに稼働実績通知を含んでいる、ということがわかる。
【００２４】
図７は、図１の製造装置２２の状態遷移の例を示す状態遷移図である。ここでは、製造装置２２は、例えば、プリント基板に電子部品を実装する装置であるとする。製造装置２２は、制御コマンドを製造制御装置１０からパケットによって受信する。製造装置２２の状態は、制御コマンドの受信又は制御コマンドで指示された動作の終了に従って、図７のように、待機状態、基板搬入状態、基板実装状態、基板搬出状態の順で遷移する。製造装置２２は、その状態が遷移する際等に、稼働実績通知を製造制御装置１０へパケットによって送信する。製造装置２４も、製造装置２２と同様に構成されている。
【００２５】
図８は、制御コマンドのフォーマットの例を示す図である。制御コマンドは、制御コマンド番号フィールドと、制御パラメータフィールドとを有する。図９は、制御コマンドの構文の例を示す図である。図９に示されているように、例えば、制御コマンド番号は、０，１，２又は３でなければならない。例えば、制御コマンド番号が０である場合には、制御パラメータは０，１，２又は３でなければならない。例えば、制御コマンド番号が１，２又は３である場合には、制御パラメータは０又は１でなければならない。このような、制御コマンドの各フィールドが取り得る値に関する規定を、制御コマンドの構文と称する。
【００２６】
なお、制御コマンドは、チェックサムや、メッセージ認証コード（ＭＡＣ：message authentication code）を格納するフィールドを有していてもよい。チェックサムやＭＡＣについても、取り得る値に関する規定があり、そのような規定も、制御コマンドの構文に含まれる。
【００２７】
図１０は、稼働実績通知のフォーマットの例を示す図である。稼働実績通知は、稼働実績通知番号フィールドと、稼働実績情報フィールドと、基板番号フィールドとを有する。図１１は、稼働実績通知の構文の例を示す図である。図１１に示されているように、例えば、稼働実績通知番号は、０，１，２，３，４又は５でなければならない。例えば、稼働実績通知番号が０である場合には、稼働実績情報フィールドのビット２０，１９が表す数は、０，１，２又は３でなければならず、稼働実績情報フィールドのビット３１−２１が表す数は、０〜１０２３の範囲内になければならない。基板番号は、基板を１枚生産する毎に０から１ずつカウントアップされる。ただし、３２７６７の次は０にリセットされる。このため、基板番号は、０から３２７６７の範囲内になければならない。このような、稼働実績通知の各フィールドが取り得る値に関する規定を、稼働実績通知の構文と称する。
【００２８】
なお、制御コマンド及び稼働実績通知は、バイナリデータで構成されていてもよいし、アスキー文字等の文字列で構成されていてもよい。製造制御装置１０が、制御コマンドを例えば暗号鍵によって暗号化して送信し、製造装置２２及び２４、並びにデータ分析装置３０が、暗号化された制御コマンドを復号化してもよい。製造装置２２及び２４が、稼働実績通知を例えば暗号鍵によって暗号化して送信し、製造制御装置１０及びデータ分析装置３０が、暗号化された稼働実績通知を復号化してもよい。
【００２９】
図１２は、図１のデータ分析装置３０の構成例を示すブロック図である。データ分析装置３０は、送受信機３２と、解析器３４と、選択器３６と、判定器３８と、記憶装置４２とを有する。
【００３０】
送受信機３２は、製造制御装置１０と製造装置２２又は２４との間で伝送されるパケットをネットワーク２から受信して解析器３４に出力する。解析器３４には、図６のような対応関係が予め格納されている。解析器３４は、例えば図６の対応関係に基づいて、受信されたパケットのヘッダに含まれるＩＰアドレス及びポート番号から、受信されたパケットのペイロードに含まれるデータの種類を求め、選択器３６に出力する。
【００３１】
記憶装置４２には、データの種類に対応する構文又は規則、例えば、制御コマンドの構文及び稼働実績通知の構文が、予め格納されている。選択器３６は、解析器３４で求められたデータの種類に対応する構文又は規則を、記憶装置４２に格納されているデータから選択して読み出す。
【００３２】
判定器３８は、ペイロードに含まれるデータが、記憶装置４２から読み出された、データの種類に対応する構文又は規則に従っていない場合に、製造システム１００に異常があると判定し、判定結果をデータ分析装置３０の外部に通知する。判定器３８は、例えば、判定結果を送受信機３２に出力し、送受信機３２は、判定結果を含むパケットを生成して製造制御装置１０に送信する。本明細書において、異常とは、製造システム１００の外部からの攻撃により生じた異常のみならず、製造システム１００内で生じた故障による異常をも含む。
【００３３】
図１３は、図１のデータ分析装置３０の動作の例を示すフローチャートである。ブロックＢ１２において、図１２の送受信機３２は、ネットワーク２からパケットを受信し、そのイーサネットヘッダを取り除いて解析器３４に出力する。ブロックＢ１４において、解析器３４は、予め格納している図６の対応関係に従って、入力されたパケットのＩＰアドレス及びポート番号から、そのパケットのペイロードのデータの種類を求める。解析器３４は、その種類をパケットとともに選択器３６に出力する。例えば、送信元ＩＰアドレスが192.168.10.1、宛先ＩＰアドレスが192.168.10.10、宛先ポート番号が10000である場合には、解析器３４は、ペイロードのデータの種類が図８のような制御コマンドである、ということを求める。
【００３４】
ブロックＢ１６において、選択器３６は、解析器３４で求められたデータの種類に対応する構文を、記憶装置４２に格納されているデータから選択して読み出す。選択器３６は、読み出された構文を入力されたパケットとともに判定器３８に出力する。ペイロードのデータの種類が制御コマンドである場合には、図８及び図９のような情報が構文として読み出される。ブロックＢ１８において、判定器３８は、選択器３６が読み出した構文に従って、入力されたパケットのペイロードを復号する。
【００３５】
ブロックＢ２２において、判定器３８は、復号されたペイロードのデータに構文違反があるか否かを判定する。図８のように、制御コマンドは、１６ビットの制御コマンド番号フィールドと、１６ビットの制御パラメータフィールドとを有する。これらの１６ビットのフィールドは、０から６５５３５までの整数を表すことができる。しかし、ペイロードのデータの種類が制御コマンドである場合には、図９に示されているように、制御コマンド番号フィールドの値は０から３までの整数でなければならない。そこで、制御コマンド番号フィールドの値が０から３までの整数以外である場合には、判定器３８は、構文違反があると判定する。
【００３６】
また、図９に示されているように、制御コマンド番号フィールドの値が０である場合には、制御パラメータフィールドの値は０から３までの整数でなければならない。制御コマンド番号フィールドの値が１，２又は３である場合には、制御パラメータフィールドの値は０又は１でなければならない。そこで、制御コマンド番号フィールドの値が０であり、かつ、制御パラメータフィールドの値が０から３までの整数以外である場合には、判定器３８は、構文違反があると判定する。更に、制御コマンド番号フィールドの値が１，２又は３であり、かつ、制御パラメータフィールドの値が０又は１以外である場合には、判定器３８は、構文違反があると判定する。
【００３７】
構文違反がある場合には、ブロックＢ２４に進み、構文違反がない場合には、ブロックＢ２６に進む。ブロックＢ２４において、判定器３８は、製造システム１００に異常があると判定し、判定結果の通知を行う。判定器３８は、例えば、送受信機３２及びネットワーク２を経由して、製造制御装置１０に判定結果を送信する。また、判定器３８は、判定結果を表示器に表示させてもよい。ブロックＢ２６において、判定器３８は、製造システム１００が正常であると判定する。ブロックＢ２４又はＢ２６が終了すると、１パケットの処理が終了する。その後、図１３の処理は繰り返されてもよい。
【００３８】
ペイロードのデータの種類が図１０のような稼働実績通知である場合について説明する。例えば、送信元ＩＰアドレスが192.168.10.10、送信元ポート番号が20000、宛先ＩＰアドレスが192.168.10.1である場合には、ブロックＢ１４において、解析器３４は、ペイロードのデータの種類が稼働実績通知である、ということを図６の対応関係に従って求める。ペイロードのデータの種類が稼働実績通知である場合には、ブロックＢ１６において、記憶装置４２から、図１０及び図１１のような情報が構文として読み出される。
【００３９】
図１０のように、稼働実績通知は、１６ビットの稼働実績通知番号フィールドと、１６ビットの稼働実績情報フィールドと、３２ビットの基板番号フィールドとを有する。ペイロードのデータの種類が稼働実績通知である場合には、図１１に示されているように、稼働実績通知番号フィールドの値は０から５までの整数でなければならない。そこで、稼働実績通知番号フィールドの値が０から５までの整数以外である場合には、ブロックＢ２２において、判定器３８は、構文違反があると判定する。
【００４０】
各稼働実績通知番号について、稼働実績情報フィールドのビットフィールドの値は、図１１に示されているような値でなければならない。そこで、稼働実績情報フィールドのビットフィールドの値が、図１１に示されているような値ではない場合には、ブロックＢ２２において、判定器３８は、構文違反があると判定する。また、基板番号フィールドの値が０から３２７６７までの整数以外である場合には、ブロックＢ２２において、判定器３８は、構文違反があると判定する。更に、１枚の基板の生産が完了したにもかかわらず、基板番号フィールドの値がカウントアップされなかった場合には、基板が盗難された等の可能性があるので、ブロックＢ２２において、判定器３８は、構文違反があると判定する。
【００４１】
このように、図１２のデータ分析装置３０によると、製造システム１００における製造制御装置１０と製造装置２２又は２４との間で伝送されるパケットを受信し、その内容から製造システム１００に異常があることを判定することができる。受信されるパケットは、データ分析装置３０とは関係なく、製造システム１００において通常用いられるパケットであるので、既存の製造システムに大幅な改変を加えることなく、製造システムにおける異常を検出することができる。したがって、製造システム外部からの攻撃や、製造システム内部の故障等を低コストで検出することができる。
【００４２】
図１４は、図１３のフローチャートの変形例を示すフローチャートである。図１４のフローチャートは、ブロックＢ１６及びＢ２２に代えて、ブロックＢ２１６及びＢ２２２をそれぞれ有する点が、図１３のフローチャートとは異なっている。また、ブロックＢ２４及びＢ２６の後、処理はブロックＢ１２に戻る。その他の点については、図１３と同様であるので説明を省略する。
【００４３】
ブロックＢ２１６において、選択器３６は、解析器３４で求められたデータの種類に対応する構文及び規則を、記憶装置４２に格納されているデータから選択して読み出す。選択器３６は、読み出された構文及び規則を、入力されたパケットとともに判定器３８に出力する。例えば、ペイロードのデータの種類が制御コマンドである場合には、図８のような情報が構文として読み出され、更に、制御コマンドの種類の順序が規則として読み出される。
【００４４】
図１５は、正常時の制御コマンドの順序の例を示す図である。正常時には、図１５のように、基板搬入コマンド（コマンド番号１）、基板実装コマンド（コマンド番号２）、基板搬出コマンド（コマンド番号３）が、この順序で繰り返される。ブロックＢ２１６では、このような順序が、規則として読み出される。
【００４５】
ブロックＢ２２２において、判定器３８は、復号されたペイロードに含まれるデータが示す情報の順序が規則に違反しているか否かを判定する。ここでは、判定器３８は、制御コマンドの種類の順序が規則に違反しているか否かを判定する。
【００４６】
図１６は、異常時の制御コマンドの順序の例を示す図である。図１５のように、基板実装コマンドの制御コマンドは、基板搬出コマンドであるべきである。ところが、図１６では、３番目の制御コマンドが、基板搬出コマンドであるべきところ、基板搬入コマンドとなっている。基板搬出が行われていないのにもかかわらず、基板搬入コマンドが与えられており、このコマンドを実行してしまうと、製造装置２２等が故障してしまう可能性がある。そこで、図１６の場合には、３番目の制御コマンドが入力されると、判定器３８は、制御コマンドの種類の順序が規則に違反していると判定する。規則違反がある場合には、ブロックＢ２４に進み、規則違反がない場合には、ブロックＢ２６に進む。
【００４７】
このように、記憶装置４２に格納されているデータから選択して読み出される規則には、パケットのペイロードに含まれるデータが示す情報と、このパケット以前に受信されたパケットのペイロードに含まれるデータが示す情報との順序が規定されていてもよい。より具体的には、例えば、パケットのペイロードには第１制御コマンドが含まれ、このパケット以前に受信されたパケットのペイロードには第２制御コマンドが含まれ、かつ、第１制御コマンドが第２制御コマンドの次のコマンドである場合に、規則には、これらの制御コマンドの種類の間の順序が規定されていてもよい。
【００４８】
図１７は、図１３のフローチャートの更なる変形例を示すフローチャートである。図１７のフローチャートは、ブロックＢ１６及びＢ２２に代えて、ブロックＢ３１６及びＢ３２２をそれぞれ有する点が、図１３のフローチャートとは異なっている。その他の点については、図１３と同様であるので説明を省略する。
【００４９】
ブロックＢ３１６において、選択器３６は、解析器３４で求められたデータの種類に対応する構文及び規則を、記憶装置４２に格納されているデータから選択して読み出す。選択器３６は、読み出された構文及び規則を、入力されたパケットとともに判定器３８に出力する。例えば、ペイロードのデータの種類が稼働実績通知である場合には、図１０のような情報が構文として読み出され、更に、稼働実績通知に含まれる稼働実績情報の種類の順序が規則として読み出される。
【００５０】
図１８は、正常時の稼働実績情報の順序の例を示す図である。正常時には、図１８のように、稼働実績情報として基板搬入時間を含む稼働実績通知（通知番号１）、稼働実績情報として基板実装時間を含む稼働実績通知（通知番号２）、稼働実績情報として基板搬出時間を含む稼働実績通知（通知番号３）が、この順序で繰り返される。ブロックＢ３１６では、このような順序が、規則として読み出される。
【００５１】
ブロックＢ３２２において、判定器３８は、稼働実績情報の種類の順序が規則に違反しているか否かを判定する。図１９は、異常時の稼働実績情報の順序の例を示す図である。図１８のように、基板実装時間の次の稼働実績情報は、基板搬出時間であるべきである。ところが、図１９では、３番目の稼働実績情報が、基板搬出時間であるべきところ、基板搬入時間である。このような場合には、製造システム１００に異常があると考えられる。例えば、故障や、第三者によるパケットの改ざん等が生じたことが疑われる。そこで、図１９の場合には、３番目の稼働実績情報が入力されると、判定器３８は、稼働実績情報の種類の順序が規則に違反していると判定する。規則違反がある場合には、ブロックＢ２４に進み、規則違反がない場合には、ブロックＢ２６に進む。
【００５２】
このように、パケットのペイロードには第１稼働実績情報が含まれ、このパケット以前に受信されたパケットのペイロードには第２稼働実績情報が含まれ、かつ、第１稼働実績情報が第２稼働実績情報の次の情報である場合に、規則には、これらの稼働実績情報の種類の間の順序が規定されていてもよい。
【００５３】
図２０は、図１３のフローチャートの更なる変形例を示すフローチャートである。図２０のフローチャートは、ブロックＢ１６及びＢ２２に代えて、ブロックＢ４１６及びＢ４２２をそれぞれ有し、ブロックＢ４２０を更に有する点が、図１３のフローチャートとは異なっている。その他の点については、図１３と同様であるので説明を省略する。図２０において、パケットのペイロードには、制御コマンド又は稼働実績通知が含まれている。
【００５４】
図２１は、製造装置２２の状態遷移図であって、各状態から次の状態への遷移確率が示されている。図２２は、正常時における製造装置２２の状態遷移の確率に関する規則の例を示す図である。図２２には、製造装置２２の現在の状態（遷移元）、その次の状態（遷移先）、遷移の予定確率、製造装置２２が状態を遷移するための制御コマンド、及び、製造装置２２が状態を遷移する際に発生する稼働実績通知内の稼働実績情報が規定されている。各制御コマンド及び各稼働実績情報が発生する予定確率は、対応する遷移の予定確率と同じである。例えば、製造装置２２が基板搬入状態にある場合には、次に基板実装状態に遷移する予定確率は９０％であり、その遷移の際には、状態を遷移するための基板実装コマンドが発生し、基板搬入に要した時間及び機器状態情報を稼働実績情報として含む稼働実績通知が発生する。制御コマンドが記載されていない欄については、制御コマンドが発生しなくても遷移する。図２２のような情報は、統計的に予め求められて、記憶装置４２に格納されている。製造装置２４についても、同様の情報が格納される。
【００５５】
ブロックＢ４１６において、選択器３６は、解析器３４で求められたデータの種類に対応する構文及び規則を、記憶装置４２に格納されているデータから選択して読み出す。選択器３６は、読み出された構文及び規則を、入力されたパケットとともに判定器３８に出力する。例えば、図８及び１０のような情報が構文として読み出され、更に、図２２のような規則が読み出される。
【００５６】
ブロックＢ４２０において、判定器３８は、図２１の各状態について、その次の状態への遷移、制御コマンド、又は稼働実績情報の実際の発生確率を求める。判定器３８は、このような発生確率を、複数のパケットの受信処理を順次行いながら求める。
【００５７】
ブロックＢ４２２において、判定器３８は、いずれかの実際の発生確率の誤差、すなわち、いずれかの実際の発生確率と予定確率との差が、所定の閾値以上であるか否かを判定する。いずれかの実際の発生確率と予定確率との差が、所定の閾値以上である場合には、ブロックＢ２４に進み、その他の場合には、ブロックＢ２６に進む。
【００５８】
図２３は、異常時における制御コマンドの実際の発生確率に関する情報の例を示す図である。誤差の閾値は１０％であるとする。図２２の規則では、製造装置２２が待機状態にある場合に、製造装置２２が基板搬入状態に遷移するための基板搬入コマンドが発生する確率が、予定確率１００％であるべきところ、図２３では、実際には８０％である。発生確率の誤差が２０％であるので、ブロックＢ４２２において、判定器３８は、実際の確率と予定確率との差が、所定の閾値以上であると判定する。
【００５９】
図２４は、異常時における稼働実績情報の実際の発生確率に関する情報の例を示す図である。誤差の閾値は１０％であるとする。図２２の規則では、製造装置２２が待機状態にある場合に、製造装置２２が基板搬入状態に遷移する際に機器状態情報を含む稼働実績通知が発生する確率が、予定確率１００％であるべきところ、図２４では、実際には５０％である。発生確率の誤差が５０％であるので、ブロックＢ４２２において、判定器３８は、実際の確率と予定確率との差が、所定の閾値以上であると判定する。
【００６０】
図２５は、異常時における製造装置２２の状態遷移の実際の発生確率に関する情報の例を示す図である。誤差の閾値は１０％であるとする。図２２の規則では、製造装置２２が待機状態にある場合に、基板搬入状態への遷移が発生する確率が、予定確率１００％であるべきところ、図２５では、実際には８０％である。発生確率の誤差が２０％であるので、ブロックＢ４２２において、判定器３８は、実際の確率と予定確率との差が、所定の閾値以上であると判定する。
【００６１】
なお、ブロックＢ４２０において、判定器３８は、次の状態への遷移、制御コマンド、又は稼働実績情報のうちの１つのみ又は複数の、実際の発生確率を求めてもよい。
【００６２】
図２０のフローチャートによる例の変形例を説明する。図２６は、正常時における次のコマンドの発生確率に関する規則の例を示す図である。図２６には、現在の制御コマンド、その次の制御コマンド、及び、予定確率が規定されている。この図は図２１及び図２２に対応している。例えば、基板搬入コマンドが発生した場合には、製造装置２２は基板搬入状態に遷移するので、その次に基板実装コマンドが発生する予定確率は、９０％である。図２６のような情報は、統計的に予め求められて、記憶装置４２に格納されている。
【００６３】
ブロックＢ４１６において、選択器３６は、図２２のような規則に代えて、図２６のような規則を記憶装置４２から読み出す。ブロックＢ４２０において、判定器３８は、発生した制御コマンドの種類毎に、その次に発生する各種類の制御コマンドの実際の発生確率を求める。判定器３８は、このような発生確率を、複数のパケットの受信処理を順次行いながら求める。
【００６４】
ブロックＢ４２２において、判定器３８は、実際の発生確率の誤差、すなわち、次のコマンドの実際の発生確率と予定確率との差が、所定の閾値以上であるか否かを判定する。実際の発生確率と予定確率との差が、所定の閾値以上である場合には、ブロックＢ２４に進み、その他の場合には、ブロックＢ２６に進む。
【００６５】
この例によると、発生したコマンドの種類のみから、製造システム１００に異常があることを判定することができる。
【００６６】
図２０のフローチャートによる例の更なる変形例を説明する。図２７は、正常時における次の稼働実績情報の発生確率に関する規則の例を示す図である。図２７には、現在の稼働実績情報、その次の稼働実績情報、及び、予定確率が規定されている。この図は図２１及び図２２に対応している。例えば、基板搬入時間が稼働実績情報として発生した場合には、製造装置２２は基板実装状態に遷移するので、その次に基板実装時間が稼働実績情報として発生する予定確率は、８５％である。図２７のような情報は、統計的に予め求められて、記憶装置４２に格納されている。
【００６７】
ブロックＢ４１６において、選択器３６は、図２２のような規則に代えて、図２７のような規則を記憶装置４２から読み出す。ブロックＢ４２０において、判定器３８は、発生した稼働実績情報の種類毎に、その次に発生する各種類の稼働実績情報の実際の発生確率を求める。判定器３８は、このような発生確率を、複数のパケットの受信処理を順次行いながら求める。
【００６８】
ブロックＢ４２２において、判定器３８は、実際の発生確率の誤差、すなわち、次の稼働実績情報の実際の発生確率と予定確率との差が、所定の閾値以上であるか否かを判定する。実際の発生確率と予定確率との差が、所定の閾値以上である場合には、ブロックＢ２４に進み、その他の場合には、ブロックＢ２６に進む。
【００６９】
この例によると、発生した稼働実績情報の種類のみから、製造システム１００に異常があることを判定することができる。
【００７０】
図２８は、図１３のフローチャートの更なる変形例を示すフローチャートである。図２８のフローチャートは、ブロックＢ１６及びＢ２２に代えて、ブロックＢ５１６及びＢ５２２をそれぞれ有し、ブロックＢ５２０を更に有する点が、図１３のフローチャートとは異なっている。その他の点については、図１３と同様であるので説明を省略する。図２８において、パケットのペイロードには、制御コマンド又は稼働実績通知が含まれている。
【００７１】
図２９は、製造装置２２の状態遷移図であって、各状態になってから次の状態になるまでの時間が示されている。図３０は、正常時における製造装置２２の状態遷移に要する時間に関する規則の例を示す図である。図３０には、製造装置２２の現在の状態（遷移元）、その次の状態（遷移先）、遷移に要する予定時間、製造装置２２が状態を遷移するための制御コマンド、及び、製造装置２２が状態を遷移する際に発生する稼働実績通知内の稼働実績情報が規定されている。各状態について、その状態になってから、次の制御コマンド又は稼働実績情報が出力されるまでの予定時間は、次の状態への遷移に要する予定時間と同じである。例えば、製造装置２２が基板搬入状態にある場合には、次に基板実装状態に遷移するのに要する予定時間は１０秒であり、その遷移の際には、状態を遷移するための基板実装コマンドが出力され、基板搬入に要した時間及び機器状態情報を稼働実績情報として含む稼働実績通知が出力される。制御コマンドが記載されていない欄については、制御コマンドが出力されなくても遷移する。図３０のような情報は、統計的に予め求められて、記憶装置４２に格納されている。製造装置２４についても、同様の情報が格納される。
【００７２】
ブロックＢ５１６において、選択器３６は、解析器３４で求められたデータの種類に対応する構文及び規則を、記憶装置４２に格納されているデータから選択して読み出す。選択器３６は、読み出された構文及び規則を、入力されたパケットとともに判定器３８に出力する。例えば、図８及び１０のような情報が構文として読み出され、更に、図３０のような規則が読み出される。
【００７３】
ブロックＢ５２０において、判定器３８は、図２９の各状態について、その次の状態への遷移、制御コマンドの出力、又は稼働実績情報の出力に要する実際の時間を求める。判定器３８は、このような時間を、複数のパケットの受信処理を順次行いながら求める。
【００７４】
ブロックＢ５２２において、判定器３８は、いずれかの実際の時間の誤差、すなわち、いずれかの実際の時間と予定時間との差が、所定の閾値以上であるか否かを判定する。いずれかの実際の時間と予定時間との差が、所定の閾値以上である場合には、ブロックＢ２４に進み、その他の場合には、ブロックＢ２６に進む。
【００７５】
図３１は、異常時における制御コマンドの出力までの実際の時間に関する情報の例を示す図である。誤差の閾値は１５秒であるとする。図３０の規則では、製造装置２２が基板実装状態になってから、製造装置２２が基板搬出状態に遷移するための基板搬出コマンドが出力されるまでの時間が、予定時間１０秒であるべきところ、図３では、実際には１００秒である。時間の誤差が９０秒であるので、ブロックＢ５２２において、判定器３８は、実際の時間と予定時間との差が、所定の閾値以上であると判定する。
【００７６】
図３２は、異常時における稼働実績情報の出力までの実際の時間に関する情報の例を示す図である。誤差の閾値は１５秒であるとする。図３０の規則では、製造装置２２が基板実装状態になってから、製造装置２２が基板搬出状態に遷移する際に機器実装時間を含む稼働実績通知が出力されるまでの時間が、予定時間１０秒であるべきところ、図３２では、実際には１００秒である。時間の誤差が９０秒であるので、ブロックＢ５２２において、判定器３８は、実際の時間と予定時間との差が、所定の閾値以上であると判定する。
【００７７】
図３３は、異常時における製造装置２２の状態遷移に要する実際の時間に関する情報の例を示す図である。誤差の閾値は１５秒であるとする。図３０の規則では、製造装置２２が基板実装状態になってから基板搬出状態へ遷移するのに要する時間が、予定時間１０秒であるべきところ、図３３では、実際には１００秒である。時間の誤差が９０秒であるので、ブロックＢ５２２において、判定器３８は、実際の時間と予定時間との差が、所定の閾値以上であると判定する。
【００７８】
なお、ブロックＢ５２０において、判定器３８は、次の状態への遷移に要する時間、制御コマンドの出力までの時間、又は稼働実績情報の出力までの時間のうちの、１つのみ又は複数を求めてもよい。
【００７９】
図２８のフローチャートによる例の変形例を説明する。図３４は、正常時における次のコマンドの出力までの時間に関する規則の例を示す図である。図３４には、現在の制御コマンド、その次の制御コマンド、及び、予定時間が規定されている。この図は図２９及び図３０に対応している。例えば、基板実装コマンドが出力された場合には、製造装置２２は基板実装状態に遷移するので、基板実装コマンドが出力されてから、その次に基板搬出コマンドが出力されるまでの予定時間は、１０秒である。図３４のような情報は、統計的に予め求められて、記憶装置４２に格納されている。
【００８０】
ブロックＢ５１６において、選択器３６は、図３０のような規則に代えて、図３４のような規則を記憶装置４２から読み出す。ブロックＢ５２０において、判定器３８は、出力された制御コマンドの種類毎に、その制御コマンドが出力されてから、その次に各種類の制御コマンドが出力されるまでの実際の時間を求める。判定器３８は、このような時間を、複数のパケットの受信処理を順次行いながら求める。
【００８１】
ブロックＢ５２２において、判定器３８は、実際の時間の誤差、すなわち、次のコマンドが出力されるまでの実際の時間と予定時間との差が、所定の閾値以上であるか否かを判定する。実際の時間と予定時間との差が、所定の閾値以上である場合には、ブロックＢ２４に進み、その他の場合には、ブロックＢ２６に進む。
【００８２】
この例によると、発生したコマンドの種類のみから、製造システム１００に異常があることを判定することができる。
【００８３】
図２８のフローチャートによる例の更なる変形例を説明する。図３５は、正常時における次の稼働実績情報の出力までの時間に関する規則の例を示す図である。図３５には、現在の稼働実績情報、その次の稼働実績情報、及び、予定時間が規定されている。この図は図２９及び図３０に対応している。例えば、基板搬入時間が稼働実績情報として出力された場合には、製造装置２２は基板実装状態に遷移するので、基板搬入時間が出力されてから、その次に基板実装時間が稼働実績情報として出力されるまでの予定時間は、１０秒である。図３５のような情報は、統計的に予め求められて、記憶装置４２に格納されている。
【００８４】
ブロックＢ５１６において、選択器３６は、図３０のような規則に代えて、図３５のような規則を記憶装置４２から読み出す。ブロックＢ５２０において、判定器３８は、出力された稼働実績情報の種類毎に、その稼働実績情報が出力されてから、その次に各種類の稼働実績情報が出力されるまでの実際の時間を求める。判定器３８は、このような時間を、複数のパケットの受信処理を順次行いながら求める。
【００８５】
ブロックＢ５２２において、判定器３８は、実際の時間の誤差、すなわち、次の稼働実績情報が出力されるまでの実際の時間と予定時間との差が、所定の閾値以上であるか否かを判定する。実際の時間と予定時間との差が、所定の閾値以上である場合には、ブロックＢ２４に進み、その他の場合には、ブロックＢ２６に進む。
【００８６】
この例によると、発生した稼働実績情報の種類のみから、製造システム１００に異常があることを判定することができる。
【００８７】
なお、データ分析装置３０は、例えば図２２，２６，２７，３０，３４及び３５に記載されているような規則を、送受信機３２によって受信された複数のパケットのペイロードから学習するようにしてもよい。例えば、複数のパケットから、状態とその次の状態との組合せ等の条件毎に平均化処理を行うことによって、上述したような予定確率や予定時間を予め求めて、記憶装置４２に格納しておく。
【００８８】
図３６は、本発明の実施形態に係るデータ分析装置を実現するコンピュータシステムの構成例を示すブロック図である。図３６のコンピュータシステム８０は、プロセッサ８２と、送受信機８４と、バス８８と、メモリ９２と、ファイル格納装置９４と、入力デバイス９６と、ディスプレイ９８とを有する。
【００８９】
プロセッサ８２は、バス８８を経由して他の構成要素と通信する。送受信機８４は、インターネット等の通信ネットワークとの間でデータを送受信する。送受信機８４は、無線によって通信ネットワークに接続されていてもよい。
【００９０】
メモリ９２は例えばＲＡＭ（random access memory）及びＲＯＭ（read only memory）を含んでおり、データ及び命令を格納する。ファイル格納装置９４は、１以上の揮発性又は不揮発性の、非過渡的な、コンピュータ読み取り可能な格納媒体である。本発明の実施形態がソフトウェアで実現される場合には、例えば、マイクロコード、アセンブリ言語のコード、又はより高レベルの言語のコードが用いられ得る。これらのコードで記述され、本発明の実施形態の機能を実現する命令を含むプログラムを、ファイル格納装置９４は格納する。ファイル格納装置９４は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（electrically erasable programmable read only memory）、及びフラッシュメモリ等の半導体メモリ、ハードディスクドライブ等の磁気記録媒体、光記録媒体、これらの組み合わせ等を含み得る。
【００９１】
入力デバイス９６は、タッチスクリーン、キーボード、リモートコントローラ、及びマウス等を含み得る。ディスプレイは、液晶ディスプレイ、有機ＥＬ（electroluminescence）ディスプレイ等のフラットパネルディスプレイを含み得る。
【００９２】
コンピュータシステム８０は、図１のデータ分析装置３０として動作し得る。プロセッサ８２は、図１２の解析器３４、選択器３６、及び判定器３８として動作し得る。送受信機８４は、図１２の送受信機３２として動作し得る。ファイル格納装置９４は、図１２の記憶装置４２として動作し得る。
【００９３】
本明細書における各機能ブロックは、例えば、回路等のハードウェアで実現され得る。代替としては各機能ブロックの一部又は全ては、ソフトウェアで実現され得る。例えばそのような機能ブロックは、プロセッサ８２及びプロセッサ８２上で実行されるプログラムによって実現され得る。換言すれば、本明細書で説明される各機能ブロックは、ハードウェアで実現されてもよいし、ソフトウェアで実現されてもよいし、ハードウェアとソフトウェアとの任意の組合せで実現され得る。
【００９４】
以上の実施形態は、本質的に好ましい例示であって、本発明、その適用物、あるいはその用途の範囲を制限することを意図するものではない。
【産業上の利用可能性】
【００９５】
以上説明したように、本開示は、データ分析装置、方法、及びプログラム等について有用である。
【符号の説明】
【００９６】
２  ネットワーク
１０  製造制御装置
２２，２４  製造装置
３０  データ分析装置
３２  送受信機（受信機）
３４  解析器
３６  選択器
３８  判定器
４２  記憶装置
１００  製造システム
【図１】
2018181253.tif 000003
【図２】
2018181253.tif 000004
【図３】
2018181253.tif 000005
【図４】
2018181253.tif 000006
【図５】
2018181253.tif 000007
【図６】
2018181253.tif 000008
【図７】
2018181253.tif 000009
【図８】
2018181253.tif 000010
【図９】
2018181253.tif 000011
【図１０】
2018181253.tif 000012
【図１１】
2018181253.tif 000013
【図１２】
2018181253.tif 000014
【図１３】
2018181253.tif 000015
【図１４】
2018181253.tif 000016
【図１５】
2018181253.tif 000017
【図１６】
2018181253.tif 000018
【図１７】
2018181253.tif 000019
【図１８】
2018181253.tif 000020
【図１９】
2018181253.tif 000021
【図２０】
2018181253.tif 000022
【図２１】
2018181253.tif 000023
【図２２】
2018181253.tif 000024
【図２３】
2018181253.tif 000025
【図２４】
2018181253.tif 000026
【図２５】
2018181253.tif 000027
【図２６】
2018181253.tif 000028
【図２７】
2018181253.tif 000029
【図２８】
2018181253.tif 000030
【図２９】
2018181253.tif 000031
【図３０】
2018181253.tif 000032
【図３１】
2018181253.tif 000033
【図３２】
2018181253.tif 000034
【図３３】
2018181253.tif 000035
【図３４】
2018181253.tif 000036
【図３５】
2018181253.tif 000037
【図３６】
2018181253.tif 000038
【国際調査報告】
2018181253.tif 000039
2018181253.tif 000040
2018181253.tif 000041