(57)【特許請求の範囲】
【請求項１】
複数の作業条件がそれぞれ関連付けられた工場の複数の状態のうち現在の作業条件から特定された前記工場の状態について、
前記工場のネットワーク上のプログラマブルロジックコントローラ（ＰＬＣ）からのストリーミングＰＬＣ値、および前記ネットワークの外部に接続された前記工場内のセンサからのストリーミング外部センサ値を受信する第１のステップと、
前記受信したストリーミングＰＬＣ値の確率分析を行うことでＰＬＣ値の確率表現であるＰＬＣ確率表現を取得し、前記受信したストリーミング外部センサ値の確率分析を行うことで外部センサ値の確率表現であるセンサ確率表現を取得し、前記取得されたＰＬＣ確率表現と前記工場の前記状態に関連付けられた履歴ＰＬＣ値との比較、および、前記取得されたセンサ確率表現と前記工場の前記状態に関連付けられた履歴センサ値との比較を行う第２のステップと、
前記ＰＬＣ確率表現と前記履歴ＰＬＣ値との間の距離であるＰＬＣ距離と、前記センサ確率表現と前記履歴センサ値との間の距離であるセンサ距離とに応じた指示を提供する第３のステップと
を含み、
前記第３のステップでは、
前記ＰＬＣ距離が所定のＰＬＣ距離内にあり、前記センサ距離が所定のセンサ距離内にない場合、セキュリティインシデントの指示を提供し、
前記ＰＬＣ距離が前記所定のＰＬＣ距離内になく、前記センサ距離が前記所定のセンサ距離内にある場合、センサチェックの指示を提供し、
前記ＰＬＣ距離が前記所定のＰＬＣ距離内になく、前記センサ距離が前記所定のセンサ距離内にない場合、前記複数の状態の新しい状態を表す指示を提供し、前記新しい状態についての前記履歴ＰＬＣ値および前記履歴センサ値として、前記ストリーミングＰＬＣ値および前記ストリーミング外部センサ値を記憶する、
方法。
【請求項２】
複数の作業条件がそれぞれ関連付けられた工場の複数の状態のうち現在の作業条件から特定された前記工場の状態について、
前記工場のネットワーク上のプログラマブルロジックコントローラ（ＰＬＣ）からのストリーミングＰＬＣ値、および前記ネットワークの外部に接続された前記工場内のセンサからのストリーミング外部センサ値を受信する第１のステップと、
前記受信したストリーミングＰＬＣ値の確率分析を行うことでＰＬＣ値の確率表現であるＰＬＣ確率表現を取得し、前記受信したストリーミング外部センサ値の確率分析を行うことで外部センサ値の確率表現であるセンサ確率表現を取得し、前記取得されたＰＬＣ確率表現と前記工場の前記状態に関連付けられた履歴ＰＬＣ値との比較、および、前記取得されたセンサ確率表現と前記工場の前記状態に関連付けられた履歴センサ値との比較を行う第２のステップと、
前記ＰＬＣ確率表現と前記履歴ＰＬＣ値との間の距離であるＰＬＣ距離と、前記センサ確率表現と前記履歴センサ値との間の距離であるセンサ距離とに応じた指示を提供する第３のステップと
をコンピュータに実行させ、
前記第３のステップでは、
前記ＰＬＣ距離が所定のＰＬＣ距離内にあり、前記センサ距離が所定のセンサ距離内にない場合、セキュリティインシデントの指示を提供し、
前記ＰＬＣ距離が前記所定のＰＬＣ距離内になく、前記センサ距離が前記所定のセンサ距離内にある場合、センサチェックの指示を提供し、
前記ＰＬＣ距離が前記所定のＰＬＣ距離内になく、前記センサ距離が前記所定のセンサ距離内にない場合、前記複数の状態の新しい状態を表す指示を提供し、前記新しい状態についての前記履歴ＰＬＣ値および前記履歴センサ値として、前記ストリーミングＰＬＣ値および前記ストリーミング外部センサ値を記憶する、
を前記コンピュータに実行させるコンピュータプログラム。
【請求項３】
工場のネットワーク上の複数のプログラマブルロジックコントローラ（ＰＬＣ）、および前記ネットワークの外部の管理装置に接続された複数のセンサを管理するように構成された管理装置であって、
複数の作業条件がそれぞれ関連付けられた工場の複数の状態のうち現在の作業条件から特定された前記工場の状態について、
前記ＰＬＣからのストリーミングＰＬＣ値、および前記ネットワークの外部に接続された前記工場内の前記複数のセンサからのストリーミング外部センサ値を受信する第１の手段と、
前記受信したストリーミングＰＬＣ値の確率分析を行うことでＰＬＣ値の確率表現であるＰＬＣ確率表現を取得し、前記受信したストリーミング外部センサ値の確率分析を行うことで外部センサ値の確率表現であるセンサ確率表現を取得し、前記取得されたＰＬＣ確率表現と前記工場の前記状態に関連付けられた履歴ＰＬＣ値との比較、および、前記取得されたセンサ確率表現と前記工場の前記状態に関連付けられた履歴センサ値との比較を行う第２の手段と、
前記ＰＬＣ確率表現と前記履歴ＰＬＣ値との間の距離であるＰＬＣ距離と、前記センサ確率表現と前記履歴センサ値との間の距離であるセンサ距離とに応じた指示を提供する第３の手段と
を備え、
前記第３の手段は、
前記ＰＬＣ距離が所定のＰＬＣ距離内にあり、前記センサ距離が所定のセンサ距離内にない場合、セキュリティインシデントの指示を提供し、
前記ＰＬＣ距離が前記所定のＰＬＣ距離内になく、前記センサ距離が前記所定のセンサ距離内にある場合、センサチェックの指示を提供し、
前記ＰＬＣ距離が前記所定のＰＬＣ距離内になく、前記センサ距離が前記所定のセンサ距離内にない場合、前記複数の状態の新しい状態を表す指示を提供し、前記新しい状態についての前記履歴ＰＬＣ値および前記履歴センサ値として、前記ストリーミングＰＬＣ値および前記ストリーミング外部センサ値を記憶する、
装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、産業用コントローラに関し、より詳細には、産業用コントローラ内のデータ完全性を保証する人工知能（ＡＩ）の実装形態に関する。
【背景技術】
【０００２】
産業用制御システム（ＩＣＳ）を安全にすることは、それらが実行するミッションクリティカルな作業の安全性、信頼性、および可用性にとって非常に重要であり得る。これは、従来分離されていた操作技術（ＯＴ）とＩＣＳネットワークが情報技術（ＩＴ）ネットワークに収斂され、それによってセキュリティリスクが増大するときの、産業用モノのインターネット（ＩＩｏＴ）技術空間において重要であり得る。そのような攻撃の例は、イランの原子力発電所内のスタックスネット攻撃からウクライナの送電網に対する攻撃まで、ますます一般的になってきている。
【０００３】
これらの攻撃における一般的な方法は、プログラマブルロジックコントローラ（ＰＬＣ）および／または監視制御データ取得（ＳＣＡＤＡ）システムのいずれかにおける脆弱性を活用することである。図１は、例示的な実装形態による、付加的なセンサを有するＩＣＳシステムの一例を示す。工場には、製造プロセスを実行する多数の機械１０１が存在する。各機械（または機械のグループ）の動作は、対応するコマンドを発行するＰＬＣ１０２によって制御される。そのような動作は、「ＯＮ」または「ＯＦＦ」にすること、ベルトの直線速度、タービンの回転速度を上げること、ロボットアームのピックアンドプレース動作などであり得る。ＰＬＣはまた、温度、圧力、アセンブリラインに沿って移動する部品の数などの機械状態を表すセンサ情報を取り込む。これらのセンサは、ＰＬＣに取り付けられた内部センサであり、ＩＣＳネットワークの一部である。すべてのそのような値（センサおよびコマンド）は、ＰＬＣ内部のレジスタ（それぞれ１０２１および１０２２）と呼ばれるメモリユニットに書き込まれる。１０２１からの機械コマンドは、１０２２の中のセンサ読取り値に影響を与えるはずである。たとえば、センサは、ＯＮにするコマンドが適用された後に非ゼロのベルト速度を測定するはずである。
【０００４】
ＳＣＡＤＡシステム１０４は、ＰＬＣをプログラムし（すなわち、ＰＬＣレジスタ１０２２に書き込まれるアクチュエータコマンド１０３２を発行し）、ＰＬＣが機械から得たデータを取得する（たとえば、ＰＬＣレジスタ１０２１からデータ１０３１を読み取る）ために使用することができる工場全体ソフトウェアシステムである。ＳＣＡＤＡシステムは、（レジスタ１０２１および１０２２の内容に対応する）センサ／アクチュエータの値ペア１０５をそのヒューマンマシンインターフェース（ＨＭＩ）１０６に渡し、そこで工場職員が可視化するために工場に関するすべての情報が表示される。たとえば、機械に何らかの機能不全が存在する場合、それは内部センサによって捕捉され、１０２１に書き込まれ、１０３１を経由してＳＣＡＤＡに伝達され、１０５を経由してＨＭＩに表示されるはずであり、ＨＭＩは、次いで、工場職員が機能不全に気付き、次いで是正措置を取ることを可能にすることができる。
【０００５】
上記の状況は通常の作業モードを記載している。ＩＣＳ攻撃またはセキュリティ侵害の間、悪意のある敵対者は、ＳＣＡＤＡシステムおよびＰＬＣシステムを危険にさらすことができる。悪意のある敵対者はシステムをハッキングすることができ、その結果、ＨＭＩ１０６に表示された内容は、本当の機械状態（１０２１および１０２２）とは異なる。したがって、不正なコマンド１０２２によって引き起こされた何らかの機能不全が機械に存在する場合、その影響は１０２１によって捕捉されるはずであるが、いずれかの信号１０３１（またはより可能性が高い１０５）が破損し、したがって、ＨＭＩを見ている工場職員が問題について知ることにならないであろう。これにより、是正処置が遅延し、機能不全の機械が動作可能な状態を保ち、それにより、時間とともに、深刻な動作障害につながる可能性がある。そのような状況はスタックスネット攻撃において発生し、そこでは、不正なコマンド１０２２が通常よりも速く回転するように遠心分離機に指示したが、遠心分離機がより速く回転していることを示す正確なセンサ値１０２１がＨＭＩに提供されなかった。
【０００６】
中核となる問題は、したがって、産業用コントローラのデータ完全性を保証すること、すなわち、ＳＣＡＤＡのＨＭＩに表示されたデータ（センサ、コマンド）が機械も観測しているデータであるかどうかを検出する方法である。上記の問題に対処する従来技術の多くのインスタンスが存在する。いくつかの従来技術の手法は、ＩＴネットワークにおいて観測し、セキュリティ侵害の可能性がある異常な挙動を検出するために、冗長性、ネットワークトラフィック分析などの方法を導入しようと試みる。いくつかの従来技術の手法は、ＯＴ中心手法を取り、ＯＴレイヤプロトコル、シグナリング、およびメッセージの深層検査によって攻撃シナリオを検出しようと試みる。しかしながら、いずれの手法も上述された侵害のタイプを完全に検出することができない。解決策の鍵は、すべてのソースがＩＣＳ攻撃において危険にさらされているとは限らず、それらの合同分析が異常を見せる場合があるので、複数のデータソース（ＩＴ、ＯＴ、内部／外部センサ）を融合することである。
【０００７】
さらなる従来技術の手法は、位置データおよびネットワークデータなどのさらなるセンサ情報を使用するが、その使用事例は、多くが識別情報／アクセス管理および特定のタイプの悪意のある挙動に対してである。そのような従来技術の手法は、考えられる攻撃ベクトルを定義し、様々なシステムパラメータの潜在的な挙動を分析し、そのような挙動を検出しようと試みる。別の従来技術の手法は、ＰＬＣデータをＩＣＳシステムの一部ではない外部センサＳ１０１、Ｓ１０２、Ｓ１０３、Ｓ１０４、Ｓ１０５、およびＳ１０６と関連付ける。そのようなセンサの測定値は、不正な挙動および異常を示す可能性がある。たとえば、外部センサＳ１０２は、内部センサ値１０２１と同じデータ（または関連付けられたデータ）を測定している可能性がある。ＩＣＳ侵害の場合、外部センサは影響を受けない。センサ値１０２１は、ＩＣＳ侵害に起因してＨＭＩに正しく反映（１０５）されない可能性があるが、次いで、１０５内の報告値とＳ１０２は異なるはずであり、それにより、異常な挙動が指摘される。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
見込みはあるが、そのような従来技術の方法は以下の理由で包括的ではない。
【０００９】
１．工場システムの挙動は複雑であり、任意の瞬間（または時間期間）に生のセンサ値１０２１とＳ１０２を比較することによって異常を検出することは不可能である。異常は、複雑に、経時的に値の明らかなパターンなしに現れる可能性がある。
【００１０】
２．同じ量１０２１を正確に測定する外部センサＳ１０２が存在しない可能性が高い。最良のケースシナリオは、確率的な意味で強い相関関係を特定することを含む。そうである場合、生の値を比較することはもはや役に立たない。
【００１１】
３．センサ測定値は雑音が多く、かつ／またはセンサは故障する可能性があり、したがって、１０２１とＳ１０２の値がなぜ一致しないかに関して、他のセキュリティに関連しない理由が多く存在する可能性がある。
【課題を解決するための手段】
【００１２】
本開示では、例示的な実装形態はデータ完全性問題を解決する手法を含み、その手法は、上述された問題を扱うのに十分な能力があるツールである、人工知能（ＡＩ）および時系列機械学習の能力を活用する。そのような技法は従来技術において研究されているが、工場向けの実際的なＩＣＳセキュリティ解決策は依然欠けており、したがって、本明細書に記載される例示的な実装形態は上記の解決策の欠如に対処する。
【００１３】
本開示の態様は方法を含み、方法は、工場の現在の作業条件から特定された工場の状態について、工場のネットワーク上のプログラマブルロジックコントローラ（ＰＬＣ）からのストリーミングＰＬＣ値、およびネットワークの外部に接続された工場内のセンサからのストリーミング外部センサ値を受信することと、工場の状態に関連付けられた履歴ＰＬＣ値および履歴センサ値と比較してストリーミングＰＬＣ値およびストリーミング外部センサ値に対する確率分析を行うことと、ストリーミングＰＬＣ値が状態についての予想内にあり、ストリーミング外部センサ値が状態についての予想内にないことを確率分析が示す場合、セキュリティインシデントの指示を提供することとを含むことができる。
【００１４】
本開示の態様は、プロセスを実行するための命令を記憶する非一時的コンピュータ可読媒体をさらに含み、命令は、工場の現在の作業条件から特定された工場の状態について、工場のネットワーク上のプログラマブルロジックコントローラ（ＰＬＣ）からのストリーミングＰＬＣ値、およびネットワークの外部に接続された工場内のセンサからのストリーミング外部センサ値を受信することと、工場の状態に関連付けられた履歴ＰＬＣ値および履歴センサ値と比較してストリーミングＰＬＣ値およびストリーミング外部センサ値に対する確率分析を行うことと、ストリーミングＰＬＣ値が状態についての予想内にあり、ストリーミング外部センサ値が状態についての予想内にないことを確率分析が示す場合、セキュリティインシデントの指示を提供することとを含む。
【００１５】
本開示の態様は、工場のネットワーク上の複数のプログラマブルロジックコントローラ（ＰＬＣ）、およびネットワークの外部の管理装置に接続された複数のセンサを管理するように構成された管理装置をさらに含み、管理装置は、工場の現在の作業条件から特定された工場の状態について、ＰＬＣからのストリーミングＰＬＣ値、およびネットワークの外部に接続された工場内の複数のセンサからのストリーミング外部センサ値を受信することと、工場の状態に関連付けられた履歴ＰＬＣ値および履歴センサ値と比較してストリーミングＰＬＣ値およびストリーミング外部センサ値に対する確率分析を行うことと、ストリーミングＰＬＣ値が状態についての予想内にあり、ストリーミング外部センサ値が状態についての予想内にないことを確率分析が示す場合、セキュリティインシデントの指示を提供することとを行うように構成されたプロセッサを含む。
【００１６】
本開示の態様はシステムを含み、システムは、工場の現在の作業条件から特定された工場の状態について、工場のネットワーク上のプログラマブルロジックコントローラ（ＰＬＣ）からのストリーミングＰＬＣ値、およびネットワークの外部に接続された工場内のセンサからのストリーミング外部センサ値を受信するための手段と、工場の状態に関連付けられた履歴ＰＬＣ値および履歴センサ値と比較してストリーミングＰＬＣ値およびストリーミング外部センサ値に対する確率分析を行うための手段と、ストリーミングＰＬＣ値が状態についての予想内にあり、ストリーミング外部センサ値が状態についての予想内にないことを確率分析が示す場合、セキュリティインシデントの指示を提供するための手段とを含むことができる。
【図面の簡単な説明】
【００１７】
【図１】例示的な実装形態による、付加的なセンサを有するＩＣＳシステムの一例を示す図である。
【図２】例示的な実装形態による、ＩＣＳシステム向けのＡＩ実装形態の例示的なシステム図である。
【図３】例示的な実装形態による、グローバル外部変数の空間の一例を示す図である。
【図４】例示的な実装形態による、工場状態特定モジュールのための例示的なフローを示す図である。
【図５】例示的な実装形態による、ｓｉｇｎａｌ＿ｓｔａｔｅが受信されたときの工場状態特定モジュールのための例示的なフローを示す図である。
【図６】例示的な実装形態による、セキュリティ分析モジュールの一例を示す図である。
【図７】例示的な実装形態による、セキュリティ分析モジュールの訓練モジュールのための例示的なフロー図である。
【図８】例示的な実装形態による、セキュリティ分析モジュールのテストモジュールのためのフロー図である。
【図９】例示的な実装形態による、工場内の検知システムおよび制御システムの例示的なシステムアーキテクチャを示す図である。
【図１０Ａ】例示的な実装形態による、例示的な管理情報を示す図である。
【図１０Ｂ】例示的な実装形態による、例示的な管理情報を示す図である。
【図１１】例示的な実装形態における使用に適した例示的なコンピュータデバイスを有する例示的なコンピューティング環境を示す図である。
【発明を実施するための形態】
【００１８】
以下の発明を実施するための形態は、本出願の図および例示的な実装形態のさらなる詳細を提供する。明確にするために、図の間の冗長要素の参照番号および説明は省略される。説明全体にわたって使用される用語は例として提供され、限定するものではない。たとえば、「自動的」という用語の使用は、本出願の実装形態を実践する当業者の所望の実装形態に応じて、実装形態のいくつかの態様に対するユーザまたは管理者の制御を伴う、全自動または半自動の実装形態を含んでよい。選択はユーザインターフェースもしくは他の入力手段を介してユーザによって行うことができるか、または所望のアルゴリズムを介して実施することができる。本明細書に記載される例示的な実装形態は、単独または組合せで利用することができ、例示的な実装形態の機能は、所望の実装形態による任意の手段を介して実施することができる。
【００１９】
図２は、例示的な実装形態による、ＩＣＳシステム向けのＡＩ実装形態の例示的なシステム図を示す。明確にするために、本開示は工場状態またはクラスの概念を使用する。本開示の工場状態およびクラスの定義では、工場はいくつかの可能な高レベル状態のうちの１つに存在することができ、各状態では、作業条件、労働条件、ならびにＰＬＣ値およびセンサ値の統計データが異なる。例は以下の通りである。
【００２０】
１．状態はアセンブリラインにおいて製造されている製品によって定義される。製品が製品Ａから製品Ｂに変化した場合、状態も変化する。たとえば、新しい製品Ｂは製品Ａよりも速く組み立てられる必要があり得る（たとえば、１分当たり製造される目標が高い部品）、それは、機械がより速く動作し、より多くの作業者が必要とされ得ることを意味する。この違いは、それによって新しい状態に対応する。
【００２１】
２．工場内でシフトが変わる時間の間は新しい状態である。この状態では、古いシフトからの作業者が去り、新しい作業者が入る。この時間の間に作業における何らかの中断があり、したがって、それは新しい状態として資格を得る。
【００２２】
３．所与の朝、多くの作業者が姿を見せないことを想定する。いくつかの機械は電源を切られる可能性があり、一部の製造は停止するか、または異なる機械に切り替えられる可能性がある。この条件が持続する時間の間は、新しい状態としてラベル付けすることができる。
【００２３】
４．重要な機械が壊れ、メンテナンスのためにオフラインになる必要がある。一部の製造は停止するか、または異なる機械に切り替えられる。この条件が持続する時間の間は、新しい状態としてラベル付けすることができる。
【００２４】
通常、状態は、新しい状態に切り替わる前にある時間期間の間持続する。いくつかの状態は、通常、規則的に（上記の例１および例２）、または不規則に（上記の例３および例４）後で再び繰り返し起こる。
【００２５】
提案されたシステムのブロック図が図２に示される。図２のシステムは以下の構成要素を有し、それらの高レベルの説明が本明細書に記載される。
【００２６】
（ＰＬＣまたは外部センサなどの）機械情報に関係しない工場内のすべての既存のデータソース２０１からその入力を取得する工場状態特定モジュール２０２が存在する。そのような既存のデータソース２０１は、所望の実装形態による、調達遅延、販売および操業の計画内の変更を示すエンタープライズリソースプランニング（ＥＲＰ）システム、製造、作業現場条件、作業員の流れおよびその中の重要な変化を追跡する作業現場内のビデオ解析結果を示す生産実行システム（ＭＥＳ）などを含むことができる。ＰＬＣおよび外部センサなどの機械情報とは異なり、これらのデータソースの値は短い時間の間に著しく変化することはない。工場状態特定モジュール２０２は工場状態を計算し、接続２０３を介してセキュリティ分析モジュール２０４にこの情報を渡す。セキュリティ分析モジュール２０４は、ＰＬＣ値２０５を記憶し、外部センサ値２０６を記憶するストリーミングデータベースにアタッチし、セキュリティ分析モジュール２０４は、それらの両方からのデータにアクセスすることができる。セキュリティ分析モジュール２０４は、これら３つのタイプの情報に基づいてセキュリティ分析を実行し、工場状態特定モジュール２０２に結果を返す。この結果は、Ｓｉｇｎａｌ＿Ｓｔａｔｅ２０７と呼ばれるデータ構造にカプセル化される。
【００２７】
図３は、例示的な実装形態による、グローバル外部変数の空間の一例を示す。具体的には、図３はすべての可能な状態の空間Ｅの概念図を示す。この空間Ｅは、２０１におけるデータソースのすべての可能な結果の空間でもある。特定の状態（たとえば、２０１１、２０１２、２０１３）はＥのサブセットである。これらのいくつかの状態は重複する場合がある（たとえば、例３および例４において与えられた２つの状態は、機械の電源が切られるという共通点を有し、これらは同じ機械の可能性がある。これらは状態Ｅ１およびＥ３の可能性がある）。したがって、有限の数の状態でなくてもよく、新しい状態が定義される必要があり得る。したがって、状態を定義する厳密な方法は存在しない。本開示では、状態は、したがって、定性的な方法で記載される。
【００２８】
図４は、例示的な実装形態による、工場状態特定モジュールのための例示的なフローを示す。工場状態特定モジュール２０２のフローは以下の通りであり得る。
【００２９】
２０２１において、モジュールは状態またはクラスのセットＥ１〜ＥＫを初期化する。状態またはクラスのこのセットは、人間（工場職員）の入力に基づくか、またはそうでない場合所望の実装形態に応じることができる。モジュールは、将来の参照を容易にするために状態ごとに数字ラベルＳ１〜ＳＫを割り当てる。２０２２において、モジュールは機械情報に関係しない現在のデータソースの値を取得する。これをｅと呼ぶ。２０２３において、モジュールは、この値がＥ１〜ＥＫの間の既知の状態に対応するかどうか、またはこれらの状態のうちの１つに非常に近いかどうかをチェックする。「チェック」のこの動作は、所望の実装形態による定性的な判定（たとえば、設定されたしきい値以内、標準偏差などの確率分析）に基づくことができる。
【００３０】
変数ｅが既存の状態Ｅｎに対応するように見える場合（はい）、２０２５に進み、この変数を既存の状態Ｅｎに加える。この動作を実行するために、１組のあらかじめ定義された規則を利用することができ、状態は、所望の実装形態に基づいて、新しい変数が入ってくるときに状態を照合することができる。変数ｅが既存の状態とは非常に異なる条件を示す場合（いいえ）、プロセスは２０２４に進んで、新しい状態ＥＫ＋１を形成する。所望の実装形態に応じて、このプロセスは、新しい状態を組み込むように人間の入力および検証を促すために、ユーザインターフェースを生成することができる。
【００３１】
図５は、例示的な実装形態による、ｓｉｇｎａｌ＿ｓｔａｔｅが受信されたときの工場状態特定モジュールのための例示的なフローを示す。工場状態特定モジュール２０２はまた、セキュリティ分析モジュール２０４からのフィードバックＳｉｇｎａｌ＿Ｓｔａｔｅ２０３に基づいて、様々な機能を実行する。図５のフローは以下の通りである。
【００３２】
２０２５において、モジュールは信号ｓｉｇｎａｌ＿ｓｔａｔｅ２０７を受信し、２０２６において信号を処理してそのタイプを特定する。処理は、所望の実装形態に従ってｓｉｇｎａｌ＿ｓｔａｔｅを処理するように構築されたアルゴリズムに基づいて行うことができるか、またはユーザインターフェースを介して人間の解釈のために提供することができる。値が「センサをチェック」または「通常の例外」である場合、これは、機械との何らかの通常の作業上の問題が存在する（「通常の例外」）か、または外部センサが機能不全になっている（「センサをチェック」）ことを示す。この場合、プロセスは２０２８に進んで、そのような問題に対処するように工場内の関連作業チームに通知する。そのようなプロセスは、イベントのタイプに基づいて事前設定された指示を送ることを含むことができる。「センサをチェック」および「通常の例外」の定義は、セキュリティ分析モジュール２０４の機能に関して記載される。
【００３３】
値が「新しい状態」である場合、ＰＬＣおよび外部センサの統計データの組合せが前に記録されていない新しい状態の存在を検出したことを示すので、プロセスは２０２９に進む。その場合、モジュールは機械情報に関係しないデータソースに関する情報を含む現在の変数ｅを新しい状態として記憶する。
【００３４】
値が「ＩＣＳ攻撃」である場合、プロセスは２０２７に進んで、それに応じた措置を講じる。
【００３５】
図６は、例示的な実装形態による、セキュリティ分析モジュール２０４の一例を示す。図６に示されたように、セキュリティ分析モジュール２０４は、２つのサブモジュール：訓練モジュール２０４１およびテストモジュール２０４２を含む。各モジュールのさらなる詳細は、図７および図８に関して記載される。
【００３６】
図７は、例示的な実装形態による、セキュリティ分析モジュールの訓練モジュールのための例示的なフロー図を示す。訓練モジュール２０４１は以下のフローを実行することができる。
【００３７】
２０４１１において、モジュールは現在のクラスおよびラベルに関する情報を記憶する。２０４１２において、モジュールはすべてのＰＬＣ変数を観測し、時系列Ｐ（ｔ）を形成する。２０４１１におけるプロセス内でクラスが変化した場合、プロセスはそのクラスのための新しい時系列を形成する。２０４１３において、モジュールはすべての外部センサ変数を観測し、時系列Ｚ（ｔ）を形成する。２０４１１におけるプロセス内でクラスが変化した場合、モジュールはそのクラスのための新しい時系列を形成する。
【００３８】
２０４１４において、モジュールは、Ｐ（ｔ）に対して（たとえば、当業者に知られている任意の方法に従って）標準時系列分析などの確率分析を行って、その確率表現ＰＳｎを取得する。これは、複数の変数の数学関数であり得る。モジュールラベルは、現在のクラスのラベルを用いて確率表現をラベル付けする。（同じクラスに対して）新しい時系列値が受信されるにつれて、モジュールはＰＳｎの特性を更新し改善する。
【００３９】
２０４１５において、モジュールは、Ｚ（ｔ）に対して標準時系列分析などの確率分析を行って、その確率表現ＺＳｎを取得する。これは、複数の変数の数学関数であり得る。モジュールラベルは、現在のクラスのラベルを用いて確率表現をラベル付けする。（同じクラスに対して）新しい時系列値が受信されるにつれて、モジュールはＺＳｎの特性を更新し改善する。
【００４０】
図８は、例示的な実装形態による、セキュリティ分析モジュールのテストモジュールのためのフロー図を示す。テストモジュール２０４２は以下のようにフローを実行するように構成される。
【００４１】
２０４２１において、モジュールは現在のクラスおよびラベルに関する情報を記憶する。２０４２２において、モジュールはすべてのＰＬＣ変数を観測し、時系列Ｐｃｕｒｒｅｎｔ（ｔ）を形成する。この分析は、アルゴリズムがウィンドウにわたってイベント（異常または攻撃）を検出しようと試みるので、短い時間ウィンドウまたはサブシーケンスの間に行われる。２０４２３において、モジュールはすべての外部センサ変数を観測し、時系列Ｚｃｕｒｒｅｎｔ（ｔ）を形成する。この分析は、アルゴリズムがウィンドウにわたってイベント（異常または攻撃）を検出しようと試みるので、短い時間ウィンドウまたはサブシーケンスの間に行われる。２０４２４において、モジュールは、Ｐｃｕｒｒｅｎｔ（ｔ）に対して（たとえば、当業者に知られている任意の方法に従って）標準時系列分析などの確率分析を行って、その確率表現ＰＳｎＣｕｒｒｅｎｔを取得する。これは、複数の変数の数学関数であり得る。モジュールラベルは、現在のクラスのラベルを用いて確率表現をラベル付けする。
【００４２】
２０４２５において、モジュールは、Ｚｃｕｒｒｅｎｔ（ｔ）に対して（たとえば、当業者に知られている任意の方法に従って）標準時系列分析などの確率分析を行って、その確率表現ＺＳｎＣｕｒｒｅｎｔを取得する。これは、複数の変数の数学関数であり得る。モジュールラベルは、現在のクラスのラベルを用いて確率表現をラベル付けする。
【００４３】
２０４２６において、モジュールは、２０４２４におけるプロセスからのＰＳｎＣｕｒｒｅｎｔと２０４１４におけるプロセスからのＰＳｎとの間の（たとえば、当技術分野で知られている任意の所望の実装形態による確率的な意味の）距離を計算する。変数Ｐを定義する。距離が大きい（たとえば、所望の実装形態に従って設定されたしきい値を満たす）場合、モジュールはＰ＝１を割り当て、そうでない場合、モジュールはＰ＝０を割り当てる。このプロセスは、工場がある特定のクラスにあることが事前に想定されているとき、ＰＬＣ変数の挙動に著しい統計的な違いが存在することを示す。
【００４４】
２０４２７において、２０４２５におけるプロセスからのＺＳｎＣｕｒｒｅｎｔと２０４１５におけるプロセスからのＺＳｎとの間の（たとえば、当技術分野で知られている任意の所望の実装形態による確率的な意味の）距離を計算する。変数Ｚを定義する。距離が大きい（たとえば、所望の実装形態に従って設定されたしきい値を満たす）場合、モジュールはＺ＝１を割り当て、そうでない場合、モジュールはＺ＝０を割り当てる。このプロセスは、工場がある特定のクラスにあることが事前に想定されているとき、外部センサ変数の挙動に著しい統計的な違いが存在することを示す。
【００４５】
２０４２８において、プロセスは以下の動作を実行する。
【００４６】
ａ．  Ｐ＝０およびＺ＝０である場合、それは、ＰＬＣと外部センサの両方の予想される統計的な挙動が予想通りであることを意味する。これは通常のイベントである。モジュールは、それに応じて（たとえば、通常のイベントとして）ｓｉｇｎａｌ＿ｓｔａｔｅを割り当てる。
【００４７】
ｂ．  Ｐ＝０およびＺ＝１である場合、それは、ＰＬＣの予想される統計的な挙動が予想通りであるが、外部センサの挙動は予想通りでないことを意味する。これは、ＰＬＣ変数のデータ完全性に影響を与えるＩＣＳ攻撃がＳＣＡＤＡに報告されていることを示す。モジュールは、それに応じて（たとえば、ＩＣＳ攻撃として）ｓｉｇｎａｌ＿ｓｔａｔｅを割り当てる。
【００４８】
ｃ．  Ｐ＝１およびＺ＝１である場合、それは、ＰＬＣと外部センサの両方の統計的な挙動が予想通りでないことを意味する。これは、（機械故障などの）通常の例外である可能性がある。システム状態の基本的な想定が正しくないことも考えられ、工場状態特定モジュール２０２において新しい状態が定義される必要がある。モジュールは、それに応じてｓｉｇｎａｌ＿ｓｔａｔｅ（たとえば、通常の例外またはヒューマンインターフェースを介したユーザ入力、もしくは所望の実装形態によるアルゴリズムプロセスによって決定された新しい状態）を割り当てる。
【００４９】
ｄ．  Ｐ＝１およびＺ＝０である場合、それは、センサの予想される統計的な挙動が予想通りであるが、ＰＬＣセンサの挙動は予想通りでないことを意味する。前者によって捕捉されているべき機械イベントを後者が指し示し、したがって、外部センサにおける何らかの機能不全を意味することが最も可能性が高い。モジュールは、それに応じてｓｉｇｎａｌ＿ｓｔａｔｅ（たとえば、センサをチェック）を割り当てる。
【００５０】
本明細書に記載された例示的な実装形態は、それにより、工場が入ることができる様々な状態への時系列の製造コンテキスト依存のセグメント化を実現し、クラスごとに別個の数学的表現を見つけることができる。そのような例示的な実装形態は、このコンテキスト依存の知識が使用されなかったときのケースにわたって正確性を改善する。これは、確率関数を導出する（たとえば、当技術分野で知られている）時系列手法が、基本となる分布が静的である場合にうまくいくからであり、それは異なる状態の間のケースではない。さらに、例示的な実装形態は、ＰＬＣシーケンスおよび外部センサシーケンスを別々に使用して、２０４２８におけるプロセスに示されたように、広範囲の結果を区別することを可能にする。
【００５１】
図９は、例示的な実装形態による、工場内の検知システムおよび制御システムの例示的なシステムアーキテクチャを示す。この例示的なシステムアーキテクチャでは、ＩｏＴゲートウェイ（ＧＷ）９０１は同期式に１つまたは複数のセンサ９０２からのデータ収集を制御し、サーバ９００−２は、各々の対応する機械９０４−１、９０４−２、９０４−３と接続された１つまたは複数のＰＬＣ９０３を編成する。サーバ９００−２は、各々の機械９０４−１、９０４−２、９０４−３の挙動を制御するだけでなく、同期式に各々の機械９０４−１、９０４−２、９０４−３の作業に関するＰＬＣ値を収集することもできる。したがって、図９に示された例示的なシステムでは、サーバ９００−１は、センサ９０２およびＰＬＣ９０３から同期する値を取得する。そのような構成では、サーバ９００−１は、ＩｏＴ  ＧＷ９０１およびＰＬＣ９０３を介してセンサを管理し、サーバ９００−２を介して機械作業を管理するために、管理装置として動作する。
【００５２】
セキュリティを維持するために、工場自体のネットワークはサーバ９００−２によって管理され、サーバ９００−２は、基本となる機械９０４−１、９０４−２、９０４−３を制御するＰＬＣ９０３を管理する。サーバ９００−２は、図１０Ａに示されたように工場ネットワークとは別個のネットワークを介してサーバ９００−１からスケジュールを受信し、次いで、図１０Ａに記載されたスケジュールに従って作業を実行するように機械９０４−１、９０４−２、９０４−３を制御するようにＰＬＣ９０３に指示することができる。センサ９０２は機械９０４−１、９０４−２、９０４−３のうちの１つまたは複数と関連付けられ、セキュリティの理由で工場ネットワークとは別個であるネットワークに接続される。このネットワークはＩｏＴ  ＧＷ９０１によって管理される。サーバ９００−２は関連付けられたタイムスタンプを有するＰＬＣ値をサーバ９００−１にストリーミングし、ＩｏＴ  ＧＷ９０１は関連付けられたタイムスタンプを有するセンサ値をサーバ９００−１にストリーミングし、サーバ９００−１はタイムスタンプに基づいてＰＬＣ値とセンサ値をそれに応じて同期する。
【００５３】
図１０Ａおよび図１０Ｂは、例示的な実装形態による、例示的な管理情報を示す。具体的には、図１０Ａは、スケジュールされた時間期間、スケジュールされた時間期間の間に行われるべき作業、および行われるべき作業から導出される予想状態を含むことができる、工場の作業をスケジュールする一例を示す。図１０Ａの情報から、現在の作業条件は、それにより、現在時刻および現在時刻向けにスケジュールされた作業に基づいて、工場向けに決定することができる。図１０Ｂは、履歴ＰＬＣ値および履歴センサ値を用いて状態を管理する一例を示す。各々の前に測定された状態は、状態が検出されたときの工場に関与している作業とともに、対応する履歴ＰＬＣ値および履歴センサ値と関連付けることができる。
【００５４】
図１１は、図９のサーバ９００−１または９００−２などの、例示的な実装形態における使用に適した例示的なコンピュータデバイスを有する例示的なコンピューティング環境を示す。コンピューティング環境１１００内のコンピュータデバイス１１０５は、１つもしくは複数の処理ユニット、コア、もしくはプロセッサ１１１０、メモリ１１１５（たとえば、ＲＡＭ、ＲＯＭ、など）、内部ストレージ１１２０（たとえば、磁気ストレージ、光ストレージ、半導体ストレージ、および／もしくは有機ストレージ）、ならびに／またはＩ／Ｏインターフェース１１２５を含むことができ、それらのうちのいずれも、情報を通信するための通信機構もしくはバス１１３０上で結合されるか、またはコンピュータデバイス１１０５に組み込むことができる。
【００５５】
コンピュータデバイス１１０５は、入力／ユーザインターフェース１１３５および出力デバイス／インターフェース１１４０に通信可能に結合することができる。入力／ユーザインターフェース１１３５および出力デバイス／インターフェース１１４０のうちのいずれか１つまたは両方は、有線またはワイヤレスのインターフェースであり得るし、着脱可能であり得る。入力／ユーザインターフェース１１３５は、物理または仮想の任意のデバイス、構成要素、センサ、またはインターフェースを含んでよく、それらは、入力（たとえば、ボタン、タッチスクリーンインターフェース、キーボード、ポインティング／カーソル制御、マイクロフォン、カメラ、点字、動きセンサ、光学リーダー、など）を提供するために使用することができる。出力デバイス／インターフェース１１４０は、ディスプレイ、テレビジョン、モニタ、プリンタ、スピーカ、点字などを含んでよい。いくつかの例示的な実装形態では、入力／ユーザインターフェース１１３５および出力デバイス／インターフェース１１４０は、コンピュータデバイス１１０５に組み込まれるか、または物理的に結合することができる。他の例示的な実装形態では、他のコンピュータデバイスが、コンピュータデバイス１１０５用の入力／ユーザインターフェース１１３５および出力デバイス／インターフェース１１４０として機能するか、またはそれらの機能を提供することができる。タッチスクリーンディスプレイ、テレビジョンディスプレイ、または任意の他の形態のディスプレイを含む例示的な実装形態では、ディスプレイはユーザインターフェースを提供するように構成される。
【００５６】
コンピュータデバイス１１０５の例には、限定はしないが、高度モバイルデバイス（たとえば、スマートフォン、車両および他の機械内のデバイス、人間および動物によって携行されるデバイスなど）、モバイルデバイス（たとえば、タブレット、ノートブック、ラップトップ、パーソナルコンピュータ、ポータブルテレビジョン、ラジオなど）、ならびに移動用に設計されていないデバイス（たとえば、デスクトップコンピュータ、他のコンピュータ、情報キオスク、１つもしくは複数のプロセッサが組み込まれており、かつ／または結合されているテレビジョン、ラジオなど）が含まれてよい。
【００５７】
コンピュータデバイス１１０５は、外部ストレージ１１４５、ならびに、任意の数のネットワーク化された構成要素、デバイス、および同じまたは異なる構成の１つまたは複数のコンピューティングデバイスを含むシステムと通信するためのネットワーク１１５０に、（たとえば、Ｉ／Ｏインターフェース１１２５を介して）通信可能に結合することができる。コンピュータデバイス１１０５または任意の接続されたコンピュータデバイスは、サーバ、クライアント、シンサーバ、汎用機械、専用機械、または別のラベルとして機能するか、それらのサービスを提供するか、またはそのように呼ぶことができる。
【００５８】
Ｉ／Ｏインターフェース１１２５には、限定はしないが、少なくともコンピューティング環境１１００内のすべての接続された構成要素、デバイス、およびネットワークとの間で情報を通信するための、任意の通信またはＩ／Ｏのプロトコルまたは規格（たとえば、イーサネット(登録商標)、８０２．１１ｘ、ユニバーサルシステムバス、ＷｉＭＡＸ、モデム、セルラーネットワークプロトコルなど）を使用する有線インターフェースおよび／またはワイヤレスインターフェースが含まれてよい。ネットワーク１１５０は、任意のネットワークまたはネットワークの組合せ（たとえば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、電話ネットワーク、セルラーネットワーク、衛星ネットワークなど）であり得る。
【００５９】
コンピュータデバイス１１０５は、一時的媒体および非一時的媒体を含む、コンピュータ使用可能媒体またはコンピュータ可読媒体を使用すること、および／または使用して通信することができる。一時的媒体には、伝送媒体（たとえば、メタルケーブル、光ファイバ）、信号、搬送波などが含まれる。非一時的媒体には、磁気媒体（たとえば、ディスクおよびテープ）、光学媒体（たとえば、ＣＤ  ＲＯＭ、デジタルビデオディスク、Ｂｌｕ−ｒａｙ(登録商標)ディスク）、半導体媒体（たとえば、ＲＡＭ、ＲＯＭ、フラッシュメモリ、半導体ストレージ）、ならびに他の非一時的なストレージまたはメモリが含まれる。
【００６０】
コンピュータデバイス１１０５は、いくつかの例示的なコンピューティング環境において、技法、方法、アプリケーション、プロセス、またはコンピュータ実行可能命令を実装するために使用することができる。コンピュータ実行可能命令は、一時的媒体から取り出され、非一時的媒体に記憶され、非一時的媒体から取り出すことができる。実行可能命令は、任意のプログラミング言語、スクリプト言語、および機械語（たとえば、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ(登録商標)、Ｖｉｓｕａｌ  Ｂａｓｉｃ、Ｐｙｔｈｏｎ、Ｐｅｒｌ、ＪａｖａＳｃｒｉｐｔ(登録商標)など）のうちの１つまたは複数に由来することができる。
【００６１】
プロセッサ１１１０は、ネイティブ環境または仮想環境において、任意のオペレーティングシステム（ＯＳ）（図示せず）の下で実行することができる。論理ユニット１１６０と、アプリケーションプログラミングインターフェース（ＡＰＩ）ユニット１１６５と、入力ユニット１１７０と、出力ユニット１１７５と、様々なユニットが互いに、ＯＳと、かつ他のアプリケーション（図示せず）と通信するためのユニット間通信機構１１９５とを含む、１つまたは複数のアプリケーションを配置することができる。記載されたユニットおよび要素は、設計、機能、構成、または実装において変更することができ、提供された説明に限定されない。プロセッサ１１１０は、メモリ１１１５からロードされた命令を実行するように構成された物理プロセッサまたは中央処理装置（ＣＰＵ）の形態であり得る。
【００６２】
いくつかの例示的な実装形態では、情報または実行命令がＡＰＩユニット１１６５によって受信されると、それは、１つまたは複数の他のユニット（たとえば、論理ユニット１１６０、入力ユニット１１７０、出力ユニット１１７５）に通信されてよい。場合によっては、論理ユニット１１６０は、上述されたいくつかの例示的な実装形態において、ユニットの間の情報フローを制御し、ＡＰＩユニット１１６５、入力ユニット１１７０、出力ユニット１１７５によって提供されるサービスを指示するように構成されてよい。たとえば、１つまたは複数のプロセスまたは実装形態のフローは、論理ユニット１１６０単独により、またはＡＰＩユニット１１６５と連携して制御されてよい。入力ユニット１１７０は、例示的な実装形態に記載された計算用の入力を取得するように構成されてよく、出力ユニット１１７５は、例示的な実装形態に記載された計算に基づいて出力を提供するように構成されてよい。
【００６３】
メモリ１１１５は、図１０Ａおよび図１０Ｂに示された管理情報を記憶するように構成され、プロセッサ１１１０は、管理情報に基づいてサーバ９００−１または９００−２の機能を容易にするようにプロセスを実行するように構成される。たとえば、プロセッサ１１１０は、図１０Ａのスケジューリング情報をサーバ９００−２に送信するか、または機械を制御してスケジュールに従って作業を行うように、ＰＬＣ９０３に指示するように構成することができる。
【００６４】
プロセッサ１１１０は、図１０Ａの管理情報に基づいて工場の現在の作業条件から特定された工場の状態について、図７および図９に示されたように、ＰＬＣからのストリーミングＰＬＣ値、およびネットワークの外部に接続された工場内の複数のセンサからのストリーミング外部センサ値を受信することと、図７および図８に示されたように、工場の状態に関連付けられた履歴ＰＬＣ値および履歴センサ値と比較してストリーミングＰＬＣ値およびストリーミング外部センサ値に対する確率分析を行うことと、ＩＣＳ攻撃について図８の２０４２８において示されたように、ストリーミングＰＬＣ値が状態についての予想内にあり、ストリーミング外部センサ値が状態についての予想内にないことを確率分析が示す場合、セキュリティインシデントの指示を提供することとを行うように構成することができる。指示を提供する例が図５の２０２７において示され、それは、警告を上げ、セキュリティインシデント応答用の事前設定された指示（たとえば、対応するＰＬＣおよび機械の電源を切ることなど）を実行すること、ならびに所望の実装形態に従ってユーザインターフェース上で指示を提供することを含むことができる。そのような例示的な実装形態を通して、工場が正常に操業していることを取得されたＰＬＣ値が示すように見える場合でも、工場の現場に対するＩＣＳ攻撃は管理装置によって検出することができる。
【００６５】
プロセッサ１１１０は、ストリーミングＰＬＣ値が状態についての予想内になく、ストリーミング外部センサ値が状態についての予想内にないことを確率分析が示す場合、新しい状態／通常の例外について図８の２０４２８において示されたように、かつ図５の２０２６および２０２８において示されたように、新しい状態および工場イベントのうちの１つを検出するように構成することができる。
【００６６】
プロセッサ１１１０は、検出が新しい状態を示す場合、図５の２０２６および２０２９ならびに図１０Ｂに示されたように、新しい状態についての履歴ＰＬＣ値および履歴センサ値として、ストリーミングＰＬＣ値およびストリーミング外部センサ値を記憶するように構成することができる。
【００６７】
プロセッサ１１１０は、ストリーミングＰＬＣ値が状態についての予想内になく、ストリーミング外部センサ値が状態についての予想内にあることを確率分析が示す場合、図５の２０２６および２０２８において示されたように、かつセンサをチェックについて図８の２０４２８において示されたように、センサ故障の指示を提供するように構成することができる。
【００６８】
プロセッサ１１１０は、図１０Ｂに示された複数の状態から状態を選択するように構成することができ、各状態は対応する履歴センサ値および履歴ＰＬＣ値と関連付けられ、図８に示された工場の動作と関連付けられる。
【００６９】
図９の例示的なシステムおよび図１１に記載された例示的な実装形態を通して、管理装置は、工場の工場ネットワーク上のＰＬＣ／機械システムとは別個のネットワーク上のセンサシステムを管理し、ストリーミングＰＬＣ値およびセンサ値に基づいて工場で発生しているＩＣＳ攻撃を検出することができ、それにより、工場の現場のためのセキュリティが改善される。
【００７０】
発明を実施するための形態のいくつかの部分は、コンピュータ内の演算のアルゴリズムおよびシンボル表現の観点から提示される。これらのアルゴリズム記述およびシンボル表現は、データ処理技術分野の当業者により、他の当業者に自分の新機軸の本質を伝達するために使用される手段である。アルゴリズムは、所望の最終状態または結果につながる一連の定義されたステップである。例示的な実装形態では、実行されるステップは、有形の結果を実現するための有形の量の物理操作を必要とする。
【００７１】
説明から明白であると別段に明記されていない限り、説明全体にわたって、「処理」、「計算」、「算出」、「決定」、「表示」などの用語を利用する説明は、コンピュータシステムのレジスタおよびメモリ内の物理（電子）量として表されるデータを操作し、コンピュータシステムのメモリもしくはレジスタ、または他の情報を記憶、送信、もしくは表示するデバイス内の物理量と同様に表される他のデータに変換する、コンピュータシステムまたは他の情報処理デバイスの動作およびプロセスを含むことができることが諒解される。
【００７２】
例示的な実装形態はまた、本明細書において動作を実行するための装置に関係する場合がある。この装置は、必要な目的のために特別に構築されてよいか、または１つもしくは複数のコンピュータプログラムによって、選択的にアクティブ化もしくは再構成された１つもしくは複数の汎用コンピュータを含んでよい。そのようなコンピュータプログラムは、コンピュータ可読記憶媒体またはコンピュータ可読信号媒体などのコンピュータ可読媒体に記憶されてよい。コンピュータ可読記憶媒体は、限定はしないが、光ディスク、磁気ディスク、読取り専用メモリ、ランダムアクセスメモリ、半導体デバイスおよびドライブ、または電子情報を記憶するのに適した任意の他のタイプの有形もしくは非一時的媒体などの有形媒体を含んでよい。コンピュータ可読信号媒体は、搬送波などの媒体を含んでよい。本明細書に提示されたアルゴリズムおよびディスプレイは、任意の特定のコンピュータまたは他の装置に本来関係しない。コンピュータプログラムは、所望の実装形態の動作を実行する命令を含む純粋なソフトウェア実装形態を含むことができる。
【００７３】
様々な汎用システムは、本明細書における例によるプログラムおよびモジュールとともに使用されてよいか、または所望の方法ステップを実行するためにより特化した装置を構築することが好都合であると証明することができる。加えて、例示的な実装形態は、いかなる特定のプログラミング言語も参照して記載されていない。本明細書に記載された例示的な実装形態の教示を実装するために、様々なプログラミング言語が使用されてよいことが諒解されよう。プログラミング言語の指示は、１つまたは複数の処理デバイス、たとえば、中央処理装置（ＣＰＵ）、プロセッサ、またはコントローラによって実行されてよい。
【００７４】
当技術分野で知られているように、上述された動作は、ハードウェア、ソフトウェア、またはソフトウェアとハードウェアの何らかの組合せによって実行することができる。例示的な実装形態の様々な態様は、回路および論理デバイス（ハードウェア）を使用して実装されてよいが、他の態様は、機械可読媒体に記憶された命令（ソフトウェア）を使用して実装されてよく、命令は、プロセッサによって実行された場合、本出願の実装形態を実行するようにプロセッサに方法を実行させる。さらに、本出願のいくつかの例示的な実装形態は、ハードウェアにおいてのみ実行されてよいが、他の例示的な実装形態は、ソフトウェアにおいてのみ実行されてよい。その上、記載された様々な機能は、単一のユニットにおいて実行することができるか、または任意の数の方法でいくつかの構成要素にわたって分散することができる。ソフトウェアによって実行されるとき、方法は、コンピュータ可読媒体に記憶された命令に基づいて、汎用コンピュータなどのプロセッサによって実行されてよい。必要な場合、命令は、圧縮および／または暗号化されたフォーマットで媒体に記憶することができる。
【００７５】
その上、本出願の明細書の考察および教示の実践から、本出願の他の実装形態が当業者には明らかであろう。記載された例示的な実装形態の様々な態様および／または構成要素は、単独または任意の組合せで使用されてよい。明細書および例示的な実装形態は例にすぎないと見なされ、本出願の真の範囲および趣旨は、以下の特許請求の範囲によって示されることが意図されている。
【符号の説明】
【００７６】
１０１  機械
１０２  ＰＬＣ
１０２１  レジスタ
１０２２  レジスタ
１０３１  センサ値
１０３２  アクチュエータコマンド
１０４  ＳＣＡＤＡシステム
１０５  値ペア
１０６  ヒューマンマシンインターフェース（ＨＭＩ）
２０１  データソース
２０２  工場状態特定モジュール
２０３  接続
２０４  セキュリティ分析モジュール
２０５  ＰＬＣ値
２０６  外部センサ値
２０７  Ｓｉｇｎａｌ＿Ｓｔａｔｅ
２０１１  状態
２０１２  状態
２０１３  状態
２０４１  訓練モジュール
２０４２  テストモジュール
９００−１  サーバ
９００−２  サーバ
９０１  ＩｏＴ  ＧＷ
９０２  センサ
９０３  ＰＬＣ
９０４−１  機械
９０４−２  機械
９０４−３  機械
１１００  コンピューティング環境
１１０５  コンピュータデバイス
１１１０  プロセッサ
１１１５  メモリ
１１２０  内部ストレージ
１１２５  Ｉ／Ｏインターフェース
１１３０  バス
１１３５  入力／ユーザインターフェース
１１４０  出力デバイス／インターフェース
１１４５  外部ストレージ
１１５０  ネットワーク
１１６０  論理ユニット
１１６５  アプリケーションプログラミングインターフェース（ＡＰＩ）ユニット
１１７０  入力ユニット
１１７５  出力ユニット
１１９５  ユニット間通信機構
【図１】
0006961740.tif 000002
【図２】
0006961740.tif 000003
【図３】
0006961740.tif 000004
【図４】
0006961740.tif 000005
【図５】
0006961740.tif 000006
【図６】
0006961740.tif 000007
【図７】
0006961740.tif 000008
【図８】
0006961740.tif 000009
【図９】
0006961740.tif 000010
【図１０Ａ】
0006961740.tif 000011
【図１０Ｂ】
0006961740.tif 000012
【図１１】
0006961740.tif 000013